Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共14 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[求助]谁能帮我修改一下阿火的VBA跟单程序?

1楼
bbking 发表于:2014/11/20 9:39:56
 http://www.weistock.com/bbs/dispbbs.asp?boardid=10&id=9439&authorid=1617&page=0&star=3
原版出处在这里~

十六、CTP账户的跟单VBA代码

B账户跟着A账户做单(前提是知道A账户的密码,在同一个金字塔同时登陆A账户和B账户)

Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
if Status="Tradeing" and filled>0 and Account="8000000000" then
if aspect=0 then
if kaiping=0 then order.Buy 1,filled,0,0,code,market,"800000",0
if kaiping>0 then order.sellshort 1,filled,0,0,code,market,"800000",0
end if
if aspect=1 then
if kaiping=0 then order.Buyshort 1,filled,0,0,code,market,"800000",0
if kaiping>0 then order.sell 1,filled,0,0,code,market,"800000",0
end if
end if
End Sub


跟单代码如上~
现在需要实现B账户跟踪A账户下单~
但是保持B账户是A账户持仓的三分之一
具体思路是

A账户下单某合约成交后~
查询B账户与A账户在该合约上的持仓~
保持该合约上B账户持仓为A账户的三分之一
多了就平少了就补~


2楼
bbking 发表于:2014/11/20 10:53:49
 帮个忙啊
都悬赏了的
3楼
bbking 发表于:2014/11/20 11:11:19
 两个账户能否改一下用
ac1:="800000";
ac2:="8000000000"
这样表示?
4楼
王锋 发表于:2014/11/20 11:15:25

VBA的问题需要一定时间安排处理,请不要急躁,谢谢

5楼
bbking 发表于:2014/11/20 13:33:42
我是觉得这个程序对于有vba基础的人来说简直小菜啊~

至少有人回帖了~
谢谢~
6楼
bbking 发表于:2014/11/21 9:27:57
 每日一顶
7楼
guotx2010 发表于:2014/11/21 9:35:41

你这个问题,如果每次A账户都是3手或以上,可以在B账户跟踪时,用手数除以3开B账户,问题是如果A账户不是一次开到位,而是1手1手开,累计达到了3手,那么你的B账户就每次都错过了,所以,啊火的方式不能满足你的要求,你得用定时器,在定时器中定时检查A账户的累计持仓量,然后判断是否B账户开仓或平仓。

建议看看那我那个已经商品化的跟踪程序,在我的博客上有介绍。

http://blog.sina.com.cn/s/blog_78d813780102uzor.html

 

8楼
bbking 发表于:2014/11/21 10:11:24
 其实我觉得应该是个比较简单的问题啊~

A账户为8000000000
B账户为800000~跟踪A账户操作~保持为A账户的三分之一
我下面的伪代码思路如何?
每次成交后查询AB账户该合约上的多空持仓进行调整?

Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
if Status="Tradeing" and filled>0 and Account="8000000000" then

if round(A账户TBUYHOLDINGEX/3)>B账户TBUYHOLDINGEX then
order.Buy 1,round(A账户TBUYHOLDINGEX/3)-B账户TBUYHOLDINGEX,0,0,code,market,"800000",0
end
if round(A账户TBUYHOLDINGEX/3)<B账户TBUYHOLDINGEX then
order.sell1,B账户TBUYHOLDINGEX-round(A账户TBUYHOLDINGEX/3),0,0,code,market,"800000",0
end


if round(A账户TSELLHOLDINGEX/3)>B账户TSELLHOLDINGEXthen
order.Buyshort 1,round(A账户TSELLHOLDINGEX/3)-B账户TSELLHOLDINGEX,0,0,code,market,"800000",0
end
if round(A账户TSELLHOLDINGEX/3)<B账户TSELLHOLDINGEXthen
order.sellshort 1,B账户TSELLHOLDINGEX-round(A账户TSELLHOLDINGEX/3),0,0,code,market,"800000",0
end

End Sub

9楼
bbking 发表于:2014/11/21 10:19:42
 帮我写一下吧
这个思路很简单
我只是一时看不懂VBA的帮助文档~
对你们也就是分分钟的事情

没法增加悬赏数量啊
[此贴子已经被作者于2014/11/21 10:20:17编辑过]
10楼
bbking 发表于:2014/11/21 15:47:30
 伪代码都写好了
还没人帮忙写一下啊?

共14 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.03516 s, 2 queries.