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

 
Николай К:

Können Sie mir einen Tipp geben? Dieser Eintrag:

var1=(var<10)?1:0;

Was er bedeutet, wie er zu interpretieren ist, welche Möglichkeiten er bietet. Parameter.

Dokumentation lesen.

Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Николай К:

Können Sie mir einen Tipp geben? Dieser Eintrag:

var1=(var<10)?1:0;

Was er bedeutet, wie er zu interpretieren ist, welche Möglichkeiten er bietet. Parameter.

Wenn var<10 = true, dann var1 = 1
sonst var1 = 0;

 

Hallo!!! Können Sie mir bitte sagen, ob der in MQL5 geschriebene Code mit OOP-Elementen (CLASSES) nicht im MQL4-Terminal funktioniert? Wenn ich versuche, ein Programm mit eingeschlossenen Klassen zu kompilieren, erhalte ich Fehler in den Parametern, die beim Aufruf von Methoden der Klasse übergeben werden. Aber die Klasse selbst kompiliert im 4-Editor ohne Fehler.


 

Hallo, können Sie helfen!

Wie kann ich den Wert von horizontalenIndikatorstufen in meinen EA übertragen?

***

 
Oleg Kolesov:

Hallo, können Sie helfen!

Wie kann die ID der horizontalen Ebeneneines Indikators an einen Expert Advisor übergeben werden?

Das Indikator-Handle in MQL5 MUSS in OnInit erstellt werden - und es wird auf diese Weise EINMAL erstellt. Das ist der erste Punkt, den Sie in Ordnung bringen müssen.

 
Wladimir. Erstellt in OnInit(). Der Expert Advisor sieht den Indikator. Wenn die Visualisierung, sendet es Parameter richtig, es zeichnet. Sie will nicht handeln.
 
Oleg Kolesov:
Wladimir. Erstellt in OnInit(). Der Expert Advisor sieht den Indikator. Wenn die Visualisierung, sendet es Parameter richtig, es zeichnet. Sie will nicht handeln.

Fügen Sie den Code korrektein.

 
//+------------------------------------------------------------------+
//|  Настраиваемые параметры                                         |
//+------------------------------------------------------------------+
input string Expert_Title="Exp_Tangents2";                        // The name of the EA
input int Period1=29;                                             // Period1
input int Period2=145;                                            // Period2
input int Period3=609;                                            // Period3
input double level1=46.0;                                         //                                    
input double level2=22.0;                                         //
input double level3=0.0;                                          //
input double level4=-22.0;                                        //
input double level5=-46.0;                                        //
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
// получаем хэндл индикатора Tangents
   HLHandle=iCustom(NULL,0,"Examples\\Tangents2",Period1,Period2,
                      Period3,level1,level2,level3,level4,level5);
// если хэндл неверный
   if(HLHandle<0)
     {
      Alert("Ошибка создания хэнла индикатора Tangents2 - ошибка: ",GetLastError(),"!!");
      return(-1);
     }
   }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//+---------------------------------------------------------------------+
//| Копируем значения индикаторов в массивы, используя хэндлы индикатора
//+---------------------------------------------------------------------+
   if(CopyBuffer(HLHandle,0,0,3,L1)<0 || CopyBuffer(HLHandle,1,0,3,L2)<0
      || CopyBuffer(HLHandle,2,0,3,L3)<0)
     {
      Alert("Ошибка копирования буферов хэндла индикатора Tangents2 - ошибка:",GetLastError(),"!!");
      return;
     }
  }
//+------------------------------------------------------------------+
//|  Проверяет условия на покупку                                    |
//+------------------------------------------------------------------+
bool checkBuy()
  {
   bool dobuy = false;
   if(L2[2]<level1 && L2[1]>level1 && L3[2]<level1 && L3[1]>level1 && (L1[1]>level1 || L1[1]<level5))
           {
            dobuy = true;
           }
   return(dobuy);
  }
 
Oleg Kolesov:

Warum etwas zweimal aus dem Puffer '0' kopieren?

 
Oleg Kolesov:

Haben Sie daran gedacht, die Arrays, in die Sie kopieren, mitArraySetAsSeries(***,true) zu spiegeln?

Grund der Beschwerde: