Skip to main content

trade-learn logo

Documentation | Changelog | 中文简体 | 日本語

Python for Strategy & Research, Rust for Event-Driven Backtest Engine.

PyPI version Python versions License Changelog Discord

trade-learn aims to eliminate the long-standing friction between quantitative research ("Learn") and backtest execution ("Trade"). By adopting a hybrid architecture of "Python for strategy logic + Rust for native backtest core," it achieves a 110x+ performance leap in multi-asset backtesting while ensuring 100% rigorous semantic alignment with Backtrader. It compresses large-scale strategy validation from hours to seconds, providing truly iterative research efficiency for index enhancement and machine learning strategies.

Beyond high performance, trade-learn provides a complete research infrastructure. With built-in JupyterLab and MLflow, it seamlessly links factor mining, strategy validation, and experiment auditing into a reproducible, traceable, and auditable full-lifecycle research pipeline. This elevates the research process from "result-oriented" to a systematically managed engineering workflow, allowing researchers to focus on the core strategy logic.

trade-learn research flow

From Extreme Efficiency to Scientific Decision-Making: Building on the efficiency gains of the research pipeline, trade-learn further addresses the core "scientific rigor" of quantitative research. To combat the "pseudo-correlation" risks common in machine learning strategies, we have deeply integrated Causal Inference into the research workflow. By identifying true causal driving paths, it reduces out-of-sample decay risks and helps build highly explainable and robust quantitative strategy systems.

Implementation Path

trade-learn rejects the simple stacking of features. Instead, it balances professional depth with research efficiency through a unique "Dual-Mode, Dual-Core" design. The Engine layer strictly aligns with Backtrader semantics for logic correctness, while the Lite layer provides a minimal Pythonic interface for rapid iteration.

You can define the depth of your strategy based on the research stage:

  • Engine Mode (Deep Research): Fully aligns with Backtrader semantics, supporting the complete Analyzer/Sizer/Signal ecosystem. Ideal for building complex, production-grade systems with precise logic.
  • Lite Mode (Agile Validation): Follows the minimalism of backtesting.py, supporting direct connection to model weights. Perfect for high-frequency iteration and prototype validation during the factor mining stage.

In terms of ecosystem, trade-learn provides comprehensive indicator support, compatible with TA-Lib, Pandas-TA-Classic, TDX, and TradingView, while allowing flexible expansion of custom indicators and data sources.

Core Highlights

⚡️ High-Performance Core: Rust-Driven Velocity

  • Rust Hybrid Power: The matching engine and core calculations are powered by Rust, providing 28x speedup for single assets and 110x+ for multi-asset rebalancing compared to Backtrader.
  • Automatic Runner Scheduling: Automatically selects between "Single-Stream Bar-by-Bar" or "Batch Panel" processing based on data shape. Optimized memory layout for Index Enhancement scenarios.

🛡️ Rigorous Finance: 100% Backtrader Alignment

  • Engine-Level Alignment: Full support for the Analyzer/Sizer/Signal system, ensuring zero logical divergence from the Backtrader Oracle.
  • Lite Minimalist Expression: Lightweight syntax built on the same runtime. Features a built-in target_weights interface to convert ML model outputs into backtest decisions instantly.

🧪 Causal Research: Scientific Workflow Beyond Correlation

  • Causal-First Feature Selection: Built-in causal discovery algorithms like PC/FCI to identify true causal paths and combat "pseudo-correlation" and overfitting.
  • Full-Link Pipeline: Seamlessly couples feature engineering, causal screening, scoring models, portfolio weights, and backtest reports into a reproducible experimental loop.

📦 Modular Platform: Lightweight Core, On-Demand Expansion

  • Decoupled Core: The default installation includes only the high-performance backtest kernel with minimal dependencies, making it easy to integrate into servers or automated trading systems.
  • Elastic Expansion: One-click activation of the integrated research environment (JupyterLab + MLflow + AI Assistant) via [lab] or [all] extras.

🌍 Global Vision: Multi-Standard Indicators & Modern Ecosystem

  • Dual-Market Standards: Explicit support for TDX (China) and TradingView (International) indicator standards, with deep compatibility for TA-Lib and Pandas-TA-Classic.
  • Modern Tools: Out-of-the-box HTML interactive reports, MLflow experiment tracking, and deep JupyterLab/MCP integration.

