以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请求编写,自编的信号无法显示 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=86014) |
-- 作者:shawaverage -- 发布时间:2015/10/10 1:36:14 -- 请求编写,自编的信号无法显示 思路如下,就是引用5分钟和60分钟的KDJ的k和d, 当60分钟的kd有金叉时候,就开始执行5分钟的kd金叉做多,只做多,平仓条件为5分钟kd死叉。同理,死叉的系统也是类似。 简单的说,就是当长周期满足金叉时候,就启动短周期kd金叉做多系统,如果长周期满足死叉时候,就停止运行短周期kd金叉做多系统,而是启动运行短周期kd死叉做空系统。 我自己编写代码如下,但是信号却不是我想要的效果,比如套用股指上面,本来在10月9日60分钟图上,已有金叉,那么短周期5分钟周期也是执行金叉做多系统,但是只显示了一个做多的信号,不是想要的结果,想要的结果应该是短周期5分钟上面kd金叉条件满足后的那几个做多的信号。应该如何编写会比较合理简单有效,请求帮忙下。 X:=STKINDI(stklabel,\'KDJ.K\',0,5);//引用60分钟的kdj的k值 Y:=STKINDI(stklabel,\'KDJ.D\',0,5);//引用60分钟的kdj的d值 XY:=CROSS(X,Y); XY0:=CROSS(Y,X); X1:=STKINDI(stklabel,\'KDJ.K\',0,2);//引用5分钟的kdj的k值 Y1:=STKINDI(stklabel,\'KDJ.D\',0,2);//引用5分钟的kdj的d值 XY1:=CROSS(X1,Y1); XY2:=CROSS(Y1,X1); KD0:=XY1 ;//开多条件 PD0:=XY2; //平多条件 IF XY THEN BEGIN KD:BUY(KD0 and holding=0,1,THISCLOSE); PD:SELL(PD0 and holding,1,THISCLOSE); END KK0:=XY1 ;//开空条件 PK0:=XY2; //平空条件 IF XY0 THEN BEGIN KK:SELLSHORT(KK0 and holding=0,1,THISCLOSE); PK:BUYSHORT(PK0 and holding,1,THISCLOSE); END |
-- 作者:jinzhe -- 发布时间:2015/10/10 8:49:08 -- variable:bj=0; ....这里引用5分钟和60分钟的金叉
if 60分钟金叉 then bj:=1; if 60分钟死叉 then bj:=2;
if bj=1 and 5分钟金叉 then begin..........
end
if bj=2 and 5分钟死叉 then begin........
end
把你的5分钟金叉死叉策略写进上面用省略号省略的地方 |