Erreurs, bugs, questions - page 736

 
J'y faisais référence ainsi qu'à l'extension .chm.
 
 
void OnStart()
  {
   MqlRates a[],b[];
   Alert("после MqlRates a[],b[] Series == "+ArrayIsSeries(b));
   CopyRates(Symbol(),PERIOD_CURRENT,0,TerminalInfoInteger(TERMINAL_MAXBARS),a);
   ArraySetAsSeries(a,true);
   CopyRates(Symbol(),PERIOD_M1,0,TerminalInfoInteger(TERMINAL_MAXBARS),b);
   Alert("после CopyRates Series == "+ArrayIsSeries(b));
   ArraySetAsSeries(b,true);
   Alert("после ArraySetAsSeries(b,true); Series == "+ArrayIsSeries(b));
}
2012.05.06 17:29:55 TEMP (EURUSD,H1) après ArraySetAsSeries(b,true) ; Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) après CopyRates Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) après MqlRates a[],b[] Series == false

Ça se voit et ça ne rougit pas. Peut-être que je suis en train de bouillir ?

 
 
sergeev:

ArrayGetAsSeries

Enlever le couvercle, éteindre le feu.

Merci.

 
Le marché ne fonctionne pas, aucune démo ou produit gratuit ne peut être téléchargé - "Error loading program *****. Veuillez réessayer plus tard"
 
papaklass:

1 cordes fuites à gauche

J'ai trouvé la solution, c'est le mode d'initialisation de la structure de requête MQLTradeRequest.

Si nous l'initialisons de cette façon :

alors lemessage "1 chaîne perdue restante" n'apparaît pas.

Si l'initialisation est effectuée à partir de la fonction OpenPosition() au niveau global, l'enregistrement de la mémoire apparaît :

En ce qui concerne la deuxième option. En essayant de le comprendre, j'ai trouvé le code suivant :

//+------------------------------------------------------------------+
//|                                                   papaclass4.mq5 |
//+------------------------------------------------------------------+
MqlTradeRequest      mrequest={1};
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("Global: mrequest.price=",mrequest.price);
  }
//+------------------------------------------------------------------+

Les retours :

2012.05.07 10:52:10 papaclass4 (USDCAD,M1) Global : mrequest.price=0.0

Il s'avère que la variable mrequest={1} est initialisée au niveau global, mais le programme ne voit pas les valeurs de ses champs initialisés pour une raison quelconque. Le compilateur ne se plaint pas non plus.

 
Vous avez initialisé le premier membre de la structure avec un et les autres avec zéro par défaut.
 
Renat:
Vous avez initialisé le premier membre de la structure avec un et les autres avec zéro par défaut.
Je l'ai. J'ai trouvé l'explication dans le Manuel de référence : "Il doit y avoir au moins une valeur dans la séquence d'initialisation : le premier élément de la structure ou du tableau correspondant est initialisé avec cette valeur, les éléments manquants sont considérés comme nuls".
 
papaklass:

1 cordes fuites à gauche

J'ai compris, cela vient de la façon dont la structure MqlTradeRequest est initialisée.

Si nous l'initialisons de cette façon :

alors lemessage " Il reste1 corde perdue" n'apparaît pas.

Si nous déplaçons l'initialisation de la fonction OpenPosition() au niveau global, l'enregistrement de la mémoire apparaît :

Merci pour le message, l'erreur de compilation est corrigée.
Raison: