//+------------------------------------------------------------------+//| SignalRSI.mqh |//| Copyright 2009-2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+
#include <Expert\ExpertSignal.mqh>
// wizard description start//+------------------------------------------------------------------+//| Description of the class |//| Title=Signals of oscillator 'Relative Strength Index' |//| Type=SignalAdvanced |//| Name=Relative Strength Index |//| ShortName=RSI |//| Class=CSignalRSI |//| Page=signal_rsi |//| Parameter=PeriodRSI,int,8,Period of calculation |//| Parameter=Applied,ENUM_APPLIED_PRICE,PRICE_CLOSE,Prices series |//| Parameter=Intervals,int,1,Type of intervals |//+------------------------------------------------------------------+// wizard description end//+------------------------------------------------------------------+//| Class CSignalRSI. |//| Purpose: Class of generator of trade signals based on |//| the 'Relative Strength Index' oscillator. |//| Is derived from the CExpertSignal class. |//+------------------------------------------------------------------+class CSignalRSI : public CExpertSignal
{
protected:
CiRSI m_rsi; // object-oscillator//--- adjusted parametersint m_periodRSI; // the "period of calculation" parameter of the oscillator
ENUM_APPLIED_PRICE m_applied; // the "prices series" parameter of the oscillatorint m_intervals; ////--- "weights" of market models (0-100)int m_pattern_0; // model 0 "the oscillator has required direction"int m_pattern_1; // model 1 "reverse behind the level of overbuying/overselling"int m_pattern_2; // model 2 "failed swing"int m_pattern_3; // model 3 "divergence of the oscillator and price"int m_pattern_4; // model 4 "double divergence of the oscillator and price"int m_pattern_5; // model 5 "head/shoulders"//--- variablesdouble m_extr_osc[10]; // array of values of extremums of the oscillatordouble m_extr_pr[10]; // array of values of the corresponding extremums of priceint m_extr_pos[10]; // array of shifts of extremums (in bars)uint m_extr_map; // resulting bit-map of ratio of extremums of the oscillator and the pricepublic:
CSignalRSI(void);
~CSignalRSI(void);
//--- methods of setting adjustable parametersvoid PeriodRSI(intvalue) { m_periodRSI=value; }
void Applied(ENUM_APPLIED_PRICE value) { m_applied=value; }
void Intervals(intvalue) { m_intervals=value; }//--- methods of adjusting "weights" of market modelsvoid Pattern_0(intvalue) { m_pattern_0=value; }
Владимир, так это тогда надо каждый раз, как перекомпилируешь советник, вставлять в него вручную часть кода?
Нет, после того как Вы вставили перечисление enum в код советника Вы можете компилировать его сколько угодно. Код ведь остаётся на месте и вставленная часть никуда не денеться.
Выделил строку, которая не срабатывает.
Решение такое: в модуле сигналов
В советнике, который был сгенерирован Мастером MQL5:
Итог:
Ну а сразу задать входной параметр, использующий перечисление enum, в описании модуля сигнала разве нельзя?
А на кнопку "Ответить" нажать, что трудно? Чтобы было понятно, к кому Вы обращаетесь и на какой вопрос спрашиваете?
Так если сообщения идут одно за другим и так понятно, что это ответ на предыдущее и использование лишней цитаты - это ведь уже оверквотинг.
Вышел из диалога. Продолжайте спрашивать в воздух, то есть ни к кому.
Вышел из диалога. Продолжайте спрашивать в воздух, то есть ни к кому.
То есть ответа нет? Вопрос ко всем.
Ну а сразу задать входной параметр, использующий перечисление enum, в описании модуля сигнала разве нельзя?
А подскажите пожалуйста, где посмотреть пример?
Куда в модуле сигнала вставить код входного параметра в виде перечисления, чтобы потом его указать в дескрипторе этого модуля.
enum ENUM_AVAILABLE_POSITIONS { LONG_POSITION, SHORT_POSITION, BOTH_POSITION };Решение такое: в модуле сигналов
В советнике, который был сгенерирован Мастером MQL5:
Итог:
Владимир, так это тогда надо каждый раз, как перекомпилируешь советник, вставлять в него вручную часть кода?
Владимир, так это тогда надо каждый раз, как перекомпилируешь советник, вставлять в него вручную часть кода?
Нет, после того как Вы вставили перечисление enum в код советника Вы можете компилировать его сколько угодно. Код ведь остаётся на месте и вставленная часть никуда не денеться.