Python ... Не получается изменить TakeProfit для buy - открытых ордеров !? а для Sell- ордеров получается ... Подскажите пожалуйста где не вижу !

Almaz Akhmetkhanov  

### Код прилагаю внизу , написан на Python : функция TRADE_ACTION_SLTP принимает в качестве параметров символ вал.пары [eurusd], номер тикета [756*****], уровень tp [1.20554]

### все работает для sell ордеров , а для buy - ордеров пишет ошибку retcode: 10016 (не верные стопы, хотя уровень TP только ставлю... стопы не проставляю)

# -- Код -- ###############

def TRADE_ACTION_SLTP(symbol, position_ticket, take_profit):

        #  symbol = "EURUSD"                      # выбор валют. пары 

    #  position_ticket = 75130502             # тикет позиции
        point = mt5.symbol_info(symbol).point  # кол-во пунктов после запятой ( point=0.0001)
        price = mt5.symbol_info_tick(symbol).ask
        deviation = 20                         # отклонение в пунктах
        request = {
            "action": mt5.TRADE_ACTION_SLTP,  # поставить рыночный ордер
            "position": position_ticket,
            "symbol": symbol,                 # УКАЗАНИЕ ВАЛЮТ ПАРЫ
            "tp": take_profit,        # Установка тейк-профита 
            "magic": 114000,                  # Magic number
        }

        # отправим торговый запрос
        result = mt5.order_send(request)

        # проверим результат выполнения
        if result.retcode != mt5.TRADE_RETCODE_DONE:
            print("2. order_send failed, retcode={}".format(result.retcode))  # вывод кода ошибки если не открылась сделка
        else:
            print("1. order_send Good(): by {} position_ticket ".format(position_ticket));
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
  • www.mql5.com
Коды возврата торгового сервера - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Ihor Herasko  
Almaz Akhmetkhanov:

блин вообще не вижу :/    ... все вроде просто, ***

Take Profit для Buy нужно устанавливать выше текущего Bid. Если пробуете сегодня, то профит для Buy на уровне 1.20554 никак не установить, т. к. текущий Bid уже выше этой цены (сегодняшний диапазон движения EURUSD находится выше 1.21).

Ищите, почему в функцию подается направльное значение take_profit.

Vladimir Karputov  
Almaz Akhmetkhanov:

 а для продаж уровень TP функция может ставить выше цен открытия , а для продаж соотвевенно нет ?

Причем цена открытия? Рассматривается ТЕКУЩАЯ цена.

Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и...
Причина обращения: