{"ok": true, "time": "2026-09-08T05:18:11+00:00", "policy": {"data_source": "只能使用 MarketWorld 发布的数据包", "compute": "用户下载 MarketWorld 离线回测系统，在自己的电脑、服务器或第三方算力运行回测；服务器只提供静态数据和校验证明", "cost_model": "必须使用数据包绑定的成本模型哈希", "offline_backtest_kit": "/external-strategies/offline-kit"}, "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, "download_url": "/external-strategies/backtest-datasets/local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z/files/market_data_sessionized.csv"}, {"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, "download_url": "/external-strategies/backtest-datasets/local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z/files/execution_cost_assumptions.csv"}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:c4155ef7bca40d8be98200ba4d124744cbb9cf2e267b57cb1a9cbf0f2c1414e1", "computed_manifest_hash": "sha256:5041a27072da791b6b7718aaa3cf02b9a50b9246a230dc9b06675e6257039ee7", "released_manifest_self_hash": "sha256:94c5f943b281a8d0a327e598e31f3dda94441469f920bcff726f7082acdd0c08", "manifest_url": "/external-strategies/backtest-datasets/local_history_binance_spot_BINANCE_SPOT_BTC_1d_20260701T083151Z/manifest"}, {"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, "download_url": "/external-strategies/backtest-datasets/local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z/files/market_data_sessionized.csv"}, {"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, "download_url": "/external-strategies/backtest-datasets/local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z/files/execution_cost_assumptions.csv"}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:4d031622ee26c40ca8693723ee9ea1ee16ba810916cb915ae9d6a65d1b1614bb", "computed_manifest_hash": "sha256:0c39107f57cd33234ab9b3a16dff781c8afff3d23146dd34232883845bedc9ce", "released_manifest_self_hash": "sha256:8cd75e60e249e96f7428f54a28576f096f6ed108a6accc67173abc3b4ef728f7", "manifest_url": "/external-strategies/backtest-datasets/local_history_binance_spot_BINANCE_SPOT_BTC_1m_20260701T091945Z/manifest"}, {"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, "download_url": "/external-strategies/backtest-datasets/local_history_tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z/files/market_data_sessionized.csv"}, {"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, "download_url": "/external-strategies/backtest-datasets/local_history_tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z/files/execution_cost_assumptions.csv"}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:87d9f2f8bc0db68890255b0a2df7d3aa58865d3ca4e13dc20fb58ecb8ab30ebb", "computed_manifest_hash": "sha256:643aea265461f3b19389e66d1a8eb549f2440368009939dc3ff5467e8f90f3cb", "released_manifest_self_hash": "sha256:6f5790cf921d0a5287264d9214a4ca0832708b9f6308e8c65d986bea63487d10", "manifest_url": "/external-strategies/backtest-datasets/local_history_tqsdk_TQSDK_SSE_600035_a_share_stock_SSE_15m_20260701T084911Z/manifest"}, {"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", "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", "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, "download_url": "/external-strategies/backtest-datasets/mw_composite_aligned_2b4b6207f074/files/market_data_sessionized.csv"}, {"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, "download_url": "/external-strategies/backtest-datasets/mw_composite_aligned_2b4b6207f074/files/execution_cost_assumptions.csv"}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:18a3a3ba8659f314f45afc08290ec1ee2134c0442700d4a479194727df18317a", "computed_manifest_hash": "sha256:8091aae89ae2d17bbbd7e8a6f8aed61ed3be7b02b0311988102f0cce0c70da58", "released_manifest_self_hash": "sha256:52ee9c4fec9c256f18a763cd0caf30351f251e8ad17c4a87df6f8106cb75bd22", "manifest_url": "/external-strategies/backtest-datasets/mw_composite_aligned_2b4b6207f074/manifest"}, {"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, "download_url": "/external-strategies/backtest-datasets/mw_composite_aligned_846bd6f7247d/files/market_data_sessionized.csv"}, {"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, "download_url": "/external-strategies/backtest-datasets/mw_composite_aligned_846bd6f7247d/files/execution_cost_assumptions.csv"}], "manifest_release_status": "released", "manifest_matches_files": true, "manifest_hash": "sha256:2cade9c2a61838c52cf7238e6e9712eeb85cc8f85156aaaa275697f88052146a", "computed_manifest_hash": "sha256:5c19cdc1da9fd4bc58c66d834b3e37af208134600a03b8c53c4530067a6320d1", "released_manifest_self_hash": "sha256:2cade9c2a61838c52cf7238e6e9712eeb85cc8f85156aaaa275697f88052146a", "manifest_url": "/external-strategies/backtest-datasets/mw_composite_aligned_846bd6f7247d/manifest"}, {"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, "download_url": "/external-strategies/backtest-datasets/mw_composite_aligned_937d927bc281/files/market_data_sessionized.csv"}, {"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, "download_url": "/external-strategies/backtest-datasets/mw_composite_aligned_937d927bc281/files/execution_cost_assumptions.csv"}], "manifest_release_status": "released", "manifest_matches_files": false, "manifest_hash": "sha256:5d4aa06d59bc2fafc1e8c9060986a5967dd3be609a40767cef6d043883876e48", "computed_manifest_hash": "sha256:7063f28680f711914850309517ba29f5f82d95c77d439e47980ddceaaede34b1", "released_manifest_self_hash": "sha256:d3b46a27dfe57b97a7109dba43ae9e6c950ecb6c1b6b4bfaaa334fb47df4cadd", "manifest_url": "/external-strategies/backtest-datasets/mw_composite_aligned_937d927bc281/manifest"}, {"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", "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", "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", "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", "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", "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", "download_url": "/external-strategies/backtest-datasets/mw_ppo_etf_walk_forward_tqsdk_daily_source_cost_2bps_v1/files/market_data_sessionized.csv"}, {"bytes": 369, "name": "execution_cost_assumptions.csv", "path": "execution_cost_assumptions.csv", "role": "cost_model", "sha256": "sha256:8d234eb85e0a189c4a9c876b680006edd87e0267f1cc321ffa39b475b06b8241", "download_url": "/external-strategies/backtest-datasets/mw_ppo_etf_walk_forward_tqsdk_daily_source_cost_2bps_v1/files/execution_cost_assumptions.csv"}], "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"}, "manifest_url": "/external-strategies/backtest-datasets/mw_ppo_etf_walk_forward_tqsdk_daily_source_cost_2bps_v1/manifest"}, {"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", "download_url": "/external-strategies/backtest-datasets/mw_ppo_etf_walk_forward_tqsdk_daily_v1/files/market_data_sessionized.csv"}, {"bytes": 387, "name": "execution_cost_assumptions.csv", "path": "execution_cost_assumptions.csv", "role": "cost_model", "sha256": "sha256:33dd3d97adaeb9508849ce3491a39a6889fc66fe8490582489eed19fe62aba14", "download_url": "/external-strategies/backtest-datasets/mw_ppo_etf_walk_forward_tqsdk_daily_v1/files/execution_cost_assumptions.csv"}], "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"}, "manifest_url": "/external-strategies/backtest-datasets/mw_ppo_etf_walk_forward_tqsdk_daily_v1/manifest"}, {"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", "static_manifest_url": "external-strategies/backtest-datasets/mw_sessionized_daily_sample_v1/manifest.json", "released_manifest_self_hash": "sha256:5bd2a7d63c646babf3c7aee3210b1b91c74245ae31ec537d310c4193571409cf"}]}