// 绘制K线影线(从最高价到最低价)
STICKLINE(1,H,L,COLORBLACK,0);

// 多空线:收盘价的11日双重指数移动平均,用红色粗线显示
多空线:EMA(EMA(C,11),11),COLORRED,LINETHICK2; ///////////////////可优化

// 判断多空线是否上升
B8:=多空线>REF(多空线,1);

// 如果多空线下降,则用绿色显示
IF(B8-1,多空线,NULL),COLORGREEN,LINETHICK2;

// 计算典型价格(收盘+最低+最高)/3
X1:=(CLOSE+LOW+HIGH)/3;
X2:=EMA(X1,6);  // 6日指数移动平均
X3:=EMA(X2,5);  // 5日指数移动平均
VAR2:=EMA(EMA(X1,1),13);  // 双重EMA
VAR3:=EMA(VAR2,21);  // 21日EMA

// 计算HEIKIN-ASHI(平均K线)的四个价格
XCLOSE:=EMA((OPEN+HIGH+LOW+CLOSE)/4,3);  // 平均收盘价
XOPEN:=EMA((REF(OPEN,1)+REF(XCLOSE,1))/2,3);  // 平均开盘价
TEMPG:=MAX(HIGH,XOPEN);
XHIGH:=EMA(MAX(TEMPG,XCLOSE),3);  // 平均最高价
TEMP:=MIN(LOW,XOPEN);
XLOW:=EMA(MIN(TEMP,XCLOSE),3);  // 平均最低价

// 确定K线的实体范围
O1:=IF(XOPEN<XCLOSE,XOPEN,XCLOSE);
C1:=IF(XOPEN<XCLOSE,XCLOSE,XOPEN);

// 绘制平均K线的影线(根据涨跌显示不同颜色)
STICKLINE1(XOPEN>=XCLOSE,XHIGH,XLOW,0,0 ),COLORGREEN;  // 下跌为绿色
STICKLINE1(XOPEN<XCLOSE,XHIGH,XLOW,0,0 ),COLORRED;  // 上涨为红色

AC:=CLOSE;

// 转折线相关计算
转强:=MA(HIGH,6); 
转弱:=MA(LOW,6); 
B:=CLOSE*0;  // 初始化为0
转折线:=IF(B=-1,MA(HIGH,6),MA(LOW,6)),LINETHICK2,COLORFFFFFF,NODRAW; 

// 计算多个EMA线
EM01:=EMA(C,10); 
EM:=EMA(C,21); 
UP:=EMA(EM,13); 
DOWN:=EMA(EM,17); 
MIDD:=(UP+DOWN)/2;  // 中线
MAM:=(EMA(EM01,2)+EMA(EM01,5))/2;  // 移动平均组合

// 根据MIDD方向绘制实体K线
STICKLINE(MIDD>REF(MIDD,1),C1,O1,8,0),COLORRED;  // 上涨红色实体
STICKLINE(MIDD<=REF(MIDD,1),C1,O1,8,0),COLORGREEN;  // 下跌绿色实体

// 神龙多空线系统
X18:=(CLOSE+LOW+HIGH+OPEN)/4;  // 四价平均
X28:=EMA(X18,6);
X38:=EMA(X28,2);
VAR200:=EMA(EMA(X18,1),18);
VAR300:=EMA(VAR200,18);
O100:=IF(XOPEN<XCLOSE,XOPEN,XCLOSE);
C100:=IF(XOPEN<XCLOSE,XCLOSE,XOPEN);

// 神龙线:40日均线的60日EMA
神龙线:EMA(MA(C,40),43),LINETHICK1,COLORYELLOW; ///////////////////可优化25/39

// 显示图标
DRAWICON((神龙线>=XCLOSE),神龙线,'ICO11'),VALIGN2,ALIGN1;
DRAWICON((神龙线<XCLOSE),神龙线,'ICO10'),VALIGN0,ALIGN1;

