
等级: 新手上路
- 注册:
- 2025-3-22
- 曾用名:
|

楼主 |
发表于 2025-3-31 14:49
|
显示全部楼层
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//此策略以当前价格突破为进场条件,进场之后记录价格变动的最高、最低,并计算回撤点数,当参数设置启动了回撤止盈时,符合条件就会平仓。
//有止损设置,赚钱超过3点时,如果价格回撤,系统会保留1.2点的盈利退出,这样至少可以保住手续费。
//作者:GUOTX2010 日期:2011-03-21
//参数定义
INPUT: ZJBJD(4,3,5,1),ZJBJX(2,1,3,1);//专几保几参数
INPUT: HCDSX(3,2,6,1),YLDSD(7,3,10,1);//回撤赢1
INPUT: KZHCX(4,3,12,1),KZHCQBD(12,7,28,1);//回撤赢2
INPUT: JXZSZQ(40,20,120,5);//3周期均线控制回撤
//定义全局变量并计算显示,日均线
均价:ROUNDS(IF(sum(vol,todaybar)=0,C,sum(C*vol,todaybar)/sum(vol,todaybar)),2+(4-INTPART(LOG(C)))),colorred;
//CALLSTOCK()调用K线数据函数,CALLSTOCKEX()限定数量
//STKINDI()调用1分钟周期策略
FZZQ1MACDJC:=STKINDI('','周期1分钟MACD指标线.分钟周期金叉',0,1);//调用1分钟周期策略
FZZQ1MACDSC:=STKINDI('','周期1分钟MACD指标线.分钟周期死叉',0,1);//调用1分钟周期策略
FMZQ10MACDJC:=STKINDI('','周期1分钟MACD指标线.分钟周期金叉',0,22,5);//调用5多秒周期策略
FMZQ10MACDSC:=STKINDI('','周期1分钟MACD指标线.分钟周期死叉',0,22,5);//调用5多秒周期策略
FBZQ10MACDJC:=STKINDI('','周期1分钟MACD指标线.分钟周期金叉',0,23,10);//调用10多笔周期策略
FBZQ10MACDSC:=STKINDI('','周期1分钟MACD指标线.分钟周期死叉',0,23,10);//调用10多笔周期策略
FZZQ3C:=STKINDI('','过滤窄幅震荡.均价3C',0,22,JXZSZQ);//调用多秒参数JXZSZQ周期策略
KKTJ1:=FZZQ1MACDSC and FBZQ10MACDSC and FMZQ10MACDSC;//macd卖出判断,
KDTJ1:=FZZQ1MACDJC and FBZQ10MACDJC and FMZQ10MACDJC ;//macd买入判断,
PKZSTJ:=C>FZZQ3C or ((C-ENTERPRICE)>(4*MINDIFF));//3个周期收盘均价之上空头止损,超出6个价格波动也止损
PDZSTJ:=C<FZZQ3C or ((ENTERPRICE-C)>(4*MINDIFF));//3个周期收盘均价之下多头止损,超出6个价格波动也止损
KDTJ:= KDTJ1 ;//集成开多条件
KKTJ:= KKTJ1 ;//集成开空条件
//其他策略调用开仓方向以及盈利点数
VARIABLE:KCFX=0;
VARIABLE:SSYLDS=0;
//使用系列模式时
//{开多} ENTERLONG:BUY1,TFILTER;
//{平多}EXITLONG:SELL1 ,TFILTER;
//
//{开空}ENTERSHORT:SELL1 ,TFILTER;
//{平空}EXITSHORT:BUY1 ,TFILTER;
//使用逐K线模式时
VARIABLE:DUOKONG=0;
TSFS:=0; {停损反手,1-反手 0-不反手}
ORDVOL:=1; {开仓手数}
ZSDS:=2*MINDIFF; {止损点数}//*MINDIFF
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
VARIABLE:YDZY=1; {移动止盈总开关,1为开,0为关}
VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价}
VARIABLE:HCDS=HCDSX*MINDIFF,YLDS=YLDSD*MINDIFF; //{多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:KZHC=KZHCX*MINDIFF,KZHCQB=KZHCQBD*MINDIFF; {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:ZJBJ:=1,ZJBJ1:=ZJBJD*MINDIFF,ZJBJ2:=ZJBJX*MINDIFF; {赚3保1开关}
DUOKONG:=1;
//持有空单
IF HOLDING<0 THEN BEGIN
SSYLDS:=(ENTERPRICE-C)/MINDIFF;
IF KDTJ THEN BEGIN //平空单
条件空平:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END
//止损
IF C-ENTERPRICE>=ZSDS AND PKZSTJ THEN BEGIN
空损:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END
//移动止盈
IF YDZY=1 THEN BEGIN
//每周期判断是否创新低
IF L<LOWPRICE THEN BEGIN
LOWPRICE:=L;
END
//如果盈利超过YLDS点之后回撤达到HCDS点,就平仓,保住盈利,控制回撤1档
IF ENTERPRICE-LOWPRICE>=YLDS and ENTERPRICE-LOWPRICE<KZHCQB THEN BEGIN
IF L-LOWPRICE>=HCDS THEN BEGIN //回撤超过3点
空赢1:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END
END
//如果盈利超过KZHCQB点之后回撤达到KZHC点,就平仓,保住盈利 ,控制回撤2档
IF ENTERPRICE-LOWPRICE>KZHCQB THEN BEGIN //高收益允许高回撤
IF L-LOWPRICE>=KZHC THEN BEGIN //回撤超过3点
空赢2:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END
END
END
//赚几保几ZJBJ
IF ZJBJ=1 THEN BEGIN
IF ENTERPRICE-LOWPRICE>=ZJBJ1 THEN BEGIN
IF ENTERPRICE-L<=ZJBJ2 THEN BEGIN
空保:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END
END
END
END
//开多单
IF HOLDING=0 and time<151430 and KDTJ THEN BEGIN
IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
多开:BUY(1=1 and time>93500,ORDVOL,MARKETR),ORDERQUEUE;
HIGHPRICE:=ENTERPRICE; //将开仓价保存到最高价
KCFX:=1;
END
END
//持有多单
IF HOLDING>0 THEN BEGIN
SSYLDS:=(C-ENTERPRICE)/MINDIFF;
IF KKTJ THEN BEGIN {平多单}
条件多平:SELL(1,0,MARKETR),ORDERQUEUE;
END
//多单管理
//止损
IF ENTERPRICE-C>=ZSDS AND PDZSTJ THEN BEGIN
多损:SELL(1,0,MARKETR),ORDERQUEUE;
END
//移动止盈
IF YDZY=1 THEN BEGIN
//每周期判断是否创新高
IF H>HIGHPRICE THEN BEGIN
HIGHPRICE:=H;
END
//如果盈利超过YLDS点之后回撤达到HCDS点,就平仓,保住盈利,控制回撤1档
IF HIGHPRICE-ENTERPRICE>=YLDS and HIGHPRICE-ENTERPRICE<KZHCQB THEN BEGIN
IF HIGHPRICE-H>=HCDS THEN BEGIN //回撤超过HCDS点
多赢1:SELL(1,0,MARKETR),ORDERQUEUE;
END
END
//如果盈利超过KZHCQB点之后回撤达到KZHC点,就平仓,保住盈利 ,控制回撤2档
IF HIGHPRICE-ENTERPRICE>KZHCQB THEN BEGIN //高收益允许高回撤
IF HIGHPRICE-H>=KZHC THEN BEGIN //回撤超过KZHC点
多赢2:SELL(1,0,MARKETR),ORDERQUEUE;
END
END
END
//赚几保几ZJBJ
IF ZJBJ=1 THEN BEGIN
IF HIGHPRICE-ENTERPRICE>=ZJBJ1 THEN BEGIN
IF H-ENTERPRICE<=ZJBJ2 THEN BEGIN
多保:SELL(1,0,MARKETR),ORDERQUEUE;
END
END
END
END
//开空单
IF HOLDING=0 and time<151430 and KKTJ THEN BEGIN
IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN
空开:BUYSHORT(1=1 and time>93500,ORDVOL,MARKETR),ORDERQUEUE;
LOWPRICE:=ENTERPRICE;
KCFX:=-1;
END
END
//收盘前平仓
收盘平多:SELL(TIME>=151430 AND HOLDING>0,0,MARKETR,0),ORDERQUEUE; //平多
收盘平空:SELLSHORT(TIME>=151430 AND HOLDING<0,0,MARKETR,0),ORDERQUEUE; //平空
IF HOLDING=0 THEN BEGIN
KCFX:=0; //空仓时重置开仓方向
SSYLDS:=0;//空仓时重置盈利点数
END
当前开仓方向:KCFX,LINETHICK0;
当前持仓盈利波动点数:SSYLDS,LINETHICK0;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY; |
|