{
  "ok": true,
  "schema": "MarketWorldOfficialBacktestDatasetCatalogV1",
  "generated_at": "2026-06-29T12:04:49+00:00",
  "static_publish": true,
  "server_backtest_compute": false,
  "backtest_datasets": [
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    }
  ],
  "datasets": [
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    },
    {
      "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"
    }
  ],
  "count": 7
}
