以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  关于多账户下单的问题,请教版主大哥  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=72338)

--  作者:啊东西
--  发布时间:2014/11/25 9:55:07
--  关于多账户下单的问题,请教版主大哥
版主,请教一下,使用金字塔VBA的条件下,当我在使用机构版的账户的时候,如果我使用VBA构建策略,能否实现不同的账户实现不同的控制??在金字塔VBA当中,查询,下单,这些操作都应该是根据具体的账户编码来进行查询的?是不是?
sub fgtrade1() 
        account1="116529"
        vol=1
       
        Call Order.Holdinginfobycode2("FG06","ZQ",FGBuyholding,FGBuycost,FGBuytodayholding,FGSellholding,FGSellcost,FGSelltodayholding,FGPnl,FGUsemargin,ACCOUNT1)
        APPLICATION.MsgOut "duotouchicang: " &  FGBuyholding
        APPLICATION.MsgOut "kongtouchicang: " &  FGsellholding
        fglongorderid=Getlongpendingorder("FG06","ZQ",ACCOUNT1)
          APPLICATION.MsgOut "duodan: " & fglongorderid
           fgshortorderid=Getshortpendingorder("FG06","ZQ",ACCOUNT1)
          APPLICATION.MsgOut "kongdan: " & fgshortorderid
我的想法是在模块当中定义account1="116529"为一个账户名,然后针对此账户进行保单查询,持仓查询等操作,以此实现对账户的控制



而第二个模块


sub fgtrade2() 
        account1="866512"
        vol=1
        Call Order.Holdinginfobycode2("FG06","ZQ",FGBuyholding,FGBuycost,FGBuytodayholding,FGSellholding,FGSellcost,FGSelltodayholding,FGPnl,FGUsemargin,ACCOUNT1)
下面的部分我省略掉了,此时我定义account1="866512",然后针对此账户进行保单查询,持仓查询等操作,以此实现对账户的控制


也就是说,我使用多账户功能,但是不是使用并发下单,而是每一个账户都有其自己相应的控制程序,请问这种思路可以实现吗?、是否会存在什么隐患??


--  作者:王锋
--  发布时间:2014/11/25 10:09:01
--  
这个思路可以的,只要你的逻辑清晰,没什么隐患的
--  作者:啊东西
--  发布时间:2014/11/25 11:30:08
--  
可是现在为什么我的下单完全出了问题了??
他们不同的账户之间相互干扰特别的严重啊!是不是什么地方有设置?让这些账户一同发单了?、我不需要这样的设置啊!


--  作者:FexTel
--  发布时间:2014/11/25 13:19:00
--  

看下你的实际发单语句对应的条件,是不是没控制好。把账户指定好,思路没问题怎么会相互干扰呢?


--  作者:啊东西
--  发布时间:2014/11/25 13:26:17
--  
我是这样子的

一开始是在一个交易模块开始的时候,我设置 account1="116529",,指定账户,然后
call order.Buy(0,vol,fgopen,0,"FG06","ZQ",account1,0)买卖的时候我是这样子写的,,你看看这样的格式有什么问题没有?其中fgopen是买入价位


--  作者:王锋
--  发布时间:2014/11/25 13:31:41
--  

这些让我们去看你的代码是不合适的,因为具体的交易思路我们是不清楚的.

建议你多使用Application.msgout函数进行调试,然后再结合系统的下单日志来判断你的代码是不是逻辑部分出了问题,

VBA的代码编写调试是个重要的过程,没人会一次性把代码写完美,都是通过不断调试来解决的