Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1143

Vladimir Karputov:

Это у Вас проблема.

  1. Вы пытаетесь в режиме идущего теста добавлять код
  2. Или Ваш блок кода никогда не выполнится, поэтому редактор выбрасывает из него курсор с точкой останова.

К счастью да, после перезагрузки редактора все вылечилось!

Здравствуйте!
Кто может посоветовать хорошего брокера для начала в торговли на МТ5?
Спасибо!
[Удален]
Dmitry Filippov:
Здравствуйте!
Кто может посоветовать хорошего брокера для начала в торговли на МТ5?
Спасибо!

Правила ресурса читали? Или как всегда, сначала поломать, а потом только читать руководство?

Здравствуйте!

Не могу найти ошибку. Цель функции – установка стополосса только в позицию безубытка.  Если открыто несколько позиций по символу установка стопа, только по тем позициям, у которых можно установить безубыток, по остальным позициям стоп не ставиться. Также модификация существующих стопов по самому близкому к текущей цене, если текущий стоп позиции меньше самой большой позиции безубытка, то стоп модифицируется.  Ошибка " CTrade::OrderSend: modify position #3 EURUSD (sl: 1.10871, tp: 0.00000) [invalid stops]
"

void _BTrailing_BUY()
  {
   double _B_BUY=0.0;
   CPositionInfo m_positionBuy; // trade position object
   CTrade m_tradeBuy; // trading object
   CSymbolInfo    m_symbolBuy;

   int TrailingStop=35; //Trailing Stop LEVEL
   
   for(int i=PositionsTotal()-1; i>=0; i--)  
      if(m_positionBuy.SelectByIndex(i))  
        {
         string position_GetSymbol=m_positionBuy.Symbol();  
         if(position_GetSymbol==Symbol())
           {
            long digits=SymbolInfoInteger(position_GetSymbol,SYMBOL_DIGITS);
            long _SYMBOL_TRADE_STOPS_LEVEL=SymbolInfoInteger(position_GetSymbol,SYMBOL_TRADE_STOPS_LEVEL);
            m_adjusted_point=SymbolInfoDouble(position_GetSymbol,SYMBOL_POINT);
            double _PriceCurrent_Stop=0.0;

            if(TrailingStop>_SYMBOL_TRADE_STOPS_LEVEL)
              {_SYMBOL_TRADE_STOPS_LEVEL=TrailingStop;};
                 if(m_positionBuy.PositionType()==POSITION_TYPE_BUY)
              {
               _PriceCurrent_Stop=NormalizeDouble(m_positionBuy.PriceOpen()+((_SYMBOL_TRADE_STOPS_LEVEL)*m_adjusted_point),int(digits));
               if(m_positionBuy.PriceCurrent() >  _PriceCurrent_Stop)
                 {
                  if(_B_BUY==0.0 || _B_BUY <_PriceCurrent_Stop)
                    {
                     _B_BUY=_PriceCurrent_Stop;
                    };
                  if(_B_BUY >m_positionBuy.StopLoss() && _B_BUY >_PriceCurrent_Stop)
                    {
                     _PriceCurrent_Stop=_B_BUY;
                    };

                  if(_PriceCurrent_Stop>m_positionBuy.StopLoss() || m_positionBuy.StopLoss()==0.0)
                    {
                     //--- save Magic Number for the position
                     if(_PriceCurrent_Stop>0)
                       {
                        //m_trade.SetExpertMagicNumber(m_position.Magic());
                        m_tradeBuy.PositionModify(m_positionBuy.Ticket(),
                                                  _PriceCurrent_Stop,
                                                  m_positionBuy.TakeProfit());
                       };

                    };
                 };



              };
           };

        };

  }
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
SEM:

*** Также модификация существующих стопов по самому близкому к текущей цене, если текущий стоп позиции меньше самой большой позиции безубытка, то стоп модифицируется ***

Ох и закрутили! Прям детектив настоящий! Ничегошеньки не понятно.

В общем как в той песне: "Я обернулся посмотреть, не обернулась ли она, чтоб посмотреть не обернулся ли я" ...

Здравствуйте!

При автоматической проверке эксперта Маркетом, получаю ошибку:  has newer unsupported version, please update your client terminal

Терминал: buil 2190 18 Oct 2019


Ошибка пропадает после удаления из кода всех переменных 

input group "text"

 

Такие переменные нельзя использовать?

Mikhail Sergeev:

Здравствуйте!

При автоматической проверке эксперта Маркетом, получаю ошибку:  has newer unsupported version, please update your client terminal

Терминал: buil 2190 18 Oct 2019


Ошибка пропадает после удаления из кода всех переменных 

 

Такие переменные нельзя использовать?

Пока не для маркета.
Artyom Trishkin:
Пока не для маркета.

Спасибо!

ребят всем доброй ночи, ну подскажите уже голова не варит нужно выровнять лотаж по парам к примеру фунт бакс лотом 0.1 будет 100 долларов за 100 старых пунктов а фунт ена лотом 0.1 будет меньше 100 баксов, как посчитать и выровнять лоты что бы за 100 старых пунктов и там и там было по 100 баксов за 100 п
Aleksandr Egorov:
ребят всем доброй ночи, ну подскажите уже голова не варит нужно выровнять лотаж по парам к примеру фунт бакс лотом 0.1 будет 100 долларов за 100 старых пунктов а фунт ена лотом 0.1 будет меньше 100 баксов, как посчитать и выровнять лоты что бы за 100 старых пунктов и там и там было по 100 баксов за 100 п
Всё зависит от цены 1 пункта. У EURUSD это 1, а у GBPUSD меньше.