{
  "version": "v0.4.4",
  "symbol": "BTCUSDT",
  "generated_at": "2026-06-25T08:10:14.782541+00:00",
  "analysis_only": true,
  "edgecore_connected": false,
  "trading_enabled": false,
  "edgecore_import_enabled": false,
  "future_edgecore_use": "read_only_export_possible_after_manual_approval",
  "integration_status": {
    "mode": "shared_export_staged_only",
    "edgecore_connected": false,
    "edgecore_import_enabled": false,
    "edgecore_reader_created": false,
    "read_only_candidate": true,
    "requires_manual_approval": true,
    "spec_version": "v0.4.4",
    "shared_export_dir": "C:\\shared_macro_exports"
  },
  "macro_bias": "neutral",
  "risk_mode": "caution",
  "spot_mode": "wait",
  "contract_mode": "only_A_setups",
  "macro_filter_suggestion": "NEUTRAL",
  "macro_trend_score": 0,
  "risk_heat_score": 0,
  "cycle_phase": "ACCUMULATION",
  "key_levels": {
    "support": [
      {
        "id": "S1",
        "type": "support",
        "low": 57744.97,
        "high": 64107.9,
        "mid": 60926.43,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "30D_low",
          "90D_low",
          "180D_low",
          "365D_low",
          "weekly_swing_low_1",
          "weekly_swing_low_2",
          "weekly_swing_low_3",
          "200W_MA"
        ],
        "timeframe_weight": {
          "1D": 4,
          "1W": 8,
          "1M": 0,
          "1Y": 2
        },
        "meaning": "可能支撐區，用於觀察大週期是否仍有承接。 來源：30D_low、90D_low、180D_low、365D_low、weekly_swing_low_1。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。"
      },
      {
        "id": "S2",
        "type": "support",
        "low": 24328.96,
        "high": 27148.32,
        "mid": 25632.8,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "monthly_swing_low_1",
          "monthly_swing_low_2",
          "monthly_swing_low_3"
        ],
        "timeframe_weight": {
          "1D": 0.0,
          "1W": 0.0,
          "1M": 9.0,
          "1Y": 0.0
        },
        "meaning": "合併區間：由 monthly_swing_low_1, monthly_swing_low_2, monthly_swing_low_3 匯整而成，用於辨識大週期關鍵價格帶。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。 合併後需觀察價格反應與成交延續性。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。 若有效跌破或突破，代表此合併區間的情境權重下降。",
        "merged_from": [
          "S5",
          "S4"
        ]
      },
      {
        "id": "S3",
        "type": "support",
        "low": 69489.59,
        "high": 77957.55,
        "mid": 73723.57,
        "strength_score": 86,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "20W_MA",
          "fib_0.786",
          "200D_MA"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 2,
          "1M": 0,
          "1Y": 2
        },
        "meaning": "可能支撐區，用於觀察大週期是否仍有承接。 來源：20W_MA、fib_0.786、200D_MA。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。"
      }
    ],
    "resistance": [
      {
        "id": "R1",
        "type": "resistance",
        "low": 61433.11,
        "high": 64322.0,
        "mid": 62877.56,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_1"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "可能壓力區，用於觀察上方供給與突破難度。 來源：volume_profile_node_1。",
        "if_touched": "若接近此區，觀察是否出現供給壓力或突破延續。",
        "if_broken": "若有效突破，Bull Case 權重上升，但不可視為追價訊號。"
      },
      {
        "id": "R2",
        "type": "resistance",
        "low": 65327.41,
        "high": 68399.44,
        "mid": 66863.43,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_3"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "可能壓力區，用於觀察上方供給與突破難度。 來源：volume_profile_node_3。",
        "if_touched": "若接近此區，觀察是否出現供給壓力或突破延續。",
        "if_broken": "若有效突破，Bull Case 權重上升，但不可視為追價訊號。"
      },
      {
        "id": "R3",
        "type": "resistance",
        "low": 69221.72,
        "high": 72476.87,
        "mid": 70849.29,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_2"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "可能壓力區，用於觀察上方供給與突破難度。 來源：volume_profile_node_2。",
        "if_touched": "若接近此區，觀察是否出現供給壓力或突破延續。",
        "if_broken": "若有效突破，Bull Case 權重上升，但不可視為追價訊號。"
      }
    ],
    "pullback": [
      {
        "id": "PB1",
        "type": "pullback",
        "low": 82787.19,
        "high": 94779.58,
        "mid": 88783.39,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "fib_0.618",
          "24M_MA",
          "12M_MA",
          "50W_MA",
          "365D_MA",
          "fib_0.5"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 2,
          "1M": 6,
          "1Y": 6
        },
        "meaning": "合理回踩觀察區，不是買進或加倉指令。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。"
      },
      {
        "id": "PB2",
        "type": "pullback",
        "low": 69489.59,
        "high": 77957.55,
        "mid": 73723.57,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "20W_MA",
          "fib_0.786",
          "200D_MA"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 2,
          "1M": 0,
          "1Y": 2
        },
        "meaning": "合理回踩觀察區，不是買進或加倉指令。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。",
        "linked_support_id": "S3"
      }
    ],
    "invalidation": [
      {
        "id": "INV1",
        "type": "invalidation",
        "low": 66879.46,
        "high": 68907.03,
        "mid": 67893.24,
        "strength_score": 37,
        "strength_label": "weak",
        "strength": "weak",
        "sources": [
          "S2_lower_break"
        ],
        "timeframe_weight": {
          "1D": 0,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境失效區，用於判斷原先宏觀假設是否需要下修。 來源：S2_lower_break。",
        "if_touched": "若接近此區，應提高風險警覺並重新評估宏觀假設。",
        "if_broken": "若失效區被有效突破或跌破，原情境需作廢或重算。"
      },
      {
        "id": "INV2",
        "type": "invalidation",
        "low": 79677.58,
        "high": 82093.15,
        "mid": 80885.36,
        "strength_score": 37,
        "strength_label": "weak",
        "strength": "weak",
        "sources": [
          "S3_lower_break"
        ],
        "timeframe_weight": {
          "1D": 0,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境失效區，用於判斷原先宏觀假設是否需要下修。 來源：S3_lower_break。",
        "if_touched": "若接近此區，應提高風險警覺並重新評估宏觀假設。",
        "if_broken": "若失效區被有效突破或跌破，原情境需作廢或重算。"
      }
    ],
    "targets": [
      {
        "id": "T1",
        "type": "target",
        "low": 61216.44,
        "high": 64538.67,
        "mid": 62877.56,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_1"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境目標區，只是路徑推演，不是獲利指令。 來源：volume_profile_node_1。",
        "if_touched": "若接近此區，代表特定情境已部分實現，需重新估計風險熱度。",
        "if_broken": "若突破目標區，需以更高週期壓力重新估算，不代表必然延伸。",
        "linked_resistance_id": "R1"
      },
      {
        "id": "T2",
        "type": "target",
        "low": 65097.01,
        "high": 68629.84,
        "mid": 66863.43,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_3"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境目標區，只是路徑推演，不是獲利指令。 來源：volume_profile_node_3。",
        "if_touched": "若接近此區，代表特定情境已部分實現，需重新估計風險熱度。",
        "if_broken": "若突破目標區，需以更高週期壓力重新估算，不代表必然延伸。",
        "linked_resistance_id": "R2"
      },
      {
        "id": "T3",
        "type": "target",
        "low": 68977.58,
        "high": 72721.01,
        "mid": 70849.29,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_2"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境目標區，只是路徑推演，不是獲利指令。 來源：volume_profile_node_2。",
        "if_touched": "若接近此區，代表特定情境已部分實現，需重新估計風險熱度。",
        "if_broken": "若突破目標區，需以更高週期壓力重新估算，不代表必然延伸。",
        "linked_resistance_id": "R3"
      }
    ]
  },
  "zones": {
    "current_price": 61812.09,
    "support_zones": [
      {
        "id": "S1",
        "type": "support",
        "low": 57744.97,
        "high": 64107.9,
        "mid": 60926.43,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "30D_low",
          "90D_low",
          "180D_low",
          "365D_low",
          "weekly_swing_low_1",
          "weekly_swing_low_2",
          "weekly_swing_low_3",
          "200W_MA"
        ],
        "timeframe_weight": {
          "1D": 4,
          "1W": 8,
          "1M": 0,
          "1Y": 2
        },
        "meaning": "可能支撐區，用於觀察大週期是否仍有承接。 來源：30D_low、90D_low、180D_low、365D_low、weekly_swing_low_1。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。"
      },
      {
        "id": "S2",
        "type": "support",
        "low": 24328.96,
        "high": 27148.32,
        "mid": 25632.8,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "monthly_swing_low_1",
          "monthly_swing_low_2",
          "monthly_swing_low_3"
        ],
        "timeframe_weight": {
          "1D": 0.0,
          "1W": 0.0,
          "1M": 9.0,
          "1Y": 0.0
        },
        "meaning": "合併區間：由 monthly_swing_low_1, monthly_swing_low_2, monthly_swing_low_3 匯整而成，用於辨識大週期關鍵價格帶。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。 合併後需觀察價格反應與成交延續性。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。 若有效跌破或突破，代表此合併區間的情境權重下降。",
        "merged_from": [
          "S5",
          "S4"
        ]
      },
      {
        "id": "S3",
        "type": "support",
        "low": 69489.59,
        "high": 77957.55,
        "mid": 73723.57,
        "strength_score": 86,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "20W_MA",
          "fib_0.786",
          "200D_MA"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 2,
          "1M": 0,
          "1Y": 2
        },
        "meaning": "可能支撐區，用於觀察大週期是否仍有承接。 來源：20W_MA、fib_0.786、200D_MA。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。"
      }
    ],
    "resistance_zones": [
      {
        "id": "R1",
        "type": "resistance",
        "low": 61433.11,
        "high": 64322.0,
        "mid": 62877.56,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_1"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "可能壓力區，用於觀察上方供給與突破難度。 來源：volume_profile_node_1。",
        "if_touched": "若接近此區，觀察是否出現供給壓力或突破延續。",
        "if_broken": "若有效突破，Bull Case 權重上升，但不可視為追價訊號。"
      },
      {
        "id": "R2",
        "type": "resistance",
        "low": 65327.41,
        "high": 68399.44,
        "mid": 66863.43,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_3"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "可能壓力區，用於觀察上方供給與突破難度。 來源：volume_profile_node_3。",
        "if_touched": "若接近此區，觀察是否出現供給壓力或突破延續。",
        "if_broken": "若有效突破，Bull Case 權重上升，但不可視為追價訊號。"
      },
      {
        "id": "R3",
        "type": "resistance",
        "low": 69221.72,
        "high": 72476.87,
        "mid": 70849.29,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_2"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "可能壓力區，用於觀察上方供給與突破難度。 來源：volume_profile_node_2。",
        "if_touched": "若接近此區，觀察是否出現供給壓力或突破延續。",
        "if_broken": "若有效突破，Bull Case 權重上升，但不可視為追價訊號。"
      }
    ],
    "pullback_zones": [
      {
        "id": "PB1",
        "type": "pullback",
        "low": 82787.19,
        "high": 94779.58,
        "mid": 88783.39,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "fib_0.618",
          "24M_MA",
          "12M_MA",
          "50W_MA",
          "365D_MA",
          "fib_0.5"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 2,
          "1M": 6,
          "1Y": 6
        },
        "meaning": "合理回踩觀察區，不是買進或加倉指令。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。"
      },
      {
        "id": "PB2",
        "type": "pullback",
        "low": 69489.59,
        "high": 77957.55,
        "mid": 73723.57,
        "strength_score": 100,
        "strength_label": "major",
        "strength": "major",
        "sources": [
          "20W_MA",
          "fib_0.786",
          "200D_MA"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 2,
          "1M": 0,
          "1Y": 2
        },
        "meaning": "合理回踩觀察區，不是買進或加倉指令。",
        "if_touched": "若接近此區，觀察是否出現止跌與波動收斂。",
        "if_broken": "若有效跌破，Base/Bull Case 權重下降。",
        "linked_support_id": "S3"
      }
    ],
    "invalidation_zones": [
      {
        "id": "INV1",
        "type": "invalidation",
        "low": 66879.46,
        "high": 68907.03,
        "mid": 67893.24,
        "strength_score": 37,
        "strength_label": "weak",
        "strength": "weak",
        "sources": [
          "S2_lower_break"
        ],
        "timeframe_weight": {
          "1D": 0,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境失效區，用於判斷原先宏觀假設是否需要下修。 來源：S2_lower_break。",
        "if_touched": "若接近此區，應提高風險警覺並重新評估宏觀假設。",
        "if_broken": "若失效區被有效突破或跌破，原情境需作廢或重算。"
      },
      {
        "id": "INV2",
        "type": "invalidation",
        "low": 79677.58,
        "high": 82093.15,
        "mid": 80885.36,
        "strength_score": 37,
        "strength_label": "weak",
        "strength": "weak",
        "sources": [
          "S3_lower_break"
        ],
        "timeframe_weight": {
          "1D": 0,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境失效區，用於判斷原先宏觀假設是否需要下修。 來源：S3_lower_break。",
        "if_touched": "若接近此區，應提高風險警覺並重新評估宏觀假設。",
        "if_broken": "若失效區被有效突破或跌破，原情境需作廢或重算。"
      }
    ],
    "target_zones": [
      {
        "id": "T1",
        "type": "target",
        "low": 61216.44,
        "high": 64538.67,
        "mid": 62877.56,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_1"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境目標區，只是路徑推演，不是獲利指令。 來源：volume_profile_node_1。",
        "if_touched": "若接近此區，代表特定情境已部分實現，需重新估計風險熱度。",
        "if_broken": "若突破目標區，需以更高週期壓力重新估算，不代表必然延伸。",
        "linked_resistance_id": "R1"
      },
      {
        "id": "T2",
        "type": "target",
        "low": 65097.01,
        "high": 68629.84,
        "mid": 66863.43,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_3"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境目標區，只是路徑推演，不是獲利指令。 來源：volume_profile_node_3。",
        "if_touched": "若接近此區，代表特定情境已部分實現，需重新估計風險熱度。",
        "if_broken": "若突破目標區，需以更高週期壓力重新估算，不代表必然延伸。",
        "linked_resistance_id": "R2"
      },
      {
        "id": "T3",
        "type": "target",
        "low": 68977.58,
        "high": 72721.01,
        "mid": 70849.29,
        "strength_score": 42,
        "strength_label": "medium",
        "strength": "medium",
        "sources": [
          "volume_profile_node_2"
        ],
        "timeframe_weight": {
          "1D": 1,
          "1W": 0,
          "1M": 0,
          "1Y": 0
        },
        "meaning": "情境目標區，只是路徑推演，不是獲利指令。 來源：volume_profile_node_2。",
        "if_touched": "若接近此區，代表特定情境已部分實現，需重新估計風險熱度。",
        "if_broken": "若突破目標區，需以更高週期壓力重新估算，不代表必然延伸。",
        "linked_resistance_id": "R3"
      }
    ],
    "decision_points": [
      {
        "level": 64322.0,
        "label": "週線突破確認",
        "condition": "週線收上 R1 上緣",
        "effect": "Bull Case 權重提高",
        "risk_note": "不可視為直接追多訊號"
      },
      {
        "level": 57744.97,
        "label": "主要支撐測試",
        "condition": "價格接近 S1 下緣",
        "effect": "Base/Bear Case 權重重新評估",
        "risk_note": "只是風險觀察，不是加倉指令"
      },
      {
        "level": 67893.24,
        "label": "宏觀情境失效點",
        "condition": "有效跌破或突破 INV1",
        "effect": "原情境需要作廢或重算",
        "risk_note": "不可解讀為反向操作依據"
      }
    ],
    "zone_merge": {
      "enabled": true,
      "version": "v0.4.4",
      "merge_summary": {
        "support_before": 6,
        "support_after": 3,
        "resistance_before": 8,
        "resistance_after": 3,
        "pullback_before": 5,
        "pullback_after": 2,
        "target_before": 5,
        "target_after": 3,
        "invalidation_before": 3,
        "invalidation_after": 2
      }
    }
  },
  "zone_merge": {
    "enabled": true,
    "version": "v0.4.4",
    "merge_summary": {
      "support_before": 6,
      "support_after": 3,
      "resistance_before": 8,
      "resistance_after": 3,
      "pullback_before": 5,
      "pullback_after": 2,
      "target_before": 5,
      "target_after": 3,
      "invalidation_before": 3,
      "invalidation_after": 2
    }
  },
  "forecast_summary": {
    "30D": [
      {
        "scenario": "bull",
        "probability": 0.2,
        "target_range": [
          57668.99,
          68629.84
        ],
        "activation_condition": "需要宏觀趨勢維持、主要均線不失守，並有效站上 R2 附近壓力。",
        "invalidation": "若跌破 INV1 且週線動能轉弱，Bull Case 需要下修。",
        "narrative": "Bull Case 是上行情境，不代表價格必然發生，也不是追價訊號。"
      },
      {
        "scenario": "base",
        "probability": 0.4,
        "target_range": [
          24328.96,
          68399.44
        ],
        "activation_condition": "假設價格在主要支撐與壓力之間消化，趨勢延續但不加速。",
        "invalidation": "若價格突破主要壓力或跌破主要支撐，Base Case 需要重新評估。",
        "narrative": "Base Case 是區間消化情境，用於描述較中性的宏觀路徑。"
      },
      {
        "scenario": "bear",
        "probability": 0.4,
        "target_range": [
          24328.96,
          58008.97
        ],
        "activation_condition": "可能出現在趨勢分數下降、S2 失守或波動風險擴大時。",
        "invalidation": "若重新站上 R2 並維持趨勢分數，Bear Case 需要下修。",
        "narrative": "Bear Case 是下行情境，用於風險控管與失效觀察，不是放空指令。"
      }
    ],
    "90D": [
      {
        "scenario": "bull",
        "probability": 0.2,
        "target_range": [
          59042.52,
          68629.84
        ],
        "activation_condition": "需要宏觀趨勢維持、主要均線不失守，並有效站上 R2 附近壓力。",
        "invalidation": "若跌破 INV1 且週線動能轉弱，Bull Case 需要下修。",
        "narrative": "Bull Case 是上行情境，不代表價格必然發生，也不是追價訊號。"
      },
      {
        "scenario": "base",
        "probability": 0.4,
        "target_range": [
          24328.96,
          68399.44
        ],
        "activation_condition": "假設價格在主要支撐與壓力之間消化，趨勢延續但不加速。",
        "invalidation": "若價格突破主要壓力或跌破主要支撐，Base Case 需要重新評估。",
        "narrative": "Base Case 是區間消化情境，用於描述較中性的宏觀路徑。"
      },
      {
        "scenario": "bear",
        "probability": 0.4,
        "target_range": [
          24328.96,
          56450.75
        ],
        "activation_condition": "可能出現在趨勢分數下降、S2 失守或波動風險擴大時。",
        "invalidation": "若重新站上 R2 並維持趨勢分數，Bear Case 需要下修。",
        "narrative": "Bear Case 是下行情境，用於風險控管與失效觀察，不是放空指令。"
      }
    ],
    "180D": [
      {
        "scenario": "bull",
        "probability": 0.2,
        "target_range": [
          60291.48,
          68629.84
        ],
        "activation_condition": "需要宏觀趨勢維持、主要均線不失守，並有效站上 R2 附近壓力。",
        "invalidation": "若跌破 INV1 且週線動能轉弱，Bull Case 需要下修。",
        "narrative": "Bull Case 是上行情境，不代表價格必然發生，也不是追價訊號。"
      },
      {
        "scenario": "base",
        "probability": 0.4,
        "target_range": [
          24328.96,
          68399.44
        ],
        "activation_condition": "假設價格在主要支撐與壓力之間消化，趨勢延續但不加速。",
        "invalidation": "若價格突破主要壓力或跌破主要支撐，Base Case 需要重新評估。",
        "narrative": "Base Case 是區間消化情境，用於描述較中性的宏觀路徑。"
      },
      {
        "scenario": "bear",
        "probability": 0.4,
        "target_range": [
          24328.96,
          54815.67
        ],
        "activation_condition": "可能出現在趨勢分數下降、S2 失守或波動風險擴大時。",
        "invalidation": "若重新站上 R2 並維持趨勢分數，Bear Case 需要下修。",
        "narrative": "Bear Case 是下行情境，用於風險控管與失效觀察，不是放空指令。"
      }
    ],
    "365D": [
      {
        "scenario": "bull",
        "probability": 0.2,
        "target_range": [
          61929.11,
          74324.16
        ],
        "activation_condition": "需要宏觀趨勢維持、主要均線不失守，並有效站上 R2 附近壓力。",
        "invalidation": "若跌破 INV1 且週線動能轉弱，Bull Case 需要下修。",
        "narrative": "Bull Case 是上行情境，不代表價格必然發生，也不是追價訊號。"
      },
      {
        "scenario": "base",
        "probability": 0.4,
        "target_range": [
          24328.96,
          68399.44
        ],
        "activation_condition": "假設價格在主要支撐與壓力之間消化，趨勢延續但不加速。",
        "invalidation": "若價格突破主要壓力或跌破主要支撐，Base Case 需要重新評估。",
        "narrative": "Base Case 是區間消化情境，用於描述較中性的宏觀路徑。"
      },
      {
        "scenario": "bear",
        "probability": 0.4,
        "target_range": [
          24328.96,
          52259.36
        ],
        "activation_condition": "可能出現在趨勢分數下降、S2 失守或波動風險擴大時。",
        "invalidation": "若重新站上 R2 並維持趨勢分數，Bear Case 需要下修。",
        "narrative": "Bear Case 是下行情境，用於風險控管與失效觀察，不是放空指令。"
      }
    ]
  },
  "strategy_summary": "目前 macro_bias=neutral，risk_mode=caution，cycle_phase=ACCUMULATION。 這代表大週期環境偏好與風險框架，不是進出場或部位建議。",
  "data_status": {
    "data_source": "public_market_data",
    "data_source_used": "binance_public_verified",
    "data_endpoint": "https://api.binance.com/api/v3/klines",
    "data_verified": true,
    "cache_used": false,
    "insecure_ssl_used": false,
    "last_candle_timestamp": "2026-06-25T00:00:00+00:00",
    "row_count": 3000,
    "data_warning": null,
    "fetch_attempts": [
      {
        "source": "binance_public_verified",
        "success": true,
        "error": null
      }
    ],
    "data_fresh": true,
    "data_age_hours": 8.17,
    "data_age_days": 0.34,
    "freshness_status": "fresh",
    "max_data_age_hours": 48.0,
    "warn_data_age_hours": 30.0,
    "freshness_warning": null
  },
  "chart_paths": {
    "html": "C:\\Users\\Administrator\\Documents\\Codex\\2026-06-21\\mingyen-btc-macro-vision\\btc_macro_vision\\charts\\html\\btc_macro_chart_latest.html",
    "png": null,
    "png_warning": "PNG output skipped: \nImage export using the \"kaleido\" engine requires the Kaleido package,\nwhich can be installed using pip:\n\n    $ pip install --upgrade kaleido\n",
    "animated_html": "C:\\Users\\Administrator\\Documents\\Codex\\2026-06-21\\mingyen-btc-macro-vision\\btc_macro_vision\\charts\\html\\btc_macro_animated_latest.html",
    "public_animated_html": "C:\\Users\\Administrator\\Documents\\Codex\\2026-06-21\\mingyen-btc-macro-vision\\btc_macro_vision\\public\\btc_macro_animated_latest.html"
  },
  "warnings": [
    "這不是交易訊號",
    "這不是槓桿建議",
    "目前未接入 EdgeCore",
    "shared export folder 僅為 staging，EdgeCore 尚不可讀取",
    "EdgeCore 若未來讀取此檔，必須另行人工批准"
  ]
}