Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 893

 
Andy:

Hier erscheint der vorletzte Parameter, wenn das Signalmodul ausgewählt wird und die Parameter in der Vorschau angezeigt werden, der letzte jedoch nicht (keine Fehler, auch keine Kompilierwarnungen).

Nichts ist klar. Versuchen Sie, den Text mit dem Werkzeug "Farbe" zu markieren

Andernfalls wissen Sie nicht, welches der "vorletzte Parameter" und welches der "letzte" ist.

 
Eine Zeile, die nicht funktioniert, wurde hervorgehoben.
 
Andy:
Hervorgehoben ist eine Zeile, die nicht ausgelöst wird.

Die Lösung ist wie folgt: im Modul Signale

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


In dem vom MQL5-Assistenten erzeugten Expert Advisor:

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


Unterm Strich:


 
Kann ein Eingangsparameter, der ein Enum in der Signalmodulbeschreibung verwendet, nicht direkt angegeben werden?
 
Andy:
Kann man den Eingangsparameter nicht einfach mit enum in der Signalmodulbeschreibung angeben?

Ist es schwierig, die Schaltfläche "Antworten" zu drücken? Um deutlich zu machen, an wen Sie sich wenden und welche Frage Sie stellen?

 
Wenn die Beiträge hintereinander stehen, ist bereits klar, dass sie eine Antwort auf den vorherigen Beitrag sind, und die Verwendung eines zusätzlichen Zitats ist ein Überzitieren.
 
Andy:
Wenn die Beiträge hintereinander stehen und es bereits klar ist, dass es sich um eine Antwort auf den vorherigen Beitrag handelt, ist die Verwendung eines zusätzlichen Zitats bereits ein Überzitieren.

Verlassen Sie den Dialog. Fragen Sie weiter in der Luft, d. h. an niemanden.

 
Vladimir Karputov:

Verlassen Sie den Dialog. Fragen Sie weiter in die Luft, das heißt, an niemanden.

Es gibt also keine Antwort? Die Frage richtet sich an alle.

 
Andy:
Nun, kann ein Eingangsparameter mit enum nicht direkt in der Signalmodulbeschreibung angegeben werden?
Sie können.
 

Können Sie mir bitte sagen, wo ich ein Beispiel finden kann?

Wo im Signalmodulder Code des Eingangsparameters als Aufzählungeinzufügen ist, so dass er dann im Deskriptor dieses Moduls angegeben werden kann.

enum ENUM_AVAILABLE_POSITIONS
  {
   LONG_POSITION,
   SHORT_POSITION,
   BOTH_POSITION
  };