Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 893

 
Andy:

Вот, предпоследний параметр появляется при выборе модуля сигнала и предварительном просмотре параметров, а последний - нет (ошибок, предупреждений компиляции тоже нет).

Ничего не ясно. Попробуйте выделить текст при помощи инструмента "Цвет"

Иначе не понять, кто тут "предпоследний параметр", а кто "последний".

 
Выделил строку, которая не срабатывает.
 
Andy:
Выделил строку, которая не срабатывает.

Решение такое: в модуле сигналов

//+------------------------------------------------------------------+
//|                                                    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 parameters
   int               m_periodRSI;      // the "period of calculation" parameter of the oscillator
   ENUM_APPLIED_PRICE m_applied;       // the "prices series" parameter of the oscillator
   int               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"
   //--- variables
   double            m_extr_osc[10];   // array of values of extremums of the oscillator
   double            m_extr_pr[10];    // array of values of the corresponding extremums of price
   int               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 price

public:
                     CSignalRSI(void);
                    ~CSignalRSI(void);
   //--- methods of setting adjustable parameters
   void              PeriodRSI(int value)              { m_periodRSI=value;           }
   void              Applied(ENUM_APPLIED_PRICE value) { m_applied=value;             }
   void              Intervals(int value)              { m_intervals=value;           }
   //--- methods of adjusting "weights" of market models
   void              Pattern_0(int value)              { m_pattern_0=value;           }


В советнике, который был сгенерирован Мастером MQL5:

//+------------------------------------------------------------------+
//|                                                          RSI.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalRSI.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//---
enum ENUM_intervals  // Enumeration of named constants 
  {
   month=1,     // Interval of one month 
   two_months,  // Two months 
   quarter,     // Three months - quarter 
   halfyear=6,  // Half a year 
   year=12,     // Year - 12 months 
  };
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title         ="RSI";       // Document name
ulong                    Expert_MagicNumber   =13111;       // 
bool                     Expert_EveryTick     =false;       // 
//--- inputs for main signal
input int                Signal_ThresholdOpen =10;          // Signal threshold value to open [0...100]
input int                Signal_ThresholdClose=10;          // Signal threshold value to close [0...100]
input double             Signal_PriceLevel    =0.0;         // Price level to execute a deal
input double             Signal_StopLevel     =50.0;        // Stop Loss level (in points)
input double             Signal_TakeLevel     =50.0;        // Take Profit level (in points)
input int                Signal_Expiration    =4;           // Expiration of pending orders (in bars)
input int                Signal_RSI_PeriodRSI =8;           // Relative Strength Index(8,...) Period of calculation
input ENUM_APPLIED_PRICE Signal_RSI_Applied   =PRICE_CLOSE; // Relative Strength Index(8,...) Prices series
input ENUM_intervals     Signal_RSI_Intervals =month;       // Relative Strength Index(8,...) Type of intervals
input double             Signal_RSI_Weight    =1.0;         // Relative Strength Index(8,...) Weight [0...1.0]
//--- inputs for money
input double             Money_FixLot_Percent =10.0;        // Percent
input double             Money_FixLot_Lots    =0.1;         // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;


Итог:


 
Ну а сразу задать входной параметр, использующий перечисление enum, в описании модуля сигнала разве нельзя?
 
Andy:
Ну а сразу задать входной параметр, использующий перечисление enum, в описании модуля сигнала разве нельзя?

А на кнопку "Ответить" нажать, что трудно? Чтобы было понятно, к кому Вы обращаетесь и на какой вопрос спрашиваете?

 
Так если сообщения идут одно за другим и так понятно, что это ответ на предыдущее, а использование лишней цитаты - это ведь уже оверквотинг.
 
Andy:
Так если сообщения идут одно за другим и так понятно, что это ответ на предыдущее и использование лишней цитаты - это ведь уже оверквотинг.

Вышел из диалога. Продолжайте спрашивать в воздух, то есть ни к кому. 

 
Vladimir Karputov:

Вышел из диалога. Продолжайте спрашивать в воздух, то есть ни к кому. 

То  есть ответа нет? Вопрос ко всем.

 
Andy:
Ну а сразу задать входной параметр, использующий перечисление enum, в описании модуля сигнала разве нельзя?
Можно.
 

А подскажите пожалуйста, где посмотреть пример?

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

enum ENUM_AVAILABLE_POSITIONS
  {
   LONG_POSITION,
   SHORT_POSITION,
   BOTH_POSITION
  };
Причина обращения: