Retcode=10016 при совершении сделки в MetaTrader 5Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Retcode=10016 при совершении сделки в MetaTrader 5

Сообщение Гость »

Я получаю сообщение retcode=10016 («Недопустимые стопы») при попытке использовать стоп-лосс больше 0,0. Если оставить значение 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)


Подробнее здесь: https://stackoverflow.com/questions/759 ... tatrader-5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»