-- 作者:黄金精算师
-- 发布时间:2015/3/3 16:21:03
--
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!! //此策略以当前价格突破为进场条件,进场之后记录价格变动的最高、最低,并计算回撤点数,当参数设置启动了回撤止盈时,符合条件就会平仓。 //有止损设置,赚钱超过3点时,如果价格回撤,系统会保留1.2点的盈利退出,这样至少可以保住手续费。 //作者:GUOTX2010 日期:2011-03-21
//参数定义 EMA13:=EMA(C,10),COLORWHITE; EMA21:=EMA(C,21),COLORYELLOW; EMA34:=EMA(C,34),COLORFF00FF; EMA60:=MA(C,55),COLORFFCC66; X1:=(C+L+H)/3; X2:=EMA(X1,5); X3:=EMA(X2,4); STICKLINE(X2>X3 AND C>EMA13,LOW,HIGH,0.1,1),COLORRED; STICKLINE(X2>X3 AND C>EMA13,CLOSE,OPEN,3,1),COLORRED; STICKLINE(X2<X3 AND C<EMA13,LOW,HIGH,0.1,1),COLORFFFF52; STICKLINE(X2<X3 AND C<EMA13,CLOSE,OPEN,3,0),COLORFFFF52; BUY1:=FILTER(X2>X3 AND C>EMA13,4); SELL1:=FILTER(X2<X3 AND C<EMA13,4); //使用系列模式时 //{开多} ENTERLONG:BUY1,TFILTER; //{平多}EXITLONG:SELL1 ,TFILTER; // //{开空}ENTERSHORT:SELL1 ,TFILTER; //{平空}EXITSHORT:BUY1 ,TFILTER; //使用逐K线模式时 VARIABLE:DUOKONG=0; TSFS:=0; {停损反手,1-反手 0-不反手} ORDVOL:=1; {开仓手数} ZSDS:=10; {止损点数} //以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0 VARIABLE:YDZY=1; {移动止盈总开关,1为开,0为关} VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价} VARIABLE:DHCDS=3,KHCDS=3; {多、空单回撤点数} VARIABLE:DYLDS=7,KYLDS=7; {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓} VARIABLE:Z3B1:=1; {赚3保1开关} DUOKONG:=1; //持有空单 IF HOLDING<0 THEN BEGIN IF BUY1 THEN BEGIN //平空单 空平:SELLSHORT(1,0,MKT),ORDERQUEUE; END //止损 IF C-ENTERPRICE>=ZSDS THEN BEGIN 空损:SELLSHORT(1,0,MKT),ORDERQUEUE; END //移动止盈 IF YDZY=1 THEN BEGIN //每周期判断是否创新低 IF L<LOWPRICE THEN BEGIN LOWPRICE:=L; END //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利 IF ENTERPRICE-LOWPRICE>=KYLDS THEN BEGIN IF L-LOWPRICE>=KHCDS THEN BEGIN //回撤超过3点 空赢:SELLSHORT(1,0,MARKET); END END END //赚3保1 IF Z3B1=1 THEN BEGIN IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN IF ENTERPRICE-L<=1.2 THEN BEGIN 空保:SELLSHORT(1,0,MARKET); END END END END //开多单 IF HOLDING=0 THEN BEGIN IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN IF BUY1 THEN BEGIN 多开:BUY(1=1,ORDVOL,MKT); HIGHPRICE:=ENTERPRICE; //将开仓价保存到最高价 END END END //持有多单 IF HOLDING>0 THEN BEGIN IF SELL1 THEN BEGIN {平多单} 多平:SELL(1,0,MKT),ORDERQUEUE; END //多单管理 //止损 IF ENTERPRICE-C>=ZSDS THEN BEGIN 多损:SELL(1,0,MKT),ORDERQUEUE; END //移动止盈 IF YDZY=1 THEN BEGIN //每周期判断是否创新高 IF H>HIGHPRICE THEN BEGIN HIGHPRICE:=H; END //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利 IF HIGHPRICE-ENTERPRICE>=DYLDS THEN BEGIN IF HIGHPRICE-H>=DHCDS THEN BEGIN //回撤超过3点 多赢:SELL(1,0,MARKET); END END END //赚3保1 IF Z3B1=1 THEN BEGIN IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN IF H-ENTERPRICE<=1.2 THEN BEGIN 多保:SELL(1,0,MARKET); END END END END //开空单 IF HOLDING=0 THEN BEGIN IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN IF SELL1 THEN BEGIN 空开:BUYSHORT(1=1,ORDVOL,MKT); LOWPRICE:=ENTERPRICE; END END END
当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY;
*********************************************************************************上面是系统带的程序,模拟图表测试正常 如果这里不能正常编译,那我在什么样的环境下编译呢,下面是系统另一个能过过的后台程序
**************************************************************************************
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!! //该模型运行于后台程序化模式
ZH1:\'1000\'; PZ1:\'IF00\'; VARIABLE:A=0;
//条件判断 MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); CONDBUY:=CROSS(MA5,MA10); CONDSELL:=CROSS(MA10,MA5);
//控制日内交易次数 IF TTOTALDAYTRADE>=300 THEN EXIT;
//开仓和平仓 TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,LMT,CLOSE,0,ZH1,PZ1 ); TSELL(CONDSELL,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1);
//加仓 IF TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10 THEN BEGIN 阳线加仓:TBUY(CLOSE>OPEN,2,LMT,CLOSE,ZH1,PZ1); 阴线加仓:TBUY(CLOSE<OPEN,1,LMT,CLOSE,ZH1,PZ1); END
//固定止损止盈 IF DYNAINFO( 7)-TAVGENTERPRICEEX2(ZH1 ,PZ1 ,0 )>20*MINDIFF THEN BEGIN TSELL(1,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1); END //止损 IF TAVGENTERPRICEEX2(ZH1 ,PZ1 ,0 )-C>10*MINDIFF THEN BEGIN TSELL(1,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1); END
//监控未成交单 WCJ:=TREMAINQTY( 1, ZH1,PZ1); IF WCJ<>0 THEN BEGIN A:=WCJ; END
//对为成交单撤单,并追单 IF WCJ>0 THEN BEGIN TCANCELEX(1,1,ZH1,PZ1 ); TBUY(WCJ=0,A,MKT,0,ZH1,PZ1); END
//监控持仓和资金状况 当前持仓量:=TBUYHOLDINGEX( ZH1,PZ1 ,0 ); 当前可用资金:=TACCOUNT(19); DEBUGOUT(\'当前持仓量%.2f\',当前持仓量 ); DEBUGOUT(\'当前可用资金%.2f\',当前可用资金 );
//收盘前强平 IF CURRENTTIME>=150000 THEN BEGIN TSELL(1,0,MKT,0,ZH1,PZ1); END
|