金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3482|回复: 11

帮忙修改一段VBA跟单代码

[复制链接]

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2021-5-29 23:16 | 显示全部楼层 |阅读模式
[Visual Basic] 复制代码
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
 

if Status="Submitted" and Account="AAA" then

if aspect=0 then
if kaiping=0 then order.Buy 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
if kaiping>0 then order.sellshort 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
end if
  
if aspect=1 then
if kaiping=0 then order.Buyshort 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
if kaiping>0 then order.sell 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
end if

end if

end sub


这段代码里~跟单帐户BBB为主力帐户AAA下单手数的一半~向下取整~
这时候有个问题~
比如主力帐户AAA平30手的时候~跟单帐户BBB要平15手~而实际BBB帐户的持仓只有14手~
一跟单~可用持仓不足~无法平掉14手~结果就是没跟单

而现在我希望实现的是~
BBB帐户平仓手数为
int((Filled+Remaining)*1/2)与BBB帐户实际可用持仓
的最小值~

这样就不存在可用持仓不足而没有跟单的情况了~

回复

使用道具 举报

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-5-29 23:41 | 显示全部楼层
发错板块了~麻烦转到VBA

你们那个微信认证不好使
回复

使用道具 举报

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-5-30 15:55 | 显示全部楼层
而现在我希望实现的是~
BBB帐户平仓手数为
int((Filled+Remaining)*1/2)与BBB帐户实际可用持仓
的最小值~

BBB帐户实际可用持仓
这句我不知道vba里面如何表达~

都移动了主题~为何不顺手回答一下
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-5-30 17:22 | 显示全部楼层
周一开盘中测试后回复,有些代码需要盘中去看效果的
直接给出很有可能不符合,还请用户理解
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-5-30 17:51 | 显示全部楼层
资深技术02 发表于 2021-5-30 17:22
周一开盘中测试后回复,有些代码需要盘中去看效果的
直接给出很有可能不符合,还请用户理解

感谢感谢!!!

明天盘中在线等!
回复

使用道具 举报

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-5-31 09:17 | 显示全部楼层
在线等~各位技术麻烦啦!!!只有交易时间可以调试~而且夜盘找不到你们...
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-5-31 09:30 | 显示全部楼层
本帖最后由 技术006 于 2021-5-31 09:32 编辑

[Visual Basic] 复制代码
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
Result = Order.HoldingInfoByCode2(Code,Market,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Account)  
 
if Status="Submitted" and Account="AAA" then
 
if aspect=0 then
if kaiping=0 then order.Buy 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
if kaiping>0 then order.sellshort 0,min(SellHolding,int((Filled+Remaining)*1/2)),Price,0,code,market,"BBB",0
end if
   
if aspect=1 then
if kaiping=0 then order.Buyshort 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
if kaiping>0 then order.sell 0,min(BuyHolding,int((Filled+Remaining)*1/2)),Price,0,code,market,"BBB",0
end if
 
end if
 
end sub

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-5-31 09:41 | 显示全部楼层
资深技术02 发表于 2021-5-31 09:30
[mw_shl_code=vb,true]
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Mar ...

编译器错误'13'
类型不匹配:'min'
回复

使用道具 举报

63

主题

196

帖子

206

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-5-31 09:42 | 显示全部楼层
顺便问一句~

AAA为主力帐户~
BBB为跟单帐户~
还有个CCC也为跟单帐户~
以上代码有什么需要改动的吗?

特别是这一句
Result = Order.HoldingInfoByCode2(Code,Market,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Account)
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-5-31 09:54 | 显示全部楼层
本帖最后由 资深技术02 于 2021-5-31 09:55 编辑

[Visual Basic] 复制代码
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
Result = Order.HoldingInfoByCode2(Code,Market,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,"BBB")  
  
if Status="Submitted" and Account="AAA" then
  
if aspect=0 then
if kaiping=0 then order.Buy 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0
if SellHolding>=int((Filled+Remaining)*1/2) then 
ss = int((Filled+Remaining)*1/2)
Else
ss = SellHolding 
end if

if kaiping>0 then order.sellshort 0,ss,Price,0,code,market,"BBB",0
end if
    
if aspect=1 then
if kaiping=0 then order.Buyshort 0,int((Filled+Remaining)*1/2),Price,0,code,market,"BBB",0

if BuyHolding>=int((Filled+Remaining)*1/2) then 
ss = int((Filled+Remaining)*1/2)
Else
ss = BuyHolding
end if



if kaiping>0 then order.sell 0,ss,Price,0,code,market,"BBB",0
end if
  
end if
  
end sub



金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-22 18:53 , Processed in 0.238147 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表