Кроссплатформенный iCustom

31 января 2017, 22:35
Andrei Trukhanovich
0
238
Набросал инклудник для замещения iCustom на удобный кроссплатформенный класс.
Он конечно очень удобный, но может вызывать только индикаторы с количеством параметров не больше 8. Именно параметров, имя, инструмент, тф, буфер, индекс не считаются.
Использование выглядит так:

//+------------------------------------------------------------------+
//|                                                         test.mq4 |
//+------------------------------------------------------------------+
#include <iCustom.mqh>

void OnStart()
{
  ICustom* x = CreateCustom("MACD", Symbol(), Period(), 50, 100, 20);
  double v1 = x.Value(1, 1);
  delete x;
  double v2 = iCustom(Symbol(), Period(), "MACD", 50, 100, 20, 1, 1);
  Print("v1 = ", v1, "; v2 = ", v2);
}
Или так для mql5:

#include <iCustom.mqh>

void OnStart()
{
  ICustom* x = CreateCustom("MACD", Symbol(), Period(), 50, 100, 20);
  Sleep(200);
  double v1 = x.Value(1, 1);
  delete x;
  int hMacd = iCustom(Symbol(), Period(), "MACD", 50, 100, 20);
  Sleep(200);
  double data[];
  CopyBuffer(hMacd, 1, 1, 1, data);
  Print("v1 = ", v1, "; v2 = ", data[0]);
}
Особо не тестировал, поэтому если баги пишите.
Файлы:
iCustom.mqh  12 kb
Поделитесь с друзьями: