-- 作者:YKj
-- 发布时间:2016/10/21 10:19:23
-- 实现二三档进场的单子
实现二三档进场的单子,在本周期用限定价低于收盘价平仓,次周期以后低于最高价平仓
//策略核心: //进场 //周线KDJ933,J<0,设为基准价, //第一次进场;买每份的45%;10/11 //第二次进场基准价下跌3%,买每份的35%;9.7/9.7+0.97 //第三次进场基准价下跌6%,买每份的20%;9.4/9.4+15% //离场 // 第一进场成本价上涨10%,平仓45%; // 第二进场成本价上涨12%,平仓35%; // 第三进场成本价上涨15%,平仓20%;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,P1,1); D:=SMA(K,P2,1); J:=3*K-2*D; VARIABLE: 基准价=0,flag1=0,flag2=0,flag3=0,VOL1=0,VOL2=0,VOL3=0;
//初始化底仓价格和调仓 IF CROSS(0,J) AND HOLDING=0 THEN BEGIN 基准价:=CLOSE; END SS:=1000000/基准价;
//交易条件 //实现二三档进场的单子,在本周期用限定价低于收盘价平仓,次周期以后低于最高价平仓 { PD1:=基准价*1.1<H; IF ENTERBARS>1 THEN BEGIN PD2:=(基准价*0.97)*1.1<H; END
IF ENTERBARS=1 THEN BEGIN PD2:=(基准价*0.97)*1.1<C; END
IF ENTERBARS>1 THEN BEGIN PD3:=(基准价*0.94)*1.15<H; END
IF ENTERBARS=1 THEN BEGIN PD3:=(基准价*0.94)*1.15<C; END }
PD1:=基准价*1.1<H; PD2:=(基准价*0.97)*1.1<C; PD3:=(基准价*0.94)*1.15<C;
KD1:=CROSS(0,J); KD2:=CROSS(基准价*0.97,L); KD3:=CROSS(基准价*0.94,L);
//第二次进场的平仓;买每份的35% PCC2:=(基准价*0.97)*1.1-OPEN; IF PD2 THEN BEGIN SELL(flag2=1,VOL2,LIMITR,OPEN+PCC2); flag2:=2; END
//第三次进场的平仓;买每份的20% PCC3:=(基准价*0.94)*1.15-OPEN; IF PD3 THEN BEGIN SELL(flag3=1,VOL3,LIMITR,OPEN+PCC3); flag3:=3; END
//第一次进场的平仓;买每份的45% PCC1:=基准价*1.1-OPEN; IF PD1 THEN BEGIN SELL(flag1=1,VOL1,LIMIT,OPEN+PCC1); flag1:=0; flag2:=0; flag3:=0; 基准价:=0; END
//第一次进场;买每份的45% IF KD1 THEN BEGIN T:=3; BUY(HOLDING=0 AND flag1=0,SS*45/100,THISCLOSE); T:=2; VOL1:=SS*45/100; flag1:=1; END
//第二次进场;买每份的35% CZ2:=基准价*0.97-OPEN; IF KD2 AND flag2=0 AND T=2 THEN BEGIN BUY(1,SS*35/100,LIMIT,OPEN+CZ2); T:=1; VOL2:=ENTERVOL; flag2:=1; END
//第三次进场;买每份的20% CZ3:=基准价*0.94-OPEN; IF KD3 AND flag3=0 AND T=1 THEN BEGIN BUY(1,SS*20/100,LIMIT,OPEN+CZ3); T:=0; VOL3:=ENTERVOL; flag3:=1; END
{
//-------------------以触及市价平仓-------------------------------- ZSPRICE:=基准价*(1-ZS/100); ZSC:=ZSPRICE-OPEN; IF L<=ZSPRICE AND HOLDING>0 AND ENTERBARS>0 THEN BEGIN DRAWTEXT(1,LOW,\'止损\'); SELL(HOLDING>0,0,LIMITR,OPEN+ZSC); END
{ ZYPRICE:=ENTERPRICE*(1+ZY/100); ZYC:=ZYPRICE-OPEN; IF H>=ZYPRICE AND HOLDING>0 AND ENTERBARS>0 THEN BEGIN DRAWTEXT(1,HIGH,\'止盈\'); SELL(HOLDING>0,0,LIMITR,OPEN+ZYC); END
|
-- 作者:jinzhe
-- 发布时间:2016/10/21 10:43:37
--
有白色箭头了,说明价格不合理,不能成交的
用函数ignorecheckprice来避免这个问题,用法:BUY(1,SS*20/100,LIMIT,OPEN+CZ3),ignorecheckprice;
|
-- 作者:jinzhe
-- 发布时间:2016/10/21 11:14:17
--
因为策略里面有个计算出来的平仓价格为0,所以才会有白色箭头以及上面的用igno函数后平仓价为0的情况。
IF PD1 THEN BEGIN 平仓3:SELL(flag1=1,VOL1,LIMIT,OPEN+PCC1); flag1:=0; flag2:=0; flag3:=0; 基准价:=0; END
因为这段把基准价赋值为0,导致了你的下单价格OPEN+PCC1变成了0,所以才会出现了上面测评里面的结果
|