Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1953
- Рейтинг:
- Опубликован:
- 2016.11.08 08:27
- Обновлен:
- 2017.09.06 10:48
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Полная цепочка: индикатор Candels High Open, советник на базе модуля сигналов - CandelsHighOpen.
Модуль торговых сигналов SignalCandelsHighOpen предполагает, что пользовательский индикатор Candels High Open уже скомпилирован и размещён в папке \MQL5\Indicators\. Данный путь прописывается в модуле в следующем блоке кода:
//| Создает индикатор "Candels High Open" |
//+------------------------------------------------------------------+
bool CSignalCHO::CreateCandelsHighOpen(CIndicators *indicators)
{
//--- проверка указателя
if(indicators==NULL) return(false);
//--- добавление объекта в коллекцию
if(!indicators.Add(GetPointer(m_SignalCHO)))
{
printf(__FUNCTION__+": ошибка добавления объекта CandelsHighOpen");
return(false);
}
//--- задание параметров индикатора Candels High Open
MqlParam parameters[2];
//---
parameters[0].type=TYPE_STRING;
parameters[0].string_value="Candels High Open.ex5";
parameters[1].type=TYPE_INT;
parameters[1].integer_value=m_reverse_signals; // реверс
//--- инициализация объекта
if(!m_SignalCHO.Create(m_symbol.Name(),m_period,IND_CUSTOM,2,parameters))
{
printf(__FUNCTION__+": ошибка инициализации объекта CandelsHighOpen");
return(false);
}
//--- количество буферов
if(!m_SignalCHO.NumBuffers(1)) return(false);
//--- дошли до этого места, значит, функция выполнена успешно - вернем true
return(true);
}
Если индикатор размещён в другой папке, например в \MQL5\Indicators\Examples\, то путь к индикатору будет таким:
Сигналы на покупку и на продажу:
Так как индикатор Candels High Open в своём буфере содержит только три значения:
- "+1" - сигнал к покупке
- "0" - нет сигнала
- и "-1" - сигнал к продаже,
//| Возвращает силу сигнала на покупку |
//+------------------------------------------------------------------+
int CSignalCHO::LongCondition()
{
int signal=0;
//--- для режима работы по тикам idx=0, в режиме работы по сформировавшимся барам idx=1
int idx=StartIndex();
//--- значения сигнала на последнем сформировавшемся баре
double ind_value=Signal(idx);
//---
if(ind_value>0.0)
{
signal=100; // сигнал на покупку есть
}
//--- вернем значение сигнала
return(signal);
}
//+------------------------------------------------------------------+
//| Возвращает силу сигнала на продажу |
//+------------------------------------------------------------------+
int CSignalCHO::ShortCondition()
{
int signal=0;
//--- для режима работы по тикам idx=0, в режиме работы по сформировавшимся барам idx=1
int idx=StartIndex();
//--- значения сигнала на последнем сформировавшемся баре
double ind_value=Signal(idx);
//---
if(ind_value<0.0)
{
signal=100; // сигнал на продажу есть
}
//--- вернем значение сигнала
return(signal);
}
При генерации советника при помощи Мастера MQL5 нужно искать модуль сигналов с описанием "Анализ High и Open последних трёх баров":

Candels High Open - индикатор анализа High и Open последних трёх баров.

CandelsHighOpen — советник на базе модуля торговых сигналов индикатора Candels High Open. Возможности торговли рыночными и отложенными ордерами, трейлинг уровня Stop Loss по индикатору "Parabolic SAR".