欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]谁能帮我修改一下阿火的VBA跟单程序?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5681人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
bbking
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
[求助]谁能帮我修改一下阿火的VBA跟单程序?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/20 10:53:49 [显示全部帖子]

 帮个忙啊
都悬赏了的

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/20 11:11:19 [显示全部帖子]

 两个账户能否改一下用
ac1:="800000";
ac2:="8000000000"
这样表示?

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/20 13:33:42 [显示全部帖子]

我是觉得这个程序对于有vba基础的人来说简直小菜啊~

至少有人回帖了~
谢谢~

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/21 9:27:57 [显示全部帖子]

 每日一顶

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/21 10:19:42 [显示全部帖子]

 帮我写一下吧
这个思路很简单
我只是一时看不懂VBA的帮助文档~
对你们也就是分分钟的事情

没法增加悬赏数量啊
[此贴子已经被作者于2014/11/21 10:20:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/21 15:47:30 [显示全部帖子]

 伪代码都写好了
还没人帮忙写一下啊?


 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/21 22:50:01 [显示全部帖子]

 你得用定时器,在定时器中定时检查A账户的累计持仓量,然后判断是否B账户开仓或平仓

我没必要用定时器啊~一直扫描浪费啊~
只需要A帐户成交一笔的时候检查一下AB帐户持仓就可以了啊~
伪代码都写了~
帮我弄一下咯~


也就是查询AB帐户持仓的VBA函数加一个四舍五入的函数
实在没什么难度吧?
[此贴子已经被作者于2014/11/21 22:51:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2014/11/23 12:11:56 [显示全部帖子]


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

Dim ac1 As String
DIM ac2 As String
ac1="800007"
ac2="800052"

Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)

if Status="Tradeing" and filled>0 and Account=ac1 then

if aspect=0 then

if kaiping=0 then order.Buy 1,filled,0,0,code,market,ac2,0

if kaiping>0 then order.sellshort 1,filled,0,0,code,market,ac2,0
end if

if aspect=1 then

if kaiping=0 then order.Buyshort 1,filled,0,0,code,market,ac2,0

if kaiping>0 then order.sell 1,filled,0,0,code,market,ac2,0

end if

end if

End Sub



这段代码在金字塔里咋保存不了?

一运行VBA就提示
编译器错误‘1025’
语句未结束

 回到顶部
总数 11 1 2 下一页