Организация цикла перебора ордеров - страница 13

 
fxsaber:

Пример шаблона специально написан с помощью СБ. Поэтому вопрос к спецам по MT5, код правильный?

Не специалист, но укажу на очевидное: такой код может уйти в бесконечные попытки закрытия позиции (например, при окончании торговой сессии).

Ну, а сложные условия в одну строку код, конечно, сокращают, но делают его чтение более сложным.

 
Andrey Khatimlianskii:

Не специалист, но укажу на очевидное: такой код может уйти в бесконечные попытки закрытия позиции (например, при окончании торговой сессии).

Не может.

Ну, а сложные условия в одну строку код, конечно, сокращают, но делают его чтение более сложным.

В данном случае лаконичность только на руку - вся ТС на экране.

 
fxsaber:

Если настолько буквально понимать, то можно прочитать и прошедшую тиковую историю по каждому символу из Обзора рынка. Но, думаю, Вам же на самом деле понятен смысл утверждения.

Код это утверждение, вроде, как реализовывает. Поэтому и был вопрос ко всем, кто разбирается в MT5: код правильный?

Ну мы ж программисты

Так уж понял ...

Без зла.

 

fxsaber:

Поэтому и был вопрос ко всем, кто разбирается в MT5: код правильный?

Код не глядел особо - кто активно пользуется СБ (я - нет, не торговыми классами точнее), может они скажут?

 
Artyom Trishkin:

Код не глядел особо - кто активно пользуется СБ (я - нет, не торговыми классами точнее), может они скажут?

Тут редкий случай, когда СБ отрабатывает, как надо. Шаблон - это скелет. Конечно, можно накидать всякого мяса в виде filling-проверок, лотности и т.д. Но основа останется.

Шаблон минимальными усилиями переписывается на MT4 и там будет работать 100%. А вот на MT5 - это хороший вопрос на самом деле!

 
fxsaber:

Тут редкий случай, когда СБ отрабатывает, как надо. Шаблон - это скелет. Конечно, можно накидать всякого мяса в виде filling-проверок, лотности и т.д. Но главная основа останется.

Шаблон минимальными усилиями переписывается на MT4 и там будет работать 100%. А вот на MT5 - это хороший вопрос на самом деле!

Нужно пытаться что-либо углядеть там на свежую голову, а не в пять утра :)

Проснусь, если никто из хорошо знающих СБ не отпишется, можно будет и попытаться вычислить вероятные камушки.

 
fxsaber:

Шаблон минимальными усилиями переписывается на MT4 и там будет работать 100%.

Переписал на MT4

// Шаблон большинства ТС

#property strict // обязательно

// Сигнал на покупку
bool BuySignal( const string Symb ) { return(true); }

// Сигнал на продажу
bool SellSignal( const string Symb ) { return(false); }

// Находит ордер соответствующего типа
bool OrdersScan( const string Symb, const int Type )
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == Symb))
      return(true);    
    
  return(false);  
}

// Торговое действие на сигнал
bool Action( const string Symb, const int Type, const double Lots = 1 )
{
  bool Res = true;    
  
  // Закрыли противоположные сигналу позиции
  while ((OrdersScan(Symb, 1 - Type)) && (Res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100)));

  // Открыли позицию по сигналу
  return(Res && !OrdersScan(Symb, Type) && OrderSend(Symb, Type, Lots, SymbolInfoDouble(Symb, Type ? SYMBOL_BID : SYMBOL_ASK), 100, 0, 0));
}

// Шаблон торговой стратегии
void Strategy( const string Symb )
{
  if (BuySignal(Symb))
    Action(Symb, OP_BUY);
  else if (SellSignal(Symb))
    Action(Symb, OP_SELL);
}

void OnTick()
{
  Strategy(_Symbol);
}

А вот на MT5 - это хороший вопрос на самом деле!

Интересны замечания по MT5.
 
fxsaber:

Не может.

Да, точно. Может просто не закрыть позицию, когда это нужно сделать.


fxsaber:

В данном случае лаконичность только на руку - вся ТС на экране.

Можно хоть в 5 строк записать, читать от этого легче не станет.

Делюсь своим восприятием.

 
Andrey Khatimlianskii:

Да, точно. Может просто не закрыть позицию, когда это нужно сделать.

Специально написал вариант на MT4, чтобы привычней было. Кажется, что MT4 и MT5 варианты идентичны. СБ - точно порядок. Будем считать, что MT4 вариант на 100% рабочий. Т.е. мелкие шероховатости упустим.

Можно хоть в 5 строк записать, читать от этого легче не станет.

Делюсь своим восприятием.

Да, чужой код - потемки.

 
fxsaber:

Специально написал вариант на MT4, чтобы привычней было. Кажется, что MT4 и MT5 варианты идентичны. СБ - точно порядок.

И что, OrderClose гарантированно закрывает сделку?


fxsaber:

Да, чужой код - потемки.

Нет, это не всегда так. Я про стиль.

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