以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  公式没问题,为啥不下单  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=154846)

--  作者:iWin
--  发布时间:2017/6/7 21:56:20
--  公式没问题,为啥不下单

ma5:ma(C,5);

ma30:ma(C,30);

多0:=cross(ma5,ma30);

多1:=ref(多0,1);
空0:=cross(ma30,ma5);

空1:=ref(空0,1);

时间:currenttime,linethick0;

多:=(多0 and islastbar=0) or (多1 and currenttime>=211500);
空:=(空0 and islastbar=0) or (空1 and currenttime>=211500);

 

if 多 and holding<=0 then
begin
 sellshort(1,0,market),orderQueue;
 buy(1,5,market),orderQueue;
end

 

if 空 and holding>=0 then
begin
 sell(1,0,market),orderQueue;
 buyshort(1,5,market),orderQueue;

end

 

为了试验currenttime 这个函数,特意出信号的当日晚上开盘后观察,结果currenttime升至211500以上时,并没发出单,不知何故?
我是实盘,用的图表交易,设定固定时间间隔,时间间隔设定为2秒(此设置从前其他盘中突破程序发单无问题),但上述语句并不发单,不知为何?(当时手中有多单,白天下穿出信号,夜盘开盘后应该时间上穿211500后下单才对)


--  作者:gxx978
--  发布时间:2017/6/8 8:47:24
--  
holding>=0表示的是图表上的虚拟持仓为多单,不是你实盘账户持有的多单,需要输出holding看下当时holding的值是多少。另外几个条件也可以输出看下是否满足。
--  作者:iWin
--  发布时间:2017/6/8 9:15:58
--  
切中要害,谢谢,问题是出在这句,已经解决。
--  作者:王锋
--  发布时间:2017/6/8 9:17:13
--  
建议您认真学习一下
金字塔公式编写调试
http://www.weistock.com/bbs/disp ... p;page=1&star=1

对于提高你的编程能力是至关重要的
--  作者:iWin
--  发布时间:2017/6/8 10:50:47
--  

是的,昨晚利用调试找出了问题。
还是不细心,只是觉得看着公式没问题,就来问了,如果仔细调试是能找到症结的。

再次感谢各位高手的帮助。