ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Vibe-Trading 一目均衡表信号系统实战:TK 交叉三重过滤引擎与 78 根 K 线预热机制

Vibe-Trading 一目均衡表信号系统实战:TK 交叉三重过滤引擎与 78 根 K 线预热机制 Vibe-Trading 一目均衡表信号系统实战TK 交叉三重过滤引擎与 78 根 K 线预热机制【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading一目均衡表Ichimoku Kinko Hyo是源自日本的一整套趋势评估体系在 Vibe-Trading 项目中以独立 skillichimoku形式落地为纯 pandas 实现的无依赖信号引擎。本文以仓库内agent/src/skills/ichimoku/references/信号系统.md为骨架结合其配套的五线计算说明、SKILL.md 与示例引擎源码系统讲解 TK 交叉信号的强弱分级、三重过滤规则、预热要求以及该 skill 在技术分析多 Agent 面板中的实际调用方式。一、信号系统总览从五线到三类输出一目均衡表的完整分析建立在对以下五条线的计算之上详见五线计算.md线日文名计算方式含义转换线Tenkan-sen(9周期最高价 9周期最低价) / 2短期约 2 周价格中点基准线Kijun-sen(26周期最高价 26周期最低价) / 2中期约 1 个月价格中点也是价格的“均衡点”先行带 ASenkou Span A(转换线 基准线) / 2前移 26 周期云带上界先行带 BSenkou Span B(52周期最高价 52周期最低价) / 2前移 26 周期云带下界迟行线Chikou Span当前收盘价后移 26 周期趋势确认先行带 A 与先行带 B 之间的区域即“云带Kumo”A B 时为看涨云B A 时为看跌云云带厚度直接反映支撑/阻力强度。五条线共同决定了本引擎最终输出的信号约定1 做多long-1 做空short0 观望stand aside该信号约定在 SKILL.md 中明确定义并在 example_signal_engine.py 的generate()方法中通过buy.astype(int) - sell.astype(int)一次性产出{1, -1, 0}三种取值。二、TK 交叉核心触发信号及其强弱分级信号只在 TK 交叉事件转换线与基准线之间的穿越发生时触发。交叉的触发条件在源码中体现为相邻两根 K 线的关系判定# 金叉转换线从下方穿越基准线 tk_cross_up (tenkan kijun) (tenkan.shift(1) kijun.shift(1)) # 死叉转换线从上方穿越基准线 tk_cross_down (tenkan kijun) (tenkan.shift(1) kijun.shift(1))即要求“本周期已越过”且“上一周期尚未越过”从而精确定位交叉发生的那一根 K 线避免持续发散状态重复触发。金叉看涨的三档强度档位判定位置含义强金叉交叉发生在云带上方价格本身处于强势区交叉进一步确认多头中金叉交叉发生在云带内部处于多空拉锯区信号强度中等弱金叉交叉发生在云带下方虽出现交叉但整体仍处弱势区需谨慎对待死叉看跌的三档强度档位判定位置含义强死叉交叉发生在云带下方弱势区域内的交叉空头确认力度最强中死叉交叉发生在云带内部多空交界处强度中等弱死叉交叉发生在云带上方高位出现交叉需结合其他条件甄别强弱分级的本质是“交叉信号 云带相对位置”的组合判断云带是天然的动态支撑/阻力带交叉发生在云带外侧时价格方向与交叉方向一致信号可信度更高发生在云带内部时趋势尚未明朗。这套分级与多 Agent 技术分析面板中“TK cross: golden cross vs death cross; strength depends on cloud position”的描述完全吻合见 technical_analysis_panel.yaml 中ichimoku_analyst的框架定义。三、三重过滤只在条件全部一致时才出信号单纯 TK 交叉容易产生噪音本引擎因此引入三重过滤三个条件必须一致才会生成信号TK 交叉作为触发条件事件门控没有交叉就没有信号价格与云的关系价格在云上方看多在云下方看空云的方向先行带 A B 为看涨云A B 为看跌云。对应到源码就是两个与运算布尔表达式# --- 云带位置 --- cloud_top pd.concat([span_a, span_b], axis1).max(axis1) cloud_bottom pd.concat([span_a, span_b], axis1).min(axis1) above_cloud close cloud_top below_cloud close cloud_bottom # --- 云带方向 --- bullish_cloud span_a span_b bearish_cloud span_a span_b # --- 三重过滤信号 --- buy tk_cross_up above_cloud bullish_cloud sell tk_cross_down below_cloud bearish_cloud因此最终形成四类结果强买入Strong buy金叉 价格在云上 看涨云强卖出Strong sell死叉 价格在云下 看跌云其余所有组合包括中/弱金叉、中/弱死叉以及条件部分满足的情况一律观望数据不足预热长度时一律输出 0观望。这种“宁可错过、不可做错”的设计意图很明确三重过滤把 TK 交叉从“事件信号”升级为“趋势共振信号”只有短中长三个维度的方向一致时才入场这也在 SKILL.md 的 Signal Logic 一节得到印证All other cases → stand aside。需要指出的是五线计算.md 中提到的迟行线Chikou通常用于趋势确认但本引擎的信号计算并不使用它——源码中明确注释# chikou close.shift(-self.displacement) # 不参与信号计算。也就是说当前SignalEngine采用“TK 交叉 云带位置 云带方向”三条件组合而迟行线确认被让渡给上层分析者如 swarm 面板中的ichimoku_analyst由 Agent 在bash中按 9/26/52 标准窗口自行计算并输出“Chikou confirms trend? strength strong/medium/weak”作为补充结论。四、预热要求为什么是 78 根 K 线信号系统文档明确需要至少78 根 K 线52 周期计算 26 周期位移才能生成有效信号。这个数字并非拍脑袋而是由指标自身的数学结构决定最长的回看窗口是先行带 B 的52 周期senkou_b_period即(52 最高 52 最低) / 2之后所有先行带都要前移 26 周期displacement绘制52 26 78即最早的可用信号最早只能出现在第 78 根 K 线处。源码中的预热处理把这一逻辑直接落地warmup self.senkou_b_period self.displacement # 52 26 78 for symbol, df in data_map.items(): signal pd.Series(0, indexdf.index, dtypeint) if len(df) warmup: result[symbol] signal continue ...当标的的 K 线数量不足 78 根时引擎不会报错而是返回全 0 的观望序列。这一点对实盘与回测都有直接影响数据量管理获取历史行情时必须保证数据覆盖大于 78 根 K 线否则无法得到任何有效信号示例中的 OKX 拉取默认limit300300 根日 K远超预热需求回测公平性前 78 根 K 线属于“不可交易区间”任何基于本引擎的回测都应从第 79 根 K 线起统计盈亏否则会混入无效预热段的虚假结果跨周期换算默认参数下日线需约 78 个交易日4 小时线约 312 小时13 天周线则约 78 周选择周期时要预估预热占数据总长度的比例。四个核心参数均可通过构造函数自定义见 example_signal_engine.py 的SignalEngine.__init__调整任一参数都会连带改变预热长度与信号时点参数默认值说明调整影响tenkan_period9转换线周期改短更灵敏、改长更平滑kijun_period26基准线周期决定中期均衡点与交叉频率senkou_b_period52先行带 B 周期直接影响预热长度与云带平滑度displacement26前移/后移周期决定云带绘制偏移量同样影响预热长度五、引擎结构Donchian 中线的统一抽象五线计算.md 中五条线看似各不相同但在源码里被统一抽象为“Donchian 通道中线”这一单一原语def _donchian_mid(self, high, low, period): 计算 Donchian 通道中线。 公式: (highest_high(period) lowest_low(period)) / 2 return (high.rolling(period).max() low.rolling(period).min()) / 2转换线 _donchian_mid(high, low, 9)基准线 _donchian_mid(high, low, 26)先行带 A ((tenkan kijun) / 2).shift(26)先行带 B _donchian_mid(high, low, 52).shift(26)以rolling(period).max()/rolling(period).min()计算滚动窗口最高/最低价再取中值无需任何外部技术分析库纯 pandas 即可完整复现五线系统。引擎的数据接口也很简洁generate(data_map)接收“标的代码 → 含 open/high/low/close 列的 DataFramedatetime 索引”的字典返回“标的代码 → 信号 Series”的字典天然支持多标的批量扫描。六、Skill 的 Agent 集成在技术分析面板中作为独立分析流派运行ichimokuskill 并不仅仅是孤立脚本它通过 SKILL.md 的 frontmattername: ichimoku、category: strategy注册进 Vibe-Trading 的技能体系。从 agent/src/agent/skills.py 的SkillsLoader设计看技能采用“两级渐进式披露”系统提示词只注入一行摘要get_descriptions完整文档由load_skill工具按需加载ichimoku的 references 子目录含本文所讲的信号系统.md与五线计算.md正是这类按需加载的支撑文件。在实际的多 Agent 协作场景中technical_analysis_panel见 technical_analysis_panel.yaml将 Ichimoku 与经典技术分析、谐波形态、波浪理论、SMC 五种流派并行运行ichimoku_analyst通过load_skill(ichimoku)加载本 skill要求 Agent 基于get_market_data拉取 K 线后按 9/26/52 标准窗口在bash中计算五线state the windows if you deviate并输出云带颜色/厚度/价格位置、TK 关系与近期交叉强度、Chikou 确认强度、时间理论关键计数9/17/26/33/65、五要素共振price/Tenkan/Kijun/Chikou/cloud alignment以及 −5..5 的 Ichimoku 评分。最终由signal_aggregator汇总五种流派的一致度resonance给出综合结论在震荡市range regime中聚合器会调高 Ichimoku 与谐波流派的权重——这正是一目均衡表云带结构在趋势过滤上的独特价值所在。七、快速上手运行示例引擎仓库提供了可直接运行的多标的示例example_signal_engine.py 的__main__入口# 依赖安装SKILL.md Dependencies 一节 pip install pandas numpy requests # 运行示例拉取 OKX 日线并输出 BTC/ETH/SOL 的信号统计 python agent/src/skills/ichimoku/example_signal_engine.py示例执行流程为通过 OKX 公开接口GET /api/v5/market/candles参数instId、bar1D、limit300拉取 300 根日 K逆序整理成以毫秒时间戳为 datetime 索引的 OHLCV DataFrame再调用SignalEngine().generate(data_map)最后按标的统计做多/做空信号数量并打印最近一次信号日期。若网络不可达也可将_fetch_okx替换为任意本地 OHLCV 数据源例如回测引擎加载的 K 线数据只要 DataFrame 包含open/high/low/close列且长度超过预热窗口即可。结语一目均衡表信号系统的核心价值在于把“交叉事件、价格相对云的位置、云自身方向”三个独立维度统一到同一套五线结构上用三重过滤把 TK 交叉从高频噪音中剥离出来而 78 根 K 线的预热门槛保证了所有输出都建立在完整云带之上。配合 Vibe-Trading 的 skill 渐进式加载机制与多 Agent 技术分析面板这套纯 pandas 实现既可作为独立脚本验证思路也可作为ichimoku_analyst的系统提示词基础为回测与实盘决策提供结构化的趋势判断依据。深入阅读信号系统.md、五线计算.md与示例引擎源码即可完整复现全部分析逻辑。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表