1 line
41 KiB
JSON
1 line
41 KiB
JSON
{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "label": "risk_control.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L1"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_stockinfo", "label": "StockInfo", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L17"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_portfolioinfo", "label": "PortfolioInfo", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L30"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol", "label": "SingleStockRiskControl", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L37"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L40"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_check_stop_loss", "label": ".check_stop_loss()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L47"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_get_drawdown", "label": ".get_drawdown()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L59"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "label": "PortfolioDrawdownRiskControl", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L66"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L74"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_calculate_total_drawdown", "label": ".calculate_total_drawdown()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L87"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "label": ".get_target_position_ratio()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L93"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "label": ".need_rebalance()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L108"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "label": "BlackSwanFilter", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L123"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L126"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_stock", "label": ".filter_stock()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L133"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_universe", "label": ".filter_universe()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L158"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller", "label": "RiskController", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L168"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L171"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "label": ".pre_trade_check()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L176"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "label": ".post_trade_check()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L195"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "label": ".get_risk_report()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L223"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_1", "label": "\u98ce\u63a7\u6a21\u5757 - \u91cf\u5316\u7b56\u7565\u98ce\u63a7\u7cfb\u7edf \u529f\u80fd\uff1a 1. \u5355\u796815%\u6b62\u635f\u89c4\u5219 2. \u6574\u4f53\u56de\u64a4\u5206\u7ea7\u98ce\u63a7\uff0810%/20%/25% \u5206\u7ea7\u964d\u4ed3\uff09 3. \u9ed1\u5929\u9e45\u8fc7\u6ee4\uff08ST\u3001\u8dcc\u505c\u3001\u8d22\u52a1", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L1"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_41", "label": "\u521d\u59cb\u5316 :param stop_loss_pct: \u6b62\u635f\u6bd4\u4f8b\uff0c\u9ed8\u8ba415%", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L41"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_48", "label": "\u68c0\u67e5\u662f\u5426\u89e6\u53d1\u6b62\u635f :return: True = \u9700\u8981\u6b62\u635f\uff0cFalse = \u6301\u6709", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L48"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_67", "label": "\u6574\u4f53\u56de\u64a4\u5206\u7ea7\u98ce\u63a7 10%\u56de\u64a4 \u2192 \u964d\u4ed350% 20%\u56de\u64a4 \u2192 \u964d\u4ed375% 25%\u56de\u64a4 \u2192 \u6e05\u4ed3\u4f11\u606f", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L67"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_77", "label": "\u521d\u59cb\u5316\u5206\u7ea7\u98ce\u63a7 :param drawdown_levels: \u56de\u64a4\u9608\u503c :param reduce_ratios: \u5bf9\u5e94\u964d\u4ed3\u6bd4", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L77"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_94", "label": "\u83b7\u53d6\u76ee\u6807\u4ed3\u4f4d\u6bd4\u4f8b :return: \u76ee\u6807\u4ed3\u4f4d\u5360\u5f53\u524d\u603b\u8d44\u91d1\u7684\u6bd4\u4f8b", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L94"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_109", "label": "\u68c0\u67e5\u662f\u5426\u9700\u8981\u964d\u4ed3 :return: (\u662f\u5426\u9700\u8981\u8c03\u6574, \u76ee\u6807\u4ed3\u4f4d\u6bd4\u4f8b)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L109"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_124", "label": "\u9ed1\u5929\u9e45\u8fc7\u6ee4\uff1a\u6392\u9664ST\u3001\u8dcc\u505c\u3001\u8d22\u52a1\u9020\u5047\u3001\u4f4e\u6d41\u52a8\u6027\u7968", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L124"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_127", "label": "\u521d\u59cb\u5316\u8fc7\u6ee4\u5668 :param min_daily_volume: \u6700\u5c0f\u65e5\u6210\u4ea4\u989d\uff08\u4ebf\uff09\uff0c\u4f4e\u4e8e\u6b64\u6392\u9664", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L127"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_134", "label": "\u8fc7\u6ee4\u4e2a\u80a1 :return: (\u662f\u5426\u901a\u8fc7\u8fc7\u6ee4, \u4e0d\u901a\u8fc7\u539f\u56e0) True = \u53ef\u4ee5\u4e70\u5165\uff0cFalse = \u6392\u9664", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L134"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_177", "label": "\u4ea4\u6613\u524d\u68c0\u67e5\uff1a\u5f00\u4ed3\u524d\u8c03\u7528 :return: (\u662f\u5426\u5141\u8bb8\u5f00\u4ed3, \u539f\u56e0)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L177"}, {"id": "factors_dynamic_weight_timing_20260327_risk_control_rationale_196", "label": "\u6536\u76d8\u540e\u68c0\u67e5\uff1a\u6b62\u635f\u68c0\u67e5 + \u964d\u4ed3\u68c0\u67e5 :return: \u98ce\u63a7\u7ed3\u679c\uff0c\u5305\u542b\u9700\u8981\u6b62\u635f\u7684\u7968\u548c\u9700\u8981\u964d\u4ed3\u7684\u4fe1\u606f", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L196"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L12", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L13", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "factors_dynamic_weight_timing_20260327_risk_control_stockinfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L17", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfolioinfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L30", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L37", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L40", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_check_stop_loss", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L47", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_get_drawdown", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L59", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L66", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L74", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_calculate_total_drawdown", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L87", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L93", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L108", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L123", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L126", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_stock", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L133", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_universe", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L158", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L168", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L171", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L176", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L195", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L223", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "target": "pprint", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L255", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_calculate_total_drawdown", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L98", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L113", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_universe", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_stock", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L162", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_init", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L172", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_init", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L173", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_init", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L174", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_stock", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L182", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L187", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_check_stop_loss", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L203", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_get_drawdown", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L207", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L211", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_calculate_total_drawdown", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L212", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L225", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_factors_dynamic_weight_timing_20260327_risk_control_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L1", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_41", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_init", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L41", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_48", "target": "factors_dynamic_weight_timing_20260327_risk_control_singlestockriskcontrol_check_stop_loss", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L48", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_67", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L67", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_77", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_init", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L77", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_94", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L94", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_109", "target": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L109", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_124", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L124", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_127", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_init", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L127", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_134", "target": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_stock", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L134", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_177", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L177", "weight": 1.0}, {"source": "factors_dynamic_weight_timing_20260327_risk_control_rationale_196", "target": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L196", "weight": 1.0}], "raw_calls": [{"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "callee": "reversed", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L101"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "callee": "list", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L101"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_get_target_position_ratio", "callee": "zip", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L101"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L114"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_portfoliodrawdownriskcontrol_need_rebalance", "callee": "values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L114"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_blackswanfilter_filter_universe", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L164"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L188"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_pre_trade_check", "callee": "values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L188"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L204"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L215"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L220"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_post_trade_check", "callee": "values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L220"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L228"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L229"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L230"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L231"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L232"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L233"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L234"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L237"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L239"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L241"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L243"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L245"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L247"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L249"}, {"caller_nid": "factors_dynamic_weight_timing_20260327_risk_control_riskcontroller_get_risk_report", "callee": "join", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/factors-dynamic-weight-timing-20260327/risk_control.py", "source_location": "L250"}]} |