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

1 line
37 KiB
JSON

{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_strategies_tech_timing_signal_py", "label": "tech_timing_signal.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L1"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals", "label": "TechnicalTimingSignals", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L15"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L18"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "label": ".ma_bullish()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L21"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_ma_bearish", "label": ".ma_bearish()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L41"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_above_ma", "label": ".above_ma()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L46"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "label": ".macd_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L54"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "label": ".bollinger_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L85"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "label": ".rsi_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L112"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "label": ".kdj_signal()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L143"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "label": ".combine_signals()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L180"}, {"id": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "label": ".filter_stocks_by_timing()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L200"}, {"id": "strategies_tech_timing_signal_rationale_1", "label": "\u6280\u672f\u62e9\u65f6\u4fe1\u53f7\u7cfb\u7edf \u652f\u6301\u591a\u79cd\u6280\u672f\u62e9\u65f6\u4fe1\u53f7\uff1a - \u5747\u7ebf\u591a\u5934\u6392\u5217 - MACD\u91d1\u53c9/\u6b7b\u53c9 - \u7a81\u7834\u5e03\u6797\u5e26\u4e0a\u8f68/\u8dcc\u7834\u4e0b\u8f68 - RSI\u8d85\u4e70\u8d85\u5356 - KDJ\u91d1\u53c9/\u6b7b\u53c9", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L1"}, {"id": "strategies_tech_timing_signal_rationale_22", "label": "\u5747\u7ebf\u591a\u5934\u6392\u5217 \u77ed\u671f\u5747\u7ebf\u4e0a\u7a7f\u4e2d\u671f\uff0c\u4e2d\u671f\u5747\u7ebf\u4e0a\u7a7f\u957f\u671f \u2192 \u591a\u5934\u4fe1\u53f7 \u8fd4\u56de: bool Series\uff0cTrue=\u591a\u5934", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L22"}, {"id": "strategies_tech_timing_signal_rationale_61", "label": "MACD\u91d1\u53c9\u6b7b\u53c9\u4fe1\u53f7 \u8fd4\u56de: (golden_cross, death_cross)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L61"}, {"id": "strategies_tech_timing_signal_rationale_91", "label": "\u5e03\u6797\u5e26\u4fe1\u53f7 \u8fd4\u56de: (break_upper, break_lower) \u7a81\u7834\u4e0a\u8f68 \u2192 \u770b\u591a\uff0c\u8dcc\u7834\u4e0b\u8f68 \u2192 \u770b\u7a7a", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L91"}, {"id": "strategies_tech_timing_signal_rationale_119", "label": "RSI\u4fe1\u53f7 \u8fd4\u56de: (oversold_buy, overbought_sell) RSI\u8d85\u5356( < 30)\u4e70\u5165\uff0c\u8d85\u4e70( > 7", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L119"}, {"id": "strategies_tech_timing_signal_rationale_150", "label": "KDJ\u91d1\u53c9\u6b7b\u53c9 \u8fd4\u56de: (golden_cross, death_cross)", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L150"}, {"id": "strategies_tech_timing_signal_rationale_181", "label": "\u7ec4\u5408\u591a\u4e2a\u6280\u672f\u4fe1\u53f7\uff0c\u591a\u5934\u4fe1\u53f7\u8d8a\u591a\uff0c\u5f97\u5206\u8d8a\u9ad8 \u6700\u7ec8\u8fd4\u56de\u662f\u5426\u770b\u591a", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L181"}, {"id": "strategies_tech_timing_signal_rationale_206", "label": "\u6839\u636e\u6280\u672f\u62e9\u65f6\u8fc7\u6ee4\u5019\u9009\u80a1\u7968 \u53ea\u4fdd\u7559\u591a\u5934\u4fe1\u53f7\u5f97\u5206\u8d85\u8fc7\u9608\u503c\u7684", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L206"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_strategies_tech_timing_signal_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L10", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_strategies_tech_timing_signal_py", "target": "numpy", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L11", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_strategies_tech_timing_signal_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L12", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_strategies_tech_timing_signal_py", "target": "strategies_tech_timing_signal_technicaltimingsignals", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L15", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L18", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L21", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_ma_bearish", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L41", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_above_ma", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L46", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L54", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L85", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L112", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L143", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L180", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals", "target": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L200", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_ma_bearish", "target": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L43", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_above_ma", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L219", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L220", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L221", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L223", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L225", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L227", "weight": 1.0}, {"source": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "target": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L231", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_strategies_tech_timing_signal_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L1", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_22", "target": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L22", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_61", "target": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L61", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_91", "target": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L91", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_119", "target": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L119", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_150", "target": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L150", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_181", "target": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L181", "weight": 1.0}, {"source": "strategies_tech_timing_signal_rationale_206", "target": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L206", "weight": 1.0}], "raw_calls": [{"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L28"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L32"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L32"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L33"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L33"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L34"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_ma_bullish", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L34"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_above_ma", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L49"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_above_ma", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L51"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_above_ma", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L51"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L66"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L72"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "ewm", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L72"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L73"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "ewm", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L73"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L75"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "ewm", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L75"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L79"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L79"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L81"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_macd_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L81"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L97"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L101"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L101"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "callee": "std", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L102"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_bollinger_signal", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L102"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L125"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "diff", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L128"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "where", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L129"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "where", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L130"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L132"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L132"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L133"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_rsi_signal", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L133"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "issubset", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L154"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L155"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "min", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L163"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L163"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "max", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L164"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "rolling", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L164"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "fillna", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L166"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L169"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "ewm", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L169"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L170"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "ewm", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L170"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L174"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L174"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L176"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_kdj_signal", "callee": "shift", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L176"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L186"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "list", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L186"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "keys", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L186"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "items", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L190"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "astype", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L192"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "astype", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L194"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_combine_signals", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L196"}, {"caller_nid": "strategies_tech_timing_signal_technicaltimingsignals_filter_stocks_by_timing", "callee": "append", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/strategies/tech_timing_signal.py", "source_location": "L234"}]}