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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → python多品种同时下单交易如何实现撤单再下单?

   

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


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

主题:python多品种同时下单交易如何实现撤单再下单?

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


加好友 发短信
等级:论坛游侠 帖子:127 积分:0 威望:0 精华:0 注册:2018/8/14 13:14:58
python多品种同时下单交易如何实现撤单再下单?  发帖心情 Post By:2019/7/2 11:29:28 [只看该作者]

论坛上的撤单代码只是交易一个品种并且只交易一次的撤单代码。能不能写一个多品种多次交易的撤单代码? 例如   我同时下单买入100只股票,有的股票成交了,有的股票没有成交,那么我需要把没有成交的股票撤单然后重新下单买入。请问怎么实现,谢谢!

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/7/3 9:37:52 [只看该作者]

#获取所有未成交单
    order_list = get_orders(context.s1, 0)
    if order_list is not(None):
        #循环所有订单
        for i in order_list:
            if i.order_id in context.buy_list:
                cancel_order (i.order_id)

一种方式,你自己记录一个list保存自己买过的股票,然后带入这个模块做多一层循环动作就行了。
另外一种你自己设定好了股票池,那么每次都对这个股票池里面的品种做遍历

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


加好友 发短信
等级:论坛游侠 帖子:127 积分:0 威望:0 精华:0 注册:2018/8/14 13:14:58
  发帖心情 Post By:2019/7/3 10:12:20 [只看该作者]

这里的 if order_id in context.buy_list: 要改成 for order_id in context.buy_list    不然只能撤销最后一个单子,不能把没有成交的全部撤了。  撤单我已经搞定了,问题是撤单后再买入出现问题,order_list = get_orders(context.s1, 0) 只能取到最后一个未成交的股票,其他为未成交的股票取不到。


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


加好友 发短信
等级:论坛游侠 帖子:127 积分:0 威望:0 精华:0 注册:2018/8/14 13:14:58
  发帖心情 Post By:2019/7/3 10:41:23 [只看该作者]

后面再买入的时候要怎么做循环?我试了好多次都是第一次撤单后买一遍,第二次撤单后就买两遍,后面越买越多

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


加好友 发短信
等级:论坛游侠 帖子:127 积分:0 威望:0 精华:0 注册:2018/8/14 13:14:58
  发帖心情 Post By:2019/7/3 13:48:05 [只看该作者]

for i in context.s1:
        if (macd1d1==1 ) :
            buy_id = buy_open(i, "Limit", get_dynainf(i,7),volume=1000)
            context.buy_list.append(buy_id)
            context.num = 0

            context.order_list = get_orders(i, 0)
    if context.order_list is not(None):
        #循环所有订单
        for i in context.order_list:
            print(i.order_book_id)

 

为什么只能取到一个未成交的 book_id  有多只没有成交的股票,但是只能取到一个未成交的股票


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


加好友 发短信
等级:论坛游侠 帖子:127 积分:0 威望:0 精华:0 注册:2018/8/14 13:14:58
  发帖心情 Post By:2019/7/3 15:40:36 [只看该作者]

大神,能不能写个完整的出来啊,我弄了几天了都没有弄好。


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


加好友 发短信
等级:论坛游侠 帖子:127 积分:0 威望:0 精华:0 注册:2018/8/14 13:14:58
  发帖心情 Post By:2019/7/3 16:59:40 [只看该作者]

不知道是不是搞定了,明天试一下,搞好了就不用麻烦了,谢谢

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/7/4 10:17:44 [只看该作者]

你是不是检测间隔太短了,导致撤单买入后,马上又去执行了撤单再买入
买的时候加个判断如果账户有持仓就不要再买

 回到顶部