Merkmale der Sprache mql4, Feinheiten und Techniken - Seite 3

 

Wenn Sie ein Skript, einen Indikator oder einen Expert Advisor starten, werden die Namen der Variablen auf der Registerkarte Eingabeparameter angezeigt

extern int Период=10;


Wenn die Direktive #property strict vorhanden ist, wird der Kommentar anstelle des Variablennamens angezeigt

#property strict
extern int Период=10;  // Период отображения информации

Dies ist informativer, IMHO

 
LRA:

Wenn Sie ein Skript, einen Indikator oder einen Expert Advisor starten, werden die Namen der Variablen auf der Registerkarte Eingabeparameter angezeigt


Wenn die Direktive #property strict vorhanden ist, wird der Kommentar anstelle des Variablennamens angezeigt

IMHO ist sie informativer.

Nun, dann vor allem für diejenigen, die das nicht wussten. Siehe den Screenshot, dort ist alles klar.


 

Es gibt einen Fehler in MT4: Wenn das Depot größer als 999999 ist, fehlt eine Ziffer in der detaillierten Berichtstabelle.

Liegt sie über 999999, fehlen zwei Ziffern. Es werden immer nur die ersten 5 Ziffern angezeigt.


 
LRA:

Es gibt einen Fehler in MT4: Wenn das Depot größer als 999999 ist, fehlt eine Ziffer in der detaillierten Berichtstabelle.

Liegt sie über 999999, fehlen zwei Ziffern. Es werden immer nur die ersten 5 Ziffern angezeigt.


Vergessen Sie nicht anzugeben, dass Sie in den Systemeinstellungen den Schriftgrad auf 125 % eingestellt haben.
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

Wussten Sie, dass Sie die Länge der Geschichte bestimmen können? Dies wirkt sich auf die Dauer der Suche aus!

Wenn Sie heute einstellen, wird es weniger von allem geben! Wird die Geschichte um Mitternacht leer sein? Am besten in den letzten 3 Tagen.

An die Entwickler: Wie kann man die Tiefe des Verlaufs programmatisch einstellen?

 
Im Gegensatz zu MQL5 können statische Arrays in MQL4 ihre Größe ändern.
 
fxsaber:
Im Gegensatz zu MQL5 können statische Arrays in MQL4 ihre Größe ändern.

Liegt ein Fehler in der Hilfe vor?

//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq4 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL4: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
} 


//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq5 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL5: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
}
 
LRA:

Liegt ein Fehler in der Bescheinigung vor?

Es liegt kein Fehler vor, wenn man bedenkt, dass es in MQL4 keine statischen Arrays gibt.
 
Was das Thema Statik betrifft, so gibt es in beiden Sprachen einen feinen Unterschied

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

mt4 build 1066

James Cater, 2017.04.28 16:53

Ich habe einen Regressionsfehler bei der Initialisierungsreihenfolge von statischen Variablen in Funktionen gefunden

Dies funktionierte in Build 1065. Ich habe dies dem Service Desk gemeldet

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = TestBrokenStatic();
   
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   return rates_total;
}


2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Erwartetes Ergebnis 103 - Tatsächliches Ergebnis=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Erwartetes Ergebnis 102 - Tatsächliches Ergebnis=1


 
fxsaber:
Es gibt ein subtiles Moment in beiden Sprachen

Was für ein feiner Punkt... Haben Sie es in SD geschrieben?