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

1 line
17 KiB
JSON

{"nodes": [{"id": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "label": "base_factor.py", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L1"}, {"id": "factors_base_factor_basestructuredfactor", "label": "BaseStructuredFactor", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L12"}, {"id": "abc", "label": "ABC", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "factors_base_factor_basestructuredfactor_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L15"}, {"id": "factors_base_factor_calculate_raw", "label": "calculate_raw()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L19"}, {"id": "factors_base_factor_basestructuredfactor_neutralize", "label": ".neutralize()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L23"}, {"id": "factors_base_factor_basestructuredfactor_normalize", "label": ".normalize()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L71"}, {"id": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "label": ".cross_sectional_rank()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L98"}, {"id": "factors_base_factor_basestructuredfactor_process", "label": ".process()", "file_type": "code", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L107"}, {"id": "factors_base_factor_rationale_1", "label": "\u7ed3\u6784\u5316\u591a\u56e0\u5b50 - \u56e0\u5b50\u57fa\u7c7b \u652f\u6301\u884c\u4e1a\u4e2d\u6027\u5316\u548c\u5e02\u503c\u4e2d\u6027\u5316", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L1"}, {"id": "factors_base_factor_rationale_28", "label": "\u884c\u4e1a\u4e2d\u6027\u5316 + \u5e02\u503c\u4e2d\u6027\u5316 \u53c2\u6570: factor_values: \u539f\u59cb\u56e0\u5b50\u503c df: \u539f\u59cb\u6570\u636e\uff0c", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L28"}, {"id": "factors_base_factor_rationale_108", "label": "\u5b8c\u6574\u5904\u7406\u6d41\u7a0b\uff1a\u539f\u59cb\u8ba1\u7b97 \u2192 \u4e2d\u6027\u5316 \u2192 \u6807\u51c6\u5316 \u2192 rank", "file_type": "rationale", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L108"}], "edges": [{"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "abc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L5", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "pandas", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L6", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "numpy", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L7", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "statsmodels_regression_linear_model", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L8", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "statsmodels_tools_tools", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L9", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "factors_base_factor_basestructuredfactor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L12", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor", "target": "abc", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L12", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor", "target": "factors_base_factor_basestructuredfactor_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L15", "weight": 1.0}, {"source": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "target": "factors_base_factor_calculate_raw", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L19", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor", "target": "factors_base_factor_basestructuredfactor_neutralize", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L23", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor", "target": "factors_base_factor_basestructuredfactor_normalize", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L71", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor", "target": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L98", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor", "target": "factors_base_factor_basestructuredfactor_process", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L107", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor_neutralize", "target": "factors_base_factor_basestructuredfactor_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L39", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor_process", "target": "factors_base_factor_calculate_raw", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L109", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor_process", "target": "factors_base_factor_basestructuredfactor_neutralize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L110", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor_process", "target": "factors_base_factor_basestructuredfactor_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L111", "weight": 1.0}, {"source": "factors_base_factor_basestructuredfactor_process", "target": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L112", "weight": 1.0}, {"source": "factors_base_factor_rationale_1", "target": "users_chufeng_openclaw_sanguo_projects_sanguo_quant_live_strategies_structured_dynamic_factors_20260327_factors_base_factor_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L1", "weight": 1.0}, {"source": "factors_base_factor_rationale_28", "target": "factors_base_factor_basestructuredfactor_neutralize", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L28", "weight": 1.0}, {"source": "factors_base_factor_rationale_108", "target": "factors_base_factor_basestructuredfactor_process", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L108", "weight": 1.0}], "raw_calls": [{"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "get_dummies", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L43"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "concat", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L49"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "add_constant", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L50"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "dropna", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L53"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "fit", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L58"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "OLS", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L58"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "Series", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L61"}, {"caller_nid": "factors_base_factor_basestructuredfactor_neutralize", "callee": "copy", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L63"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "dropna", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L74"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "len", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L75"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "median", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L79"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "median", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L80"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "abs", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L80"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "clip", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L85"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "mean", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L88"}, {"caller_nid": "factors_base_factor_basestructuredfactor_normalize", "callee": "std", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L89"}, {"caller_nid": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L100"}, {"caller_nid": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "callee": "rank", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L101"}, {"caller_nid": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "callee": "groupby", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L101"}, {"caller_nid": "factors_base_factor_basestructuredfactor_cross_sectional_rank", "callee": "rank", "is_member_call": true, "source_file": "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live/strategies/structured-dynamic-factors-20260327/factors/base_factor.py", "source_location": "L103"}]}