Causal Quant: Bridging the "Pseudo-Correlation" Trap

Most quantitative research stops at Correlation, which often leads to factors performing well in backtests but failing rapidly in live trading (overfitting). trade-learn helps you identify the true drivers of returns through its built-in Causal Discovery mechanism:

  • Causal Feature Selection: Use CausalSelector with PC/FCI algorithms to strip away pseudo-correlated factors caused by "common observations," keeping only features with direct driving capability for returns.
  • Resisting Out-of-Sample Decay: Alpha factors identified via causal graphs are more resilient to market regime shifts, effectively reducing the performance gap between research and live trading.
  • Industrial Integration: Deeply integrated with the causal-learn ecosystem, making advanced causal inference as seamless as calling corr().

Who is it for?

  • Agile Developers & Prototypers: Convert ideas into backtest reports in just a few lines of code, enjoying a backtesting.py-like lightweight experience.
  • Index Enhancement & Portfolio Managers: Simulate rebalancing for 1000+ assets in seconds using the Rust Panel Runner.
  • ML & Factor Researchers: A one-stop automated loop from feature engineering and Causal Discovery to MLflow-tracked model training and backtesting.
  • Backtrader Power Users: Modernize your reporting and speed up your research while retaining the mature event-driven semantics you trust.
  • Cross-Market & Multi-Strategy Teams:
    • Cross-market consistency: Cover A-shares (TDX) and global markets (TradingView) with consistent indicator standards and reporting.
    • Unified strategy operations: Manage rule-based and model-based strategies in one stack, avoiding fragmented research and maintenance workflows.
  • Causal Inference Explorers: Bring causal graph methods into factor selection to remove pseudo-correlations and build more explainable, robust quantitative systems.

Installation

pip install trade-learn

Get the latest version:

pip install git+https://github.com/MuuYesen/trade-learn.git@master

Optional extras:

extra Usage
[tdx] OpenTDX data / China-market indicator dependencies
[tv] TradingView datafeed and PyneCore-backed TradingView indicators
[talib] TA-Lib indicator namespace
[indicators] TDX + TradingView + TA-Lib indicator backends
[ml] Causal ML dependencies
[research] Research acceleration utilities such as Numba
[duckdb] DuckDB bars backend
[lab] JupyterLab / Jupyter AI / MCP / Pygwalker environment
[mlflow] MLflow tracking server and artifact logging
[all] Full environment (Lab, MLflow, indicators, ML, DuckDB, etc.)

💡 Installation Tip: The default install includes only the core engine. For the full research experience, use [all]:

pip install "trade-learn[all]"

Launch with tradelearn lab. Access JupyterLab at port 8888 and MLflow at 5050.

Quick Start

Lite — The Shortest Path (Ideal for rapid validation, teaching, and target-weight portfolios):

import tradelearn.lite as tl
from tradelearn.data import TradingViewProvider

class LiteSmaCross(tl.Strategy):
    fast = 10
    slow = 20

    def init(self):
        self.fast_ma = tl.tdx.MA(self.data.close, N=self.fast)
        self.slow_ma = tl.tdx.MA(self.data.close, N=self.slow)
        self.start_on_bar(self.slow + 1)

    def next(self):
        if self.fast_ma[0] > self.slow_ma[0] and not self.position():
            self.buy(size=100)
        elif self.fast_ma[0] < self.slow_ma[0] and self.position():
            self.position().close()

provider = TradingViewProvider(n_bars=5000)
bars = provider.history_ohlc("NASDAQ:AAPL", start="2023-01-01", end="2024-01-01")

bt = tl.Backtest(bars, LiteSmaCross, cash=100_000, commission=0.0003, trade_on_close=True)
stats = bt.run()

print(stats.summary)
bt.plot()
bt.report("report.html")

Engine — Backtrader Style (Ideal for complex portfolios and future paper/live modes):

import tradelearn.engine as bt
from tradelearn.data import TradingViewProvider

class SmaCross(bt.Strategy):
    params = (("fast", 10), ("slow", 20))

    def __init__(self):
        self.fast = bt.tdx.MA(self.data.close, N=self.p.fast)
        self.slow = bt.tdx.MA(self.data.close, N=self.p.slow)

    def next(self):
        if not self.position and self.fast[0] > self.slow[0]:
            self.buy(size=100)
        elif self.position and self.fast[0] < self.slow[0]:
            self.close()

