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

1 line
32 KiB
JSON

{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "label": "main_strategy.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L1"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "label": "PureBreakoutStrategy", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L14"}, {"id": "ctatemplate", "label": "CtaTemplate", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L42"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_init", "label": ".on_init()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L66"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_start", "label": ".on_start()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L71"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_stop", "label": ".on_stop()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L75"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "label": ".on_bar()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L79"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_update_holding", "label": "._update_holding()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L98"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "label": "._check_exit()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L107"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "label": "._check_entry()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L137"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_new_high", "label": "._is_new_high()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L157"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_volume_enough", "label": "._is_volume_enough()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L170"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_ma", "label": ".calculate_ma()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L183"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "label": ".calculate_current_total_position()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L192"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "label": "._enter_position()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L206"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "label": "._exit_position()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L238"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_bars", "label": ".get_bars()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L262"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_last_bar", "label": ".get_last_bar()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L267"}, {"id": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_position", "label": ".get_position()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L274"}, {"id": "pure_breakout_20260327_main_strategy_rationale_1", "label": "\u7eaf\u7a81\u7834\u91cf\u5316\u7b56\u7565 \u903b\u8f91: N\u65e5\u65b0\u9ad8\u653e\u91cf\u7a81\u7834\u4e70\u5165\uff0c\u4e25\u683c\u6b62\u635f\u6b62\u76c8\u5356\u51fa", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L1"}, {"id": "pure_breakout_20260327_main_strategy_rationale_15", "label": "\u7eaf\u7a81\u7834\u7b56\u7565 - \u7a81\u7834N\u65e5\u65b0\u9ad8 + \u653e\u91cf\u4e70\u5165 - \u4e25\u683c\u6b62\u635f\uff08\u8dcc\u7834\u7a81\u7834\u6700\u4f4e\u4ef75%\uff09 - \u8ddf\u8e2a\u6b62\u76c8\uff08\u4ece\u9ad8\u70b9\u56de\u843d10%\uff09 - \u5747\u7ebf\u6b62\u76c8\uff08", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L15"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L5", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "target": "numpy", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L6", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L7", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_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/pure-breakout-20260327/main_strategy.py", "source_location": "L9", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_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/pure-breakout-20260327/main_strategy.py", "source_location": "L10", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "target": "vnpy_trader_constant", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L11", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L14", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "ctatemplate", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L14", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L42", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L66", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_start", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L71", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_stop", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L75", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L79", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_update_holding", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L98", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L107", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L137", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_new_high", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L157", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_volume_enough", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L170", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_ma", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L183", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L192", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L206", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L238", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_bars", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L262", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_last_bar", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L267", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_position", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L274", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_update_holding", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L85", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L88", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L89", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L94", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_bar", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L95", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_ma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L124", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L140", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_new_high", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L146", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_volume_enough", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L150", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_new_high", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_bars", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L160", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_volume_enough", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_bars", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L173", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_ma", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_bars", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L185", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_last_bar", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L197", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_position", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L200", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_position", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L240", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_last_bar", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_get_bars", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L269", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_pure_breakout_20260327_main_strategy_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L1", "weight": 1.0}, {"source": "pure_breakout_20260327_main_strategy_rationale_15", "target": "pure_breakout_20260327_main_strategy_purebreakoutstrategy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L15", "weight": 1.0}], "raw_calls": [{"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "super", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L43"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L46"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L47"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L48"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L49"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L50"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L51"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_init", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L52"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_init", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L68"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_init", "callee": "load_bar", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L69"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_start", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L73"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_on_stop", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L77"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L114"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L120"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L126"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_exit", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L131"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_check_entry", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L154"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_new_high", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L161"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_new_high", "callee": "max", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L165"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_volume_enough", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L174"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_is_volume_enough", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L178"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_ma", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L186"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_ma", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L190"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L195"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_calculate_current_total_position", "callee": "abs", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L202"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L216"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L219"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "callee": "buy", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L223"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L234"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_enter_position", "callee": "put_order", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L236"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "callee": "sell", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L248"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "callee": "abs", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L248"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "callee": "write_log", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L255"}, {"caller_nid": "pure_breakout_20260327_main_strategy_purebreakoutstrategy_exit_position", "callee": "put_order", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/pure-breakout-20260327/main_strategy.py", "source_location": "L260"}]}