{
  "provider": "marketworld",
  "status": "approved",
  "venue_package": "OKX",
  "venue_capability": "spot_perp",
  "source_policy_id": "marketworld_public_rest_history_v1",
  "venue_policy_id": "marketworld_venue_locked_v1",
  "coverage_policy": "必须覆盖策略包 rules/signal_intents 中所有 legs/from/to 标的。",
  "venue_binding_policy": "策略必须声明并锁定官方 manifest 中的 execution_venue/data_provider/venue_symbol；同场所、同品牌、跨场所与 spot-only 数据包不得混用。",
  "instrument_sources": {
    "SPOT_BTC": {
      "execution_venue": "OKX",
      "data_provider": "okx_spot",
      "venue_symbol": "BTC-USDT",
      "market_type": "crypto_spot",
      "source_role": "spot",
      "dataset_source": "okx_public_rest_history",
      "live_source": "OKX public spot"
    },
    "PERP_BTC": {
      "execution_venue": "OKX",
      "data_provider": "okx_swap",
      "venue_symbol": "BTC-USDT-SWAP",
      "market_type": "crypto_perp",
      "source_role": "perpetual_swap",
      "dataset_source": "okx_public_rest_history",
      "live_source": "OKX public swap"
    }
  },
  "venue_pairs": [
    {
      "venue_pair_id": "okx_btc_spot_perp",
      "scope": "same_venue",
      "basis_type": "spot_perp",
      "underlying": "BTC",
      "execution_venues": [
        "OKX"
      ],
      "allow_cross_venue_basis": false,
      "legs": [
        {
          "role": "spot",
          "instrument": "SPOT_BTC",
          "execution_venue": "OKX",
          "data_provider": "okx_spot",
          "venue_symbol": "BTC-USDT"
        },
        {
          "role": "perpetual_swap",
          "instrument": "PERP_BTC",
          "execution_venue": "OKX",
          "data_provider": "okx_swap",
          "venue_symbol": "BTC-USDT-SWAP"
        }
      ],
      "notes": "Same OKX venue family. Cross-exchange basis must use a separate official dataset and venue_pair_id."
    }
  ],
  "cost_model_id": "mw_cost_okx_btc_spot_perp_v1",
  "source_references": [
    "https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-candlesticks-history"
  ],
  "dataset_id": "mw_okx_btc_spot_perp_news_daily_v1",
  "label": "MarketWorld OKX BTC spot/perp daily + official news events v1",
  "description": "OKX BTC spot/perp official daily data with a content-only news event stream. Events expose earliest available time and text only; no affected symbols or impact labels are included.",
  "event_source_policy_id": "marketworld_official_news_earliest_event_v1",
  "news_event_policy": {
    "schema": "MarketWorldNewsEventPolicyV1",
    "content_only": true,
    "no_effect_labels": true,
    "fixed_public_window": {
      "start": "2026-03-29",
      "end": "2026-06-26",
      "timezone": "UTC"
    },
    "time_field_used_for_backtest": "available_time",
    "same_event_selection_rule": "group by canonical_event_id or content fingerprint, keep the earliest available_time, and reject release files containing impact/symbol/direction labels",
    "forbidden_fields": [
      "affected_instrument",
      "affected_instruments",
      "affected_symbol",
      "affected_symbols",
      "asset",
      "assets",
      "direction",
      "expected_return",
      "impact",
      "impact_score",
      "instrument",
      "instrument_id",
      "instruments",
      "label",
      "price_direction",
      "sentiment",
      "sentiment_score",
      "side",
      "signal",
      "symbol",
      "symbols",
      "ticker",
      "tickers",
      "trade_direction"
    ]
  },
  "anti_lookahead_policy": "数据包按 timestamp/source_session 固化；回测不得读取当前 bar 之后的数据。",
  "period": {
    "start": "2026-03-29",
    "end": "2026-06-26",
    "timezone": "UTC"
  },
  "granularity": [
    "daily"
  ],
  "instruments": [
    "PERP_BTC",
    "SPOT_BTC"
  ],
  "sources": [
    "okx_public_rest_history"
  ],
  "rows": 180,
  "cost_model_hash": "sha256:3e1965e39747bd707e39a7a8bb259257d4816e5c9d1684a96588786d52b20a32",
  "data_fingerprint": "sha256:6b3c694c1113d67af7d6264f1476acb43a0db7451759bf1b583f276b93a6f530",
  "files": [
    {
      "role": "market_data",
      "name": "market_data_sessionized.csv",
      "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_news_daily_v1/market_data_sessionized.csv",
      "sha256": "sha256:6b3c694c1113d67af7d6264f1476acb43a0db7451759bf1b583f276b93a6f530",
      "bytes": 44558,
      "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/market_data_sessionized.csv",
      "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/market_data_sessionized.csv"
    },
    {
      "role": "cost_model",
      "name": "execution_cost_assumptions.csv",
      "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_news_daily_v1/execution_cost_assumptions.csv",
      "sha256": "sha256:3e1965e39747bd707e39a7a8bb259257d4816e5c9d1684a96588786d52b20a32",
      "bytes": 315,
      "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/execution_cost_assumptions.csv",
      "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/execution_cost_assumptions.csv"
    },
    {
      "role": "news_events",
      "name": "news_events_sessionized.csv",
      "path": "external_strategies/backtest_data/mw_okx_btc_spot_perp_news_daily_v1/news_events_sessionized.csv",
      "sha256": "sha256:4ec82ee10fc9fb1441d800affe2cd4685e3733ba5c6ca4af468b83db231c24c4",
      "bytes": 4558,
      "download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/news_events_sessionized.csv",
      "static_download_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/files/news_events_sessionized.csv"
    }
  ],
  "event_data_fingerprint": "sha256:4ec82ee10fc9fb1441d800affe2cd4685e3733ba5c6ca4af468b83db231c24c4",
  "event_rows": 8,
  "event_sources": [
    "CoinDesk",
    "Cointelegraph"
  ],
  "event_period": {
    "start": "2026-04-01T10:09:00+00:00",
    "end": "2026-06-26T00:00:00+00:00",
    "timezone": "UTC"
  },
  "manifest_hash": "sha256:62e3239aede40f6b9f4ea28b979330998eda19c465c051634193c3ee01f49f68",
  "manifest_release_status": "released",
  "manifest_matches_files": true,
  "computed_manifest_hash": "sha256:62e3239aede40f6b9f4ea28b979330998eda19c465c051634193c3ee01f49f68",
  "manifest_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/manifest.json",
  "static_manifest_url": "external-strategies/backtest-datasets/mw_okx_btc_spot_perp_news_daily_v1/manifest.json",
  "released_manifest_self_hash": "sha256:4f481a13c03eaf8b57299c27cb3cbfca4f828b3148d2e18a38ab84fc4a2d1361"
}
