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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请教:定时器

   

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


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

主题:请教:定时器

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
请教:定时器  发帖心情 Post By:2011/9/9 13:09:39 [只看该作者]

Sub dingshi0()  application.SetTimer 1,5000

 

End Sub

Sub APPLICATION_Timer(ID)
Order.HoldingInfo2 0,BuyHoding,BuyCost,BuyTodayHoding,SellHoding,SellCost,SellTodayHoding,PNL,UseMargin ,Code,Market
if sellhoding>0 then Order.Sellshort 1,1,0,0,Code,Market,"",0
if buyhoding>0 then Order.Sell 1,1,0,0,Code,Market,"",0
End Sub

 

VBA代码的意思是 平仓账户所有持仓
等平仓完毕之后,sellhoding 和 buyhoding 应该都为0,但是并不为0

导致 一直在发出平仓委托
请教,是写的有问题吗?



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2011/9/9 13:14:07 [只看该作者]

VBA取的是实际持仓量,发出委托后,如果没有成交,那么buyhoding等变量不会马上变化。因此不要简单的把buyhoding持仓做为条件,还应该联合查询未成交单这样来综合判断是否该需要下单



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/9/9 14:32:07 [只看该作者]

不好意思,是我提的问题

 

重新测试一下,给出证据。呵呵

模拟账户800043,买入4手股指,用以上的代码自动平仓,每5秒种检查一次,有持仓的话,平1手

 

这是下单日志: (定时器是5秒一次)

 

2011-09-09 14:23:07.680    【下单】IF09 价2745.199951 量4 买卖0 类型0 开平0 账户800043 Formula 1
2011-09-09 14:23:08.024    【回报】800043 : IF09 - 正在申报 4 价格:2745.20 开仓 买入
2011-09-09 14:23:08.086    【回报】800043 : IF09 全部成交 4 价格:2745.2 开 买 //买开4手
2011-09-09 14:23:11.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:11.743    【回报】800043 : IF09 - 正在申报 1 价格:2743.80 平仓 卖出
2011-09-09 14:23:12.008    【回报】800043 : IF09 全部成交 1 价格:2744.4 平 卖
2011-09-09 14:23:16.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:16.555    【回报】800043 : IF09 - 正在申报 1 价格:2744.40 平仓 卖出
2011-09-09 14:23:16.821    【回报】800043 : IF09 全部成交 1 价格:2745.0 平 卖
2011-09-09 14:23:21.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:21.539    【回报】800043 : IF09 - 正在申报 1 价格:2744.20 平仓 卖出
2011-09-09 14:23:21.743    【回报】800043 : IF09 全部成交 1 价格:2744.8 平 卖
2011-09-09 14:23:26.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:26.805    【回报】800043 : IF09 - 正在申报 1 价格:2744.20 平仓 卖出
2011-09-09 14:23:26.883    【回报】800043 : IF09 全部成交 1 价格:2745.0 平 卖   //全部平仓完毕,后面一直下单
2011-09-09 14:23:31.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:31.524    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.2000,800043,cffex,dzqb2b
2011-09-09 14:23:36.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:36.586    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.0000,800043,cffex,dzqb2b
2011-09-09 14:23:41.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:41.602    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.4000,800043,cffex,dzqb2b
2011-09-09 14:23:46.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:46.649    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.2000,800043,cffex,dzqb2b
2011-09-09 14:23:51.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:51.571    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.2000,800043,cffex,dzqb2b
2011-09-09 14:23:56.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:23:56.618    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.0000,800043,cffex,dzqb2b
2011-09-09 14:24:01.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:24:01.602    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2744.0000,800043,cffex,dzqb2b
2011-09-09 14:24:06.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:24:06.555    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2743.2000,800043,cffex,dzqb2b
2011-09-09 14:24:11.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:24:11.586    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2743.0000,800043,cffex,dzqb2b
2011-09-09 14:24:16.321    【下单】IF09 价0.000000 量1 买卖1 类型1 开平1 账户800043 Formula 1
2011-09-09 14:24:16.602    【回报】800043 : 委托手数超过可平仓数量--800043,IF1109,卖,平,投,1,2743.4000,800043,cffex,dzqb2b


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/9/9 14:45:26 [只看该作者]

每次都这样么还是只是偶尔

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2011/9/9 16:24:15 [只看该作者]

定义一下那些变量看看

如:

dim sellhoding

 


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/9/9 16:27:02 [只看该作者]

你应该先看看Order.HoldingInfo2的返回值,如果是1的话再进行下单动作

 

Result = Order.HoldingInfo2...

if Result = 1 then

...

end if

[此贴子已经被作者于2011-9-9 16:27:12编辑过]

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/9/10 0:08:51 [只看该作者]

每次都如上所述。

经过测验,Order.HoldingInfo2在没有仓位的情况下,获取持仓信息失败

 

如果改为如下:

Result = Order.HoldingInfo2...

if Result = 1 then

...

end if

就不会出错了。

 

也就是全部平仓后,获取持仓信息失败,但sellhoding和buyhoding并不等于0

而是依然等于上一次的sellhoding、buyhoding的值

而我按一般程序的思路,想当然地认为,获取持仓信息失败的时候,sellhoding、buyhoding的值应该为0或者无效值

看来下次要认真调试,先判断返回值是否成功再执行程序

谢谢以上几位兄弟。

 

[此贴子已经被作者于2011-9-10 0:09:50编辑过]

 回到顶部