文华财经6源码:

  // BOLL多空交易系统
N:=20;         // BOLL周期
P:=2;          // BOLL宽度参数
M1:=12;        // MACD快线
M2:=26;        // MACD慢线
M3:=9;         // MACD信号线
KDN:=9;        // KD周期

// BOLL指标计算
MID:=MA(CLOSE,N);
UPPER:=MID+P*STD(CLOSE,N);
LOWER:=MID-P*STD(CLOSE,N);

// BOLL方向判断
BOLL_UP:=MID>REF(MID,1);      // 中轨向上
BOLL_DOWN:=MID<REF(MID,1);    // 中轨向下
// 三线收敛判断(简化版)
BOLL_FLAT:=ABS(MID-REF(MID,1))/MID<0.002 AND ABS(UPPER-REF(UPPER,1))/UPPER<0.002 AND ABS(LOWER-REF(LOWER,1))/LOWER<0.002;

// 斜率判断(规则10)
MID_SLOPE:=(MID-REF(MID,3))/REF(MID,3)*100;  // 3周期斜率
NO_DOWN_SLOPE:=BOLL_UP AND MID_SLOPE>=-1;    // 中轨向上且无较大向下斜率
NO_UP_SLOPE:=BOLL_DOWN AND MID_SLOPE<=1;     // 中轨向下且无较大向上斜率

// MACD计算
DIF:=EMA(CLOSE,M1)-EMA(CLOSE,M2);
DEA:=EMA(DIF,M3);
MACD_GOLD:=CROSS(DIF,DEA);  // MACD金叉
MACD_DEAD:=CROSS(DEA,DIF);  // MACD死叉

// KD计算
RSV:=(CLOSE-LLV(LOW,KDN))/(HHV(HIGH,KDN)-LLV(LOW,KDN))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
KD_LOW:=K<20 AND D<20;      // KD在20附近
KD_HIGH:=K>80 AND D>80;     // KD在80附近

// 开多信号(整合所有规则)
// 规则5:中轨向上,上穿或回踩中轨开多且KD在20附近
BUY1:=NO_DOWN_SLOPE AND (CROSS(CLOSE,MID) OR (LOW<=MID AND CLOSE>=MID)) AND KD_LOW;
// 规则4:收敛突破,上穿上轨且MACD金叉
BUY2:=BOLL_FLAT AND CROSS(CLOSE,UPPER) AND MACD_GOLD;
// 规则6:三线走平,下轨开多
BUY3:=BOLL_FLAT AND CROSS(CLOSE,LOWER);
BUY_SIGNAL:=BUY1 OR BUY2 OR BUY3;

// 开空信号(整合所有规则)
// 规则5:中轨向下,下穿或未有效突破中轨开空且KD在80附近
SELL1:=NO_UP_SLOPE AND (CROSS(MID,CLOSE) OR (HIGH>=MID AND CLOSE<=MID)) AND KD_HIGH;
// 规则4:收敛突破,下穿下轨且MACD死叉
SELL2:=BOLL_FLAT AND CROSS(LOWER,CLOSE) AND MACD_DEAD;
// 规则6:三线走平,上轨开空
SELL3:=BOLL_FLAT AND CROSS(UPPER,CLOSE);
SELL_SIGNAL:=SELL1 OR SELL2 OR SELL3;

// 平仓信号定义
// 多单平仓
CLOSE_LONG1:=BOLL_UP AND CROSS(CLOSE,UPPER);      // 规则2:中轨向上,上轨卖出
CLOSE_LONG2:=BOLL_DOWN AND CROSS(MID,CLOSE);      // 规则2:中轨向下,中轨平多
CLOSE_LONG3:=BOLL_FLAT AND CROSS(CLOSE,UPPER);    // 规则6:三线走平,上轨平多

