以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  python多品种同时下单交易如何实现撤单再下单?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=170773)

--  作者:qweoo123456
--  发布时间:2019/7/2 11:29:28
--  python多品种同时下单交易如何实现撤单再下单?
论坛上的撤单代码只是交易一个品种并且只交易一次的撤单代码。能不能写一个多品种多次交易的撤单代码? 例如   我同时下单买入100只股票,有的股票成交了,有的股票没有成交,那么我需要把没有成交的股票撤单然后重新下单买入。请问怎么实现,谢谢!
--  作者:yukizzc
--  发布时间: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
--  发布时间: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
--  发布时间:2019/7/3 10:41:23
--  
后面再买入的时候要怎么做循环?我试了好多次都是第一次撤单后买一遍,第二次撤单后就买两遍,后面越买越多
--  作者:qweoo123456
--  发布时间: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
--  发布时间:2019/7/3 15:40:36
--  

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


--  作者:qweoo123456
--  发布时间:2019/7/3 16:59:40
--  
不知道是不是搞定了,明天试一下,搞好了就不用麻烦了,谢谢
--  作者:yukizzc
--  发布时间:2019/7/4 10:17:44
--  
你是不是检测间隔太短了,导致撤单买入后,马上又去执行了撤单再买入
买的时候加个判断如果账户有持仓就不要再买