provider = TradingViewProvider(n_bars=5000)
bars = provider.history_ohlc("NASDAQ:AAPL", start="2023-01-01", end="2024-01-01")

cerebro = bt.Cerebro(trade_on_close=True)
cerebro.setcash(100_000)
cerebro.setcommission(0.0003)
cerebro.adddata(bars, name="AAPL")
cerebro.addstrategy(SmaCross)

[strategy] = cerebro.run()
print(strategy.stats.summary)

cerebro.plot()
cerebro.report("report.html")

Research Pipeline Example

The README keeps the shortest readable version. Full scripts are available at examples/research/index_enhance_lite_pipeline.py and examples/research/index_enhance_engine_pipeline.py.

1. Research: build features from raw bars and split train/test data

import tradelearn.research as research
import tradelearn.research.preprocess as pp

feature_set = research.FeatureSet(
    {
        "alpha": lambda p: p.close.pct_change(20)
        / p.close.pct_change().rolling(20).std(),
        "size": lambda p: p.close,
    },
    target={"label": lambda p: p.close.shift(-20) / p.close - 1.0},
)

features = feature_set.fit_transform(bars, include_target=True).dropna()
train, test = research.time_split(features, split="2023-09-01", level="timestamp")

2. Pipeline: preprocess, score with a model, and generate weights

from sklearn.ensemble import GradientBoostingRegressor
import tradelearn.research.portfolio as pf

pipe = research.Pipeline(
    [
        pp.Winsorizer(columns=["alpha"], limits=(0.05, 0.95)),
        pp.Neutralizer(columns=["alpha"], exposures=["size"]),
        pp.StandardScaler(columns=["alpha"]),
    ]
)
train = pipe.fit_transform(train)
test = pipe.transform(test)

model = GradientBoostingRegressor(random_state=7)
model.fit(train[["alpha"]], train["label"])
scores = research.ModelScorer(model, features=("alpha",), current=False).predict(test)

weights = pf.Allocator(
    select=pf.TopK(k=2),
    weight=pf.EqualWeight(gross=0.95),
    constrain=pf.Constraints(max_weight=0.5, normalize=True),
).build(scores)

3. Portfolio: hand target weights to Lite / Engine for execution

class LitePortfolio(tl.Strategy):
    def next(self):
        if len(self.data) % 20 == 0:
            self.target_weights(self.research_result.weights[0], close_missing=True)


test_bars = research.split_bars(bars, split="2023-09-01")
stats = tl.Backtest(test_bars, LitePortfolio, cash=100_000).run(
    research_result=research_result
)

4. Live-style: infer only from the currently visible window inside the strategy

Offline research pipelines are useful for training and review. For semantics closer to live trading, pass the model and allocator into strategy parameters and use history_panel() inside next() so the strategy only reads data that has already happened.

class LiveStylePortfolio(tl.Strategy):
    lookback = 20

    def init(self):
        self.start_on_bar(self.lookback)

    def next(self):
        if len(self.data) % 20 != 0:
            return

        panel = self.history_panel(self.lookback)
        features = self.feature_set.transform(panel).dropna()
        scores = self.scorer.predict(features)
        weights = self.allocator.build(scores)
        self.target_weights(weights, close_missing=True)

Full versions:

Goal Full script
Lite research + backtest + report + MLflow examples/research/index_enhance_lite_pipeline.py
Engine research + backtest + report + MLflow examples/research/index_enhance_engine_pipeline.py
Lite live-style current-window inference examples/research/index_enhance_lite_live.py
Engine live-style current-window inference examples/research/index_enhance_engine_live.py
Engine Backtrader-style portfolio rebalancing examples/engine/11_target_percent_portfolio.py
Asset-class portfolio strategy examples/engine/12_asset_class_portfolios.py

Alignment & Performance

Local baselines focus on two core checks: whether results align and whether throughput is meaningfully faster than Backtrader. Full reproduction commands are available in benchmarks.

1. Single-Asset High-Frequency: SMA Cross (550k Bars)

  • Strategy idea: Run a standard dual moving average crossover. This stresses Rust's event-driven state maintenance and single-stream throughput over a long sequence.
