0
238
Набросал инклудник для замещения iCustom на удобный кроссплатформенный класс.
Он конечно очень удобный, но может вызывать только индикаторы с количеством параметров не больше 8. Именно параметров, имя, инструмент, тф, буфер, индекс не считаются.
Использование выглядит так:
Он конечно очень удобный, но может вызывать только индикаторы с количеством параметров не больше 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://| 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);
}
#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]);
}
Особо не тестировал, поэтому если баги пишите.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