以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何将开仓和平仓语句分成两天执行?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=140819)

--  作者:CQ半兽人
--  发布时间:2016/10/12 19:04:29
--  如何将开仓和平仓语句分成两天执行?

问题:

如何将开仓和平仓语句分成两天执行?

下面的程序是30分钟KDJ金叉买入,30分钟KDJ死叉卖出的程序。但是,有时候,30分钟金叉和死叉会落入同一天,请问,这种情况下,怎样将平仓语句设定到以第二天开盘半小时收盘价执行?

 

KDJ系统

//适用模式:“走完一根K线以后”

//若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。

 

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;

K:=SMA(RSV,3,1);

D:=SMA(K,3,1);

J:=3*K-2*D;

//KDJ的计算公式

 

 

kc1:= cross(k,d);

//30分钟低位金叉开仓,d小于60

pc1:=cross(d,k);

//30分钟死叉平仓。

 

开多:buy(kc1 and d<60 and holding=0,100%,MARKET);

平多:sell(pc1 and holding>0,0,MARKET)

资产:asset,noaxis,COLORCYAN,linethick0;

//linethick为指定线宽。

 

//K1:STKINDI(\'\',\'KDJ.K\',0,6);

//跨周期调用日线中的K值。’’表示当前品种,KDJ.K 表示引用KDJK值,0表示交易日模式,6表示是日线周期。

//D1:STKINDI(\'\',\'KDJ. D\',0,6);

//跨周期调用日线中的D值。’’表示当前品种,KDJ.K 表示引用KDJD值,0表示交易日模式,6表示是日线周期。


--  作者:jinzhe
--  发布时间:2016/10/13 9:12:28
--  

如果是30分钟周期要在第二天第一根k线平的话

 

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;

K:=SMA(RSV,3,1);

D:=SMA(K,3,1);

J:=3*K-2*D;

//KDJ的计算公式



kc1:= cross(k,d);

//30分钟低位金叉开仓,d小于60。

pc1:=cross(d,k);

//30分钟死叉平仓。


开多:buy(kc1 and d<60 and holding=0,100%,MARKET);

平多:sell(pc1 and holding>0 and enterbars>0 and todaybar=1,0,thisclose);

资产:asset,noaxis,COLORCYAN,linethick0;

[此贴子已经被作者于2016-10-14 9:03:00编辑过]

--  作者:CQ半兽人
--  发布时间:2016/10/13 20:56:49
--  
非常感谢。非常感谢。