Подскажите, где можно скачать последнюю версию Canvas.mqh

 
Пытаюсь компилировать, а мне выскакивает
'LineWu' - function not defined Test_AO_BGA.mq4 230     10

И

'ArrayReverse' - function not defined   AO_BGA.mqh      30      3

А хочется посмотреть, как этот скрипт из статьи у меня будет работать. 

 
Evgeny Potapov:
Пытаюсь компилировать, а мне выскакивает

И

А хочется посмотреть, как этот скрипт из статьи у меня будет работать. 

Так и спросили бы в обсуждении статьи. Видимо просто в статье путь к классу указан как-то не так…

 
Evgeny Potapov:
Пытаюсь компилировать, а мне выскакивает

И

А хочется посмотреть, как этот скрипт из статьи у меня будет работать. 

Эти функции есть в MQL5, нет в MQL4.

 
trader6_1 #:

Эти функции есть в MQL5, нет в MQL4.

А Canvas из MQL5 можно использовать d MQL4 ?

Или там есть аналог?

ArrayReverse

Тоже было бы интересно где-то найти...

 

Использовал для работы МТ5, где путь к файлу:

\MT5\MQL5\Include\Canvas\Canvas.mqh

 
Evgeny Potapov #:
А Canvas из MQL5 можно использовать d MQL4 ?

Я использую в  MQL4 Canvas.mqh из MQL5.

 
вот файл от MT5:
Файлы:
Canvas.mqh  153 kb
 
Andrey Dik #:
вот файл от MT5:

Благодарю!

С этим файлом компилируется.

Осталась только 

'ArrayReverse'

Чтобы не начинать новую тему, нет ли готового кода для 'ArrayReverse'?

 
Evgeny Potapov #:

нет ли готового кода для 'ArrayReverse'?

#ifndef __MQL5__
  template <typename T>
  void Swap( T &Value1, T &Value2 )
  {
    const T Tmp = Value1;
    
    Value1 = Value2;
    Value2 = Tmp;
  }
  
  template <typename T>  
  bool ArrayReverse( T &Array[], const uint Start = 0, const uint Count = WHOLE_ARRAY )
  {
    int i = (int)Start;
    int j = ((Count == WHOLE_ARRAY) ? ArraySize(Array) : (int)MathMin(ArraySize(Array), Start + Count)) - 1;
    
    const bool Res = i < j;
    
    while (i < j)
      Swap(Array[i++], Array[j--]);
    
    return(Res);
  }
#endif // #ifndef __MQL5__
 
fxsaber #:
#ifndef __MQL5__   template <typename T>   void Swap( T &Value1, T &Value2 )   {     const T Tmp = Value1;          Value1 = Value2;     Value2 = Tmp;   }      template <typename T>     bool ArrayReverse( T &Array[], const uint Start = 0, const uint Count = WHOLE_ARRAY )   {     int i = (int)Start;     int j = ((Count == WHOLE_ARRAY) ? ArraySize(Array) : (int)MathMin(ArraySize(Array), Start + Count)) - 1;          const bool Res = i < j;          while (i < j)       Swap(Array[i++], Array[j--]);          return(Res);   } #endif // #ifndef __MQL5__

Благодарю!