请教老师看看 (文华财经WH6赢顺V6.7)

投资者咨询:请教老师看看 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-5-28 14:50
 //基于均线的阻力线支撑线系统
//策略说明:本策略基于价格与均线建立了一套可变的支撑线阻力线系统, 通过价格与支撑线阻力线的关系进行交易
//系统要素:
//均线与价格组成的支撑线阻力线系统
//1. 当价格死叉均线时, 上根K线的低点为支撑线初始化, 当价格金叉均线时, 上根K线的高点为阻力线初始化
//2. 当价格低于均线时不断更新支撑线, 当价格高于均线时不断更新阻力线
//3. 当价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线, 当价格死叉均线又金叉均线时记录上根支撑线作为做空的价格线
//入场条件:
//1. 当价格高于做多的价格线时做多
//2. 当价格低于做空的价格线时做空
//出场条件: 
//1. 基于ATR的保护性止损
//2. 基于ATR的跟踪止损
//

//参数:
//MALENGTH:1  100  10  均线值
//ATRLENGTH:1  5  1.2  ATR的值
//PROTECT:0  1  0.5  保护性止损的ATR乘数
//TRAIL:1  10  2.5  跟踪止损的ATR乘数

//系统设置
//均线与ATR计算
MA1:=MA(C,MALENGTH);
TRUEHIGH:=IF(HIGH>REF(C,1),HIGH,REF(C,1));
TRUELOW:=IF(LOW<=REF(C,1),LOW,REF(C,1));
TRUERANGE:=IF(ISLASTBAR,H-L,TRUEHIGH-TRUELOW);
ATR:=MA(TRUERANGE,ATRLENGTH);//定义ATR
//计算入场线
//1.当价格死叉均线时, 上根K线的低点为支撑线初始化, 当价格金叉均线时, 上根K线的高点为阻力线初始化
//2.当价格低于均线时不断更新支撑线, 当价格高于均线时不断更新阻力线
//3.当价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线
CROSSFLAGFORL:=CROSSDOWN(C,MA1);
CROSSFLAGFORS:=CROSSUP(C,MA1);
SUPPORTFLAG:=LOOP2(CROSSFLAGFORL=1,1,LOOP2(CROSSFLAGFORS=1&&REF(SUPPORTFLAG,1)=1,0,1));
RESISTANCEFLAG:=LOOP2(CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1,0,LOOP2(CROSSFLAGFORS=1,1,0));
RESISTANCELINE:=LOOP2((CROSSFLAGFORS=1&&REF(SUPPORTFLAG,1)=1&&REF(RESISTANCEFLAG,2)=0)||(C>MA1&&HIGH>REF(RESISTANCELINE,1)),HIGH,NULL);
ENTRYPRICEL:=LOOP2(CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1&&REF(SUPPORTFLAG,2)=0,REF(RESISTANCELINE,1),NULL);
SUPPORTLINE:=LOOP2((CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1&&REF(SUPPORTFLAG,2)=0)||(C<MA1&&LOW<REF(SUPPORTLINE,1)),LOW,NULL);
//系统入场
//当上根K线的收盘价格金叉多头入场价格线后, 在本根K线开盘价做多
//当上根K线的收盘价格死叉空头入场价格线后, 在本根K线开盘价做空
BKVOL<=0&&REF(ENTRYPRICEL,1)<>0&&REF(ENTRYPRICEL,2)<>0&&REF(C,2)<REF(ENTRYPRICEL,2)&&REF(C,1)>=REF(ENTRYPRICEL,1)&&VOL>0,BK;
SETSIGPRICETYPE(BK,OPEN);
PROTECTSTOPL:=VALUEWHEN(BKVOL<0&&REF(ENTRYPRICEL,1)<>0&&REF(ENTRYPRICEL,2)<>0,REF(L,1)-PROTECT*REF(ATR,1));//基于ATR的保护性止损
SKVOL<=0&&REF(SKPRICE,1)<>0&&REF(SKPRICE,2)<>0&&REF(C,2)>REF(SKPRICE,2)&&REF(C,1)<=REF(SKPRICE,1)&&VOL>0,SK;
SETSIGPRICETYPE(SK,OPEN);
PROTECTSTOPS:=VALUEWHEN(SKVOL<=0&&REF(SKPRICE,1)<>0&&REF(SKPRICE,2)<>0,REF(HIGH,1)+PROTECT*REF(ATR,1));//基于ATR的保护性止损
//系统出场
//基于ATR的跟踪止损
TRAILSTOPL:=REF(BKHIGH,1)-TRAIL*REF(ATR,1);
BKVOL>0&&REF(BKVOL,1)=1&&VOL>0&&L<=REF(PROTECTSTOPL,1)&&REF(PROTECTSTOPL,1)>=TRAILSTOPL,SP;
SETSIGPRICETYPE(SP,MIN(OPEN,REF(PROTECTSTOPL,1)));//基于ATR的保护性止损
BKVOL>0&&REF(BKVOL,1)=1&&VOL>0&&L<=TRAILSTOPL,SP;
SETSIGPRICETYPE(SP,MIN(OPEN,TRAILSTOPL));
TRAILSTOPS:=REF(SKLOW,1)+TRAIL*REF(ATR,1);
SKVOL>0&&REF(SKVOL,1)>0&&VOL>0&&H>=REF(PROTECTSTOPS,1)&&REF(PROTECTSTOPS,1)<=TRAILSTOPS,BP;//基于ATR的保护性止损
SETSIGPRICETYPE(BP,MAX(OPEN,REF(PROTECTSTOPS,1)));
SKVOL>0&&REF(SKVOL,1)>0&&VOL>0&&H>=TRAILSTOPS,BP;
SETSIGPRICETYPE(BP,MAX(OPEN, TRAILSTOPS));
AUTOFILTER;
文华8代码没有信号请老师看一下是哪的问题??
技术人员回复
日期:2018-5-28 15:22

