Retcode=10016 在 metatrader 5 中执行交易时

问题描述 投票:0回答:0

尝试使用大于 0.0 的止损时,我收到 retcode=10016(“无效止损”)。如果保持在 0.0,交易将执行良好并在移动平均线再次交叉时关闭。

这里是止损和获利市场订单函数的变量:

sl = 25.00
tp = 100.00

def market_order(symbol, volume, order_type, sl, tp, deviation=20, magic=12345):

    order_type_dict = {
        'buy': mt5.ORDER_TYPE_BUY,
        'sell': mt5.ORDER_TYPE_SELL
    }
    
    price_dict = {
        'buy': mt5.symbol_info_tick(symbol).ask,
        'sell': mt5.symbol_info_tick(symbol).bid
    }
    
    request = {
        "action": mt5.TRADE_ACTION_DEAL,
        "symbol": symbol,
        "volume": volume,  # FLOAT
        "type": order_type_dict[order_type],
        "price": price_dict[order_type],
        "sl": sl,  # FLOAT
        "tp": tp,  # FLOAT
        "deviation": deviation,  # INTERGER
        "magic": magic,  # INTERGER
        "comment": strategy_name,
        "type_time": mt5.ORDER_TIME_GTC,
        "type_filling": mt5.ORDER_FILLING_IOC,
    }
    
    order_result = mt5.order_send(request)
    return(order_result)

我试过将 sl 和 tp 添加到同样的错误发生

if num_positions == 0 and check_allowed_trading_hours():
    order_result = market_order(symbol, volume, 'buy', sl, tp)
    print(order_result)
if num_positions == 0 and check_allowed_trading_hours():
    order_result = market_order(symbol, volume, 'sell', sl, tp)
    print(order_result)
python trading algorithmic-trading metatrader5
© www.soinside.com 2019 - 2024. All rights reserved.