//+------------------------------------------------------------------+//| Получает хэндлы индикаторов |//+------------------------------------------------------------------+void GetIndicatorHandles()
{
//--- Пройдемся по всем символамfor(int s=0; s<NUMBER_OF_SYMBOLS; s++)
{
//--- Если торговля по этому символу разрешенаif(Symbols[s]!="")
{
//--- Если хэндл еще не полученif(signal_indicator_handles[s]==INVALID_HANDLE)
{
//--- Получим хэндл индикатора
signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE);
//--- Если не удалось получить хендл индикатораif(signal_indicator_handles[s]==INVALID_HANDLE)
Print("Не удалось получить хэндл индикатора для символа "+Symbols[s]+"!");
}
}
}
}
//+------------------------------------------------------------------+//| Получает значения индикаторов |//+------------------------------------------------------------------+bool GetIndicatorsData(int symbol_number)
{
//--- Количество значений индикаторного буфера для определения торгового сигнала int NumberOfValues=3;
//--- Если хэндл индикатора был полученif(signal_indicator_handles[symbol_number]!=INVALID_HANDLE)
{
//--- Установим обратный порядок индексации (... 3 2 1 0)ArraySetAsSeries(indicator[symbol_number].value,true);
//--- Получим значения индикатораif(CopyBuffer(signal_indicator_handles[symbol_number],0,0,NumberOfValues,indicator[symbol_number].value)<NumberOfValues)
{
Print("Не удалось скопировать значения ("+
Symbols[symbol_number]+"; "+TimeframeToString(_Period)+") в массив indicator! Ошибка ("+
IntegerToString(GetLastError())+"): "+ErrorDescription(GetLastError())+"");
return(false);
}
return(true);
}
//--- Если хэндл индикатора не получен, то...else
{
// ...попробуем получить его еще раз
GetIndicatorHandles();
}
return(false);
}
Проверка
Print("++++++++indicator[symbol_number][0]",Symbols[symbol_number],"= ",indicator[symbol_number].value[0]);
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
你好!我正在 根据文章https://www.mql5.com/ru/articles/648,重新设计我的专家顾问,并试图插入我自己的功能。问题是,我无法将指标改为分形。如果signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE)我用iFractals(Symbols[s], PERIOD_M15)代替它;我得到错误的价格。你能帮助并调整一下代码吗?
你是用手创作的吗?
没有。
大家好!
帮助解决这个问题。
如何使所使用的标准指标在专家顾问测试 完成后不显示在MT4图表窗口?
大家好!
帮助解决这个问题。
如何使所使用的标准指标在专家顾问测试 完成后不显示在MT4图表窗口?
没有。
你可以通过以下方式获得所创建图形的标识符。
参见HideTestIndicators()的帮助。
获取所创建图形的标识符,如下所示。