{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "label": "executor.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L1"}, {"id": "backtest_service_executor_parse_vt_symbol", "label": "_parse_vt_symbol()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L52"}, {"id": "backtest_service_executor_backtestexecutor", "label": "BacktestExecutor", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L70"}, {"id": "backtest_service_executor_backtestexecutor_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L73"}, {"id": "backtest_service_executor_backtestexecutor_load_strategy", "label": "._load_strategy()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L76"}, {"id": "backtest_service_executor_backtestexecutor_execute_backtest", "label": ".execute_backtest()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L107"}, {"id": "backtest_service_executor_backtestexecutor_plot_equity_curve", "label": "._plot_equity_curve()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L240"}, {"id": "backtest_service_executor_rationale_1", "label": "\u81ea\u52a8\u5316\u56de\u6d4b\u670d\u52a1 - \u4efb\u52a1\u6267\u884c\u5668 \u8c03\u7528 vnpy 4.x BacktestingEngine \u6267\u884c\u56de\u6d4b", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L1"}, {"id": "backtest_service_executor_rationale_53", "label": "\u89e3\u6790vt_symbol\u4e3asymbol\u548cexchange\uff0c\u5982 '000001.SZ' \u2192 ('000001', Exchange.SZSE)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L53"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L5", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L6", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L7", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "traceback", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L8", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L9", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L10", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "matplotlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L11", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "matplotlib_pyplot", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L13", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L14", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "vnpy_event", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L17", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "vnpy_trader_engine", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L18", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "vnpy_ctastrategy_backtesting", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L19", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "vnpy_trader_constant", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L20", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_config_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L22", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_models_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L23", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_result_storage_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L24", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "backtest_service_executor_parse_vt_symbol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L52", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "target": "backtest_service_executor_backtestexecutor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L70", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor", "target": "backtest_service_executor_backtestexecutor_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L73", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor", "target": "backtest_service_executor_backtestexecutor_load_strategy", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L76", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor", "target": "backtest_service_executor_backtestexecutor_execute_backtest", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L107", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor", "target": "backtest_service_executor_backtestexecutor_plot_equity_curve", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L240", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor_execute_backtest", "target": "backtest_service_executor_backtestexecutor_load_strategy", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L127", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor_execute_backtest", "target": "backtest_service_executor_parse_vt_symbol", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L130", "weight": 1.0}, {"source": "backtest_service_executor_backtestexecutor_execute_backtest", "target": "backtest_service_executor_backtestexecutor_plot_equity_curve", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L207", "weight": 1.0}, {"source": "backtest_service_executor_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_vnpy_src_backtest_service_executor_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L1", "weight": 1.0}, {"source": "backtest_service_executor_rationale_53", "target": "backtest_service_executor_parse_vt_symbol", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L53", "weight": 1.0}], "raw_calls": [{"caller_nid": "backtest_service_executor_parse_vt_symbol", "callee": "rsplit", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L55"}, {"caller_nid": "backtest_service_executor_parse_vt_symbol", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L56"}, {"caller_nid": "backtest_service_executor_parse_vt_symbol", "callee": "upper", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L56"}, {"caller_nid": "backtest_service_executor_parse_vt_symbol", "callee": "upper", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L59"}, {"caller_nid": "backtest_service_executor_parse_vt_symbol", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L60"}, {"caller_nid": "backtest_service_executor_parse_vt_symbol", "callee": "startswith", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L61"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "mkdtemp", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L80"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "insert", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L81"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "join", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L83"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "open", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L84"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "write", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L85"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "spec_from_file_location", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L88"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "module_from_spec", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L89"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "exec_module", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L91"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "dir", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L96"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "getattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L97"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L98"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "issubclass", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L98"}, {"caller_nid": "backtest_service_executor_backtestexecutor_load_strategy", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L103"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "now", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L109"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "isoformat", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L110"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "save_task", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L114"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "BacktestResult", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L116"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L133"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "BacktestingEngine", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L136"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "set_parameters", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L139"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "add_strategy", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L152"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "replace", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L157"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "load_data", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L162"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L168"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "run_backtesting", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L174"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "calculate_result", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L177"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "calculate_statistics", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L178"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "BacktestStatistics", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L181"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "str", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L182"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "str", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L183"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L184"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L184"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L185"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L185"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L186"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L186"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L187"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L187"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L188"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L188"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L189"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L189"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L190"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L190"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L191"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L191"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L192"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L192"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "str", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L193"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L193"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "str", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L194"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L194"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L195"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L195"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "float", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L196"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L196"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get_task_path", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L200"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "makedirs", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L201"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "dirname", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L201"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "to_csv", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L203"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get_task_path", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L206"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get_all_trades", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L212"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "hasattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L212"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "DataFrame", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L214"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "get_task_path", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L215"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "to_csv", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L216"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "isoformat", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L226"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "now", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L226"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "save_result", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L228"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "str", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L232"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "format_exc", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L232"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "isoformat", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L235"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "now", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L235"}, {"caller_nid": "backtest_service_executor_backtestexecutor_execute_backtest", "callee": "save_result", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L237"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "figure", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L242"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "plot", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L245"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "cumsum", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L247"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "plot", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L248"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "plot", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L250"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "title", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L252"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "xlabel", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L253"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "ylabel", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L254"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "grid", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L255"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "legend", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L256"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "tight_layout", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L257"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "savefig", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L258"}, {"caller_nid": "backtest_service_executor_backtestexecutor_plot_equity_curve", "callee": "close", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy/src/backtest-service/executor.py", "source_location": "L259"}]}