// 设置背景颜色
DRAWGBK(神龙线<XCLOSE,COLOR000000,COLOR2F0000,0);  // 做多背景
DRAWGBK(神龙线>=XCLOSE,COLOR000000,COLOR140A45,0);  // 做空背景

// 变色K线系统(根据MIDD方向)
STICKLINE1(MIDD<=REF(MIDD,1),XHIGH,XLOW,0,0 ),COLOR00FFFF;  // 下跌影线
STICKLINE1(MIDD<=REF(MIDD,1),C1,O1,3.2,0),COLOR008888;  // 多层实体
STICKLINE1(MIDD<=REF(MIDD,1),C1,O1,2.6,0),COLOR00AAAA;
STICKLINE1(MIDD<=REF(MIDD,1),C1,O1,1.9,0),COLOR00CCCC;
STICKLINE1(MIDD<=REF(MIDD,1),C1,O1,1.1,0),COLOR00FFFF;
STICKLINE1(MIDD<=REF(MIDD,1),C1,O1,0.3,0),COLOR00FFFF;

STICKLINE1(MIDD>REF(MIDD,1),XHIGH,XLOW,0,0 ),COLORRED;  // 上涨影线
STICKLINE1(MIDD>REF(MIDD,1),C1,O1,3.2,0),COLOR890107;  // 多层实体
STICKLINE1(MIDD>REF(MIDD,1),C1,O1,2.6,0),COLORBC010B;
STICKLINE1(MIDD>REF(MIDD,1),C1,O1,2,0),COLORE0010D;
STICKLINE1(MIDD>REF(MIDD,1),C1,O1,1,0),COLORFE010E;
STICKLINE1(MIDD>REF(MIDD,1),C1,O1,0.3,0),COLORFE2934;

// 高低点转折文字提示
HH:=HHV(HIGH,22);  // 22日最高价
LL:=LLV(LOW,22);   // 22日最低价
HH3:=HHV(HIGH,14);
LL3:=LLV(LOW,14);
HH1:=BARSLAST((HH>REF(HH,1)));  // 上次创新高的周期数
LL1:=BARSLAST((LL<REF(LL,1)));  // 上次创新低的周期数

// 支撑阻力系统
N:=5;
VAR1:=(HIGH+LOW+CLOSE)/3;  // 典型价格
MA1:=REF(SMA(VAR1,5,1),3);  // 平滑移动平均
MA2:=REF(SMA(VAR1,8,1),5);
H1:=HHV(HIGH,N);  // N日最高
L1:=LLV(LOW,N);   // N日最低
H2:=HHV(HIGH,N-1);
L2:=LLV(LOW,N-1);
XD:=LOW=L1;  // 是否创新低
SZ:=HIGH=H1;  // 是否创新高
XDT:=BARSLAST(XD);  // 上次创新低的周期数
SZT:=BARSLAST(SZ);  // 上次创新高的周期数

// 判断多空状态
DT:=SZT<XDT OR (SZT=XDT AND REF(SZT,1)>REF(XDT,1));  // 多头状态
KT:=XDT<SZT OR (SZT=XDT AND REF(XDT,1)>REF(SZT,1));  // 空头状态
DTT:=BARSLAST(DT);  // 上次多头状态以来的周期
KTT:=BARSLAST(KT);  // 上次空头状态以来的周期
FH:=CROSS(KTT,DTT);  // 转空信号
FL:=CROSS(DTT,KTT);  // 转多信号
FHT:=BARSLAST(FH);  // 上次转空以来的周期
FLT:=BARSLAST(FL);  // 上次转多以来的周期

// 计算支撑阻力位
GD:=IF(FL,HHV(HIGH,FHT+1),0);  // 阻力位
DD:=IF(FH,LLV(LOW,FLT+1),0);   // 支撑位
SG:=REF(GD,FLT),POINTDOT,LINETHICK4,RGB(0,128,255),DOT;  // 阻力线
XG:=REF(DD,FHT),POINTDOT,LINETHICK4,COLORWHITE,DOT;      // 支撑线

