在 CSDN 技术社区分享量化交易代码,就像打开一个藏满市场密码的工具箱~今天带大家拆解两段文华 WT8 代码,看看如何用代码构建「趋势捕捉 + 量价共振」的交易体系,文末附完整代码块 + 实战技巧!

更多指标和策略请+v了解

🔍 第一段代码:波段交易的「信号加工厂」

📊 核心指标构建:RSI 的「平滑进化版」

先看这段灵魂代码:

VAR0:=SMA((CLOSE-LLV(LOW,19))/(HHV(HIGH,19)-LLV(LOW,19))*100,5,1);

这相当于给价格波动装了个「标准化滤镜」:把 19 天内的价格压缩到 0-100 区间,再用 5 日 SMA 平滑,比传统 RSI 更抗噪音~就像给市场数据「美颜磨皮」,过滤掉短期毛刺。

⚙️ 信号过滤系统:三重 EMA 的「趋势探测器」

波段线:EMA(VAR0,3),NODRAW;
VAR1:=EMA(波段线,2);
VAR2:=EMA(VAR1,2);
VAR3:=CROSS(VAR1,VAR2); // 金叉买入信号

这里用了「EMA 套娃」策略:先给 VAR0 做 3 日 EMA 得到「波段线」,再连续两次 2 日 EMA 生成 VAR1 和 VAR2。当短期 EMA 上穿长期 EMA 时,就像给趋势打了个✅,大大减少假信号!

🎯 可视化信号:彩色区域 + 图标标记

STICKLINE(波段线<20,波段线-2,波段线+2,5,0),COLORBLUE; // 蓝色超卖区
DRAWICON(抄底>1,抄底,4); // 出现抄底信号时画图标

这段代码给指标加了「视觉特效」:

  • 波段线 < 20 时画蓝色柱子,像给市场贴了「甩卖标签」📉
  • 抄底信号触发时显示 4 号图标,相当于弹出「🛒 捡漏提醒」

💻 第二段代码:量价 + MACD 的「组合拳」

🔋 成交量分析:多周期均线的「能量检测仪」

MAVOL5:=MA(VOLUME,5);
MAVOL21:=MA(VOLUME,21);
STICKLINE(CROSS(MAVOL5,MAVOL21),5,8,2,0),COLORWHITE;

这是给成交量装了「放大镜」:5 日均量上穿 21 日均量时,白色柱线亮起,就像看到市场「放量加油」的信号🚀,确认趋势启动的量能基础。

🌀 MACD 策略升级:日线周线「双重雷达」

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);
周DIF:=EMA(CLOSE,12)-EMA(CLOSE,26); // 周线MACD

代码同时计算日线和周线 MACD,当两者同时变红时,就像「海陆空三军会师」🛫,信号可靠性暴增!配合不同颜色的柱线:

  • 红色柱:动能增强
  • 蓝色柱:动能减弱
    一眼看清市场「脉搏强弱」。

⏩ 提前预警:KDJ 的「预判模式」

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
KDJ提前金叉:(CROSS(上涨分界,低买)),COLORFF00FF,NODRAW;

这段把传统 KDJ 改造成了「预言家」:通过计算 RSV 与超卖阈值的差值,提前发现金叉信号,比传统 KDJ 快半拍📈,就像提前拿到了市场剧本!

📝 实战技巧:代码背后的「交易心法」

📌 多指标共振原则

  • 买入信号:VAR3 金叉 + VAR1>20 + 周 MACD 红柱(三重确认)
  • 抄底时机:波段线 < 20 + 抄底信号 + 成交量金叉(胜率更高)
    就像开车时同时看速度表、油表、导航📊,缺一不可。

⚠️ 风险控制关键点

STICKLINE(波段线>80,...COLORRED); // 红色超买区

当波段线 > 80 时,代码用红色标记,相当于弹出「🔥 高温警告」,这时候追涨就像接飞刀,一定要谨慎!

📦 完整代码块(复制即用)

第一段:波段交易与抄底信号

// 计算VAR0:对收盘价在19日内最低价的比例进行平滑处理
VAR0:=SMA((CLOSE-LLV(LOW,19))/(HHV(HIGH,19)-LLV(LOW,19))*100,5,1);

// 定义波段线:对VAR0进行3日指数平均,不绘制线
波段线:EMA(VAR0,3),NODRAW;

// 计算VAR1:对波段线进行2日指数平均
VAR1:=EMA(波段线,2);

// 计算VAR2:对VAR1进行2日指数平均
VAR2:=EMA(VAR1,2);

// 计算VAR3:当VAR1上穿VAR2时成立
VAR3:=CROSS(VAR1,VAR2);

// 计算VAR4:当VAR2上穿VAR1时成立
VAR4:=CROSS(VAR2,VAR1);

// 绘制柱线:当波段线在20-50之间时,绘制黄色柱状区域
STICKLINE(波段线>20 AND 波段线<50,波段线-2,波段线+2,5,0),COLORYELLOW;