// 空单平仓
CLOSE_SHORT1:=BOLL_DOWN AND CROSS(LOWER,CLOSE);   // 规则2:中轨向下,下轨买入
CLOSE_SHORT2:=BOLL_UP AND CROSS(CLOSE,MID);       // 规则2:中轨向上,中轨平空
CLOSE_SHORT3:=BOLL_FLAT AND CROSS(LOWER,CLOSE);   // 规则6:三线走平,下轨平空

// 持仓状态判断(规则9)
VAR_LAST_BUY:=BARSLAST(BUY_SIGNAL);
VAR_LAST_SELL:=BARSLAST(SELL_SIGNAL);
VAR_LAST_CLOSE_LONG:=BARSLAST(CLOSE_LONG1 OR CLOSE_LONG2 OR CLOSE_LONG3);
VAR_LAST_CLOSE_SHORT:=BARSLAST(CLOSE_SHORT1 OR CLOSE_SHORT2 OR CLOSE_SHORT3);

// 当前持仓状态
IN_LONG:=VAR_LAST_BUY<VAR_LAST_SELL AND VAR_LAST_BUY<VAR_LAST_CLOSE_LONG;
IN_SHORT:=VAR_LAST_SELL<VAR_LAST_BUY AND VAR_LAST_SELL<VAR_LAST_CLOSE_SHORT;

// 有效的平仓信号
CLOSE_LONG_VALID:=IN_LONG AND (CLOSE_LONG1 OR CLOSE_LONG2 OR CLOSE_LONG3);
CLOSE_SHORT_VALID:=IN_SHORT AND (CLOSE_SHORT1 OR CLOSE_SHORT2 OR CLOSE_SHORT3);

// 绘图 - BOLL通道
// 7.BOLL中轨方向向上线用红色,BOLL中轨向下用绿色,走平用白色
MID_UP:IF(BOLL_UP AND NOT(BOLL_FLAT),MID,NULL),COLORRED,LINETHICK2;
MID_DOWN:IF(BOLL_DOWN AND NOT(BOLL_FLAT),MID,NULL),COLORGREEN,LINETHICK2;
MID_FLAT:IF(BOLL_FLAT,MID,NULL),COLORWHITE,LINETHICK2;

UPPER,COLORGRAY,LINETHICK1;
LOWER,COLORGRAY,LINETHICK1;

// 8.提示不要箭头,笑脸,只用"多","空","多平","空平"
// 开仓信号
DRAWTEXT(BUY_SIGNAL,LOW,'多'),COLORRED,ALIGN0;
DRAWTEXT(SELL_SIGNAL,HIGH,'空'),COLORGREEN,ALIGN0;

// 9."多"后第一个提示一定是符合标准的"多平",剔除无效提示
// 平仓信号
DRAWTEXT(CLOSE_LONG_VALID,HIGH,'多平'),COLORCYAN,ALIGN0;
DRAWTEXT(CLOSE_SHORT_VALID,LOW,'空平'),COLORMAGENTA,ALIGN0;

// 方向提示文字
DRAWTEXT(FILTER(BOLL_UP AND NOT(BOLL_FLAT),N),LOWER*0.998,'↗多趋势'),COLORRED;
DRAWTEXT(FILTER(BOLL_DOWN AND NOT(BOLL_FLAT),N),UPPER*1.002,'↘空趋势'),COLORGREEN;
DRAWTEXT(FILTER(BOLL_FLAT,N),MID,'收敛'),COLORYELLOW;

// 斜率状态提示
DRAWTEXT(NO_DOWN_SLOPE,MID*1.002,'只多'),COLORRED;
DRAWTEXT(NO_UP_SLOPE ,MID*0.998,'只空'),COLORGREEN;

// K线图
STICKLINE1(CLOSE>OPEN,CLOSE,OPEN,3,0),COLORRED;
STICKLINE1(CLOSE<=OPEN,CLOSE,OPEN,3,0),COLORGREEN;

作者 admin

九稳量化交易系统 是一套高胜率策略趋势跟踪系统,系统最大优势就是开仓位置精确,信号不漂移 不延迟 同步行情信号 拒绝马后面!www.gao998.cn 微信 fxfx668998

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注