// RSI超买超卖提示
LC:=REF(CLOSE,1);
WRSI:=SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100;  // RSI计算

// RSI极值点图标
LC8:=REF(CLOSE,1);
WRSI8:=SMA(MAX(CLOSE-LC8,0),6,1)/SMA(ABS(CLOSE-LC8),6,1)*100;
DRAWICON(CROSS(WRSI8,10),L,'ICO153'),VALIGN0;   // RSI超卖图标
DRAWICON(CROSS(90,WRSI8),H,'ICO152'),VALIGN2;   // RSI超买图标

抛物线红状态:神龙线<XCLOSE,NODRAW;
抛物线绿状态:神龙线>=XCLOSE,NODRAW;
抛物线转红:CROSS(神龙线<XCLOSE,0.5),NODRAW;

// K线颜色变化声音提示
K线红状态:MIDD>REF(MIDD,1),NODRAW;
K线绿状态:MIDD<=REF(MIDD,1),NODRAW;
K线转红:CROSS(MIDD>REF(MIDD,1),0.5),NODRAW;
K线转绿:CROSS(MIDD<=REF(MIDD,1),0.5),NODRAW;

// ================== 优化部分开始 ==================

// 1. 增加趋势质量过滤器
TR1:=MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))); 
TR2:=MAX(TR1,ABS(LOW-REF(CLOSE,1))); 
ATR:=MA(TR2,14);
价格波动率:=ATR/CLOSE*100; 
低波动率:=价格波动率<2.5; // 过滤过度波动的市场

// 2. 增加成交量确认
VOL_MA:=MA(VOL,20);
成交量放大:=VOL>VOL_MA*1.2; // 成交量需要放大 

// 3. 优化多空状态判断 - 增加更多确认条件
多头状态:=(MIDD>REF(MIDD,1)) AND (LL1>HH1) AND (神龙线<XCLOSE) ;  //AND (CLOSE > 多空线+MINPRICE) AND 低波动率; 
空头状态:=(MIDD<=REF(MIDD,1)) AND (HH1>LL1) AND (神龙线>=XCLOSE) ;  // AND (CLOSE < 多空线-MINPRICE) AND 低波动率; 

// 4. 简化连续亏损检测(符合文华语法)
VAR1_连续亏损计数:=0;
VAR2_上次盈利:=0;

// 价格通道用于出场
价格通道上轨:=HHV(HIGH,3); ///////////////////可优化
价格通道下轨:=LLV(LOW,2); ///////////////////可优化
价格通道中轨:=(价格通道上轨+价格通道下轨)/2;

绿点线价格:=REF(GD, FLT); // 绿色点线价格
红点线价格:=REF(DD, FHT); // 红色点线价格

绿点线状态:=GD; // 绿色点线价格
红点线状态:=DD; // 红色点线价格

转空信号:=CROSS(HH1,LL1);   // 即出现"转空"文字的条件
转多信号:=CROSS(LL1,HH1);   // 即出现"转多"文字的条件

转空状态:=HH1>LL1;   // 即出现"转空"文字的条件
转多状态:=LL1>HH1;   // 即出现"转多"文字的条件

// 保留原有文字标记并添加红色实体向上箭头
DRAWICON(转多信号,LOW,'ICO112'),VALIGN0,ALIGN1;  // 添加红色向上箭头

// 保留原有文字标记并添加绿色实体向下箭头
DRAWICON(转空信号,HIGH,'ICO113'),VALIGN2,ALIGN1;  // 添加绿色向下箭头

非多头信号:=NOT(多头状态) AND REF(多头状态,1);
非空头信号:=NOT(空头状态) AND REF(空头状态,1);

