You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Trading-IG Python SDK下单遇ATTACHED_ORDER_LEVEL_ERROR求助

问题原因与解决办法

问题原因

  • IG平台对限价单(LIMIT类型)有明确规则:
    • BUY方向的限价单,level必须低于当前市场价格,逻辑是挂单等待价格回落至目标价时成交买入。
    • 若设置level高于当前价格,完全违背限价买入的规则,平台直接返回ATTACHED_ORDER_LEVEL_ERROR错误。
  • SELL方向的限价单level高于当前价是合理逻辑(挂单等价格上涨到目标价时卖出),所以能正常下单。

解决办法

根据你的交易需求选择对应方案:

方案1:等待价格回落至5445时买入

  • 确认当前市场价格高于5445,若当前价低于该值,调整level到当前价以下的合理价位。
  • 代码无需修改订单类型,只需保证level符合规则:
resp = ig_service.create_working_order(
    currency_code="GBP",
    direction="BUY",
    epic='IX.D.SPTRD.DAILY.IP',
    expiry='DFB',
    guaranteed_stop=False,
    level='5445',  # 确保此价格低于当前市场价格
    size='1',
    force_open='true',
    time_in_force="GOOD_TILL_CANCELLED",
    order_type="LIMIT",
    limit_distance='6',
    stop_distance='2'
)

方案2:价格上涨至5445时买入(突破进场)

  • 这种场景属于突破追单,需要将order_type改为"STOP"(止损买入单,价格触发后成交):
resp = ig_service.create_working_order(
    currency_code="GBP",
    direction="BUY",
    epic='IX.D.SPTRD.DAILY.IP',
    expiry='DFB',
    guaranteed_stop=False,
    level='5445',  # 此价格高于当前市场价格,触发买入
    size='1',
    force_open='true',
    time_in_force="GOOD_TILL_CANCELLED",
    order_type="STOP",  # 修改为STOP类型
    limit_distance='6',
    stop_distance='2'
)

额外注意事项

  • 核对limit_distance和stop_distance的逻辑:
    • BUY单:limit_distance是止盈点(高于买入价),stop_distance是止损点(低于买入价)
    • SELL单:limit_distance是止盈点(低于卖出价),stop_distance是止损点(高于卖出价)
  • 确保level的数值精度符合标的要求(比如部分指数要求整数价位,部分品种需要保留小数)

内容的提问来源于stack exchange,提问作者Giampaolo Levorato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:48:11