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

 

Wie der Code in Mql5 aussehen würde

if (Close[1]-Open[1]>visota*Point)

{

....

}

 
Dmitriywelcome:

Wie der Code in Mql5 aussehen würde

Es sieht folgendermaßen aus

   MqlRates rates[2]; 
   int copied = CopyRates(NULL, 0, 0, 2, rates);
   if(rates[0].close-rates[0].open > visota*_Point)
     {
      /******************/
     }
Schrauben Sie die erforderlichen Kontrollen selbst ein.
 
Dmitriywelcome:

Wie würde der Code in Mql5 aussehen?

Sie können auch Folgendes tun

if(iClose(NULL,0,1)-iOpen(NULL,0,1)>visota*_Point)
 

können Sie das auch tun:

#define  Close(shift) iClose(NULL,0,shift)
#define  Open(shift)  iOpen(NULL,0,shift)
....
if (Close(1) - Open(1) > visota*_Point)
 

44

Hallo. Ich versuche, eine Bedingung zu schreiben, aber ich mache etwas falsch. Bitte helfen Sie mir, es herauszufinden.

Wenn der Kurs die Indikatorlinie von unten nach oben kreuzt, eröffne ich eine Kaufposition.

Ich versuche, eine Bedingung für dieselbe Leistevorzuschreiben:

Wenn der Schlusskurs der aktuellen Kerze über der Indikatorlinie liegt und der Geldkurs auf einem der folgenden Balken über der Indikatorlinie liegt - ...Bedingung 1

Wie macht man es richtig?

if (m_position.Select(_Symbol))         //проверка на наличие позиции
   { 
    Print ("Позиция открыта");
    if(m_position.PositionType()==POSITION_TYPE_BUY)
    {
     Print ("Открыта на покупку");
     if (close_1 > Sig_Up[0])   //цена закрытия текущей свечи выше линии индикатора 
       {
        int cl = 4;
     if (cl && Bid > Sig_Up[0])  // Bid больше линии индикатора
       {
        ....
     }
     }                        
     }                                                           
     }
 
Igor Makanu:

können Sie es auf diese Weise tun:

Nehmen Sie keine Änderungen an der Nummerierung der Balken vor. Der Code von einer Vier mit dem ersten Balken für eine Fünf wird also auch den ersten Balken ohne Nummernumkehr haben?

 
Valeriy Yastremskiy:

und ändern Sie nichts an der Nummerierung der Balken. D.h. der Code von vier mit dem ersten Balken für fünf wird auch mit dem ersten Balken ohne Umkehrung der Nummerierung sein?

Aus der Dokumentation

Schicht

[in] Der Index des zu ermittelnden Zeitreihenwerts ( relativ zum aktuellen Balken um die angegebene Anzahl von Balken zurück verschoben).


Eine Verschiebung von 0 relativ zum aktuellen Takt wird der aktuelle Takt sein. Und wenn es 1 ist, dann ist es das vorherige.

 
Igor Makanu:

können Sie es auf diese Weise tun:

Close[shift] hat eckige Klammern. fehlgeschlagen.

Alexey Viktorov:

Aus der Dokumentation

Bezogen auf den aktuellen Takt, verschieben Sie 0 und es wird der aktuelle Takt sein. Und wenn es 1 ist, dann ist es das vorherige.

Verstehe ich das richtig, dass die Nummerierung der Zeitreihen in 5 dieselbe ist wie in 4?

 
Valeriy Yastremskiy:

Close[shift] hat eckige Klammern. fehlgeschlagen.

Es hat funktioniert, hier ist der Code von@fxsaber

// Позволяет, как в MT4, работать с таймсериями: Open[Pos], High[Pos], Low[Pos], Close[Pos], Time[Pos], Volume[Pos].
// А так же задает привычные MT4-функции: iOpen, iHigh, iLow, iClose, iTime, iVolume.
#define  DEFINE_TIMESERIE(NAME,FUNC,T)                                                                         \
  class CLASS##NAME                                                                                           \
  {                                                                                                           \
  public:                                                                                                     \
    static T Get(const string Symb,const int TimeFrame,const int iShift) \
    {                                                                                                         \
      T tValue[];                                                                                             \
      return((Copy##FUNC((Symb == NULL) ? _Symbol : Symb, _Period, iShift, 1, tValue) > 0) ? tValue[0] : -1); \
    }                                                                                                         \
    T operator[](const int iPos) const                                                                     \
    {                                                                                                         \
      return(CLASS##NAME::Get(_Symbol, _Period, iPos));                                                       \
    }                                                                                                         \
  };                                                                                                          \
  CLASS##NAME  NAME;                                                                                           \
  T i##NAME(const string Symb,const int TimeFrame,const int iShift) \
  {                                                                                                           \
    return(CLASS##NAME::Get(Symb,  TimeFrame, iShift));                                                        \
  }
//+------------------------------------------------------------------+
DEFINE_TIMESERIE(Volume, TickVolume, long)
DEFINE_TIMESERIE(Time, Time, datetime)
DEFINE_TIMESERIE(Open, Open, double)
DEFINE_TIMESERIE(High, High, double)
DEFINE_TIMESERIE(Low, Low, double)
DEFINE_TIMESERIE(Close, Close, double)
//+------------------------------------------------------------------+

können Sie jetzt Close[1] > Close[2 ] schreiben.

 
Sergey:


Hallo. Ich versuche, eine Bedingung zu schreiben, aber ich mache etwas falsch. Bitte helfen Sie mir, es herauszufinden.

Wenn der Kurs die Indikatorlinie von unten nach oben kreuzt, eröffne ich eine Kaufposition.

Ich versuche, eine Bedingung für dieselbe Leistevorzuschreiben:

Wenn der Schlusskurs der aktuellen Kerze über der Indikatorlinie liegt und der Geldkurs auf einem der folgenden Balken über der Indikatorlinie liegt - ...Bedingung 1

Wie macht man es richtig?

das Terminal verfügt über eine Probe von Moving Average.mq5

Wenn ich das richtig verstehe, brauchen Sie das so?

Foto von

Grund der Beschwerde: