{"ok": true, "time": "2026-09-07T03:39:35+00:00", "backtest_requirements": {"schema": "BacktestEvidenceV2", "legacy_schema": "BacktestEvidenceV1", "evidence_mode": "hash_commitment", "compute_policy": "client_side_only", "data_policy": "marketworld_official_dataset_only", "public_feature_policy": {"internal_feature_extractor": "private", "public_submission": "hash_commitments_only", "rule": "公开标准只要求提交 opaque feature commitment；内部特征名、阈值、切片规则不对外发布。"}, "submission_standard_url": "/external-strategies/submission-standard", "public_score_policy": {"scorer_id": "marketworld_public_backtest_score_v4", "minimum_upload_score": 70.0, "score_range": [0, 100], "local_compute_only": true, "rule": "用户必须先在本地或外部算力跑官方数据回测并生成公开评分；总分、风险硬门槛或留出分片任一未通过的策略包 API 直接拒收。", "sample_adequacy_rule": "v4 按数据粒度、实际 bar 数、回测天数、完整开平仓回合数和活跃天数计算样本充足度，并强制最后一个分片作为留出验证段。"}, "venue_policy": {"policy_id": "marketworld_venue_locked_v1", "allowed_scopes": ["benchmark_venue", "cross_venue", "local_history", "same_brand", "same_venue", "spot_only"], "default_scope": "same_venue", "rule": "策略必须按官方 manifest 锁定 execution_venue/data_provider/venue_symbol；同场所期现和跨场所期现必须使用不同 venue_pair_id。"}, "run_modes": ["client_side", "external_compute", "user_supplied"], "official_datasets": [{"dataset_id": "local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z", "provider": "marketworld", "status": "approved_local_history", "label": "Local fixed-window history: binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z", "description": "Local backtest dataset converted from the offline fixed-window history downloader.", "venue_package": "LOCAL_HISTORY", "venue_capability": "single_or_multi_instrument_history", "source_policy_id": "marketworld_offline_fixed_window_history_v1", "venue_policy_id": "marketworld_local_history_download_v1", "coverage_policy": "Converted from a completed local history download manifest.", "anti_lookahead_policy": "Rows are fixed-window historical bars; strategy sees previous closed step and fills on the current step.", "input_history_download": {"job_id": "binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z", "manifest_path": "E:\\Playground\\cross_market_graph\\output\\offline_history_downloads\\binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z\\manifest.json", "manifest_sha256": "sha256:ab189947deb6c1d6d79e852c61e07390ad1d29d3ee76a59a022fd669d995f68e"}, "instrument_sources": {"BINANCE_SPOT_BTC": {"execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT", "market_type": "crypto_spot", "source_role": "history_download", "dataset_source": "marketworld_offline_history_download", "live_source": "binance_spot"}}, "venue_pairs": [{"venue_pair_id": "local_history_binance_spot_1d", "scope": "local_history", "basis_type": "single_or_multi_instrument", "underlying": "mixed", "execution_venues": ["BINANCE"], "allow_cross_venue_basis": true, "legs": [{"role": "market", "instrument": "BINANCE_SPOT_BTC", "execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT"}], "notes": "Local history dataset generated by the offline workbench."}], "cost_model_id": "mw_cost_local_history_commission_only_v1", "generated_by": "scripts/offline_backtest_workbench.py", "generated_at": "2026-07-01T08:58:13+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "mixed_source_timezones"}, "granularity": ["1d"], "instruments": ["BINANCE_SPOT_BTC"], "sources": ["binance_spot"], "rows": 90, "cost_model_hash": "sha256:63d90fa5ee48a2f057f30f519f934f997510511a64887d6fd83835e4fbf11b02", "data_fingerprint": "sha256:f1095fe0de85c57497690ab3e98af2e62b914e5618cc617471c945e858c88d1b", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z/market_data_sessionized.csv", "sha256": "sha256:f1095fe0de85c57497690ab3e98af2e62b914e5618cc617471c945e858c88d1b", "bytes": 26937}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z/execution_cost_assumptions.csv", "sha256": "sha256:63d90fa5ee48a2f057f30f519f934f997510511a64887d6fd83835e4fbf11b02", "bytes": 273}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:c4155ef7bca40d8be98200ba4d124744cbb9cf2e267b57cb1a9cbf0f2c1414e1", "computed_manifest_hash": "sha256:5041a27072da791b6b7718aaa3cf02b9a50b9246a230dc9b06675e6257039ee7", "released_manifest_self_hash": "sha256:94c5f943b281a8d0a327e598e31f3dda94441469f920bcff726f7082acdd0c08"}, {"dataset_id": "local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z", "provider": "marketworld", "status": "approved_local_history", "label": "Local fixed-window history: binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z", "description": "Local backtest dataset converted from the offline fixed-window history downloader.", "venue_package": "LOCAL_HISTORY", "venue_capability": "single_or_multi_instrument_history", "source_policy_id": "marketworld_offline_fixed_window_history_v1", "venue_policy_id": "marketworld_local_history_download_v1", "coverage_policy": "Converted from a completed local history download manifest.", "anti_lookahead_policy": "Rows are fixed-window historical bars; strategy sees previous closed step and fills on the current step.", "input_history_download": {"job_id": "binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z", "manifest_path": "E:\\Playground\\cross_market_graph\\output\\offline_history_downloads\\binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z\\manifest.json", "manifest_sha256": "sha256:5246f1d5ad1ce35696b6100d1fb894fa0f9be8e0641ce4a2736371d9c151db9e"}, "instrument_sources": {"BINANCE_SPOT_BTC": {"execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT", "market_type": "crypto_spot", "source_role": "history_download", "dataset_source": "marketworld_offline_history_download", "live_source": "binance_spot"}}, "venue_pairs": [{"venue_pair_id": "local_history_binance_spot_1m", "scope": "local_history", "basis_type": "single_or_multi_instrument", "underlying": "mixed", "execution_venues": ["BINANCE"], "allow_cross_venue_basis": true, "legs": [{"role": "market", "instrument": "BINANCE_SPOT_BTC", "execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT"}], "notes": "Local history dataset generated by the offline workbench."}], "cost_model_id": "mw_cost_local_history_commission_only_v1", "generated_by": "scripts/offline_backtest_workbench.py", "generated_at": "2026-07-01T09:21:49+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "mixed_source_timezones"}, "granularity": ["1m"], "instruments": ["BINANCE_SPOT_BTC"], "sources": ["binance_spot"], "rows": 129600, "cost_model_hash": "sha256:63d90fa5ee48a2f057f30f519f934f997510511a64887d6fd83835e4fbf11b02", "data_fingerprint": "sha256:9b748c81718d09e2d4517bd7683df502c56372a032d919e14ba3ca81a659748e", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z/market_data_sessionized.csv", "sha256": "sha256:9b748c81718d09e2d4517bd7683df502c56372a032d919e14ba3ca81a659748e", "bytes": 37215102}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z/execution_cost_assumptions.csv", "sha256": "sha256:63d90fa5ee48a2f057f30f519f934f997510511a64887d6fd83835e4fbf11b02", "bytes": 273}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:4d031622ee26c40ca8693723ee9ea1ee16ba810916cb915ae9d6a65d1b1614bb", "computed_manifest_hash": "sha256:0c39107f57cd33234ab9b3a16dff781c8afff3d23146dd34232883845bedc9ce", "released_manifest_self_hash": "sha256:8cd75e60e249e96f7428f54a28576f096f6ed108a6accc67173abc3b4ef728f7"}, {"dataset_id": "local_history_tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z", "provider": "marketworld", "status": "approved_local_history", "label": "Local fixed-window history: tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z", "description": "Local backtest dataset converted from the offline fixed-window history downloader.", "venue_package": "LOCAL_HISTORY", "venue_capability": "single_or_multi_instrument_history", "source_policy_id": "marketworld_offline_fixed_window_history_v1", "venue_policy_id": "marketworld_local_history_download_v1", "coverage_policy": "Converted from a completed local history download manifest.", "anti_lookahead_policy": "Rows are fixed-window historical bars; strategy sees previous closed step and fills on the current step.", "input_history_download": {"job_id": "tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z", "manifest_path": "E:\\Playground\\cross_market_graph\\output\\offline_history_downloads\\tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z\\manifest.json", "manifest_sha256": "sha256:506bb6e66552ffc4e0f39921543553af7a9e6284a277b0d6558ff35710b3e56e"}, "instrument_sources": {"TQSDK_SSE_600035": {"execution_venue": "SSE", "data_provider": "tqsdk", "venue_symbol": "SSE.600035", "market_type": "a_share_stock", "source_role": "history_download", "dataset_source": "marketworld_offline_history_download", "live_source": "tqsdk"}}, "venue_pairs": [{"venue_pair_id": "local_history_tqsdk_15m", "scope": "local_history", "basis_type": "single_or_multi_instrument", "underlying": "mixed", "execution_venues": ["SSE"], "allow_cross_venue_basis": true, "legs": [{"role": "market", "instrument": "TQSDK_SSE_600035", "execution_venue": "SSE", "data_provider": "tqsdk", "venue_symbol": "SSE.600035"}], "notes": "Local history dataset generated by the offline workbench."}], "cost_model_id": "mw_cost_local_history_commission_only_v1", "generated_by": "scripts/offline_backtest_workbench.py", "generated_at": "2026-07-01T08:58:13+00:00", "period": {"start": "2026-03-30", "end": "2026-06-26", "timezone": "mixed_source_timezones"}, "granularity": ["15m"], "instruments": ["TQSDK_SSE_600035"], "sources": ["tqsdk"], "rows": 960, "cost_model_hash": "sha256:fe3048f89850b12f71320b4df7a83fac2f9c17a162d445b83edea840f6e579c0", "data_fingerprint": "sha256:5b76791d9df67cdca8524eca70a4b26cee9842333d0df98e29e1fd61c3610ca3", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/local_history_tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z/market_data_sessionized.csv", "sha256": "sha256:5b76791d9df67cdca8524eca70a4b26cee9842333d0df98e29e1fd61c3610ca3", "bytes": 211176}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/local_history_tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z/execution_cost_assumptions.csv", "sha256": "sha256:fe3048f89850b12f71320b4df7a83fac2f9c17a162d445b83edea840f6e579c0", "bytes": 274}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:87d9f2f8bc0db68890255b0a2df7d3aa58865d3ca4e13dc20fb58ecb8ab30ebb", "computed_manifest_hash": "sha256:643aea265461f3b19389e66d1a8eb549f2440368009939dc3ff5467e8f90f3cb", "released_manifest_self_hash": "sha256:6f5790cf921d0a5287264d9214a4ca0832708b9f6308e8c65d986bea63487d10"}, {"dataset_id": "mw_binanceus_btc_spot_daily_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld Binance.US BTC spot daily v1", "description": "Binance.US public daily klines for BTCUSDT spot. No same-venue perpetual leg is published in this package.", "venue_package": "BINANCE_US", "venue_capability": "spot_only", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。", "anti_lookahead_policy": "数据包按 UTC daily close 固化；回测不得读取当前 bar 之后的数据或未收盘日线。", "instrument_sources": {"BINANCEUS_SPOT_BTC": {"execution_venue": "BINANCE_US", "data_provider": "binance_us_spot", "venue_symbol": "BTCUSDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "binanceus_spot_public_klines", "live_source": "Binance.US public klines"}}, "venue_pairs": [{"venue_pair_id": "binanceus_btc_spot_only", "scope": "spot_only", "basis_type": "spot_reference", "underlying": "BTC", "execution_venues": ["BINANCE_US"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "BINANCEUS_SPOT_BTC", "execution_venue": "BINANCE_US", "data_provider": "binance_us_spot", "venue_symbol": "BTCUSDT"}], "notes": "Spot-only venue package. Binance.US spot is not a same-venue perpetual package."}], "cost_model_id": "mw_cost_binanceus_btc_spot_v1", "source_references": ["https://docs.binance.us/#kline-candlestick-data"], "generated_by": "scripts/generate_crypto_venue_backtest_packages.py", "generated_at": "2026-06-27T05:26:08+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["BINANCEUS_SPOT_BTC"], "sources": ["binanceus_spot_public_klines"], "rows": 90, "cost_model_hash": "sha256:c814f225c3830bafb22cd9063d2ed69ce4bce71b4ba0666b1820cbc2127a580b", "data_fingerprint": "sha256:13bb3a0da4f422700146246d3d543c2ddeb02690f67929b8ead8eb87776f116a", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_binanceus_btc_spot_daily_v1/market_data_sessionized.csv", "sha256": "sha256:13bb3a0da4f422700146246d3d543c2ddeb02690f67929b8ead8eb87776f116a", "bytes": 23674, "download_url": "external-strategies/backtest-datasets/mw_binanceus_btc_spot_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_binanceus_btc_spot_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_binanceus_btc_spot_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:c814f225c3830bafb22cd9063d2ed69ce4bce71b4ba0666b1820cbc2127a580b", "bytes": 232, "download_url": "external-strategies/backtest-datasets/mw_binanceus_btc_spot_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_binanceus_btc_spot_daily_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:784d8a42c2311f7dee1dc6cd23bb88babee6c8210a3ac56c57ef7af07ebed8ee", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:784d8a42c2311f7dee1dc6cd23bb88babee6c8210a3ac56c57ef7af07ebed8ee", "manifest_url": "external-strategies/backtest-datasets/mw_binanceus_btc_spot_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_binanceus_btc_spot_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:86f2f01dbe35a70572ad3b718e1eadf4a9a33bffa1cd3f409b96b39dcaa5e9a0"}, {"dataset_id": "mw_coinbase_btc_spot_daily_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld Coinbase BTC spot daily v1", "description": "Coinbase Exchange public daily candles for BTC-USD spot. No same-venue perpetual leg is published in this package.", "venue_package": "COINBASE", "venue_capability": "spot_only", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。", "anti_lookahead_policy": "数据包按 UTC daily close 固化；回测不得读取当前 bar 之后的数据或未收盘日线。", "instrument_sources": {"COINBASE_SPOT_BTC": {"execution_venue": "COINBASE", "data_provider": "coinbase_exchange", "venue_symbol": "BTC-USD", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "coinbase_exchange_public_rest", "live_source": "Coinbase Exchange public candles"}}, "venue_pairs": [{"venue_pair_id": "coinbase_btc_spot_only", "scope": "spot_only", "basis_type": "spot_reference", "underlying": "BTC", "execution_venues": ["COINBASE"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "COINBASE_SPOT_BTC", "execution_venue": "COINBASE", "data_provider": "coinbase_exchange", "venue_symbol": "BTC-USD"}], "notes": "Spot-only venue package. Do not use it to claim same-venue spot/perp carry."}], "cost_model_id": "mw_cost_coinbase_btc_spot_v1", "source_references": ["https://docs.cdp.coinbase.com/exchange/reference/exchangerestapi_getproductcandles"], "generated_by": "scripts/generate_crypto_venue_backtest_packages.py", "generated_at": "2026-06-27T05:26:30+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["COINBASE_SPOT_BTC"], "sources": ["coinbase_exchange_public_rest"], "rows": 90, "cost_model_hash": "sha256:05d4bd06c545107747a63f6c6fa369ddf26b805c1c2e7abc0c7afc9170562b21", "data_fingerprint": "sha256:64c75d3ff4745e105540d183ce3960591e992f05c04b6d0303c84debef109298", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_coinbase_btc_spot_daily_v1/market_data_sessionized.csv", "sha256": "sha256:64c75d3ff4745e105540d183ce3960591e992f05c04b6d0303c84debef109298", "bytes": 24389, "download_url": "external-strategies/backtest-datasets/mw_coinbase_btc_spot_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_coinbase_btc_spot_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_coinbase_btc_spot_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:05d4bd06c545107747a63f6c6fa369ddf26b805c1c2e7abc0c7afc9170562b21", "bytes": 230, "download_url": "external-strategies/backtest-datasets/mw_coinbase_btc_spot_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_coinbase_btc_spot_daily_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:5d08eea154caebd43602e8ebacaa67719c7fc5e9eaabf0ae22a158528fa726f2", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:5d08eea154caebd43602e8ebacaa67719c7fc5e9eaabf0ae22a158528fa726f2", "manifest_url": "external-strategies/backtest-datasets/mw_coinbase_btc_spot_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_coinbase_btc_spot_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:9cbdec6dcad13b8540f40412317f242263052a44699feca80e75a8904f2784d7"}, {"dataset_id": "mw_composite_aligned_2b4b6207f074", "provider": "marketworld", "status": "approved_local_composite", "label": "MarketWorld aligned multi-instrument composite", "description": "Local composite dataset generated from official MarketWorld packages with strict timestamp inner-join alignment.", "venue_package": "COMPOSITE", "venue_capability": "multi_instrument", "source_policy_id": "marketworld_official_composite_aligned_v1", "venue_policy_id": "marketworld_multi_dataset_official_only_v1", "coverage_policy": "Composite contains only timestamps where every selected official package has every required instrument.", "anti_lookahead_policy": "Each step exposes a single common timestamp across all selected instruments; strategy still sees previous closed step and fills on the next step.", "input_dataset_ids": ["local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z", "local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z"], "duplicate_instruments_collapsed": ["BINANCE_SPOT_BTC"], "instrument_sources": {"BINANCE_SPOT_BTC": {"execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT", "market_type": "crypto_spot", "source_role": "history_download", "dataset_source": "marketworld_offline_history_download", "live_source": "binance_spot"}}, "venue_pairs": [{"venue_pair_id": "local_history_binance_spot_1d", "scope": "local_history", "basis_type": "single_or_multi_instrument", "underlying": "mixed", "execution_venues": ["BINANCE"], "allow_cross_venue_basis": true, "legs": [{"role": "market", "instrument": "BINANCE_SPOT_BTC", "execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT"}], "notes": "Local history dataset generated by the offline workbench."}, {"venue_pair_id": "local_history_binance_spot_1m", "scope": "local_history", "basis_type": "single_or_multi_instrument", "underlying": "mixed", "execution_venues": ["BINANCE"], "allow_cross_venue_basis": true, "legs": [{"role": "market", "instrument": "BINANCE_SPOT_BTC", "execution_venue": "BINANCE", "data_provider": "binance_spot", "venue_symbol": "BTCUSDT"}], "notes": "Local history dataset generated by the offline workbench."}], "cost_model_id": "mw_composite_conservative_max_cost_v1", "generated_by": "scripts/offline_backtest_workbench.py", "generated_at": "2026-07-06T15:34:00+00:00", "period": {"start": "2026-03-29T00:00:00+00:00", "end": "2026-06-26T00:00:00+00:00", "timezone": "UTC"}, "granularity": ["1d", "1m"], "instruments": ["BINANCE_SPOT_BTC"], "sources": ["binance_spot"], "rows": 90, "aligned_step_count": 90, "timestamp_alignment": {"policy": "strict_inner_join_all_selected_instruments", "timezone": "UTC", "granularity": "daily", "required_legs_per_timestamp": ["BINANCE_SPOT_BTC"], "input_dataset_ids": ["local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z", "local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z"], "aligned_step_count": 90, "dropped_step_count_by_dataset": {"local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z": 0, "local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z": 129510}}, "cost_model_hash": "sha256:49395ee8d98b2bb6b7e35329752826f3abaeb860b4b1a1dc626f24c7c285da91", "data_fingerprint": "sha256:f1095fe0de85c57497690ab3e98af2e62b914e5618cc617471c945e858c88d1b", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_composite_aligned_2b4b6207f074/market_data_sessionized.csv", "sha256": "sha256:f1095fe0de85c57497690ab3e98af2e62b914e5618cc617471c945e858c88d1b", "bytes": 26937}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_composite_aligned_2b4b6207f074/execution_cost_assumptions.csv", "sha256": "sha256:49395ee8d98b2bb6b7e35329752826f3abaeb860b4b1a1dc626f24c7c285da91", "bytes": 496}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:18a3a3ba8659f314f45afc08290ec1ee2134c0442700d4a479194727df18317a", "computed_manifest_hash": "sha256:8091aae89ae2d17bbbd7e8a6f8aed61ed3be7b02b0311988102f0cce0c70da58", "released_manifest_self_hash": "sha256:52ee9c4fec9c256f18a763cd0caf30351f251e8ad17c4a87df6f8106cb75bd22"}, {"dataset_id": "mw_composite_aligned_846bd6f7247d", "provider": "marketworld", "status": "approved_local_composite", "label": "MarketWorld aligned multi-instrument composite", "description": "Local composite dataset generated from official MarketWorld packages with strict timestamp inner-join alignment.", "venue_package": "COMPOSITE", "venue_capability": "multi_instrument", "source_policy_id": "marketworld_official_composite_aligned_v1", "venue_policy_id": "marketworld_multi_dataset_official_only_v1", "coverage_policy": "Composite contains only timestamps where every selected official package has every required instrument.", "anti_lookahead_policy": "Each step exposes a single common timestamp across all selected instruments; strategy still sees previous closed step and fills on the next step.", "input_dataset_ids": ["mw_kraken_spot_okx_perp_btc_daily_v1", "mw_okx_spot_kraken_perp_btc_daily_v1"], "duplicate_instruments_collapsed": [], "instrument_sources": {"KRAKEN_SPOT_BTC": {"execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "kraken_spot_public_ohlc", "live_source": "Kraken public spot OHLC"}, "OKX_PERP_BTC": {"execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "okx_public_rest_history", "live_source": "OKX public swap"}, "OKX_SPOT_BTC": {"execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "okx_public_rest_history", "live_source": "OKX public spot"}, "KRAKEN_PERP_BTC": {"execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "kraken_futures_public_charts", "live_source": "Kraken Futures public charts"}}, "venue_pairs": [{"venue_pair_id": "kraken_spot_okx_perp_btc", "scope": "cross_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["KRAKEN", "OKX"], "allow_cross_venue_basis": true, "legs": [{"role": "spot", "instrument": "KRAKEN_SPOT_BTC", "execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD"}, {"role": "perpetual_swap", "instrument": "OKX_PERP_BTC", "execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP"}], "notes": "Official cross-venue package. Transfer, borrow, and routing risk must be handled by the cost model and private review."}, {"venue_pair_id": "okx_spot_kraken_perp_btc", "scope": "cross_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["OKX", "KRAKEN_FUTURES"], "allow_cross_venue_basis": true, "legs": [{"role": "spot", "instrument": "OKX_SPOT_BTC", "execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT"}, {"role": "perpetual_swap", "instrument": "KRAKEN_PERP_BTC", "execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD"}], "notes": "Official cross-venue package. Transfer, borrow, and routing risk must be handled by the cost model and private review."}], "cost_model_id": "mw_composite_conservative_max_cost_v1", "generated_by": "scripts/offline_backtest_workbench.py", "generated_at": "2026-07-06T16:10:31+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["KRAKEN_SPOT_BTC", "OKX_PERP_BTC", "KRAKEN_PERP_BTC", "OKX_SPOT_BTC"], "sources": ["kraken_spot_public_ohlc", "okx_public_rest_history", "kraken_futures_public_charts"], "rows": 360, "aligned_step_count": 90, "timestamp_alignment": {"policy": "strict_inner_join_all_selected_instruments", "timezone": "UTC", "granularity": "daily", "required_legs_per_timestamp": ["KRAKEN_SPOT_BTC", "OKX_PERP_BTC", "KRAKEN_PERP_BTC", "OKX_SPOT_BTC"], "input_dataset_ids": ["mw_kraken_spot_okx_perp_btc_daily_v1", "mw_okx_spot_kraken_perp_btc_daily_v1"], "aligned_step_count": 90, "dropped_step_count_by_dataset": {"mw_kraken_spot_okx_perp_btc_daily_v1": 0, "mw_okx_spot_kraken_perp_btc_daily_v1": 0}}, "cost_model_hash": "sha256:f77e0fb687a1dc63a882b00dbc272e1fe7d34c29b8dc99989a04836348473abb", "data_fingerprint": "sha256:25af50c3ed76387745abba36ad03e9cb9475217dd3b406b9d3c75f1e3de14740", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_composite_aligned_846bd6f7247d/market_data_sessionized.csv", "sha256": "sha256:25af50c3ed76387745abba36ad03e9cb9475217dd3b406b9d3c75f1e3de14740", "bytes": 90176}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_composite_aligned_846bd6f7247d/execution_cost_assumptions.csv", "sha256": "sha256:f77e0fb687a1dc63a882b00dbc272e1fe7d34c29b8dc99989a04836348473abb", "bytes": 581}], "manifest_release_status": "released", "manifest_matches_files": true, "manifest_hash": "sha256:2cade9c2a61838c52cf7238e6e9712eeb85cc8f85156aaaa275697f88052146a", "computed_manifest_hash": "sha256:5c19cdc1da9fd4bc58c66d834b3e37af208134600a03b8c53c4530067a6320d1", "released_manifest_self_hash": "sha256:2cade9c2a61838c52cf7238e6e9712eeb85cc8f85156aaaa275697f88052146a"}, {"dataset_id": "mw_composite_aligned_937d927bc281", "provider": "marketworld", "status": "approved_local_composite", "label": "MarketWorld aligned multi-instrument composite", "description": "Local composite dataset generated from official MarketWorld packages with strict timestamp inner-join alignment.", "venue_package": "COMPOSITE", "venue_capability": "multi_instrument", "source_policy_id": "marketworld_official_composite_aligned_v1", "venue_policy_id": "marketworld_multi_dataset_official_only_v1", "coverage_policy": "Composite contains only timestamps where every selected official package has every required instrument.", "anti_lookahead_policy": "Each step exposes a single common timestamp across all selected instruments; strategy still sees previous closed step and fills on the next step.", "input_dataset_ids": ["mw_kraken_btc_spot_perp_daily_v1", "mw_binanceus_btc_spot_daily_v1"], "duplicate_instruments_collapsed": [], "instrument_sources": {"KRAKEN_SPOT_BTC": {"execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "kraken_spot_public_ohlc", "live_source": "Kraken public spot OHLC"}, "KRAKEN_PERP_BTC": {"execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "kraken_futures_public_charts", "live_source": "Kraken Futures public charts"}, "BINANCEUS_SPOT_BTC": {"execution_venue": "BINANCE_US", "data_provider": "binance_us_spot", "venue_symbol": "BTCUSDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "binanceus_spot_public_klines", "live_source": "Binance.US public klines"}}, "venue_pairs": [{"venue_pair_id": "kraken_btc_spot_perp", "scope": "same_brand", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["KRAKEN", "KRAKEN_FUTURES"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "KRAKEN_SPOT_BTC", "execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD"}, {"role": "perpetual_swap", "instrument": "KRAKEN_PERP_BTC", "execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD"}], "notes": "Same brand, separate spot and futures venues. Cost model includes additional routing/slippage reserve."}, {"venue_pair_id": "binanceus_btc_spot_only", "scope": "spot_only", "basis_type": "spot_reference", "underlying": "BTC", "execution_venues": ["BINANCE_US"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "BINANCEUS_SPOT_BTC", "execution_venue": "BINANCE_US", "data_provider": "binance_us_spot", "venue_symbol": "BTCUSDT"}], "notes": "Spot-only venue package. Binance.US spot is not a same-venue perpetual package."}], "cost_model_id": "mw_composite_conservative_max_cost_v1", "generated_by": "scripts/offline_backtest_workbench.py", "generated_at": "2026-07-06T03:51:22+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["KRAKEN_PERP_BTC", "KRAKEN_SPOT_BTC", "BINANCEUS_SPOT_BTC"], "sources": ["kraken_futures_public_charts", "kraken_spot_public_ohlc", "binanceus_spot_public_klines"], "rows": 270, "aligned_step_count": 90, "timestamp_alignment": {"policy": "strict_inner_join_all_selected_instruments", "timezone": "UTC", "granularity": "daily", "required_legs_per_timestamp": ["KRAKEN_PERP_BTC", "KRAKEN_SPOT_BTC", "BINANCEUS_SPOT_BTC"], "input_dataset_ids": ["mw_kraken_btc_spot_perp_daily_v1", "mw_binanceus_btc_spot_daily_v1"], "aligned_step_count": 90, "dropped_step_count_by_dataset": {"mw_kraken_btc_spot_perp_daily_v1": 0, "mw_binanceus_btc_spot_daily_v1": 0}}, "cost_model_hash": "sha256:c2e6cf4a1f2ee84edfbbdd2845492bdc02385751b54fd6be46a637d65529ab72", "data_fingerprint": "sha256:4e9853f845dffaa1d1df23f72964cc24b57d6c1507fe9b38b9b122620579af8b", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_composite_aligned_937d927bc281/market_data_sessionized.csv", "sha256": "sha256:4e9853f845dffaa1d1df23f72964cc24b57d6c1507fe9b38b9b122620579af8b", "bytes": 68572}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_composite_aligned_937d927bc281/execution_cost_assumptions.csv", "sha256": "sha256:c2e6cf4a1f2ee84edfbbdd2845492bdc02385751b54fd6be46a637d65529ab72", "bytes": 474}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:5d4aa06d59bc2fafc1e8c9060986a5967dd3be609a40767cef6d043883876e48", "computed_manifest_hash": "sha256:7063f28680f711914850309517ba29f5f82d95c77d439e47980ddceaaede34b1", "released_manifest_self_hash": "sha256:d3b46a27dfe57b97a7109dba43ae9e6c950ecb6c1b6b4bfaaa334fb47df4cadd"}, {"dataset_id": "mw_kraken_btc_spot_perp_daily_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld Kraken BTC spot/futures daily v1", "description": "Kraken spot public OHLC and Kraken Futures BTC perpetual public daily chart data.", "venue_package": "KRAKEN", "venue_capability": "spot_perp_same_brand", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。", "anti_lookahead_policy": "数据包按 UTC daily close 固化；回测不得读取当前 bar 之后的数据或未收盘日线。", "instrument_sources": {"KRAKEN_SPOT_BTC": {"execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "kraken_spot_public_ohlc", "live_source": "Kraken public spot OHLC"}, "KRAKEN_PERP_BTC": {"execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "kraken_futures_public_charts", "live_source": "Kraken Futures public charts"}}, "venue_pairs": [{"venue_pair_id": "kraken_btc_spot_perp", "scope": "same_brand", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["KRAKEN", "KRAKEN_FUTURES"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "KRAKEN_SPOT_BTC", "execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD"}, {"role": "perpetual_swap", "instrument": "KRAKEN_PERP_BTC", "execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD"}], "notes": "Same brand, separate spot and futures venues. Cost model includes additional routing/slippage reserve."}], "cost_model_id": "mw_cost_kraken_btc_spot_perp_v1", "source_references": ["https://docs.kraken.com/api/docs/rest-api/get-ohlc-data/", "https://docs.kraken.com/api/docs/futures-api/trading/charts/"], "generated_by": "scripts/generate_crypto_venue_backtest_packages.py", "generated_at": "2026-06-27T05:29:33+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["KRAKEN_PERP_BTC", "KRAKEN_SPOT_BTC"], "sources": ["kraken_futures_public_charts", "kraken_spot_public_ohlc"], "rows": 180, "cost_model_hash": "sha256:86c3f00b2ed5de980fc500ae52e341a4afcc63c72503c025f736825c87c1ee78", "data_fingerprint": "sha256:bd718453793961f3b52f46c07f4256e8ff42439febcc3f79e0fe3c018b108181", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_kraken_btc_spot_perp_daily_v1/market_data_sessionized.csv", "sha256": "sha256:bd718453793961f3b52f46c07f4256e8ff42439febcc3f79e0fe3c018b108181", "bytes": 45270, "download_url": "external-strategies/backtest-datasets/mw_kraken_btc_spot_perp_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_kraken_btc_spot_perp_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_kraken_btc_spot_perp_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:86c3f00b2ed5de980fc500ae52e341a4afcc63c72503c025f736825c87c1ee78", "bytes": 321, "download_url": "external-strategies/backtest-datasets/mw_kraken_btc_spot_perp_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_kraken_btc_spot_perp_daily_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:8ba4fd9adbb82cac7e0fb869d381135098b1b112d23030f0094b1dffa27d3e2d", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:8ba4fd9adbb82cac7e0fb869d381135098b1b112d23030f0094b1dffa27d3e2d", "manifest_url": "external-strategies/backtest-datasets/mw_kraken_btc_spot_perp_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_kraken_btc_spot_perp_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:255b8af98e4a4dbe86be1d985a375ffa4af3d3d006b7a8bf9fd39b3b566e8fe6"}, {"dataset_id": "mw_kraken_spot_okx_perp_btc_daily_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld Kraken spot / OKX perp BTC daily v1", "description": "Cross-venue BTC basis package using Kraken XBTUSD spot and OKX BTC-USDT-SWAP perpetual daily bars.", "venue_package": "KRAKEN_OKX", "venue_capability": "cross_venue_spot_perp", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。跨场所策略必须使用 MarketWorld 单独发布的 cross_venue 数据包。", "anti_lookahead_policy": "数据包按 UTC daily close 固化；回测不得读取当前 bar 之后的数据或未收盘日线。", "timestamp_alignment": {"policy_id": "marketworld_cross_venue_utc_daily_close_v1", "alignment_key": "timestamp", "timezone": "UTC", "granularity": "daily", "bar_close": "00:00:00+00:00", "method": "inner_join_on_common_closed_daily_timestamps", "required_legs_per_timestamp": ["KRAKEN_SPOT_BTC", "OKX_PERP_BTC"], "max_allowed_lag_seconds": 0, "missing_leg_policy": "reject_dataset", "notes": "Cross-venue packages are aligned on common closed UTC daily timestamps before release. Intraday/tick arbitrage requires a separate intraday/tick package."}, "instrument_sources": {"KRAKEN_SPOT_BTC": {"execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "kraken_spot_public_ohlc", "live_source": "Kraken public spot OHLC"}, "OKX_PERP_BTC": {"execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "okx_public_rest_history", "live_source": "OKX public swap"}}, "venue_pairs": [{"venue_pair_id": "kraken_spot_okx_perp_btc", "scope": "cross_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["KRAKEN", "OKX"], "allow_cross_venue_basis": true, "legs": [{"role": "spot", "instrument": "KRAKEN_SPOT_BTC", "execution_venue": "KRAKEN", "data_provider": "kraken_spot", "venue_symbol": "XBTUSD"}, {"role": "perpetual_swap", "instrument": "OKX_PERP_BTC", "execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP"}], "notes": "Official cross-venue package. Transfer, borrow, and routing risk must be handled by the cost model and private review."}], "cost_model_id": "mw_cost_kraken_spot_okx_perp_btc_v1", "source_references": ["https://docs.kraken.com/api/docs/rest-api/get-ohlc-data/", "https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-candlesticks-history"], "generated_by": "scripts/generate_cross_venue_backtest_packages.py", "generated_at": "2026-06-29T04:42:12+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["KRAKEN_SPOT_BTC", "OKX_PERP_BTC"], "sources": ["kraken_spot_public_ohlc", "okx_public_rest_history"], "rows": 180, "cost_model_hash": "sha256:2c801015e7b98eaf97611f9ca7273be124708004ad690ed3aec68c8ce53f4c5b", "data_fingerprint": "sha256:270bed2b896e7c82db7cdd070d6bcfb9f59735d7b2e5e2eb3e3b58033ea1d233", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_kraken_spot_okx_perp_btc_daily_v1/market_data_sessionized.csv", "sha256": "sha256:270bed2b896e7c82db7cdd070d6bcfb9f59735d7b2e5e2eb3e3b58033ea1d233", "bytes": 45484, "download_url": "external-strategies/backtest-datasets/mw_kraken_spot_okx_perp_btc_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_kraken_spot_okx_perp_btc_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_kraken_spot_okx_perp_btc_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:2c801015e7b98eaf97611f9ca7273be124708004ad690ed3aec68c8ce53f4c5b", "bytes": 316, "download_url": "external-strategies/backtest-datasets/mw_kraken_spot_okx_perp_btc_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_kraken_spot_okx_perp_btc_daily_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:c8b68fd7a76d852631330a244798344fdd60c69e3d3506ef9a352519c32f8303", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:c8b68fd7a76d852631330a244798344fdd60c69e3d3506ef9a352519c32f8303", "manifest_url": "external-strategies/backtest-datasets/mw_kraken_spot_okx_perp_btc_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_kraken_spot_okx_perp_btc_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:e6ad2fce4f1aa9fbf33c2083ef73db7e755081e8e751c4dc2fe515e070ce90a2"}, {"dataset_id": "mw_okx_btc_spot_perp_daily_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld OKX BTC spot/perp daily v1", "description": "OKX public REST daily candles for BTC-USDT spot and BTC-USDT-SWAP perpetual swap.", "venue_package": "OKX", "venue_capability": "spot_perp", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。", "anti_lookahead_policy": "数据包按 UTC daily close 固化；回测不得读取当前 bar 之后的数据或未收盘日线。", "instrument_sources": {"SPOT_BTC": {"execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "okx_public_rest_history", "live_source": "OKX public spot"}, "PERP_BTC": {"execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "okx_public_rest_history", "live_source": "OKX public swap"}}, "venue_pairs": [{"venue_pair_id": "okx_btc_spot_perp", "scope": "same_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["OKX"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "SPOT_BTC", "execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT"}, {"role": "perpetual_swap", "instrument": "PERP_BTC", "execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP"}], "notes": "Same OKX venue family. Cross-exchange basis must use a separate official dataset and venue_pair_id."}], "cost_model_id": "mw_cost_okx_btc_spot_perp_v1", "source_references": ["https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-candlesticks-history"], "generated_by": "scripts/generate_crypto_venue_backtest_packages.py", "generated_at": "2026-06-27T05:27:39+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["PERP_BTC", "SPOT_BTC"], "sources": ["okx_public_rest_history"], "rows": 180, "cost_model_hash": "sha256:3e1965e39747bd707e39a7a8bb259257d4816e5c9d1684a96588786d52b20a32", "data_fingerprint": "sha256:6b3c694c1113d67af7d6264f1476acb43a0db7451759bf1b583f276b93a6f530", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_daily_v1/market_data_sessionized.csv", "sha256": "sha256:6b3c694c1113d67af7d6264f1476acb43a0db7451759bf1b583f276b93a6f530", "bytes": 44558, "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:3e1965e39747bd707e39a7a8bb259257d4816e5c9d1684a96588786d52b20a32", "bytes": 315, "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_daily_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:00c026502384cc22ca40c87ea854bc182ff0c978bf6888619415a1139ac1e644", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:00c026502384cc22ca40c87ea854bc182ff0c978bf6888619415a1139ac1e644", "manifest_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:b4bb61531edfff3e79c8005b5e9133f7e2262a60ac982c364604f5565d1a92e6"}, {"provider": "marketworld", "status": "approved", "venue_package": "OKX", "venue_capability": "spot_perp", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。", "instrument_sources": {"SPOT_BTC": {"execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "okx_public_rest_history", "live_source": "OKX public spot"}, "PERP_BTC": {"execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "okx_public_rest_history", "live_source": "OKX public swap"}}, "venue_pairs": [{"venue_pair_id": "okx_btc_spot_perp", "scope": "same_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["OKX"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "SPOT_BTC", "execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT"}, {"role": "perpetual_swap", "instrument": "PERP_BTC", "execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP"}], "notes": "Same OKX venue family. Cross-exchange basis must use a separate official dataset and venue_pair_id."}], "cost_model_id": "mw_cost_okx_btc_spot_perp_v1", "source_references": ["https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-candlesticks-history"], "dataset_id": "mw_okx_btc_spot_perp_news_daily_v1", "label": "MarketWorld OKX BTC spot/perp daily + official news events v1", "description": "OKX BTC spot/perp official daily data with a content-only news event stream. Events expose earliest available time and text only; no affected symbols or impact labels are included.", "event_source_policy_id": "marketworld_official_news_earliest_event_v1", "news_event_policy": {"schema": "MarketWorldNewsEventPolicyV1", "content_only": true, "no_effect_labels": true, "fixed_public_window": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "time_field_used_for_backtest": "available_time", "same_event_selection_rule": "group by canonical_event_id or content fingerprint, keep the earliest available_time, and reject release files containing impact/symbol/direction labels", "forbidden_fields": ["affected_instrument", "affected_instruments", "affected_symbol", "affected_symbols", "asset", "assets", "direction", "expected_return", "impact", "impact_score", "instrument", "instrument_id", "instruments", "label", "price_direction", "sentiment", "sentiment_score", "side", "signal", "symbol", "symbols", "ticker", "tickers", "trade_direction"]}, "anti_lookahead_policy": "数据包按 timestamp/source_session 固化；回测不得读取当前 bar 之后的数据。", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["PERP_BTC", "SPOT_BTC"], "sources": ["okx_public_rest_history"], "rows": 180, "cost_model_hash": "sha256:3e1965e39747bd707e39a7a8bb259257d4816e5c9d1684a96588786d52b20a32", "data_fingerprint": "sha256:6b3c694c1113d67af7d6264f1476acb43a0db7451759bf1b583f276b93a6f530", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_news_daily_v1/market_data_sessionized.csv", "sha256": "sha256:6b3c694c1113d67af7d6264f1476acb43a0db7451759bf1b583f276b93a6f530", "bytes": 44558, "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_news_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:3e1965e39747bd707e39a7a8bb259257d4816e5c9d1684a96588786d52b20a32", "bytes": 315, "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/execution_cost_assumptions.csv"}, {"role": "news_events", "name": "news_events_sessionized.csv", "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_news_daily_v1/news_events_sessionized.csv", "sha256": "sha256:4ec82ee10fc9fb1441d800affe2cd4685e3733ba5c6ca4af468b83db231c24c4", "bytes": 4558, "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/news_events_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/news_events_sessionized.csv"}], "event_data_fingerprint": "sha256:4ec82ee10fc9fb1441d800affe2cd4685e3733ba5c6ca4af468b83db231c24c4", "event_rows": 8, "event_sources": ["CoinDesk", "Cointelegraph"], "event_period": {"start": "2026-04-01T10:09:00+00:00", "end": "2026-06-26T00:00:00+00:00", "timezone": "UTC"}, "manifest_hash": "sha256:62e3239aede40f6b9f4ea28b979330998eda19c465c051634193c3ee01f49f68", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:62e3239aede40f6b9f4ea28b979330998eda19c465c051634193c3ee01f49f68", "manifest_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:4f481a13c03eaf8b57299c27cb3cbfca4f828b3148d2e18a38ab84fc4a2d1361"}, {"dataset_id": "mw_okx_spot_kraken_perp_btc_daily_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld OKX spot / Kraken perp BTC daily v1", "description": "Cross-venue BTC basis package using OKX BTC-USDT spot and Kraken Futures PF_XBTUSD perpetual daily bars.", "venue_package": "OKX_KRAKEN", "venue_capability": "cross_venue_spot_perp", "source_policy_id": "marketworld_public_rest_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。跨场所策略必须使用 MarketWorld 单独发布的 cross_venue 数据包。", "anti_lookahead_policy": "数据包按 UTC daily close 固化；回测不得读取当前 bar 之后的数据或未收盘日线。", "timestamp_alignment": {"policy_id": "marketworld_cross_venue_utc_daily_close_v1", "alignment_key": "timestamp", "timezone": "UTC", "granularity": "daily", "bar_close": "00:00:00+00:00", "method": "inner_join_on_common_closed_daily_timestamps", "required_legs_per_timestamp": ["OKX_SPOT_BTC", "KRAKEN_PERP_BTC"], "max_allowed_lag_seconds": 0, "missing_leg_policy": "reject_dataset", "notes": "Cross-venue packages are aligned on common closed UTC daily timestamps before release. Intraday/tick arbitrage requires a separate intraday/tick package."}, "instrument_sources": {"OKX_SPOT_BTC": {"execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "okx_public_rest_history", "live_source": "OKX public spot"}, "KRAKEN_PERP_BTC": {"execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "kraken_futures_public_charts", "live_source": "Kraken Futures public charts"}}, "venue_pairs": [{"venue_pair_id": "okx_spot_kraken_perp_btc", "scope": "cross_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["OKX", "KRAKEN_FUTURES"], "allow_cross_venue_basis": true, "legs": [{"role": "spot", "instrument": "OKX_SPOT_BTC", "execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT"}, {"role": "perpetual_swap", "instrument": "KRAKEN_PERP_BTC", "execution_venue": "KRAKEN_FUTURES", "data_provider": "kraken_futures", "venue_symbol": "PF_XBTUSD"}], "notes": "Official cross-venue package. Transfer, borrow, and routing risk must be handled by the cost model and private review."}], "cost_model_id": "mw_cost_okx_spot_kraken_perp_btc_v1", "source_references": ["https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-candlesticks-history", "https://docs.kraken.com/api/docs/futures-api/trading/charts/"], "generated_by": "scripts/generate_cross_venue_backtest_packages.py", "generated_at": "2026-06-29T04:42:12+00:00", "period": {"start": "2026-03-29", "end": "2026-06-26", "timezone": "UTC"}, "granularity": ["daily"], "instruments": ["KRAKEN_PERP_BTC", "OKX_SPOT_BTC"], "sources": ["kraken_futures_public_charts", "okx_public_rest_history"], "rows": 180, "cost_model_hash": "sha256:8e812f64792119632c5e16b689d2feee5ae4551079f121bdfbd18e398796e1e0", "data_fingerprint": "sha256:d14eb23bfb933a2bc34035545955c3123463588d20d9209efbdd1eb936a14e34", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_okx_spot_kraken_perp_btc_daily_v1/market_data_sessionized.csv", "sha256": "sha256:d14eb23bfb933a2bc34035545955c3123463588d20d9209efbdd1eb936a14e34", "bytes": 45064, "download_url": "external-strategies/backtest-datasets/mw_okx_spot_kraken_perp_btc_daily_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_spot_kraken_perp_btc_daily_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_okx_spot_kraken_perp_btc_daily_v1/execution_cost_assumptions.csv", "sha256": "sha256:8e812f64792119632c5e16b689d2feee5ae4551079f121bdfbd18e398796e1e0", "bytes": 325, "download_url": "external-strategies/backtest-datasets/mw_okx_spot_kraken_perp_btc_daily_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_okx_spot_kraken_perp_btc_daily_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:25cf45404abf96b36753325c819063159395cc79f0b111ecb93e2554c64810e9", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:25cf45404abf96b36753325c819063159395cc79f0b111ecb93e2554c64810e9", "manifest_url": "external-strategies/backtest-datasets/mw_okx_spot_kraken_perp_btc_daily_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_okx_spot_kraken_perp_btc_daily_v1/manifest.json", "released_manifest_self_hash": "sha256:0ffb8645f4e5d9092a87a6facf7112d919b2081d17675e1e751ed114fb7e6ebf"}, {"anti_lookahead_policy": "Rows are fixed-window historical bars; strategy sees previous closed step and fills on the current step.", "computed_manifest_hash": "sha256:dda862f82ea5356d82dd0b3690767f2e243ebf34c9ccb2ffa2621da38941289f", "cost_model_hash": "sha256:8d234eb85e0a189c4a9c876b680006edd87e0267f1cc321ffa39b475b06b8241", "cost_model_id": "mw_cost_terminal_strategy_commission_2_bps_v1", "coverage_policy": "Converted from a completed local history download manifest.", "data_fingerprint": "sha256:332922f964605611dfd4af1f65c7e14ace6441335f69c48d351700d495b4ef75", "dataset_id": "mw_ppo_etf_walk_forward_tqsdk_daily_source_cost_2bps_v1", "derived_from_dataset_id": "mw_ppo_etf_walk_forward_tqsdk_daily_v1", "description": "Terminal-downloaded fixed-window history with an explicit strategy cost alignment of 2 bps per ETF filled side.", "files": [{"bytes": 564186, "name": "market_data_sessionized.csv", "path": "market_data_sessionized.csv", "role": "market_data", "sha256": "sha256:332922f964605611dfd4af1f65c7e14ace6441335f69c48d351700d495b4ef75"}, {"bytes": 369, "name": "execution_cost_assumptions.csv", "path": "execution_cost_assumptions.csv", "role": "cost_model", "sha256": "sha256:8d234eb85e0a189c4a9c876b680006edd87e0267f1cc321ffa39b475b06b8241"}], "generated_at": "2026-08-26T03:42:33+00:00", "generated_by": "scripts/offline_backtest_workbench.py", "granularity": ["1d"], "input_history_download": {"job_id": "ppo_etf_walk_forward_tqsdk_20240801", "manifest_path": "output\\offline_history_downloads\\ppo_etf_walk_forward_tqsdk_20240801\\manifest.json", "manifest_sha256": "sha256:efe9b935f836f0d361222fe98f606f83fa732d6c26bce118aa9e48e3252640a5"}, "instrument_sources": {"ETF_SSE_513500": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SSE.513500"}, "ETF_SSE_518880": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SSE.518880"}, "ETF_SZSE_159915": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SZSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SZSE.159915"}, "ETF_SZSE_159985": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SZSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SZSE.159985"}, "IDX_CSI300": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SSE", "live_source": "tqsdk", "market_type": "index", "source_role": "history_download", "venue_symbol": "SSE.000300"}}, "instruments": ["ETF_SSE_518880", "ETF_SZSE_159915", "ETF_SSE_513500", "ETF_SZSE_159985", "IDX_CSI300"], "label": "Local fixed-window history: ppo_etf_walk_forward_tqsdk_20240801 (PPO 2 bps)", "manifest_hash": "sha256:dda862f82ea5356d82dd0b3690767f2e243ebf34c9ccb2ffa2621da38941289f", "manifest_matches_files": true, "manifest_release_status": "released", "period": {"end": "2026-08-26", "start": "2024-08-02", "timezone": "mixed_source_timezones"}, "provider": "marketworld", "rows": 2505, "source_policy_id": "marketworld_offline_fixed_window_history_v1", "sources": ["tqsdk"], "status": "approved_local_history", "venue_capability": "single_or_multi_instrument_history", "venue_package": "LOCAL_HISTORY", "venue_pairs": [{"allow_cross_venue_basis": true, "basis_type": "single_or_multi_instrument", "execution_venues": ["SSE", "SZSE"], "legs": [{"data_provider": "tqsdk", "execution_venue": "SSE", "instrument": "ETF_SSE_518880", "role": "market", "venue_symbol": "SSE.518880"}, {"data_provider": "tqsdk", "execution_venue": "SZSE", "instrument": "ETF_SZSE_159915", "role": "market", "venue_symbol": "SZSE.159915"}, {"data_provider": "tqsdk", "execution_venue": "SSE", "instrument": "ETF_SSE_513500", "role": "market", "venue_symbol": "SSE.513500"}, {"data_provider": "tqsdk", "execution_venue": "SZSE", "instrument": "ETF_SZSE_159985", "role": "market", "venue_symbol": "SZSE.159985"}, {"data_provider": "tqsdk", "execution_venue": "SSE", "instrument": "IDX_CSI300", "role": "market", "venue_symbol": "SSE.000300"}], "notes": "Local history dataset generated by the offline workbench.", "scope": "local_history", "underlying": "mixed", "venue_pair_id": "local_history_tqsdk_1d"}], "venue_policy_id": "marketworld_local_history_download_v1", "workspace_id": "", "terminal_registration": {"schema": "MarketWorldTerminalDatasetRegistrationV1", "registered_at": "2026-08-31T08:53:46.218808+00:00", "registered_by": "zero"}}, {"anti_lookahead_policy": "Rows are fixed-window historical bars; strategy sees previous closed step and fills on the current step.", "computed_manifest_hash": "sha256:38d4240f75777334ae9dd1ca71b8b0c2b41a68ea44e72cf7e78f161217146884", "cost_model_hash": "sha256:33dd3d97adaeb9508849ce3491a39a6889fc66fe8490582489eed19fe62aba14", "cost_model_id": "mw_cost_local_history_commission_only_v1", "coverage_policy": "Converted from a completed local history download manifest.", "data_fingerprint": "sha256:332922f964605611dfd4af1f65c7e14ace6441335f69c48d351700d495b4ef75", "dataset_id": "mw_ppo_etf_walk_forward_tqsdk_daily_v1", "description": "Local backtest dataset converted from the offline fixed-window history downloader.", "files": [{"bytes": 564186, "name": "market_data_sessionized.csv", "path": "market_data_sessionized.csv", "role": "market_data", "sha256": "sha256:332922f964605611dfd4af1f65c7e14ace6441335f69c48d351700d495b4ef75"}, {"bytes": 387, "name": "execution_cost_assumptions.csv", "path": "execution_cost_assumptions.csv", "role": "cost_model", "sha256": "sha256:33dd3d97adaeb9508849ce3491a39a6889fc66fe8490582489eed19fe62aba14"}], "generated_at": "2026-08-26T03:42:33+00:00", "generated_by": "scripts/offline_backtest_workbench.py", "granularity": ["1d"], "input_history_download": {"job_id": "ppo_etf_walk_forward_tqsdk_20240801", "manifest_path": "output\\offline_history_downloads\\ppo_etf_walk_forward_tqsdk_20240801\\manifest.json", "manifest_sha256": "sha256:efe9b935f836f0d361222fe98f606f83fa732d6c26bce118aa9e48e3252640a5"}, "instrument_sources": {"ETF_SSE_513500": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SSE.513500"}, "ETF_SSE_518880": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SSE.518880"}, "ETF_SZSE_159915": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SZSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SZSE.159915"}, "ETF_SZSE_159985": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SZSE", "live_source": "tqsdk", "market_type": "etf", "source_role": "history_download", "venue_symbol": "SZSE.159985"}, "IDX_CSI300": {"data_provider": "tqsdk", "dataset_source": "marketworld_offline_history_download", "execution_venue": "SSE", "live_source": "tqsdk", "market_type": "index", "source_role": "history_download", "venue_symbol": "SSE.000300"}}, "instruments": ["ETF_SSE_518880", "ETF_SZSE_159915", "ETF_SSE_513500", "ETF_SZSE_159985", "IDX_CSI300"], "label": "Local fixed-window history: ppo_etf_walk_forward_tqsdk_20240801", "manifest_hash": "sha256:38d4240f75777334ae9dd1ca71b8b0c2b41a68ea44e72cf7e78f161217146884", "manifest_matches_files": true, "manifest_release_status": "released", "period": {"end": "2026-08-26", "start": "2024-08-02", "timezone": "mixed_source_timezones"}, "provider": "marketworld", "rows": 2505, "source_policy_id": "marketworld_offline_fixed_window_history_v1", "sources": ["tqsdk"], "status": "approved_local_history", "venue_capability": "single_or_multi_instrument_history", "venue_package": "LOCAL_HISTORY", "venue_pairs": [{"allow_cross_venue_basis": true, "basis_type": "single_or_multi_instrument", "execution_venues": ["SSE", "SZSE"], "legs": [{"data_provider": "tqsdk", "execution_venue": "SSE", "instrument": "ETF_SSE_518880", "role": "market", "venue_symbol": "SSE.518880"}, {"data_provider": "tqsdk", "execution_venue": "SZSE", "instrument": "ETF_SZSE_159915", "role": "market", "venue_symbol": "SZSE.159915"}, {"data_provider": "tqsdk", "execution_venue": "SSE", "instrument": "ETF_SSE_513500", "role": "market", "venue_symbol": "SSE.513500"}, {"data_provider": "tqsdk", "execution_venue": "SZSE", "instrument": "ETF_SZSE_159985", "role": "market", "venue_symbol": "SZSE.159985"}, {"data_provider": "tqsdk", "execution_venue": "SSE", "instrument": "IDX_CSI300", "role": "market", "venue_symbol": "SSE.000300"}], "notes": "Local history dataset generated by the offline workbench.", "scope": "local_history", "underlying": "mixed", "venue_pair_id": "local_history_tqsdk_1d"}], "venue_policy_id": "marketworld_local_history_download_v1", "workspace_id": "", "terminal_registration": {"schema": "MarketWorldTerminalDatasetRegistrationV1", "registered_at": "2026-08-26T08:41:55.834988+00:00", "registered_by": "zero"}}, {"dataset_id": "mw_sessionized_daily_sample_v1", "provider": "marketworld", "status": "approved", "label": "MarketWorld sessionized daily sample v1", "description": "MarketWorld 发布的版本化历史回测数据包；用户在本地下载后回测，提交时必须引用同一哈希。", "source_policy_id": "marketworld_official_history_v1", "venue_policy_id": "marketworld_venue_locked_v1", "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。", "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所期现与跨场所期现不得混用。", "anti_lookahead_policy": "数据包按 timestamp/source_session 固化；回测不得读取当前 bar 之后的数据。", "instrument_sources": {"SPOT_BTC": {"execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT", "market_type": "crypto_spot", "source_role": "spot", "dataset_source": "sample_raw", "live_source": "OKX public spot", "notes": "Live/paper trading anchor is OKX BTC-USDT spot. This sample dataset still stores rows as sample_raw."}, "PERP_BTC": {"execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP", "market_type": "crypto_perp", "source_role": "perpetual_swap", "dataset_source": "sample_raw", "live_source": "OKX public swap", "notes": "Live/paper trading anchor is OKX BTC-USDT-SWAP. Binance USD-M is backup-only unless a separate dataset says so."}, "FUT_IF": {"execution_venue": "CFFEX_SIM", "data_provider": "marketworld_sample_cn_future", "venue_symbol": "IF", "market_type": "index_future", "source_role": "future", "dataset_source": "sample_raw", "live_source": "research/sample"}, "ETF_CSI300": {"execution_venue": "CN_ETF_SIM", "data_provider": "marketworld_sample_cn_cash", "venue_symbol": "ETF_CSI300", "market_type": "etf", "source_role": "cash", "dataset_source": "sample_raw", "live_source": "research/sample"}, "IDX_CSI300": {"execution_venue": "INDEX_ONLY", "data_provider": "marketworld_sample_index", "venue_symbol": "CSI300", "market_type": "spot_index", "source_role": "benchmark", "dataset_source": "sample_raw", "live_source": "research/sample"}, "IDX_NDX": {"execution_venue": "INDEX_ONLY", "data_provider": "marketworld_sample_index", "venue_symbol": "NDX", "market_type": "spot_index", "source_role": "benchmark", "dataset_source": "sample_raw", "live_source": "research/sample"}, "OPT_CSI300_ETF": {"execution_venue": "CN_OPTION_SIM", "data_provider": "marketworld_sample_cn_option", "venue_symbol": "OPT_CSI300_ETF", "market_type": "option", "source_role": "option", "dataset_source": "sample_raw", "live_source": "research/sample"}}, "venue_pairs": [{"venue_pair_id": "okx_btc_spot_perp", "scope": "same_venue", "basis_type": "spot_perp", "underlying": "BTC", "execution_venues": ["OKX"], "allow_cross_venue_basis": false, "legs": [{"role": "spot", "instrument": "SPOT_BTC", "execution_venue": "OKX", "data_provider": "okx_spot", "venue_symbol": "BTC-USDT"}, {"role": "perpetual_swap", "instrument": "PERP_BTC", "execution_venue": "OKX", "data_provider": "okx_swap", "venue_symbol": "BTC-USDT-SWAP"}], "notes": "BTC same-venue spot/perp basis. Cross-exchange basis must use a separate official dataset and venue_pair_id."}], "cost_model_id": "mw_cost_policy_2026_06_10", "period": {"start": "2026-05-01", "end": "2026-05-09", "timezone": "mixed_exchange_timezones"}, "granularity": ["daily"], "instruments": ["ETF_CSI300", "FUT_IF", "IDX_CSI300", "IDX_NDX", "OPT_CSI300_ETF", "PERP_BTC", "SPOT_BTC"], "sources": ["sample_raw"], "rows": 63, "cost_model_hash": "sha256:ef56026f05cd2e9622e9895f62868763d338cce38f6135d7b9a050a89b827a6e", "data_fingerprint": "sha256:f468d23bafd756922df12e367c874693a6b25f6dd78d2050624b0696c8048b2b", "files": [{"role": "market_data", "name": "market_data_sessionized.csv", "path": "external_strategies/backtest_data/mw_sessionized_daily_sample_v1/market_data_sessionized.csv", "sha256": "sha256:f468d23bafd756922df12e367c874693a6b25f6dd78d2050624b0696c8048b2b", "bytes": 15993, "download_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/files/market_data_sessionized.csv", "static_download_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/files/market_data_sessionized.csv"}, {"role": "cost_model", "name": "execution_cost_assumptions.csv", "path": "external_strategies/backtest_data/mw_sessionized_daily_sample_v1/execution_cost_assumptions.csv", "sha256": "sha256:ef56026f05cd2e9622e9895f62868763d338cce38f6135d7b9a050a89b827a6e", "bytes": 1954, "download_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/files/execution_cost_assumptions.csv", "static_download_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/files/execution_cost_assumptions.csv"}], "manifest_hash": "sha256:d25ca7364b416336e5eb41435e932b8583bfd6c23f7856635ff412c7fb8d4172", "manifest_release_status": "released", "manifest_matches_files": true, "computed_manifest_hash": "sha256:d25ca7364b416336e5eb41435e932b8583bfd6c23f7856635ff412c7fb8d4172", "manifest_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/manifest.json", "static_manifest_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/manifest.json", "released_manifest_self_hash": "sha256:5bd2a7d63c646babf3c7aee3210b1b91c74245ae31ec537d310c4193571409cf"}], "sample_adequacy_policy": {"scorer_id": "marketworld_public_backtest_score_v4", "mode": "dynamic_by_granularity", "primary_count": "round_trip_count", "secondary_count": "open_count", "required_inputs": ["granularity", "bar_count", "period_days", "round_trip_count", "open_count", "active_days"], "rule": "完整开平仓回合数会先按时间粒度归一化；达到最低门槛只代表准入，达到两倍目标样本量才获得完整样本分，避免高频碎单刷分。", "round_trip_min_formula": "ceil(max(ref_round_trips_90d * floor_ratio, ref_round_trips_90d * sqrt(period_days / 90), ref_round_trips_90d * sqrt(bar_count / ref_bars_90d)))", "active_day_min_formula": "min(ceil(period_days), ceil(max(min(5, ceil(period_days)), 0.85 * sqrt(period_days))))", "granularity_classes": {"daily": {"reference_round_trips_90d": 12, "reference_bars_90d": 90, "floor_ratio": 0.35}, "multi_hour": {"reference_round_trips_90d": 16, "reference_bars_90d": 540, "floor_ratio": 0.35}, "hourly": {"reference_round_trips_90d": 24, "reference_bars_90d": 2160, "floor_ratio": 0.35}, "intraday": {"reference_round_trips_90d": 40, "reference_bars_90d": 8640, "floor_ratio": 0.35}, "high_frequency": {"reference_round_trips_90d": 120, "reference_bars_90d": 129600, "floor_ratio": 0.35}}}, "minimums": {"sample_adequacy": "dynamic_by_granularity", "active_days": 5, "slices": 3, "passing_slice_ratio": 0.6666666666666666, "profit_factor": 1.2, "sharpe": 0.5, "net_return_after_cost_bps": 25.0}, "maximums": {"max_drawdown_pct": 15.0, "slice_max_drawdown_pct": 20.0}, "required_attestation": ["no_lookahead", "no_survivorship_bias", "costs_included", "client_side_compute", "marketworld_dataset_used", "venue_locked_data"], "required_fields": ["schema", "run_id", "run_mode", "computed_by", "dataset.provider", "dataset.dataset_id", "dataset.data_fingerprint", "dataset.manifest_hash", "dataset.source_policy_id", "dataset.venue_policy_id", "dataset.venue_pair_id", "dataset.venue_bindings", "dataset.granularity", "period.start", "period.end", "data_fingerprint", "cost_model.model_id", "cost_model.hash", "attestation", "public_score.scorer_id", "public_score.score", "public_score.threshold", "public_score.passed", "public_score.risk_gate_passed", "public_score.holdout_slice_passed", "public_score.score_report_json_sha256", "runner.runner_id", "runner.runner_sha256", "artifact_hashes", "commitments.opaque_feature_commitment_hash", "commitments.strategy_source_sha256", "venue_policy"], "required_artifact_hashes": ["summary_json_sha256", "trades_csv_sha256", "equity_curve_csv_sha256", "slice_report_json_sha256", "score_report_json_sha256", "config_json_sha256", "artifact_manifest_sha256"], "required_commitment_hashes": ["opaque_feature_commitment_hash", "strategy_source_sha256"], "private_review": {"enabled_hash_commitments_enter_candidates_only_after_private_review": true, "approval_registry": "private", "commitment_id_rule": "MarketWorld recomputes the canonical commitment id from dataset/cost/artifact/opaque feature hashes."}}, "submit_interface": {"submission_standard": "GET /external-strategies/submission-standard", "runnable_bundle_guide": "GET /external-strategies/runnable-bundle-guide", "offline_backtest_kit": "GET /external-strategies/offline-kit", "preflight": "POST /external-strategies?dry_run=true", "formal_submit": "POST /external-strategies", "dataset_catalog": "GET /external-strategies/backtest-datasets", "server_backtest_compute": false}}