Caractéristiques du langage mql4, subtilités et techniques - page 3

 

Lors du lancement d'un script, d'un indicateur ou d'un Expert Advisor, les noms des variables sont affichés dans l'onglet Paramètres d'entrée.

extern int Период=10;


Si la directive #property strict est présente, le commentaire est affiché à la place du nom de la variable

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

Ceci est plus informatif, IMHO

 
LRA:

Lors du lancement d'un script, d'un indicateur, d'un Expert Advisor, les noms des variables sont affichés dans l'onglet Paramètres d'entrée.


Si la directive #property strict est présente, le commentaire est affiché à la place du nom de la variable

IMHO, il est plus informatif.

Eh bien, alors surtout pour ceux qui ne le savaient pas. Voir la capture d'écran, tout y est clair.


 

Il y a un problème dans MT4 : Lorsque le dépôt est supérieur à 999999, un chiffre manque dans le graphique du rapport détaillé.

S'il est supérieur à 999999, il manque deux chiffres. Seuls les 5 premiers chiffres sont toujours affichés.


 
LRA:

Il y a un problème dans MT4 : Lorsque le dépôt est supérieur à 999999, un chiffre manque dans le graphique du rapport détaillé.

S'il est supérieur à 999999, il manque deux chiffres. Seuls les 5 premiers chiffres sont toujours affichés.


N'oubliez pas de préciser que l'échelle des caractères est réglée à 125 % dans les paramètres du système.
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

Saviez-vous que vous pouvez définir la longueur de l'histoire ? Cela affecte le temps de recherche !

Si vous définissez aujourd'hui - il y aura moins de tout ! A minuit, l'histoire sera-t-elle vide ? De façon optimale - les 3 derniers jours.

Aux développeurs : comment définir la profondeur de l'historique de manière programmatique ?

 
Contrairement à MQL5, dans MQL4 les tableaux statiques peuvent changer de taille.
 
fxsaber:
Contrairement à MQL5, dans MQL4 les tableaux statiques peuvent changer de taille.

Y a-t-il une erreur dans l'aide ?

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

Y a-t-il une erreur dans le certificat ?

Il n'y a pas d'erreur si l'on considère qu'il n'y a pas de tableaux statiques dans MQL4.
 
Au sujet de la statique, il y a un point subtil dans les deux langues

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

mt4 build 1066

James Cater, 2017.04.28 16:53

J'ai trouvé une erreur de régression avec l'ordre d'initialisation des variables statiques dans les fonctions.

Cela fonctionnait dans la version 1065. J'ai signalé ce problème au service d'assistance

#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 Résultat attendu 103 - Résultat réel=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1 : TestStatic Résultat attendu 102 - Résultat réel=1


 
fxsaber:
Il y a un moment subtil dans les deux langues

Quel point subtil... Vous l'avez écrit en SD ?
Raison: