Индикаторы: Rex

 

Rex:

Истинное значение бара (TVB - True Value of Bar) дает представление о том, насколько здоровым является рынок. Rex Oscillator - это скользящее среднее значений TVB.

Когда значение линии Rex осциллятора становится положительным на медвежьем рынке, это указывает на разворот вверх.

Аналогичным образом, отрицательное значение линии на бычьем рынке, указывает на разворот вниз.

Помимо этого, пересечения линий Rex и Signal осциллятора возможно использовать в качестве предупреждающих сигналов.

Индикатор имеет четыре настраиваемых параметра:

  • Rex period - период расчета линии осциллятора;
  • Rex method - метод расчета линии осциллятора;
  • Signal period - период расчета сигнальной линии;
  • Signal method - метод расчета сигнальной линии.

Расчет:

Rex = MA(TVB, Rex period, Rex method)
Signal = MA(Rex, Signal period, Signal method)

где:

TVB = 3*Close - (Low + Open + High)

Автор: Scriptor

 

Второй оператор switch кажется неправильным, поскольку он такой же, как и первый.

switch(InpMethod)
{
case MODE_EMA: if(ExponentialMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex)==0) return 0; break;
case MODE_SMMA: if(SmoothedMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex)==0) return 0; break;
case MODE_LWMA: if(LinearWeightedMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex,weight_sum)==0) return 0; break;
//---MODE_SMA
по умолчанию: if(SimpleMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex)==0) return 0; break;
}
switch(InpMethod)
{
case MODE_EMA: if(ExponentialMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal)==0) return 0; break;
case MODE_SMMA: if(SmoothedMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal)==0) return 0; break;
case MODE_LWMA: if(LinearWeightedMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal,weight_sum)==0) return 0; break;
//---MODE_SMA
по умолчанию: if(SimpleMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal)==0) return 0; break;
}


должно быть изменено на

switch(InpMethod)
{
case MODE_EMA: if(ExponentialMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex)==0) return 0; break;
case MODE_SMMA: if(SmoothedMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex)==0) return 0; break;
case MODE_LWMA: if(LinearWeightedMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex,weight_sum)==0) return 0; break;
//---MODE_SMA
по умолчанию: if(SimpleMAOnBuffer(rates_total,prev_calculated,0,period_rex,BufferTVB,BufferRex)==0) return 0; break;
}
switch(InpMethodSig)
{
case MODE_EMA: if(ExponentialMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal)==0) return 0; break;
case MODE_SMMA: if(SmoothedMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal)==0) return 0; break;
case MODE_LWMA: if(LinearWeightedMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal,weight_sum)==0) return 0; break;
//---MODE_SMA
по умолчанию: if(SimpleMAOnBuffer(rates_total,prev_calculated,period_rex,period_sig,BufferRex,BufferSignal)==0) return 0; break;
}
 
Я прикрепил модифицированную версию, основанную на отчете @Leif выше, я также добавил линию нулевого уровня в код. Обратите внимание, что вам нужно нажать "Перейти к обсуждению", чтобы увидеть прикрепленный файл.
Файлы:
Rex.mq5  11 kb
 

Объявление 'weight_sum' скрывает глобальную переменную MovingAverages.mqh 222 155

Предупреждение при компиляции.

 

Привет, Scriptor, спасибо за бесплатные индикаторы, я не могу писать код, но я использовал сайт FXDreema, чтобы попытаться создать бота, я хотел бы использовать индикатор rex, чтобы попробовать, но он не показывает буферы при загрузке, возможно ли это сделать?


Спасибо