MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 48

 
Alexander:
Behoben. Ein Fix wird in der nächsten Build verfügbar sein. Aufgrund der Art des Aktualisierungsmechanismus sind die Ergebnisse jedoch erst nach dem Build sichtbar (d. h. bei einer Aktualisierung vom nächsten Build zum nächsten in der Reihenfolge).
Das macht Sinn. Ich danke Ihnen.
 
Interesting:
Wann werden wir die Zeit in der Kontohistorie korrigieren? Ich habe es satt, mir die Geschichte auf die Minute genau anzuschauen...
Schon jetzt. In der heutigen Version wird sie auf die Sekunde genau sein.
 

helfen Sie mir verstehen, warum dieser Code auf 509 kompiliert funktioniert, wenn von einem EA aufgerufen

//+------------------------------------------------------------------+
//|                                                FlatIndicator.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property indicator_separate_window
#property indicator_minimum 0.0
#property indicator_buffers 3
#property indicator_color1 Silver
#property indicator_color2 FireBrick
#property indicator_color3 Lime

extern int ATR_peroids1 = 13;
extern int StdDev_peroids1 = 30;
extern int ATR_peroids2 = 40;
extern int StdDev_peroids2 = 100;
extern double extValue_1 = 1.4;
double extValue_2 = 0.5;
bool suppressor = TRUE;
double bufer_1[];
double bufer_2[];
double bufer_3[];

int init() {
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, bufer_1);
   SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 4);
   SetIndexBuffer(1, bufer_2);
   SetIndexStyle(2, DRAW_LINE);
   SetIndexBuffer(2, bufer_3);
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   int shift_val;
   double locValue_1;
   double locValue_2;
   double locValue_3;
   double locValue_4;
   double locValue_5;
   double locValue_6;
   double locValue_7;
   double locValue_8 = 0;
   int countBars = IndicatorCounted();
   if (countBars < 0) return (-1);
   if (countBars > 0) countBars--;
   int CalcBars = Bars - countBars;
   int MaxBars = MathMax(ATR_peroids2, StdDev_peroids2);
      if (CalcBars > MaxBars + 5){shift_val = CalcBars - MaxBars;}
         else{shift_val = CalcBars;}
      for (int shift = shift_val; shift >= 0; shift--) {
         locValue_1 = iATR(NULL, 0, ATR_peroids1, shift);
         locValue_2 = bufer_3[shift + 1];
         locValue_3 = bufer_3[shift + 3];
         locValue_4 = NormalizeDouble(locValue_1, Digits);
      if (suppressor){ locValue_8 = locValue_1 / iATR(NULL, 0, ATR_peroids2, shift) + extValue_2 * (locValue_2 - locValue_3);}
         else{locValue_8 = locValue_1 / iATR(NULL, 0, ATR_peroids2, shift);}
         locValue_5 = iStdDev(NULL, 0, StdDev_peroids1, 0, MODE_LWMA, PRICE_TYPICAL, shift);
         locValue_6 = NormalizeDouble(locValue_5, Digits);
         locValue_5 /= iStdDev(NULL, 0, StdDev_peroids2, 0, MODE_LWMA, PRICE_TYPICAL, shift);
         locValue_7 = extValue_1;
         locValue_7 -= locValue_5;
      if (locValue_8 > locValue_7) {
         bufer_3[shift] = locValue_8;
         bufer_2[shift] = -1;
      } else {
         bufer_3[shift] = locValue_8;
         bufer_2[shift] = 0.10;
      }
      bufer_1[shift] = locValue_7;
   }
   return (0); 
}

in EA wird der Code wie folgt aufgerufen und behandelt:

   FlatIndi = 0.0;
   FlatIndi = iCustom(Symbol(), 0, "FlatIndicator",ATR_peroids1, StdDev_peroids1, ATR_peroids2, StdDev_peroids2, extValue_1, 1, 0);   
   if (FlatIndi >= 0.0){ return(0);}

aber wenn der Code in ME ab Build 540 kompiliert wird, dann schreibt EA Log-Datei:

17:47:53.221 MetaTrader 4 at FOREX.com build 540 started (XXX)
17:47:56.331 'xxxxx': login
17:47:57.972 'xxxxx': login
17:47:58.554 'xxxxx': previous successful authorization performed from xx.xx.x.xxx
17:48:03.538 Expert 007 ea ,: loaded successfully
17:48:13.821 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.821 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.821 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.821 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.837 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.837 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.837 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.837 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.837 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.837 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.837 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.837 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.852 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.852 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.852 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.852 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.852 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.852 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.852 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.852 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.852 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.852 Not enough memory for custom indicator FlatIndicator EURUSDFXF,M5
17:48:13.868 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.868 Not enough memory for indicator Average True Range (EURUSDFXF,M5)
17:48:13.868 Memory handler: cannot allocate 1286704 bytes of memory
17:48:13.868 Not enough memory for indicator Average True Range (EURUSDFXF,M5)

und EA funktioniert nicht richtig oder gar nicht.

 
VOLDEMAR:

Überflutet mit Nachrichten


Gleiches Problem auf meinem Heimcomputer mit WIN 7. Es tritt immer wieder auf, egal ob der Code geändert wurde oder nicht, Build 541

 

Die Optimierung im Strategietester funktioniert nicht?

Ich teste standardmäßige Expert Advisors zur Optimierung, erhalte aber bei allen Durchläufen null Ergebnisse.

Wenn ich meinen Expert Advisor optimiere, erhalte ich bei jedem Durchlauf das gleiche Ergebnis, obwohl sich die Parameter ändern.

Tester

Terminal Baujahr 241

 
HIDDEN:

Die Optimierung im Strategietester funktioniert nicht?

Ich teste standardmäßige Expert Advisors zur Optimierung, erhalte aber bei allen Durchläufen null Ergebnisse.

Wenn ich meinen Expert Advisor optimiere, erhalte ich bei jedem Durchlauf das gleiche Ergebnis, obwohl sich die Parameter ändern.

Terminal Baujahr 241


Oppa, eine Stimme aus der Vergangenheit .... Sie haben nicht zufällig den ersten Build, oder?
 
Ein solches Gebäude gab es nicht (241). Wahrscheinlich meinte er 541.
 
VOLDEMAR:

Oppa, eine Stimme aus der Vergangenheit .... Sie haben nicht zufällig das erste Build?

Ältere Versionen können gefunden werden, aber sie werden wahrscheinlich nicht funktionieren.

Ich habe die Versionen "1, 0, 0, 1" mit 5 MB. Brauchen Sie eine?

:)

 

Können Sie mir die mögliche Ursache für den Absturz nennen?)

Ich habe die Hauptberechnungsfunktion im Indikator mit Hilfe von OOP erstellt (ich habe es jetzt ein paar Tage lang studiert).

Alles funktioniert gut (bei 3000 bar hat sich die Berechnungsgeschwindigkeit um das 2-3fache erhöht).

Aber wenn ich versuche, 2 Indikatoren auszuführen , stürzt es ab und alles stürzt ab ......

 
ALXIMIKS:

Können Sie mir die mögliche Ursache für den Absturz nennen))

Ich habe die Hauptberechnungsfunktion im Indikator mit Hilfe von OOP erstellt (ich habe sie jetzt ein paar Tage lang studiert).

Alles funktioniert gut (bei 3000 bar hat sich die Berechnungsgeschwindigkeit um das 2-3fache erhöht).

Aber wenn ich versuche, 2 Indikatoren auszuführen , stürzt es ab und alles stürzt ab ......

Und wie können Sie ohne den Code helfen?
Grund der Beschwerde: