以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=148902)

--  作者:spunk
--  发布时间:2017/3/9 13:20:15
--  多帐号的新问题

variable:billcount[6]=\'abc\';
billcount[1]:=\'613992\';billcount[2]:=\'611556\';billcount[3]:=\'614098\';billcount[4]:=\'614155\';billcount[5]:=\'614159\';billcount[6]:=\'614234\';

for j=1 to 6 do begin
zhanghao:=billcount[j];

buyhold:=TBUYHOLDINGex(zhanghao,\'\',0);

debugout(\'buyhold=%.0f,\'+zhanghao,buyhold);
  if buyhold=0 then begin
    tbuy(1,1,MKT,0,0,zhanghao);
  end 
end

上面的程序,后台执行,周期选择1分钟,执行品种选择if03,多帐号及策略系数那里全部帐号都勾选。发现开始执行后会再帐号\'613992\'开1手,然后过了1分钟才在第2个帐号开1手,再过1分钟在第3个帐号开仓。而我希望达到的效果是第1分钟就6个帐号每个开1手,请问程序哪里有问题,还是有什么地方需要设置?


--  作者:gxx978
--  发布时间:2017/3/9 13:31:10
--  

金字塔中,for循环语句在当根K线上也只会执行一次交易动作,不会起到循环买入的效果。你要想达到判断持仓再买入的话,那就需要每一个账户检查下持仓,不要使用for循环。


--  作者:spunk
--  发布时间:2017/3/9 13:33:18
--  
那如果使用VBA程序的for循环能不能达到我想要的效果?
--  作者:gxx978
--  发布时间:2017/3/9 13:40:52
--  
VBA是否能实现你可以起高级区咨询下。另外前面的回复我修正一下,要想在后台使用for的重复下单,可以在tbuy函数后面加上ALLOWREPEAT,实现重复下单,仅适用于后台。
--  作者:spunk
--  发布时间:2017/3/9 13:59:08
--  

试了下,加上这个后,确实可以一次6个帐号都下单。但是我选择10秒间隔预警,然后就每10秒出来一次信号,虽然实际帐号并没有下单

 


--  作者:gxx978
--  发布时间:2017/3/9 14:10:39
--  

使用ALLOWREPEAT函数,虽然能起到重复开仓的效果,但是在固定时间间隔下,也控制不了开仓多少次,检测到信号存在,就会重复开仓。所以可以直接判断账户的持仓情况,分多条开仓语句来实现。


--  作者:spunk
--  发布时间:2017/3/9 14:17:01
--  
每个帐号重复一遍程序是可以实现的,只是加上全部的仓位控制相关语句,搞得程序很臃肿。希望以后能提供一个单独的循环语句可以达到这样的效果
--  作者:wenarm
--  发布时间:2017/3/9 14:39:50
--  
 tbuy函数如果不指定账户,在触发下单语句后,你登录的每个账户都会依次下单的。没有必要用你上面的方式实现