[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 460

 
Serg-s-n писал(а) >>
Добрый вечер всем! Кто подскажет как при закрытии ордера выделить самый первый ордер и его закрыть?

ПРОШУ ПОМОЩИ!!!

Найти позицию с минимальным временем открытия.

 
Serg-s-n писал(а) >>
Добрый вечер всем! Кто подскажет как при закрытии ордера выделить самый первый ордер и его закрыть?

ПРОШУ ПОМОЩИ!!!

Как уже правильно сказали, нужно найти ордер с самым ранним временем открытия, получить его ticket, выбрать ордер с таким ticket, и закрыть его.

Вот пример, как найти нужный Вам ордер:

  int ticket = -1;
  datetime MinDateTime = 0;

  for (int i=1; i<=OrdersTotal(); i++)         // Цикл по всем ордерам
  
    if (OrderSelect(i-1, SELECT_BY_POS)==true)  // Если есть следующий        
    {
      if ( ticket < 0 || OrderOpenTime() < MinDateTime ) // Его дата меньше, чем дата предыдущего найденного?
      {
        if ( OrderType() == OP_BUY )          // Это ордер на покупку?
        {
          ticket = OrderTicket();             // Запомнить его ticket.
          MinDateTime = OrderOpenTime();
        }
      }
    }     
  }                                           // Конец тела цикла

После того, как найден тикет нужного вам ордера, его нужно выбрать функцией OrderSelect(ticket, SELECT_BY_TICKET), и закрыть OrderClose() с нужными Вам параметрами.

 
Имеем советника, который открывает позиции с TP и SL. Как вычислить, сколько на данный момент слитых подряд по SL позиций с момента последнего успешного ордера?
 

1. OrdersHistoryTotal

2. Сортируем закрытые ордера по времени

3. Определяем у последних подряд идущие OrderProfit<0

 
sergeev >>:

1. OrdersHistoryTotal

2. Сортируем закрытые ордера по времени

3. Определяем у последних подряд идущие OrderProfit<0


Спасибо
 

Добрый день.

Решите пожалуйста проблему. При вызове функции MarketInfo("EURUSD", MODE_STOPLEVEL) - минимально допустимый уровень стоп-лосса/тейк-профита в пунктах, она выдает например 10 пунктов, а в терминале при установки sl и tp высвечиваются разные

цифры например sl=30, tp=10. Как же быть, как их разделить в вызове функции.

 
gvi2504 писал(а) >>

Добрый день.

Решите пожалуйста проблему. При вызове функции MarketInfo("EURUSD", MODE_STOPLEVEL) - минимально допустимый уровень стоп-лосса/тейк-профита в пунктах, она выдает например 10 пунктов, а в терминале при установки sl и tp высвечиваются разные

цифры например sl=30, tp=10. Как же быть, как их разделить в вызове функции.

Уровень минимальных стопов для SL и TP один и тот же, не может она тебе показывать разных значений, иначе дц втопку )

 
Techno >>:

Уровень минимальных стопов для SL и TP один и тот же, не может она тебе показывать разных значений, иначе дц втопку )

Я тоже так думал, но вот в ДЦ MasterForex, SL и TP разные. Есть еще какие нибудь мысли по данному вопросу?

 
gvi2504 писал(а) >>

Я тоже так думал, но вот в ДЦ MasterForex, SL и TP разные. Есть еще какие нибудь мысли по данному вопросу?

а как ты определил, что разные?

 
Techno >>:

а как ты определил, что разные?

Когда я искал ошибку каждое действие заAlertил, и получалось TP проходит при модификации, а SL нет слишком близко.

Причина обращения: