Files
sanguo_quant_live/graphify-out/cache/ast/7d2ca3983a5426b92e30fce04a4481161b6ee7c563a14cbf8a656a0a4451c2a1.json
T
2026-05-06 23:13:05 +08:00

1 line
23 KiB
JSON

{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "label": "structural_market_risk.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L1"}, {"id": "pure_breakout_20260327_structural_market_risk_sectorinfo", "label": "SectorInfo", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L18"}, {"id": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming", "label": "StructuredMarketTiming", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L28"}, {"id": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L31"}, {"id": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_timing_sector", "label": ".timing_sector()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L41"}, {"id": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk", "label": "SectorConcentrationRisk", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L79"}, {"id": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L82"}, {"id": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "label": ".check_concentration()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L90"}, {"id": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust", "label": "HotSectorNewsRiskAdjust", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L125"}, {"id": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L128"}, {"id": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust_adjust_risk_score", "label": ".adjust_risk_score()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L134"}, {"id": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "label": "get_structural_risk_report()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L144"}, {"id": "pure_breakout_20260327_structural_market_risk_rationale_1", "label": "\u7ed3\u6784\u5316\u884c\u60c5\u62e9\u65f6\u98ce\u63a7\u6a21\u5757 \u4e13\u95e8\u5904\u7406A\u80a1\u7ed3\u6784\u5316\u884c\u60c5\u4e0b\u7684\u677f\u5757\u96c6\u4e2d\u5ea6\u98ce\u9669\u548c\u62e9\u65f6\u4fe1\u53f7 \u529f\u80fd\uff1a 1. \u62e9\u65f6\uff1a\u5355\u677f\u5757\u8fde\u7eed\u5927\u6da8\u63d0\u9192\u98ce\u9669\uff0c\u8fde\u7eed\u5927\u8dcc\u63d0\u793a\u4f4e\u5438 2. \u98ce\u63a7\uff1a\u63a7\u5236\u677f\u5757", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L1"}, {"id": "pure_breakout_20260327_structural_market_risk_rationale_42", "label": "\u677f\u5757\u62e9\u65f6 \u8fd4\u56de\uff1a(\u4fe1\u53f7\u7c7b\u578b, \u5efa\u8bae, \u98ce\u9669\u589e\u91cf\u8bc4\u5206) \u4fe1\u53f7\u7c7b\u578b: bull/bear/neutral", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L42"}, {"id": "pure_breakout_20260327_structural_market_risk_rationale_126", "label": "\u70ed\u70b9\u677f\u5757\u6d88\u606f\u98ce\u9669\u8c03\u6574\uff0c\u70ed\u70b9\u66f4\u5bb9\u6613\u5229\u597d\u51fa\u5c3d\uff0c\u7075\u654f\u5ea6\u63d0\u9ad8", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L126"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L14", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L15", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "pure_breakout_20260327_structural_market_risk_sectorinfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L18", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L28", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming", "target": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L31", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming", "target": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_timing_sector", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L41", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L79", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk", "target": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L82", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk", "target": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L90", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L125", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust", "target": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L128", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust", "target": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust_adjust_risk_score", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L134", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "target": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L144", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "target": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L148", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "target": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L149", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "target": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_timing_sector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L157", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "target": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L163", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_structural_market_risk_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L1", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_rationale_42", "target": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_timing_sector", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L42", "weight": 1.0}, {"source": "pure_breakout_20260327_structural_market_risk_rationale_126", "target": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L126", "weight": 1.0}], "raw_calls": [{"caller_nid": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_timing_sector", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L53"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_structuredmarkettiming_timing_sector", "callee": "strip", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L76"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L99"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L100"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L109"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L112"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L113"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L116"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L119"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_sectorconcentrationrisk_check_concentration", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L120"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust_adjust_risk_score", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L137"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_hotsectornewsriskadjust_adjust_risk_score", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L139"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L160"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "extend", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L165"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L169"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L170"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L171"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L172"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L172"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L173"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L174"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L177"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L179"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L180"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L183"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L185"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L186"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L189"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L191"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L193"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L195"}, {"caller_nid": "pure_breakout_20260327_structural_market_risk_get_structural_risk_report", "callee": "join", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/structural_market_risk.py", "source_location": "L196"}]}