以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 -- 日线上代码无法实现的。 只能通过软件设置来实现。
|