// 定义抄底信号:当波段线上穿8或15时,显示3倍波段线值
抄底:IF(CROSS(波段线,8) OR CROSS(波段线,15),波段线*3.0,0),COLORMAGENTA,LINETHICK2;

// 定义卖信号:当VAR4成立时显示波段线值
卖:IF(VAR4,波段线,0),COLORYELLOW,NODRAW;

// 定义买信号:当VAR3成立且VAR1>20时显示波段线值
买:IF(VAR3 AND VAR1>20 ,波段线,0),COLORRED,NODRAW;

// 绘制文字:当VAR3成立且VAR1>20时,在波段线下方12单位处显示”买”
DRAWTEXT(VAR3 AND VAR1>20,波段线-12,'买'),COLORRED;

// 绘制柱线:当VAR3成立且VAR1>20时,绘制红色柱状线
STICKLINE(VAR3 AND VAR1>20,波段线,0,1,0),COLORRED;



// 绘制柱线:当波段线>80时,绘制红色柱状区域
STICKLINE(波段线>80,波段线-2,波段线+2,5,0),COLORRED;

// 绘制柱线:当波段线<20时,绘制蓝色柱状区域
STICKLINE(波段线<20,波段线-2,波段线+2,5,0),COLORBLUE;

// 绘制柱线:当波段线在50-80之间时,绘制洋红色柱状区域
STICKLINE(波段线>50 AND 波段线<80,波段线-2,波段线+2,5,0),COLORMAGENTA;

// 绘制文字:当抄底信号>1时,在信号上方5单位处显示”抄底”
DRAWTEXT(抄底>1,抄底+5,'底'),COLORYELLOW;

// 绘制图标:当抄底信号>1时,在信号位置显示4号图标
DRAWICON(抄底>1,抄底,4);

// 绘制文字:当VAR4成立时,在波段线上方18单位处显示”卖”
DRAWTEXT(VAR4,波段线+18,'卖'),COLORYELLOW;

// 绘制柱线:当VAR4成立时,绘制绿色柱状线
STICKLINE(VAR4,波段线,波段线+20,1,0),COLORGREEN;

第二段:量价 + MACD 策略

DRAWGBK(CLOSE>0,RGB(0,108,108),RGB(88,0,0),1);
VOLUME:=VOL,VOLSTICK;

MAVOL5:=MA(VOLUME,5);

MAVOL21:=MA(VOLUME,21);

MAVOL65:=MA(VOLUME,65);

STICKLINE(CROSS(MAVOL5,MAVOL21),5,8,2,0),COLORWHITE;

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:=EMA(DIFF,9),COLORCYAN;

MACD:=(DIFF-DEA)*2;

周DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

周DEA:=EMA(DIFF,9),COLORCYAN;

周MACD:=2*(周DIF-周DEA);

A1:BARSLAST(DIFF< REF(DIFF,1)),COLORYELLOW,LINETHICK1,NOTEXT;

A11:A1*-1,COLORYELLOW,LINETHICK1,NOTEXT;

A2:BARSLAST(DEA< REF(DEA,1)),COLORRED,LINETHICK1,NOTEXT;

A22:A2*-1,COLORRED,LINETHICK1,NOTEXT;

//DRAWBAND(A2,RGB(150,50,20),A1,RGB(150,100,150));

FILLRGN(A2>A1,A2,A1,RGB(150,50,20));
FILLRGN(A2<A1,A2,A1,RGB(150,100,150));

//DRAWBAND(A22,RGB(150,100,150),A11,RGB(150,50,20));

FILLRGN(A22>A1,A22,A11,RGB(150,100,150));
FILLRGN(A22<A1,A22,A11,RGB(150,50,20));

STICKLINE(周MACD>REF(周MACD,1) AND 周MACD>0,-5,5,18,0),COLORRED;

STICKLINE(周MACD< REF(周MACD,1) AND 周MACD>0,-5,5,18,0),COLORYELLOW;

STICKLINE(周MACD>REF(周MACD,1) AND 周MACD< 0,-5,5,18,0),COLORRED;

STICKLINE(周MACD< REF(周MACD,1) AND 周MACD< 0,-5,5,18,0),COLORBLUE;

STICKLINE(MACD>REF(MACD,1) AND MACD>0,-3,3,3.5,1),COLORRED;

STICKLINE(MACD>REF(MACD,1) AND MACD< 0,-3,3,3.5,1),COLORRED;

STICKLINE(MACD< REF(MACD,1) AND MACD>0,-3,3,3.5,1),COLORYELLOW;

STICKLINE(MACD< REF(MACD,1) AND MACD< 0,-3,3,3.5,1),COLORBLUE;

DIIFF:=(EMA(A1,5) - EMA(A1,10));

DEAA:=EMA(DIIFF,3);

