金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 65|回复: 2

buy_open下单语句,紧接着马上get_orders可以立刻得到这个order嘛

[复制链接]

9

主题

23

帖子

23

积分

Rank: 1

等级: 新手上路

注册:
2024-5-6
曾用名:
发表于 2025-1-25 11:52 | 显示全部楼层 |阅读模式
一个简单的算法,判断订单是否完成再进行后面的逻辑。如果程序这么写:

buy_open(.....)
listorder = get_orders(...)
请问get_orders此时返回的List是不是立刻包含上一条语句创建的order? 还是异步的,需要等一会order才能查到?

我自己测试下来,好像不能立刻获得order订单
回复

使用道具 举报

9

主题

23

帖子

23

积分

Rank: 1

等级: 新手上路

注册:
2024-5-6
曾用名:
 楼主| 发表于 2025-1-25 12:59 | 显示全部楼层
我写了下面这个函数,判断所有订单完成。
具体的用法是这样:
buy_open(.....)
while(not is_all_orders_done(ctx):
    pass
。。。
后面的代码必须确保前面的order都完成了,否则逻辑会出问题。
问题是,这样写好像不保险,测试下来,订单可能还没进入list,while循环锁不住。
另外还有一个问题,get_portfolio(mcode,0)返回的holding,和订单的order_status()回调,时序是什么关系?比如order_status()调用的时候,get_portfolio()返回的持仓是不是100%已经up-to-date的?

def is_all_orders_done(ctx):
    id_list = get_orders(ctx.mcode, 0) # 0:今日未成交订单,1:今日全部订单
    if id_list is None or len(id_list)==0 :
        return True
    else:
        return False
回复

使用道具 举报

33

主题

8472

帖子

8482

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-26 15:23 | 显示全部楼层
不是立即获得的,你报单到获交易所获得单子然后反馈回来,这些都是需要时间的。
你可以自己去order订单事件里面去处理,当有订单回报回来后执行相应操作
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-5 18:46 , Processed in 0.206419 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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