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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]定时器买卖时,同一价位不断重复买卖

   

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


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

主题:[求助]定时器买卖时,同一价位不断重复买卖

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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
[求助]定时器买卖时,同一价位不断重复买卖  发帖心情 Post By:2011/9/1 9:43:09 [显示全部帖子]

我用定时器制作监听,当价格抵达某一个价位的时候,我设置3手交易的时候会出现不断的买入。

但是在之前我已经设置了 返回当前账户的 buytodayholding ,如果此holding > 0 的时候不允许买入,但是程序依旧不断买进,不知道有何良策。我已经设置了orderqueue =1 ,依旧无效。奇怪的是 如果我设置成1手买卖,就不会有这种情况发生!

 

请各位高手指教。


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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 9:47:27 [显示全部帖子]

PS 我已经将 orderqueue 设置成 等于当前手数依旧无效。

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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 10:24:20 [显示全部帖子]

 

 

Sub APPLICATION_Timer(ID)
 if id = 1 and celue01 = "buy" and ZHUANGTAI01 = false  then
    call Order.HoldingInfoByCode2(AutoTrade_ID01, MKT01,BuyHoding01,BuyCost01,BuyTodayHoding01,SellHoding01,SellCost01,SellTodayHoding01,PNL01,UseMargin01,800748)
 call testTrade(QREN01,AutoTrade_NewP01.caption,AutoTrade_BuyPrice01,AutoTrade_ShouShu01,AutoTrade_ID01,MKT01,BuyTodayHoding01,AutoTrade_ZY01,AutoTrade_ZS01,ZHUANGTAI01)

 end if

 

 

sub testTrade(QREN,DQJW,MRJ,SHOUSHU,DAIMA,SHICHANG,NewHOLDING,ZHIYING,ZHISUN,ZHUANGTAI)

'正式买卖操作
if QREN = TRUE AND DQJW = MRJ AND NewHOLDING = 0 AND ZHUANGTAI = FALSE then
 order.OrderQueue = SHOUSHU
 call order.Buyshort(1,SHOUSHU,0,0,DAIMA,SHICHANG,"",0) '市价买进
 msgbox "NewHOLDING做空:"&  NewHOLDING & "    " & ZHIYING & "    " &ZHISUN
 msgbox "您已经成功以市价挂单做空!"
 
end if

end sub

[此贴子已经被作者于2011-9-1 10:25:01编辑过]

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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 10:30:14 [显示全部帖子]

代码如上····不知道有无问题?


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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 11:25:04 [显示全部帖子]

 call testTrade(QREN01,AutoTrade_NewP01.caption,AutoTrade_BuyPrice01,AutoTrade_ShouShu01,AutoTrade_ID01,MKT01,BuyTodayHoding01,AutoTrade_ZY01,AutoTrade_ZS01,ZHUANGTAI01)

 

此时已经将 buytodayholding 传入 testtrade()

而 testtrade中的 nowholding 就是持仓 msgbox 没有问题。

 

我买入条件仅是 nowholding = 0的 情况 这样就摒除了任何 holding > 0 的情况。

也就是说我当前的nowholding = 0 才能进行交易


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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 13:51:50 [显示全部帖子]

    call Order.HoldingInfoByCode2(AutoTrade_ID01, MKT01,BuyHoding01,BuyCost01,BuyTodayHoding01,SellHoding01,SellCost01,SellTodayHoding01,PNL01,UseMargin01,800748)

可是我已经call 了 你说的这个holdinginfobycode2 中的实际持仓···并且将这个实际持仓传入 买卖的函数中了···


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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 13:58:33 [显示全部帖子]

好吧 我直接发一个我调试的msgout 的信息给你们看吧 免得说我一直没有传入当前的holding····

 

以下是我在买卖的定时中添加的

 

 application.MsgOut ("您当前委托的品种为:" & DAIMA  & "    市场为:" & SHICHANG  &"    "& "手数为:" & SHOUSHU & "    " & "止盈价格:" & ZHIYING  & "    " & "止损价格:" & ZHISUN & "    QREN:" & QREN & "    holding: "& NewHOLDING & "    做空方向")

这个可以打印出在trade函数中的实际持仓的各种信息····显示如下!

 

您当前委托的品种为:cf05    市场为:ZQ    手数为:3    止盈价格:21700    止损价格:21750    QREN:True    holding: 9    做空方向
您当前委托的品种为:ru01    市场为:SQ    手数为:2    止盈价格:34440    止损价格:34300    QREN:True    holding:4    做多方向

 

 

大家可以看到我委托的手数 其实为3 和 2 但是按道理来说 购买成功后 不会重复买入 结果实际效果是 holding = 9 和 holding =4  也就是说没有实现 判断newholding = 0的时候买入  因为必然经历过了 holding =3 以及holding =2的 橡胶和棉花 的2种情况。



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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 14:58:07 [显示全部帖子]

 application.MsgOut ("您当前委托的品种为:" & DAIMA  & "    市场为:" & SHICHANG  &"    "& "手数为:" & SHOUSHU & "    " & "止盈价格:" & ZHIYING  & "    " & "止损价格:" & ZHISUN & "    QREN:" & QREN & "    holding: "& NewHOLDING & "    做空方向")

 

 

 

这条指令就是放在if 之前的·····结果如上。

现在的问题是 比如我设置的价格是 33140 买入,结果行情在33140 停顿了几秒钟,结果判断条件这里疯狂买入。但是我的newholding 一直显示的是当前的持仓数,也即是说,此时持仓已经超过0了····


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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 15:00:05 [显示全部帖子]

sub DoomTrade(QREN,DQJW,MRJ,SHOUSHU,DAIMA,SHICHANG,NewHOLDING,ZHIYING,ZHISUN,ZHUANGTAI)

 

'输出判断当前持仓

application.MsgOut ("您当前委托的品种为:" & DAIMA  & "    市场为:" & SHICHANG  &"    "& "手数为:" & SHOUSHU & "    " & "止盈价格:" & ZHIYING  & "    " & "止损价格:" & ZHISUN & "    QREN:" & QREN & "    holding: "& NewHOLDING & "    做空方向")

 

 

 

'正式买卖操作
if QREN = TRUE AND DQJW = MRJ AND NewHOLDING = 0 AND ZHUANGTAI = FALSE then
 order.OrderQueue = SHOUSHU
 call order.Buyshort(1,SHOUSHU,0,0,DAIMA,SHICHANG,"",0) '市价买进
 msgbox "NewHOLDING做空:"&  NewHOLDING & "    " & ZHIYING & "    " &ZHISUN
 msgbox "您已经成功以市价挂单做空!"
 
end if

 

我就是这么写的····

 

newholding 消息弹出的 也就是和我前面发的一样。持仓不等于0也买了···


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


加好友 发短信
等级:新手上路 帖子:24 积分:109 威望:0 精华:0 注册:2011/7/11 14:08:33
  发帖心情 Post By:2011/9/1 15:17:23 [显示全部帖子]

以下是引用26327756l在2011-9-1 14:29:20的发言:

既然你分析出  没有实现 判断newholding = 0的时候买入 那你就在执行if条件之前输出一下newholding,来看看。

还有提示你一下, 你下单后,成交也许要等一些时间,如果在未成交之前,你的定时器有触发了,holding获取还是0,那么就会继续下单,这时你的下单量累加,也许会造成你现在的情况。

最开始我就是考虑的这个情况,所以在交易的时候出现加入了 order.queue的指令来进行判断,以免出现累计下单。如果是这种情况,有无办法去避免? 加入order.queue =1 后依旧无效果。


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