Fehler, Irrtümer, Fragen - Seite 324

 
Urain:

Damals habe ich diese Frage nicht geklärt, und jetzt habe ich Zweifel daran.

Wie kann man Speicherplatz reservieren?

wie diese

oder wie folgt

Und korrigieren Sie die Hilfe, sie ist sehr zweideutig.

ZS In den genannten Varianten wird vorausgesetzt, dass die Größe des zugewiesenen Speichers unter Berücksichtigung der Reservierung 2016 sein sollte.

Im Moment funktioniert das folgendermaßen

ArrayResize(array,10,2000);

Dadurch wird ein Puffer für 2010 Elemente zugewiesen, und 10 davon werden verfügbar sein.

Dies wird sich in naher Zukunftwahrscheinlich ändern.

[Gelöscht]  
alexvd:

Zurzeit funktioniert es folgendermaßen

Dadurch wird ein Puffer von 2010 Posten zugewiesen, von denen 10 verfügbar sind.

Daskönnte sich bald ändern.

Warum nicht 2000 Puffer, von denen 10 verfügbar sind?

Das macht meiner Meinung nach mehr Sinn.

 
alexvd:

Zurzeit funktioniert es folgendermaßen

Dadurch wird ein Puffer von 2010 Posten zugewiesen, von denen 10 verfügbar sind.

...

Ich habe es verstanden, irgendwo so:

int reserved=0;// размер распределённой памяти
//+------------------------------------------------------------------+
//| изменение размера массива                                        |
//+------------------------------------------------------------------+
int Resize(int size)
  {
   int step=4;// резервирование с шагом 2^4=16
   int new_reserv=0;
   if((size>>step<<step)>=reserved)
     {
      reserved=((size>>step)+1)<<step;
      new_reserv=reserved-size;// сколько памяти нужно дорезервировать      
      ArrayResize(arr,size,new_reserv);      
     }
   else ArrayResize(arr,size);     
   Print("ArrayResize(arr,"+size+","+new_reserv+"); reserved="+reserved);
   return(size);
  }

...

Dies könnte sichwahrscheinlich in naher Zukunft ändern.

Was ist an dem derzeitigen Sozialplan falsch?

 

Ich weiß nicht, ob es ein Fehler ist oder nicht, aber bei der Optimierung von Expert Advisors, die auf einem schweren Indikator wie CCFp(Cluster Indicator) basieren, erscheint am Ende des Durchlaufs das folgende Fenster auf dem lokalen Agenten: Strategy Tester Agent has stopped working.

Beim Schließen dieses Fensters erscheint das Programm nicht und setzt die Optimierung in wenigen Sekunden fort, wobei die Ergebnisse des Durchlaufs im Bericht festgehalten werden.

Die folgenden Informationen sind im EA-Code enthalten

void OnDeinit(const int reason)
{
IndicatorRelease(CCp_Handle);
}

Wenn die Zeile IndicatorRelease(CCp_Handle); auskommentiert wird, verläuft die Optimierung ohne Fehler.

Ich bin nicht gut im Programmieren, aber meine Frage ist: Wann muss ich diese Funktion in Indikatoren und Expert Advisors verwenden? In meinem Code des CCFp-Indikators wird auch die Deinitialisierung mit der Freigabe von Handles eines Heaps von Muvings verwendet.

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
Dateien:
optim.jpg  580 kb
 
52_rus:

Ich weiß nicht, ob es ein Fehler ist oder nicht, aber bei der Optimierung von Expert Advisors, die auf einem schweren Indikator wie CCFp(Cluster Indicator) basieren, erscheint am Ende des Durchlaufs das folgende Fenster auf dem lokalen Agenten: Strategy Tester Agent has stopped working.

Beim Schließen dieses Fensters erscheint das Programm nicht und setzt die Optimierung in wenigen Sekunden fort, wobei die Ergebnisse des Durchlaufs im Bericht festgehalten werden.

Bitte schreiben Sie an Service Desk. Fügen Sie Quellcode und Optimierungsbedingungen bei.
 

Die Verbindungsunterbrechungen sind häufiger/langwieriger geworden.

 20110224

...

GI 1 Netzwerk 15:02:34 '728041': Verbindung zu MetaQuotes-Demo verloren

HJ 0 Netzwerk 13:19:25 '728041': Verbindung zu einem Zugangspunkt mit 83% Qualität (vorher: 83%)

...


20110302

...

KJ 0 Netzwerk 08:53:17 '728041': Scannen des Netzwerks nach Zugangspunkten

IL 0 Netzwerk 08:54:14 '728041': Netzwerksuche beendet

ME 0 Netzwerk 08:54:14 '728041': automatische Verbindung zu einem besseren Zugangspunkt mit 93 % Qualität (vorher: 61 %)

LK 1 Netzwerk 08:54:14 '728041': Verbindung zu MetaQuotes-Demo verloren

ES 0 Netzwerk 12:05:25 '728041': Verbindung zu einem Zugangspunkt mit 92 % Qualität (vorher: 0 %)

KN 0 Netzwerk 12:05:26 '728041': autorisiert auf MetaQuotes-Demo über Access Point 1 Europa

MF 0 Netzwerk 12:05:26 '728041': Terminal synchronisiert mit MetaQuotes Software Corp.

OR 0 Netzwerk 15:08:22 '728041': Scannen des Netzwerks nach Zugangspunkten

QD 0 Netzwerk 15:09:18 '728041': Netzwerksuche beendet

...


20110303

...

FI 1 Netzwerk 21:26:45 '728041': Verbindung zu MetaQuotes-Demo verloren

PL 0 Netzwerk 10:10:49 '728041': Verbindung zu einem Zugangspunkt mit 83 % Qualität (vorher: 83 %)

...

 
Ich möchte externe Variablen im Skript verwenden, damit ich den erforderlichen Wert vor dem Start festlegen kann. In MT4 wurde dies mit #property show_iputs implementiert, aber in MT5 ist es nicht möglich (es gibt #property script_show_inputs, aber es gibt nichts). Falls jemand mit einer solchen Frage konfrontiert wurde, bitte ich um Ratschläge, wie man sie lösen kann.
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
DenisR:
Ich möchte externe Variablen im Skript verwenden, damit ich den gewünschten Wert vor der Ausführung festlegen kann. In MT4 wurde dies mit #property show_iputs implementiert, aber in MT5 ist es nicht möglich (es gibt #property script_show_inputs, aber es gibt nichts). Falls jemand auf dieses Problem gestoßen ist, bitte ich um Rat, wie man es lösen kann.
WürdenEingabevariablen funktionieren?
 
Yedelkin:
WürdenEingabevariablen funktionieren?
Danke, alles funktioniert.
 
DenisR:
Ich möchte externe Variablen im Skript verwenden, damit ich den gewünschten Wert vor der Ausführung festlegen kann. In MT4 wurde dies mit #property show_iputs implementiert, aber in MT5 ist es nicht möglich (es gibt #property script_show_inputs, aber es gibt nichts). Falls jemand auf dieses Problem gestoßen ist, bitte ich um Rat, wie man es lösen kann.
Verdammt... Das Terminal kommt mit so vielen Beispielen... ...so viele Beispiele... Skript SymbolInfoSample.mq5, zum Beispiel