// 保留原有文字标记并添加红色实体圆点
DRAWICON(非多头信号,HIGH,'ICO114'),VALIGN0,ALIGN1;  // 添加红色圆点

// 保留原有文字标记并添加绿色实体圆点
DRAWICON(非空头信号,LOW,'ICO115'),VALIGN2,ALIGN1;  // 添加绿色圆点

// 添加的代码开始
// 定义当前绿点线价格(阻力线)和红点线价格(支撑线)
当前绿点线:=REF(GD,FLT);
当前红点线:=REF(DD,FHT);

// 1. 收盘价大于绿点线状态(突破阻力)
突破绿点线条件:=CROSS(CLOSE,当前绿点线) AND 当前绿点线>0;

// 2. 收盘价小于红点线状态(跌破支撑)
突破红点线条件:=CROSS(当前红点线,CLOSE) AND 当前红点线>0;

HON:=MIDD>REF(MIDD,1);
LAN:=MIDD<=REF(MIDD,1);
ZD:=BARSLAST(CROSS(LL1,HH1))<BARSLAST(CROSS(HH1,LL1));
ZK:=BARSLAST(CROSS(LL1,HH1))>BARSLAST(CROSS(HH1,LL1));
KZZ:=(神龙线>=XCLOSE);
DZZ:=(神龙线<XCLOSE);

//去均线MA函数值预警
MB1:INTPART(MA(CLOSE,25)); // 有均线MA函数值预警:MB1:=INTPART(MA(CLOSE,30)); ,计算30日收盘价移动平均线的整数部分,赋值给变量MB1
CONDUPS:=IF(CROSS(REF(CLOSE,1),MB1) AND MB1>REF(MB1,1),1,0); // 当昨日收盘价上穿MB1 且 当前MB1值大于前一日MB1值时,条件成立标记为1,否则为0
CONDDOWNS:=IF(CROSSDOWN(REF(CLOSE,1),MB1) AND MB1<REF(MB1,1),1,0); // 当昨日收盘价下穿MB1 且 当前MB1值小于前一日MB1值时,条件成立标记为1,否则为0
CONDUP:=IF(CLOSE>MB1 AND MB1>REF(MB1,1),1,0); // 当当前收盘价大于MB1 且 MB1值大于前一日MB1值时,条件成立标记为1,否则为0
CONDDOWN:=IF(C<MB1 AND MB1<REF(MB1,1),1,0); // 当当前收盘价小于MB1 且 MB1值小于前一日MB1值时,条件成立标记为1,否则为0
DRAWICON(CONDUP,C,4); // 当CONDUP条件满足时,在当前K线收盘价位置绘制4号图标(通常为向上箭头)
DRAWICON(CONDDOWN,C,5); // 当CONDDOWN条件满足时,在当前K线收盘价位置绘制5号图标(通常为向下箭头)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 多单交易逻辑 1、1、80、1
开多条件1:=HON AND ZD AND DZZ  && CLOSE >= 多空线+1*MINPRICE && MB1> REF(MB1,1)+1*MINPRICE  ;  // ; //
开多条件5:= CLOSE >=99999 ; //指定价格开仓

平多条件2:=空头状态; //多单止损

平多条件4:= MB1< REF(MB1,1)-1*MINPRICE  ;

平多条件6:= CLOSE >= 99999; //指定价格平仓

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 空单交易逻辑 1、1、60、13
开空条件1:=LAN AND ZK AND KZZ  && CLOSE <= 多空线-1*MINPRICE && MB1< REF(MB1,1)-1*MINPRICE  ;   // ; //
开空条件5:= CLOSE <= 99 ; //指定价格开仓

平空条件2:=多头状态 ; //空单止

平空条件4:= MB1> REF(MB1,1)+13*MINPRICE  ; //42、46、9、11、12、14、15、17、18、20、21、23、24、30、34、47、44、

平空条件6:=CLOSE <= 99; //指定价格平仓

作者 admin

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

发表回复

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