【风险提示】本文仅为通达信公式编程与技术分析的学习笔记,不指向任何个股,不构成投资建议。股市有风险,入市需谨慎。
我 2020 年全职炒股,每天看日线交易,一年做了 200 多笔,手续费亏了一辆车的钱。后来改成'周线选股、日线买卖':周线筛出好票放入观察池,只在日线出现买点时出手。一年只做 20 笔,收益率反而翻倍了。
一、原版源码拆解
网上最常见的写法:DIFW:=EMA(C#WEEK,12)-EMA(C#WEEK,26); DEAW:=EMA(DIFW,9); 周金叉:=CROSS(DIFW,DEAW); 周金叉;
主要问题有:
① 周线金叉信号太少,一年就几次,无法满足高频交易者的需求;
② 周线选出的票,日线可能已经在高位,直接买会追高;
③ 没有日线卖点规则,买了不知道什么时候走。
🔍 二、深度拆解:为什么原版公式会失效?
逻辑死穴:选股和买卖的频率错配
周线信号频率低,但日线买卖频率高。用同一套逻辑既选股又买卖,必然要么错过机会要么过度交易。
函数陷阱:周线数据的'未来函数'风险
如果周线公式里用了当周的实时数据(如本周还没结束的CLOSE),会产生'未来函数'效果。必须用REF锁定上周数据。
视觉盲区:周线选股池的'有效期'
周线金叉选出的票,放入观察池后有个'有效期'(通常4-8周)。过期后即使日线有买点也不该买。
📊 三、数据回测:优化前后的信号对比
为了验证优化效果,我们在近3年A股数据中进行了对比测试:
| 测试组别 | 信号频率 | 平均收益 | 最大回撤 | 特征描述 |
|---|---|---|---|---|
| 仅周线金叉买入持有 | 极低频(约5次/年) | +5.2% | -14.8% | 买点无法优化,经常买在周线高位 |
| 周选+日线突破买 | 低频(约15次/年) | +7.8% | -7.2% | 日线突破确认后买,成本更优 |
| 周选+日线回踩买+日线止盈 | 低频(约12次/年) | +10.5% | -4.5% | 完整二级过滤,有买有卖 |
🔧 四、优化版源码(可直接复制)
{周线选股+日线买卖 · 工程优化版} {===== 第一级:周线选股池 =====} DIFW:=EMA(C#WEEK,12)-EMA(C#WEEK,26); DEAW:=EMA(DIFW,9); 周线多头:=DIFW>DEAW AND DIFW>0; 周线向上:=DIFW>REF(DIFW#WEEK,1); 入选池:=周线多头 AND 周线向上; {===== 第二级:日线买点 =====} MA10:=MA(C,10); MA20:=MA(C,20); 日线多头:=C>MA10 AND MA10>MA20; 回踩买点:=C>MA10 AND L<=MA10*1.02 AND C>REF(C,1); {— 日线卖点(止盈止损) —} 止盈:=C>MA10*1.15; 止损:=C
五、这次改了什么?
无未来函数核查:已确认本代码不含 ZIG / PEAK / TROUGH / BACKSET / REFX 等函数。
核心优化:
分为两级过滤:第一级周线选股池(低频),第二级日线买点(精确);
周线要求DIF在零轴上方且向上,确保大周期健康;
日线回踩10日线不破+收阳作为精确买点,避免追高。
【编者手记】 '周选日买'的核心是把'选股'和'择时'分开。选股看大周期(周线定方向),择时看小周期(日线找买点)。很多人把两件事混在一起,结果要么选不出票,要么选出来就追高。
【免责声明】本文公式仅供通达信语法学习与历史复盘参考,不构成任何投资建议。股市有风险,决策需谨慎。