K线动能:=(DIIFF-DEAA),COLORYELLOW;

STICKLINE((K线动能 > 0),-1,1,1.5,0),COLOR0000FF;

STICKLINE((K线动能 < 0),-1,1,1.5,0),COLOR00FF00;

STICKLINE(CROSS(DIFF,DEA),0,0.04,5,1),COLORYELLOW;

STICKLINE(CROSS(DIFF,DEA),0.04,0.08,5,0),COLORRED;

STICKLINE(CROSS(DIFF,DEA),0.08,0.12,5,1),COLORYELLOW;

STICKLINE(CROSS(DIFF,DEA),0.12,0.16,4,1),COLORRED;

STICKLINE(CROSS(DIFF,DEA),0.16,0.2,3,1),COLORRED;

STICKLINE(CROSS(DIFF,DEA),0.2,0.24,2,0),COLORWHITE;

STICKLINE(CROSS(DIFF,DEA) AND DIFF< 0,A11,0,2,0),COLORRED;

STICKLINE(CROSS(DIFF,DEA) AND DIFF>0,0,A1,2,0),COLORRED;

STICKLINE(CROSS(DEA,DIFF) AND DIFF< 0,A11,0,2,0),COLORBLUE;

STICKLINE(CROSS(DEA,DIFF) AND DIFF>0,0,A1,2,0),COLORBLUE;

STICKLINE(REF(CLOSE,A1+1)>CLOSE AND DIFF>REF(DIFF,A1+1) AND CROSS(DIFF,DEA),-25,25,0.00001,0),COLORYELLOW;

STICKLINE(A1>0 AND A2>0,A2,A1,0.00001,0),COLORFFFFFF;

STICKLINE(A1>0 AND A2>0,A22,A11,0.00001,0),COLORFFFFFF;

STICKLINE(A1>0 AND A2>0,0,A1,0.000001,0),COLORFF00FF;

STICKLINE(A1>0 AND A2>0,0,A11,0.000001,0),COLORGREEN;

DRAWTEXT(CROSS(DIFF,DEA) AND DIFF< 0,-5,'〇'),COLORCYAN;

DRAWTEXT(CROSS(DIFF,DEA) AND DIFF< 0,-12,'〇'),COLORCYAN;

DRAWTEXT(CROSS(DIFF,DEA) AND DIFF>0,5,'〇'),COLORGREEN;

DRAWTEXT(CROSS(DIFF,DEA) AND DIFF>0,12,'〇'),COLORGREEN;

DRAWTEXT(A2>A1 AND A22< A11 AND A1=0 AND A11=0,A2,'∈'),COLORGREEN;

DRAWTEXT(A2>A1 AND A22< A11 AND A1=0 AND A11=0,0,'∈'),COLORGREEN;

DRAWTEXT(A2>A1 AND A22< A11 AND A1=0 AND A11=0,A22,'∈'),COLORGREEN;

STICKLINE(CROSS(DIFF,DEA) AND DIFF< 0,A11,0,2,0),COLORRED;

STICKLINE(CROSS(DIFF,DEA) AND DIFF>0,0,A1,2,0),COLORRED;

STICKLINE(CROSS(DEA,DIFF) AND DIFF< 0,A11,0,2,0),COLORBLUE;

STICKLINE(CROSS(DEA,DIFF) AND DIFF>0,0,A1,2,0),COLORBLUE;

N:=5;

M1:=5;

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;

K:=SMA(RSV,5,1);

D:=SMA(K,M1,5);

J:=3*K-2*D;

VARB2:=(RSV/2+22)*1;

量:=EMA(VOL,13);

AMOUNT:=AVPRICE*V;
资金:=EMA(AMOUNT,13);

过滤:=((资金 /量) / 100);

提纯:=(((CLOSE -过滤) / 过滤) * 100);

黄金:=((提纯 < (0)));

低买:=IF(黄金 AND RSV< VARB2-2,50,0);

高卖:=IF(黄金 AND RSV>VARB2,80,120);

上涨分界:=25;

KDJ提前金叉:(CROSS(上涨分界,低买)),COLORFF00FF,NODRAW;

DRAWTEXT(KDJ提前金叉,0,'⊙'),COLORFFFFFF;

🌟 结语:代码是市场的「翻译器」

量化交易的本质,是用代码把市场语言翻译成可执行的信号。这两段代码就像两台精密仪器:

  • 第一段用波段 + EMA 过滤捕捉中期趋势
  • 第二段用量价 + MACD+KDJ 构建多维度确认体系

在 CSDN 分享代码,不仅是技术交流,更是交易思维的碰撞~建议大家把代码导入文华 WT8,结合历史行情回测,看看这些「数字侦察兵」如何在 K 线丛林中找到交易机会吧!

💬 互动话题:你觉得哪段代码的信号最实用?或者想让我拆解哪种交易策略的代码?评论区聊聊~

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