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

1 line
68 KiB
JSON

{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "label": "main_strategy.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L1"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "label": "StructuredDynamicMultiFactorStrategy", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L44"}, {"id": "ctatemplate", "label": "CtaTemplate", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L96"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "label": "._init_factors()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L216"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_init", "label": ".on_init()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L232"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_start", "label": ".on_start()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L245"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_stop", "label": ".on_stop()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L248"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_bar", "label": ".on_bar()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L251"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_need_rebalance", "label": "._need_rebalance()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L261"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "label": "._filter_above_ma()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L279"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_total_score", "label": ".calculate_total_score()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L300"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "label": ".select_stocks()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L321"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "label": ".calculate_target_weights()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L373"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "label": ".update_dynamic_weights()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L434"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "label": ".update_market_timing()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L457"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "label": ".rebalance()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L471"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_get_current_market_data", "label": ".get_current_market_data()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L531"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_market_pe", "label": ".calculate_market_pe()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L550"}, {"id": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "label": ".execute_rebalance()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L560"}, {"id": "structured_dynamic_factors_20260327_main_strategy_rationale_1", "label": "\u7ed3\u6784\u5316\u9002\u914d\u52a8\u6001\u591a\u56e0\u5b50\u7b56\u7565 \u5b8c\u6574\u65b9\u6848\uff1a 1. \u56e0\u5b50\u6c60: \u4ef7\u503c20% + \u8d28\u91cf20% + \u6210\u957f15% + \u4e2d\u56fd\u7279\u827225% + \u6280\u672f\u8d8b\u52bf10% + \u677f\u5757\u5f3a\u5ea610% 2", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L1"}, {"id": "structured_dynamic_factors_20260327_main_strategy_rationale_45", "label": "\u7ed3\u6784\u5316\u9002\u914d\u52a8\u6001\u591a\u56e0\u5b50\u7b56\u7565 \u9002\u914d\u5f53\u524dA\u80a1\u7ed3\u6784\u5316\u677f\u5757\u8f6e\u52a8\u884c\u60c5", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L45"}, {"id": "structured_dynamic_factors_20260327_main_strategy_rationale_322", "label": "\u9009\u80a1: 1. \u56e0\u5b50\u6253\u5206\u9009topN*2 2. \u5e74\u7ebf\u8fc7\u6ee4\uff08\u5982\u679c\u5f00\u542f\uff09 3. \u6280\u672f\u62e9\u65f6\u4e8c\u6b21\u8fc7\u6ee4\uff08\u5982\u679c\u5f00\u542f\uff09\uff0c\u53ea\u4fdd\u7559\u591a", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L322"}, {"id": "structured_dynamic_factors_20260327_main_strategy_rationale_378", "label": "\u8ba1\u7b97\u76ee\u6807\u6743\u91cd\uff0c\u8003\u8651: 1. \u6574\u4f53\u76ee\u6807\u4ed3\u4f4d 2. \u5355\u7968\u4e0d\u8d85max_single_pct 3. \u5355\u677f\u5757\u4e0d\u8d85max_s", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L378"}, {"id": "structured_dynamic_factors_20260327_main_strategy_rationale_532", "label": "\u83b7\u53d6\u5f53\u524d\u5168\u5e02\u573a\u6570\u636e \u9700\u8981\u5305\u542b\u5217: - symbol: \u80a1\u7968\u4ee3\u7801 - date: \u65e5\u671f - clo", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L532"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L10", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "numpy", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L11", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L12", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "vnpy_trader_app_ctastrategy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L14", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "vnpy_trader_object", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L15", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L18", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "factors", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L20", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L28", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "data", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L34", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "strategies", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L38", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L44", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "ctatemplate", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L44", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L96", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L216", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L232", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_start", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L245", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_stop", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L248", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_bar", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L251", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_need_rebalance", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L261", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L279", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_total_score", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L300", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L321", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L373", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L434", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L457", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L471", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_get_current_market_data", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L531", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_market_pe", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L550", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L560", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L143", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_bar", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_need_rebalance", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L255", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_bar", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L258", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L332", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_get_current_market_data", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L474", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L494", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_market_pe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L498", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L499", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_total_score", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L505", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L511", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L518", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L521", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_main_strategy_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L1", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_rationale_45", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L45", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_rationale_322", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L322", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_rationale_378", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L378", "weight": 1.0}, {"source": "structured_dynamic_factors_20260327_main_strategy_rationale_532", "target": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_get_current_market_data", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L532", "weight": 1.0}], "raw_calls": [{"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "super", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L97"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L101"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L102"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L105"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L106"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L109"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L110"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L111"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L112"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L113"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L114"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L117"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L118"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L119"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L120"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L123"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L124"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L127"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L128"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L131"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L134"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L135"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L136"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L139"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L140"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "SectorStrengthEngine", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L146"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "TechnicalTimingSignals", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L154"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "MarketRegimeWeightAllocator", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L158"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "get_market_index_data", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L160"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "expand_to_factor_names", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L162"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "get_weights", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L163"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "expand_to_factor_names", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L167"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "list", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L194"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "keys", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L194"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "DynamicICWeightAdjuster", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L195"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init", "callee": "MarketValuationTiming", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L202"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "PEFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L219"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "PBFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L220"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "ROEFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L221"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "RevenueGrowthFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L222"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "ProfitGrowthFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L223"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "SizeFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L224"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "ReversalFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L225"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "Momentum1MFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L226"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "Momentum3MFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L227"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_init_factors", "callee": "SectorStrengthFactor", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L228"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_init", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L234"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_init", "callee": "max", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L242"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_init", "callee": "load_bar", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L243"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_start", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L246"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_stop", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L249"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_on_bar", "callee": "date", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L253"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_need_rebalance", "callee": "isocalendar", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L272"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_need_rebalance", "callee": "isocalendar", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L273"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L288"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L292"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L292"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_filter_above_ma", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L296"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_total_score", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L304"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_total_score", "callee": "add", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L313"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_total_score", "callee": "sort_values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L317"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "tolist", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L328"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "head", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L328"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L337"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "sort_values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L341"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L342"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "filter_stocks_by_timing", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L345"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L351"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "tolist", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L352"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "head", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L352"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L358"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "sort_values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L361"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_select_stocks", "callee": "filter_stocks_by_timing", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L363"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L383"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "callee": "isin", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L401"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L414"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "callee": "sum", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L426"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_target_weights", "callee": "values", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L426"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "last", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L440"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "groupby", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L440"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "groupby", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L441"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "prepare_market_cap_neutral", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L445"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "batch_process_factors", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L446"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "update_monthly_ic", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L449"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "calculate_weights", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L452"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_dynamic_weights", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L455"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "callee": "update_monthly", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L462"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "callee": "calculate_target_position", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L463"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "callee": "get_current_quantile", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L465"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_update_market_timing", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L467"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L475"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L476"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "prepare_market_cap_neutral", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L480"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "get_market_index_data", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L484"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "get_weights", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L486"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "expand_to_factor_names", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L487"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "classify_market_regime", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L489"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L490"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "batch_process_factors", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L502"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L506"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "dropna", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L506"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L507"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L513"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L514"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L526"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_rebalance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L527"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_market_pe", "callee": "dropna", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L552"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_market_pe", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L554"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_calculate_market_pe", "callee": "median", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L558"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "get_all_positions", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L563"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "sell", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L569"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "get_last_price", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L569"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L572"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "get_last_price", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L574"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L579"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "get_position", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L584"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "buy", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L590"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "sell", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L594"}, {"caller_nid": "structured_dynamic_factors_20260327_main_strategy_structureddynamicmultifactorstrategy_execute_rebalance", "callee": "put_order", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/main_strategy.py", "source_location": "L596"}]}