金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 101|回复: 3

实盘下单遇到无效单,请问是什么原因。

[复制链接]

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2024-10-9
曾用名:
发表于 2024-10-21 14:39 | 显示全部楼层 |阅读模式


先说一下策略的逻辑。
策略的级别是1分钟。我根据主观判断进行手动开仓。
策略会在handle_bar中读取当前的持仓信息,并且遍历所有的持仓合约,判断持仓合约是否满足止损条件。如果满足止损条件,则会自动下单锁仓,让这个合约持仓的多单和空单数量保持一致。

------------------------------------------------------
今天上午一共手动下单4次,明细如下:
09:59:32,IH12,多单开仓,1手,全部成交,订单ID - 1601368311。
下单后,get_portfolio()返回的持仓信息:多单持仓的数量 1,空单持仓数量 0。

10:05:06,IH12,空单开仓,1手,全部成交。订单ID - 1601368310。
下单后,get_portfolio()返回的持仓信息:多单持仓的数量 1,空单持仓数量 1。

10:12:03,IH12,多单平仓,1手,已手动撤单(撤单时间10:12:10)。订单ID - 1601368309。

10:12:14,IH12,多单平仓,1手,全部成交。订单ID - 1601368308。

下单后,get_portfolio()返回的持仓信息:多单持仓的数量 1,空单持仓数量 0。

10:15:58的时候,触发了止损条件。日志截取如下:
2024-10-21 10:15:58 - INFO - >>> handle_bar - 合约ZJIH12的持仓情况:多单持仓的数量 1,空单持仓数量 0
2024-10-21 10:15:58 - INFO - >>> handle_bar - ZJIH12的最新k线的时间:2024-10-21 10:16:00,最新的1分钟收盘价:2690.8、MA120:2699.13、Diff:1.7547;前1分钟最高价:2697.6、最低价2694.6
2024-10-21 10:15:58 - INFO - >>> handle_bar - 当前ZJIH12的持仓为净多仓,其最新1分钟K线的收盘价2690.8<MA120的值2699.13,且最新1分钟K线的收盘价<前1分钟K线的最低价2694.6。满足锁仓要求。
2024-10-21 10:15:58 - INFO - >>> handle_bar - 订单已提交,以市价开仓卖出1手ZJIH12,订单ID:-1601368307
2024-10-21 10:15:58 - INFO - >>> order_status - 订单有新动向 - 无效单,订单ID -1601368307,合约代码 ZJIH12,开平方向 open,订单方向 sell, 订单价格 0.0,订单数量 0,已成交数量 0,未成交数量 0,订单类型 market,成交价格 0.0,本次成交数量 0,订单状态 inactive,订单创建时间 2024-10-21 10:15:58,交易账户 2200****,柜台返回的系统编号



--------------------------------------
我现在想问的是订单ID -1601368307的这个无效单是什么原因引起的。
我个人的猜测是金字塔get_portfolio()返回的持仓信息与真实的持仓信息不一致导致的,是金字塔的BUG。
10:12:14的订单成交后,我认为正确的持仓信息应该是:多单持仓数量0,空单持仓数量1。而不是get_portfolio()返回的:多单持仓的数量 1,空单持仓数量 0。


我检查了自己的策略代码,是直接通过get_portfolio()获取当时的最新持仓信息的,应该不是我代码层面的错误:
[Python] 复制代码
    lst_portfolio = get_portfolio_book(type = 2) # 读取默认登录账户的持仓品种
    Write.info(context, '>>> handle_bar - 当前持有的合约品种:%s'%(lst_portfolio))

    # 遍历有持仓的合约品种
    for itr_contract in lst_portfolio:

        # 如果当前合约品种不在交易时段则跳过
        if not istradertime(itr_contract): 
            Write.info(context, '>>> handle_bar - 合约%s当前不在交易时段,跳过'%(itr_contract))
            continue

        obj_position_info = get_portfolio(order_book_id = itr_contract, type = 2) # 单个合约品种的持仓信息
        int_long_quantity = obj_position_info.buy_quantity # 多单持仓的数量
        int_short_quantity = obj_position_info.sell_quantity # 空单持仓的数量
        int_net_quantity = int_long_quantity - int_short_quantity # 净持仓的数量
        
        Write.info(context, '>>> handle_bar - 合约%s的持仓情况:多单持仓的数量 %s,空单持仓数量 %s'%(itr_contract, int_long_quantity, int_short_quantity))


以前模拟账号交易的时候,也偶尔遇到过这种get_portfolio()查询到的持仓信息和实际应该的持仓信息不一致的情况,当时只以为是模拟账号的BUG,就没有再深究。
现在实盘也遇到这种问题,我希望能知道具体的原因,然后好针对的去解决。

回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-10-21 15:46 | 显示全部楼层
你把系统交易日志压缩后发给我们看下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2024-10-9
曾用名:
 楼主| 发表于 2024-10-21 21:18 | 显示全部楼层
技术006 发表于 2024-10-21 15:46
你把系统交易日志压缩后发给我们看下

不好意思,是我之前对Order对象里的买卖、开平理解有误,导致我认为get_portfolio()返回的持仓信息有误。

现在我的问题只有一个了,就是如何判断导致订单无效的具体原因。下单后返回的Order对象中只能看出来是无效单,但是看不出是什么原因导致的无效单。

日志截取如下:
2024-10-21 10:15:58 - INFO - >>> handle_bar - 合约ZJIH12的持仓情况:多单持仓的数量 1,空单持仓数量 0
2024-10-21 10:15:58 - INFO - >>> handle_bar - ZJIH12的最新k线的时间:2024-10-21 10:16:00,最新的1分钟收盘价:2690.8、MA120:2699.13、Diff:1.7547;前1分钟最高价:2697.6、最低价2694.6
2024-10-21 10:15:58 - INFO - >>> handle_bar - 当前ZJIH12的持仓为净多仓,其最新1分钟K线的收盘价2690.8<MA120的值2699.13,且最新1分钟K线的收盘价<前1分钟K线的最低价2694.6。满足锁仓要求。
2024-10-21 10:15:58 - INFO - >>> handle_bar - 订单已提交,以市价开仓卖出1手ZJIH12,订单ID:-1601368307
2024-10-21 10:15:58 - INFO - >>> order_status - 订单有新动向 - 无效单,订单ID -1601368307,合约代码 ZJIH12,开平方向 open,订单方向 sell, 订单价格 0.0,订单数量 0,已成交数量 0,未成交数量 0,订单类型 market,成交价格 0.0,本次成交数量 0,订单状态 inactive,订单创建时间 2024-10-21 10:15:58,交易账户 2200****,柜台返回的系统编号
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-10-22 08:43 | 显示全部楼层
没有办法判断无效单的原因。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 02:51 , Processed in 0.231764 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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