Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2666

 
Vitaly Muzichenko #:

Спасибо, вторая ссылка помогла, сам вряд ли бы нашел...
 

Есть способ получить Print в OnDeinit индикатора только на текущем графике Терминала? Т.е. в других копиях и окнах пропускать принт

нужно для написания и отладки, что-бы принт не задваивался с других окон при перекомпиляции


примерно такой код не помогает

void OnDeinit(const int reason)
  {
   if(ChartID()==0 && Period() == ChartPeriod(0) && reason==REASON_RECOMPILE)
              Print(" была перекомпилирована. ",__DATETIME__);
//---
      IndicatorRelease(Handle);
  }
 
lynxntech #:

Есть способ получить Print в OnDeinit индикатора только на текущем графике Терминала? Т.е. в других копиях и окнах пропускать принт

нужно для написания и отладки, что-бы принт не задваивался с других окон при перекомпиляции


примерно такой код не помогает

 Попробуйте поставить график с индикатором первым в списке или запишите все графики в массив и на нужном принтуйте. Предположение. конечно.
 

Привет. Подскажите, пожалста, почему iBarShift возвращает -1 когда свеча на графике есть? И как с этим быть? мт5 индикатор

                int shift = iBarShift(NULL, 0, time_price_min_for_blue_rect);
                if(shift < 0 || shift > ArraySize(buf_border_lo_fix) - 1) Print("shift ", shift, "  time_price_min_for_blue_rect ", time_price_min_for_blue_rect);
 
Andrei Sokolov #:
shift > ArraySize(buf_border_lo_fix) - 1

возможно по этому..

а что заказчик говорит ? :-)

ЗЫ. это-ж фрилансный заказ, разве нет ?

 
Maxim Kuznetsov #:
возможно по этому..
Там, вроде как, Print выводит "shift -1".
 
Maxim Kuznetsov #:

возможно по этому..

а что заказчик говорит ? :-)

ЗЫ. это-ж фрилансный заказ, разве нет ?

Это имеет какое-то значение?
 
Andrei Sokolov #:
почему iBarShift возвращает -1

Потому, что он может. Как по мне, даже причину искать не обязательно, подобные функции будут неизбежно фейлить иногда. Нормальных вариантов только 2:

  • либо предусмотреть в коде ситуацию, когда не удалось получить индекс бара (и корректно среагировать на нее)
  • либо найти индекс бара самостоятельно в предварительно скопированном массиве котировок
 

А никого не смущает эта строка?


 
Maxim Kuznetsov #:

возможно по этому..

а что заказчик говорит ? :-)

ЗЫ. это-ж фрилансный заказ, разве нет ?

Во первых - нет, во вторых - это не важно, в третьих - влуд и троллинг обычно запрещены на форумах.

И от себя попрошу не заниматься выливанием своего негатива на форуме, такое красоты никому не добавляет.