以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  怎么编写VBA自定义函数调用实际帐户  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=9134)

--  作者:Jamselizj
--  发布时间:2011/11/25 15:23:35
--  怎么编写VBA自定义函数调用实际帐户
我是专业版的客户,我编写了一个图表交易策略,使用图表多帐户交易。我想在我的交易策略里面知道实盘时候多帐户的信息,怎么调用?各位大侠最好能给我个程序让我好好学习一下,不胜感激!!!
--  作者:26327756l
--  发布时间:2011/11/25 15:53:23
--  

如果你没有编程基础的话,就在论坛上随便找个VBA程序,就可以学会。

然后,你在order对象里 有下面的一个方法,可以找到你要的信息

 

Account2 方法

得到指定的国内期货帐户信息

Account2(Type,Account)

Type    指定帐户信息类型。Type可以使用下列数值:

Account 可缺省,登陆的帐户名称,若不填写则表示当前默认的帐户


2 返回指定交易帐户的类型:0盈透 1CTP综合平台 2金仕达平台 255 无效登录账户
3 返回指定交易帐户中的现金余额
4 返回指定交易帐户中的浮动盈亏
6 返回指定交易帐户中的动态权益
12 返回当前交易帐户中的现金总结余
19 返回当前交易帐户中的当前可用资金
20 返回当前交易帐户中的当前流动资产
26 返回当前交易帐户中的上次结算准备金
27 返回当前交易帐户中的期货结算准备金
28 返回当前交易帐户中的占用保证金
29 返回当前交易帐户中的可取资金数量
30 返回当前交易帐户中的平仓盈亏数额
31 返回当前交易帐户中的手续费
32 返回当前交易帐户中的入金金额
33 返回当前交易帐户中的出金金额
34 返回当前交易帐户中的上次信用额度
35 返回当前交易帐户中的上次质压
36 返回当前交易帐户中的质压金额
37 返回当前交易帐户中的信用额度
35 返回当前交易帐户中的冻结保证金
36 返回当前交易帐户中的冻结手续费
37 返回当前交易帐户中的保底资金
41 返回指定或当前交易账户的登录网关名称

 

[此贴子已经被作者于2011-11-25 15:54:24编辑过]

--  作者:Jamselizj
--  发布时间:2011/11/25 16:22:51
--  
看来我说的不明白。我的想法是,在我的程序中增加一个判断:我有3个实盘帐户,比如20500111,20500222,20500333,我要检测一下是不是真的启用了三个帐户。比如,如果少了一个,报错。如果多了一个帐户,也报错。我的意思讲明白了吗?我主要想知道我的实盘的帐户的帐号,然后对这个帐号进行判断。
--  作者:guotx2010
--  发布时间:2011/11/25 16:53:19
--  

用Order.Account2(6,账号)分别检测每一个账号的动态权益,如果为零说明没有登录或者真的没有钱,不管哪种情况,反正不能交易的。

 


--  作者:Jamselizj
--  发布时间:2011/11/25 21:25:57
--  

Function zhanghu(Formula)
        Dim szhhu
        szhhu=Order.CTPAccountName(0)

End Function

 

这样编写调取活动帐户名称怎么就不对了?


--  作者:Jamselizj
--  发布时间:2011/11/26 22:48:52
--  

大伙给看看啊,急啊!


--  作者:guotx2010
--  发布时间:2011/11/27 17:59:39
--  

 Ac=Order.CTPAcCount
 application.MsgOut ac
 for i=0 to ac-1
  application.MsgOut CTPAccountName(i)
 next

用这段代码测试一下,看看能不能返回所有已经登陆的账户?

 


--  作者:Jamselizj
--  发布时间:2011/11/27 19:37:41
--  

 application.MsgOut CTPAccountName(i)
这个地方修改一下, application.MsgOut order.CTPAccountName(i)

这样就可以输出当前活动帐户了。谢谢!


--  作者:Jamselizj
--  发布时间:2011/11/27 19:42:30
--  
order.CTPAccountName(i)返回的是什么类型的函数?整数还是字符串?可以把这个返回的值给存起来,或者进行比较吗?我想用这个数据构筑一个限制条件,限制非期望的帐户登录。
[此贴子已经被作者于2011-11-27 20:11:56编辑过]

--  作者:Jamselizj
--  发布时间:2011/11/27 20:05:02
--  

\'调用登录帐户数量
Function zhanghu(Formula)
  Ac=Order.CTPAcCount
   \'定义一个计算返回的数组
    Dim ResultMa
    Redim ResultMa(Ac)

    For  i=0 to ac-1
      ResultMa(i) = Order.CTPAccountName(i)
    Next

    \'返回已经登录的帐户
    zhanghu = ResultMa
End Function

我想用自定义函数返回已经登录的帐户,这样写可以吗?如果可以,那么在公式中怎么调用呢?