1 line
77 KiB
JSON
1 line
77 KiB
JSON
{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "label": "technical_selection_backtest_v2.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L1"}, {"id": "02_algorithms_technical_selection_backtest_v2_trade", "label": "Trade", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L26"}, {"id": "02_algorithms_technical_selection_backtest_v2_backtestresult", "label": "BacktestResult", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L44"}, {"id": "02_algorithms_technical_selection_backtest_v2_technicalindicators", "label": "TechnicalIndicators", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L65"}, {"id": "02_algorithms_technical_selection_backtest_v2_sma", "label": "sma()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L69"}, {"id": "02_algorithms_technical_selection_backtest_v2_ema", "label": "ema()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L74"}, {"id": "02_algorithms_technical_selection_backtest_v2_macd", "label": "macd()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L79"}, {"id": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "label": "bollinger_bands()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L89"}, {"id": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "label": "donchian_channel()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L98"}, {"id": "02_algorithms_technical_selection_backtest_v2_atr", "label": "atr()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L105"}, {"id": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "label": "MACDDivergenceStrategy", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L119"}, {"id": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L134"}, {"id": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_buy_signal", "label": ".check_buy_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L142"}, {"id": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_sell_signal", "label": ".check_sell_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L166"}, {"id": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "label": "BollingerBandsStrategy", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L182"}, {"id": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L197"}, {"id": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "label": ".rsi()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L205"}, {"id": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_buy_signal", "label": ".check_buy_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L222"}, {"id": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_sell_signal", "label": ".check_sell_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L249"}, {"id": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "label": "DonchianChannelStrategy", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L272"}, {"id": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L284"}, {"id": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_buy_signal", "label": ".check_buy_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L292"}, {"id": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_sell_signal", "label": ".check_sell_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L310"}, {"id": "02_algorithms_technical_selection_backtest_v2_backtestengine", "label": "BacktestEngine", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L331"}, {"id": "02_algorithms_technical_selection_backtest_v2_backtestengine_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L334"}, {"id": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "label": ".backtest()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L338"}, {"id": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "label": "._calculate_performance()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L421"}, {"id": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "label": ".print_result()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L474"}, {"id": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "label": "generate_sample_data()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L495"}, {"id": "02_algorithms_technical_selection_backtest_v2_main", "label": "main()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L512"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_66", "label": "Technical Indicator Calculator", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L66"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_70", "label": "Simple Moving Average", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L70"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_75", "label": "Exponential Moving Average", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L75"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_80", "label": "MACD: returns (DIF, DEA, MACD)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L80"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_90", "label": "Bollinger Bands: returns (upper, middle, lower)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L90"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_99", "label": "Donchian Channel: returns (upper, lower)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L99"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_120", "label": "MACD Bullish Divergence + MA Strategy Buy conditions: 1. Price make", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L120"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_183", "label": "Bollinger Bands Lower Rail + Trend Strategy Buy conditions: 1. Pric", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L183"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_273", "label": "Donchian Channel Breakout Strategy Buy conditions: 1. Close breaks", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L273"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_496", "label": "Generate sample data for testing", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L496"}, {"id": "02_algorithms_technical_selection_backtest_v2_rationale_513", "label": "Main function - demo three strategies backtest", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L513"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "numpy", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L14", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L15", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L16", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L17", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L18", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L19", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_trade", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L26", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_backtestresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L44", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L65", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_sma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L69", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_ema", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L74", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_macd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L79", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L89", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L98", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_atr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L105", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L119", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "target": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L134", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "target": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_buy_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L142", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "target": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_sell_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L166", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L182", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L197", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L205", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_buy_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L222", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_sell_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L249", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L272", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L284", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_buy_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L292", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_sell_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L310", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L331", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L334", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L338", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L421", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L474", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L495", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_zhangfei_technical_02_algorithms_technical_selection_backtest_v2_py", "target": "02_algorithms_technical_selection_backtest_v2_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L512", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macd", "target": "02_algorithms_technical_selection_backtest_v2_ema", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L81", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "target": "02_algorithms_technical_selection_backtest_v2_sma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L91", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_buy_signal", "target": "02_algorithms_technical_selection_backtest_v2_macd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L153", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_buy_signal", "target": "02_algorithms_technical_selection_backtest_v2_sma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L160", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_sell_signal", "target": "02_algorithms_technical_selection_backtest_v2_sma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L170", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_buy_signal", "target": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L229", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_buy_signal", "target": "02_algorithms_technical_selection_backtest_v2_sma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L236", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_buy_signal", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L243", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_sell_signal", "target": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L253", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_check_sell_signal", "target": "02_algorithms_technical_selection_backtest_v2_sma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L260", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_buy_signal", "target": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L297", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_sell_signal", "target": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L314", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_sell_signal", "target": "02_algorithms_technical_selection_backtest_v2_atr", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L321", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_sell_signal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L352", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy_check_buy_signal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L372", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "target": "02_algorithms_technical_selection_backtest_v2_trade", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L382", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L419", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "target": "02_algorithms_technical_selection_backtest_v2_backtestresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L454", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L518", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L521", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L527", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L529", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L530", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L536", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_main", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L545", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_66", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L66", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_70", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators_sma", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L70", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_75", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators_ema", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L75", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_80", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators_macd", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L80", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_90", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators_bollinger_bands", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L90", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_99", "target": "02_algorithms_technical_selection_backtest_v2_technicalindicators_donchian_channel", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L99", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_120", "target": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L120", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_183", "target": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L183", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_273", "target": "02_algorithms_technical_selection_backtest_v2_donchianchannelstrategy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L273", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_496", "target": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L496", "weight": 1.0}, {"source": "02_algorithms_technical_selection_backtest_v2_rationale_513", "target": "02_algorithms_technical_selection_backtest_v2_main", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L513", "weight": 1.0}], "raw_calls": [{"caller_nid": "02_algorithms_technical_selection_backtest_v2_sma", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L71"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_sma", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L71"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_sma", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L71"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_ema", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L76"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_ema", "callee": "ewm", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L76"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_ema", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L76"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "callee": "std", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L92"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L92"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollinger_bands", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L92"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "callee": "max", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L100"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L100"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L100"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "callee": "min", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L101"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L101"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_donchian_channel", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L101"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "zeros", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L107"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L107"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "range", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L108"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L108"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "abs", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L113"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "abs", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L114"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "max", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L115"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L116"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L116"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_atr", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L116"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_buy_signal", "callee": "min", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L147"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_macddivergencestrategy_check_buy_signal", "callee": "min", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L154"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "diff", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L206"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "where", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L207"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "where", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L208"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "zeros_like", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L209"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "zeros_like", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L210"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L212"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L213"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L214"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "range", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L215"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_bollingerbandsstrategy_rsi", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L215"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "info", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L339"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "reset_index", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L341"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "copy", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L341"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "range", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L346"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L346"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "list", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L351"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L351"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L367"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L371"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "int", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L375"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L402"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L409"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L414"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_backtest", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L417"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L428"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "sorted", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L434"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "hasattr", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L434"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "max", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L435"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "max", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L437"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L442"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "std", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L442"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "sqrt", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L442"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L442"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "std", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L442"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L448"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L448"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L450"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L451"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L452"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L457"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L465"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L466"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_calculate_performance", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L467"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L475"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L476"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L477"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L478"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L479"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L480"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L481"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L482"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L483"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L484"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L485"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L486"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L487"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L488"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L489"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L490"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L491"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_backtestengine_print_result", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L492"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "seed", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L497"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "normal", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L498"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "cumprod", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L499"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "DataFrame", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L501"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "date_range", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L502"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "uniform", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L503"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "abs", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L504"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "uniform", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L504"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "abs", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L505"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "uniform", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L505"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_generate_sample_data", "callee": "randint", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L507"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L514"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L515"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L516"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L519"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L519"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L524"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L525"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L526"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L533"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L534"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L535"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L542"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L543"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L544"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L551"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L552"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L553"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "DataFrame", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L554"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "iterrows", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L563"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L564"}, {"caller_nid": "02_algorithms_technical_selection_backtest_v2_main", "callee": "print", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/zhangfei-technical/02-algorithms/technical_selection_backtest_v2.py", "source_location": "L565"}]} |