{
  "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"
}