参考:

 


MALENGTH:=10;
ATRLENGTH:=1.2;
PROTECT:=0.5;
TRAIL:=2.5;
//系统设置
//均线与ATR计算
MA1:=MA(C,MALENGTH);
TRUEHIGH:=IF(HIGH>REF(C,1),HIGH,REF(C,1));
TRUELOW:=IF(LOW<=REF(C,1),LOW,REF(C,1));
TRUERANGE:=IF(ISLASTBAR,H-L,TRUEHIGH-TRUELOW);
ATR:=MA(TRUERANGE,ATRLENGTH);//定义ATR
//计算入场线
//1.当价格死叉均线时, 上根K线的低点为支撑线初始化, 当价格金叉均线时, 上根K线的高点为阻力线初始化
//2.当价格低于均线时不断更新支撑线, 当价格高于均线时不断更新阻力线
//3.当价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线
CROSSFLAGFORL:=CROSSDOWN(C,MA1);
CROSSFLAGFORS:=CROSSUP(C,MA1);
SUPPORTFLAG:LOOP2(CROSSFLAGFORL=1,1,LOOP2(CROSSFLAGFORS=1&&REF(SUPPORTFLAG,1)=1,0,1));
RESISTANCEFLAG:LOOP2(CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1,0,LOOP2(CROSSFLAGFORS=1,1,0));
RESISTANCELINE:LOOP2((CROSSFLAGFORS=1&&REF(SUPPORTFLAG,1)=1&&REF(RESISTANCEFLAG,2)=0)||(C>MA1&&HIGH>REF(RESISTANCELINE,1)),HIGH,NULL);
ENTRYPRICEL:LOOP2(CROSSFLAGFORL=1,REF(RESISTANCELINE,1),REF(ENTRYPRICEL,1));
//ENTRYPRICEL:=LOOP2(CROSSFLAGFORL=1&&REF(RESISTANCEFLAG,1)=1&&REF(SUPPORTFLAG,2)=0,REF(RESISTANCELINE,1),NULL);
SUPPORTLINE:LOOP2((CROSSFLAGFORL=1)||(C<MA1&&LOW<REF(SUPPORTLINE,1)),LOW,NULL);
//系统入场
//当上根K线的收盘价格金叉多头入场价格线后, 在本根K线开盘价做多
//当上根K线的收盘价格死叉空头入场价格线后, 在本根K线开盘价做空
BKVOL<=0&&REF(ENTRYPRICEL,1)<>0&&REF(ENTRYPRICEL,2)<>0&&REF(C,2)<REF(ENTRYPRICEL,2)&&REF(C,1)>=REF(ENTRYPRICEL,1)&&VOL>0,BK;
SETSIGPRICETYPE(BK,OPEN);
PROTECTSTOPL:=VALUEWHEN(BKVOL<0&&REF(ENTRYPRICEL,1)<>0&&REF(ENTRYPRICEL,2)<>0,REF(L,1)-PROTECT*REF(ATR,1));//基于ATR的保护性止损
SKVOL<=0&&REF(SKPRICE,1)<>0&&REF(SKPRICE,2)<>0&&REF(C,2)>REF(SKPRICE,2)&&REF(C,1)<=REF(SKPRICE,1)&&VOL>0,SK;
SETSIGPRICETYPE(SK,OPEN);
PROTECTSTOPS:=VALUEWHEN(SKVOL<=0&&REF(SKPRICE,1)<>0&&REF(SKPRICE,2)<>0,REF(HIGH,1)+PROTECT*REF(ATR,1));//基于ATR的保护性止损
//系统出场
//基于ATR的跟踪止损
TRAILSTOPL:=REF(BKHIGH,1)-TRAIL*REF(ATR,1);
BKVOL>0&&REF(BKVOL,1)=1&&VOL>0&&L<=REF(PROTECTSTOPL,1)&&REF(PROTECTSTOPL,1)>=TRAILSTOPL,SP;
SETSIGPRICETYPE(SP,MIN(OPEN,REF(PROTECTSTOPL,1)));//基于ATR的保护性止损
BKVOL>0&&REF(BKVOL,1)=1&&VOL>0&&L<=TRAILSTOPL,SP;
SETSIGPRICETYPE(SP,MIN(OPEN,TRAILSTOPL));
TRAILSTOPS:=REF(SKLOW,1)+TRAIL*REF(ATR,1);
SKVOL>0&&REF(SKVOL,1)>0&&VOL>0&&H>=REF(PROTECTSTOPS,1)&&REF(PROTECTSTOPS,1)<=TRAILSTOPS,BP;//基于ATR的保护性止损
SETSIGPRICETYPE(BP,MAX(OPEN,REF(PROTECTSTOPS,1)));
SKVOL>0&&REF(SKVOL,1)>0&&VOL>0&&H>=TRAILSTOPS,BP;
SETSIGPRICETYPE(BP,MAX(OPEN, TRAILSTOPS));
AUTOFILTER;