以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  K线走完前N秒的标准版写法实例,请指教。  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=167261)

--  作者:topfun
--  发布时间:2018/12/21 9:39:46
--  K线走完前N秒的标准版写法实例,请指教。
//若用户模式选为“固定时间间隔10秒”,

//中间变量
MID:  MA(CLOSE,M);//布林中轨

手数:=ss;

//交易条件
bpk:=CROSS(C,Mid);//开多平空条件
spk:=CROSS(Mid,C);//开多平空条件

tq:=50;

K终:=(time0-timetot0(dynainfo(207))<=tq);   //tq自己指定一个秒数

if K终=1,then begin

平空:SELLSHORT(bpk AND HOLDING<0,100,LIMITR,C);
平多:SELL(spk AND HOLDING>0,100,LIMITR,C);
开空:BUYSHORT(spk AND HOLDING>=0,hand,LIMITR,C);
开多:BUY(bpk AND HOLDING<=0,hand,LIMITR,C);

end
//当前持仓:HOLDING,COLORGRAY,LINETHICK0;
//当前资产:ASSET,NOAXIS,COLORGRAY;

//注意交易系统先开后平的原则


--  作者:topfun
--  发布时间:2018/12/21 9:41:17
--  
顺便问一句,我看到有的示例里,(time0-timetot0(dynainfo(207))<=tq)后面还加了个not(islastbar)的条件,为什么不要是最后一根k线呢?
--  作者:FireScript
--  发布时间:2018/12/21 9:55:03
--  
 要加not(islastbar) 这个的。

你必须考虑到历史K的问题,当前K
(time0-timetot0(dynainfo(207))<=tq) 这个判断没问题,但是历史K的开平不能依赖这个条件判断。



if K终=1,then begin   多了个标点符号。


开空:BUYSHORT(spk AND HOLDING=0,hand,LIMITR,C);
开多:BUY(bpk AND HOLDING=0,hand,LIMITR,C);

开仓一般用holding=0作为限制条件。



--  作者:topfun
--  发布时间:2018/12/21 9:58:21
--  
再问:
加了not(islastbar),为什么当前K线还会执行呢?既然不是最后一个K线,实时为什么又能执行?

--  作者:FireScript
--  发布时间:2018/12/21 10:06:47
--  
 你用 or 来关联这2个条件啊。 虽然最新K不满足 not(islastbar)  但是K线结束前N秒那个条件能满足啊。你看原版代码就是用or来串联这2个条件的。

--  作者:topfun
--  发布时间:2018/12/21 10:09:33
--  
明白了,另外,日线图标准版就没办法通过编程来实现提前n秒交易了对吧?
--  作者:FireScript
--  发布时间:2018/12/21 10:13:32
--  
 日线上代码无法实现的。


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

只能通过软件设置来实现。