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

Python使用CCXT在Phemex下保证金限价单时如何添加止盈止损

修正方案与代码实现

核心问题说明

Phemex UI中绑定在主订单上的止盈止损属于减仓型附加条件单,你原有写法存在两个核心错误:

  1. 交易所实例初始化拼写错误:ccxt.phmex应为ccxt.phemex
  2. 直接修改主订单type为stopLimit创建的是独立条件触发单,不是绑定主订单的止盈止损,且缺少reduceOnly参数保证仅减仓,和UI操作效果不一致。

完整可运行修改代码

import ccxt

# 初始化交易所实例
phemex = ccxt.phemex({
    'apiKey': '你的API Key',
    'secret': '你的API Secret',
    'enableRateLimit': True, # 必须开启,避免触发交易所限流规则
    'options': {
        'defaultType': 'margin'
    }
})

# 加载交易对规则,避免精度错误
phemex.load_markets()

# 订单基础参数配置
symbol = 'BTC/USDT' # 替换为实际交易对
entry_price = 30000 # 开仓限价单价格
amount = 0.001 # 开仓数量
side = 'buy'
add_sl = True
add_tp = True
# 止损参数:下跌10%触发,比触发价低0.5%挂限价单保证成交
sl_trigger = entry_price * 0.9
sl_order_price = sl_trigger * 0.995
# 止盈参数:上涨10%触发,比触发价高0.5%挂限价单保证成交
tp_trigger = entry_price * 1.1
tp_order_price = tp_trigger * 1.005

# 提交主保证金限价单,同时绑定止盈止损(CCXT >= 2.4.0 版本支持该写法)
params = {
    'marginMode': 'cross', # 逐仓保证金改为 'isolated'
}
if add_sl:
    params['stopLoss'] = {
        'triggerPrice': sl_trigger,
        'price': sl_order_price # 若要市价止损,删除该行即可
    }
if add_tp:
    params['takeProfit'] = {
        'triggerPrice': tp_trigger,
        'price': tp_order_price # 若要市价止盈,删除该行即可
    }

main_order = phemex.create_order(
    symbol=symbol,
    type='limit',
    side=side,
    amount=amount,
    price=entry_price,
    params=params
)

低版本CCXT兼容写法

如果你的CCXT版本不支持创建主订单时直接传止盈止损参数,可在主订单创建完成后单独提交减仓条件单,效果完全一致:

# 单独创建止损单示例
if add_sl:
    sl_order = phemex.create_order(
        symbol=symbol,
        type='limit', # 市价止损改为 'market'
        side='sell' if side == 'buy' else 'buy', # 方向与主订单相反
        amount=amount,
        price=sl_order_price if type == 'limit' else None,
        params={
            'type': 'stopLimit', # 市价止损改为 'stopMarket'
            'stopPrice': sl_trigger,
            'marginMode': 'cross',
            'reduceOnly': True, # 必须开启,保证仅减仓不会开新仓
        }
    )

注意事项

  • 所有止盈止损单必须添加reduceOnly: True参数,和UI操作逻辑保持一致,避免行情波动时意外开新仓。
  • 价格参数需要符合交易对精度要求,可使用phemex.price_to_precision(symbol, price)自动处理精度。
  • 调试时可开启phemex.verbose = True查看具体请求和返回内容,快速定位参数错误。

内容的提问来源于stack exchange,提问作者Tristan Neate

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:06:04