Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 893

 
Andy:

Qui, il penultimo parametro appare quando il modulo del segnale è selezionato e i parametri sono visualizzati in anteprima, ma l'ultimo non lo fa (nessun errore, nessun avviso di compilazione).

Niente è chiaro. Prova a evidenziare il testo con lo strumento "Colore".

Altrimenti, non saprete quale è il "penultimo parametro" e quale l'"ultimo".

 
Evidenziato una linea che non funziona.
 
Andy:
Evidenziata una linea che non si attiva.

La soluzione è la seguente: nel modulo segnali

//+------------------------------------------------------------------+
//|                                                    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;           }


Nell'Expert Advisor che è stato generato dal Wizard 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;


Linea di fondo:


 
Beh, non si può specificare direttamente un parametro di ingresso che usa un enum nella descrizione del modulo di segnale?
 
Andy:
Beh, non si può semplicemente specificare il parametro di ingresso usando enum nella descrizione del modulo di segnale?

È difficile premere il pulsante "Rispondi"? Per chiarire a chi si sta rivolgendo e quale domanda sta facendo?

 
Quindi se i post sono uno dopo l'altro è già chiaro che sono in risposta a quello precedente, e usare una citazione extra è una citazione eccessiva.
 
Andy:
Quindi se i post sono uno dopo l'altro ed è già chiaro che si tratta di una risposta a quello precedente e l'uso di una citazione extra è già un overquoting.

Esci dal dialogo. Continua a chiedere in aria, cioè a nessuno.

 
Vladimir Karputov:

Esci dal dialogo. Continua a chiedere nell'aria, cioè a nessuno.

Quindi non c'è una risposta? La domanda è per tutti.

 
Andy:
Beh, non si può specificare un parametro di ingresso tramite enum direttamente nella descrizione del modulo di segnale?
È possibile.
 

Potresti dirmi dove trovare un esempio?

Dove nel modulo del segnaleinserire il codice del parametro di ingresso come enumerazione, in modo che possa poi essere specificato nel descrittore di quel modulo.

enum ENUM_AVAILABLE_POSITIONS
  {
   LONG_POSITION,
   SHORT_POSITION,
   BOTH_POSITION
  };