Fehler, Irrtümer, Fragen - Seite 736

 
Ich habe mich darauf bezogen und auch auf die Erweiterung .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) nach ArraySetAsSeries(b,true); Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) nach CopyRates Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) nach MqlRates a[],b[] Series == false

Man sieht es und es wird nicht rot. Kann es sein, dass ich koche?

 
 
sergeev:

ArrayGetAsSeries

Entfernen des Deckels, Ausschalten des Feuers.

Ich danke Ihnen.

 
Der Markt funktioniert nicht, es können keine Demos oder kostenlosen Produkte heruntergeladen werden - "Fehler beim Laden des Programms *****. Bitte versuchen Sie es später noch einmal"
 
papaklass:

1 durchgesickerte Saiten übrig

Ich habe es herausgefunden, es ist der Initialisierungsmodus der MQLTradeRequest-Anforderungsstruktur.

Wenn Sie ihn auf diese Weise initialisieren:

dann erscheint"1 leaked strings left" nicht.

Wenn die Initialisierung von der Funktion OpenPosition() auf die globale Ebene erfolgt, erscheint der Speichereintrag:

Was die zweite Option betrifft. Bei der Suche nach einer Lösung habe ich den folgenden Code gefunden:

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

Rückgabe:

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

Es stellt sich heraus, dass die Variable mrequest={1} auf globaler Ebene initialisiert ist, aber das Programm sieht aus irgendeinem Grund die Werte ihrer initialisierten Felder nicht. Der Compiler beschwert sich auch nicht.

 
Sie haben das erste Glied der Struktur mit Eins und den Rest standardmäßig mit Null initialisiert.
 
Renat:
Sie haben das erste Glied der Struktur mit Eins und den Rest standardmäßig mit Null initialisiert.
Ich hab's. Ich habe die Erklärung im Referenzhandbuch gefunden: "Es muss mindestens ein Wert in der Initialisierungssequenz vorhanden sein: das erste Element der entsprechenden Struktur oder des Arrays wird mit diesem Wert initialisiert, fehlende Elemente werden als Null betrachtet".
 
papaklass:

1 durchgesickerte Saiten übrig

Ich habe es herausgefunden, es kommt von der Art und Weise, wie die MqlTradeRequest-Struktur initialisiert wird.

Wenn wir es auf diese Weise initialisieren:

dann erscheint"1 geleakte Zeichenkette übrig" nicht.

Wenn wir die Initialisierung von der Funktion OpenPosition() auf die globale Ebene verlagern, erscheint der Speichereintrag:

Vielen Dank für die Nachricht, der Compilerfehler ist behoben.