Engine Mode Time Throughput (Bars/s) Speedup Final Equity Orders Closed Trades Status
Tradelearn Lite 1.32s 414,990 27.9x 118,399.33 10,299 5,149 EXACT
Tradelearn Engine 3.37s 162,883 11.0x 118,399.33 10,299 5,149 EXACT
Backtrader (Oracle) 37.02s 14,854 1.0x 118,399.33 10,299 5,149 -

2. Large-Scale Index Enhance: Top-50 Target Weights (5.04M Bars)

  • Strategy idea: Simulate full-market stock selection and rebalancing across 1000 assets. This stresses Rust's panel-data memory layout and large-scale ML research workflow.
Engine Mode Time Throughput (Bars/s) Speedup Final Equity Completed Orders Rebalance Intents Rebalances
Tradelearn Lite 2.40s 2,094,237 119.1x 4,199,638.26 23,249 23,249 239
Tradelearn Engine 4.11s 1,225,594 69.7x 4,199,638.26 23,249 23,249 239
Backtrader (Oracle) 286.53s 17,589 1.0x 4,199,638.26 23,249 23,249 239

Parity Commitment

trade-learn treats "benchmark parity" as a core engineering discipline. Every computed result must withstand strict scrutiny, with numerical alignment maintained across these layers:

  • Financial metrics parity: metrics (Sharpe, MaxDD, Sortino, etc.) match empyrical within rtol=1e-10.
  • Multi-source indicator parity:
    • tl.pta (classic indicators) matches pandas-ta-classic within rtol=1e-10.
    • tl.tdx (TDX semantics) matches MyTT within rtol=1e-10.
    • tl.tv (TradingView semantics) matches pyneCore within rtol=1e-6.
  • Backtest engine parity:
    • Decision layer: trade records (Trades) match the official Backtrader implementation with 0 difference in time, direction, and position.
    • Equity layer: equity curves align within rtol=1e-6, and summary statistics align within rtol=1e-4.

Full Documentation

Topic Entry
First backtest in 30 lines Quickstart
Lite / Engine usage Lite Guide · Engine Guide
Architecture and boundaries Architecture
Factor / ML / weight research pipeline Research Guide
Dual-standard indicators (tl.talib / tl.pta / tl.tdx / tl.tv) Indicators Guide
Performance baseline Benchmarks
Kernel internals (contracts / matching / portfolio / event loop) Design Notes
Full API API Reference

🚀 Roadmap

Based on the current engineering plan, trade-learn evolves along these core dimensions:

Backtest Engine & Core Foundation

  • Rust Hybrid Kernel: Clocked Multi-Data Runner, 110x+ speedup for multi-asset backtests.
  • Backtrader Semantic Parity: 100% matching consistency and shared runtime through bt.Strategy.
  • Index Enhancement Pipeline: Complete Data → Factor → Score → Weights → target_weights() workflow.
  • Automated Experiment Audit: Deep MLflow integration for code snapshots, parameters, metrics, and reports.
  • High-Performance Data Backend: DuckDB native connector has landed, supporting local second-level reads and cross-dimensional queries over hundreds of millions of bars.
  • Risk Model Integration: Barra-style risk exposure analysis and excess-return attribution.

Scientific Research Capabilities

  • Causal Discovery Foundation: Integrated CausalSelector (PC/FCI) to identify true alpha drivers during feature engineering.
  • Algorithm Expansion: Add GIES, Direct-LiNGAM, and other advanced algorithms for better explainability and stability.
  • Causal Closed Loop: Automate the loop across causal analysis, parameter optimization, and risk control.

Agent & AI Capabilities

  • MCP Knowledge Gateway: MCP Server is live, enabling structured API understanding and code generation for AI.
  • Agentic Strategy Diagnosis: Use LLMs to analyze backtest results, identify loss drivers, and suggest logic improvements.
  • LLM Factor Interpreter: Translate causal discovery results into intuitive financial investment logic.

Engineering & ML Lifecycle

  • Model Registry: MLflow-based model registry for full-lifecycle tracking of feature fingerprints and model versions.
  • Distributed Parameter Optimization: Multi-machine parameter search and Monte Carlo simulation via Ray / Optuna.

Live Trading & Ecosystem Vision

  • Universal Live Event Link: Completed EventRunner semantics, enabling 100% code reuse between backtest and live trading.
  • Live Trading Connectivity: Integrate QMT, IBKR, and other brokers to complete the last mile from research to execution.
  • Agentic Quant Platform: Evolve into a natural-language-driven automation foundation for end-to-end quantitative research.

Disclaimer

This project is for academic research and technical exchange only and does not constitute any investment advice. Quantitative trading involves high risk; past performance is not indicative of future results. The developers are not responsible for any financial losses incurred through the use of this project. Invest at your own risk.

Acknowledgements

Quantopian · Trevor Stephens · PyWhy · dodid · DolphinDB · happydasch · mpquant · baobao1997

Contact

WeChat: 知守溪的收纳屋 · Email: muyes88@gmail.com

Metadata

Release files for trade-learn 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trade-learn 0.2.6
File Size Uploaded
trade_learn-0.2.6.tar.gz 260.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for trade-learn 0.2.6
File
trade_learn-0.2.6-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
trade_learn-0.2.6-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
trade_learn-0.2.6-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
trade_learn-0.2.6-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
trade_learn-0.2.6-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
trade_learn-0.2.6-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
trade_learn-0.2.6-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
trade_learn-0.2.6-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
trade_learn-0.2.6-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
trade_learn-0.2.6-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
trade_learn-0.2.6-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
trade_learn-0.2.6-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
trade_learn-0.2.6-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
trade_learn-0.2.6-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
trade_learn-0.2.6-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
trade_learn-0.2.6-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 10.1 MB

Release files / trade_learn-0.2.6.tar.gz

Download URL trade_learn-0.2.6.tar.gz
Size 260.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ed9a4f7743667abe2fac58e05b185493ebf753cd1a17d5fa512066daf6447619
BLAKE2b-256 checksum
How to use checksums
90def3fbe25c0b60a60f1fcfcd9a34eae9f7ba35664ece03e140d23b1d3b6ccc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp314-cp314-win_amd64.whl

Download URL trade_learn-0.2.6-cp314-cp314-win_amd64.whl
Size 531.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ba0a5d3e1c513bd35c8b4a660b9d6be203dbe826c8dc649f7ccff2275ce643f3
BLAKE2b-256 checksum
How to use checksums
d7b81f8619872fdc52dc167601fcf9b4d40bf569d996d57335fcf9096166be83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL trade_learn-0.2.6-cp314-cp314-manylinux_2_28_x86_64.whl
Size 674.8 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
47c39ca89e9fac24d7e5e54d6019caed24fe6dc16db3daec49dd5fa4c2df0ae7
BLAKE2b-256 checksum
How to use checksums
74528010a264430bda96d5c0a5bc5608a2e5e0c08d650cdd8d116586f5dad859
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp314-cp314-macosx_11_0_arm64.whl

Download URL trade_learn-0.2.6-cp314-cp314-macosx_11_0_arm64.whl
Size 619.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a4082d84cf853e11dbbd152ab5ba47f80b176f164a62f1949c477fae4eb6ad6c
BLAKE2b-256 checksum
How to use checksums
6c5a464b55a3d8ad41f02dd210bb7b6dce299f74ad1afa9f4d71d59dca5f9ac1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp313-cp313-win_amd64.whl

Download URL trade_learn-0.2.6-cp313-cp313-win_amd64.whl
Size 531.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
3b48c118a789d4a5d91373fbbdfb71144da700638c6c4ce432a1ef9389d1fff2
BLAKE2b-256 checksum
How to use checksums
238f0a18864da66c432a3a2aa4812e93562f2dda44586b0fc05e501c83002f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL trade_learn-0.2.6-cp313-cp313-manylinux_2_28_x86_64.whl
Size 675.3 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8af280df006528c25981cbc52e21e211f7701a90dc4ff723ee527d0decec7fd8
BLAKE2b-256 checksum
How to use checksums
6d07448e0650d118c9b334b5cbe1ba4556b2ad208d94db81e0f6297f010daebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL trade_learn-0.2.6-cp313-cp313-manylinux_2_28_aarch64.whl
Size 661.4 kB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9523665270516637d6b1932fc55aa854ed2fd84a2e27e73de48016213001809a
BLAKE2b-256 checksum
How to use checksums
33dd2191e7519d5571ad33022ccc0200e2023d0a3fe163feeb915b631ed372e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp313-cp313-macosx_11_0_arm64.whl

Download URL trade_learn-0.2.6-cp313-cp313-macosx_11_0_arm64.whl
Size 619.9 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6f9f74d06e1d09f5b7ddfc9bbc39c628457c8b97dbb9199fe534675f68df9e4f
BLAKE2b-256 checksum
How to use checksums
6f9359d9f26e0b65b27e9b1022426e030fdd00c1875ef3186b48a2df792f2b52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp312-cp312-win_amd64.whl

Download URL trade_learn-0.2.6-cp312-cp312-win_amd64.whl
Size 532.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
59c92acc053a617a39e348b34fbf63e1a1ce9209656c54849739961c02b2bad7
BLAKE2b-256 checksum
How to use checksums
3401ac349c316dcdba1702a783d8f5b5fae237de4b830f00452eba276188bef7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL trade_learn-0.2.6-cp312-cp312-manylinux_2_28_x86_64.whl
Size 676.5 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
81da5b1ab96bdd46f95475f68cc561418feb746a6959a21356b61993c459892b
BLAKE2b-256 checksum
How to use checksums
899a7f2df9c3ea34eb12e0d1bc0ed64b34a6606d255e776e330f8c31e3937ac1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp312-cp312-macosx_11_0_arm64.whl

Download URL trade_learn-0.2.6-cp312-cp312-macosx_11_0_arm64.whl
Size 620.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
87ad9d7bd5fe537b5d2290f252d19cf65d1753a67ef586d81ceb72ddfde5df46
BLAKE2b-256 checksum
How to use checksums
246ffea8090f0af8584463e81f78580d67f0e8037dc9e22b07c7f3da8df93511
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp311-cp311-win_amd64.whl

Download URL trade_learn-0.2.6-cp311-cp311-win_amd64.whl
Size 536.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0acfbd6a868bf380b173ce191935d52310c39d2f60052094b4c7a5ad36d58f55
BLAKE2b-256 checksum
How to use checksums
23db01036845de29b7ae40710cec057a700abc1b87e2ab89ca44c633f92642ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL trade_learn-0.2.6-cp311-cp311-manylinux_2_28_x86_64.whl
Size 680.8 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
275387210c0631a420fa27635a75781eb0596080009498f0271c6fccb672d57b
BLAKE2b-256 checksum
How to use checksums
e584d05960e5602655ed780e5ba93cc0bcae3abe39a9f196cdd75fec65d94e3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp311-cp311-macosx_11_0_arm64.whl

Download URL trade_learn-0.2.6-cp311-cp311-macosx_11_0_arm64.whl
Size 624.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ccd01879fca04363e602baafacb77fa9be9d75c456955567063f2f06cf97c979
BLAKE2b-256 checksum
How to use checksums
fde49c690799be4ad9a785765c8392b63562550e6211a26e7e816a207f1defc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp310-cp310-win_amd64.whl

Download URL trade_learn-0.2.6-cp310-cp310-win_amd64.whl
Size 535.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
795e6563165d1bed90d3fb5d851a4a986fa25e30c1f7110028f089effa57c9b8
BLAKE2b-256 checksum
How to use checksums
1935961deab9d39fb0973b9380d7a0039067bff4fcf1db052afbe578e2179359
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL trade_learn-0.2.6-cp310-cp310-manylinux_2_28_x86_64.whl
Size 680.6 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b0d5a33b220b8c5e746274c29204578f7b52a52d5d24355222e916faaa439bd1
BLAKE2b-256 checksum
How to use checksums
e6af29eec43836b23ed6bcbe88c7f2d09a11553b2be35e01e09e4b32f4428ab8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / trade_learn-0.2.6-cp310-cp310-macosx_11_0_arm64.whl

Download URL trade_learn-0.2.6-cp310-cp310-macosx_11_0_arm64.whl
Size 624.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d4e0040bdc11560f808c5c6ca250072e743b043c4dd84be1d74bab982d98ec96
BLAKE2b-256 checksum
How to use checksums
70268f77d591a38ab70caf6a01da5b28d318d07ce44f7d86fa41aac3fad8af03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.6 This release

17 release files

0.2.5

17 release files

0.1.1.8

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page