以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  策略编写求助区  (http://222.73.7.161/bbs/list.asp?boardid=11)
----  如何编写金字塔自定义函数  (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=6087)

--  作者:gxnnxxt
--  发布时间:2011/4/10 11:06:12
--  如何编写金字塔自定义函数

      在金字塔中后台提供了多账户的指定查询函数非常棒,如TISREMAINEX(N,AC,STOCK)等,在多账户的实际交易中,如果采用”指定具体账户方向持仓+指定具体账户方向未成交单”来判断指定具体账户当前的持仓状态,大量耗费代码并影响交易公式的运行效率,但是,金字塔只提供了TSTATE当前账户持仓状态函数,并没有TSTATE(N,AC,STOCK)函数,用起来非常不方便,能不能用自定义函数来编写一个指定账户状态函数?

    

    TSTATEEX(N,AC,STOCK), N为持仓状态.0无仓;1多仓;2空仓

    AC为帐户ID,为空表示针对所有帐户; STOCK为品种代码,为空表示针对所有品种


    空仓:为指定账户,无指定持仓+无所有方向未成交单

    多仓:为指定账户,有指定持多仓或指定平多未成交单

    空仓:为指定账户,有指定持空仓或指定平空未成交单


请各位坛主,大侠,高手,兄弟,姐妹,客户们施予援手,菜鸟叩拜!


--  作者:guotx2010
--  发布时间:2011/4/10 22:32:41
--  

我想了一下,使用自定义函数从VBA后台代码返回持仓信息,明天测试一下看是否可行。

大致的思路:在VBA后台使用

Call Order.HoldingInfoByCode2(Code, Market, BuyHoding, BuyCost, BuyTodayHoding, SellHoding, SellCost, SellTodayHoding, PNL, UseMargin,Account)

取得指定账户的持仓信息,通过自定义函数将持仓信息返回到策略公式中。

 

如果使用VBA做成策略,就非常方便。

 

我试了一下,使用自定义函数不能返回值到公式中来,自定义函数看来只能单向传值到VBA后台,不能将VBA后台的计算结果传回来。

如果使用VBA后台将需要传回来的值写到ini文件,然后公式从ini文件读取,不知道行不行,可是ini文件读写,在公式中怎么实现,我还不知道。

 

 

 

 

[此贴子已经被作者于2011-4-12 11:54:11编辑过]

--  作者:gxnnxxt
--  发布时间:2011/4/11 1:54:37
--  
万分感谢,引项期盼
--  作者:guotx2010
--  发布时间:2011/4/13 22:52:13
--  
建议金字塔增加VBA后台传值到公式的方法,这样就可以解决这个问题了。
--  作者:gxnnxxt
--  发布时间:2011/4/14 20:23:16
--  为什么模型写的 收盘价 还是会出现反复开平仓
图片点击可在新窗口打开查看
--  作者:gxnnxxt
--  发布时间:2011/4/14 20:24:08
--  

最好的办法就是金字塔直接增加这个函数