Fehler, Irrtümer, Fragen - Seite 730

 

Können Sie mir sagen, wie ich das Problem lösen kann?
Nach dem ersten Lauf des Expert Advisors im Tester (Read=false) wird eine csv-Datei mit Statistiken erstellt.
In int OnInit() der folgende Code:

  ResetLastError();
  if(Read)
  {
    filehandle=FileOpen(FileName,FILE_READ|FILE_CSV);
  }
  else
  {
    filehandle=FileOpen("razdvigka.csv",FILE_WRITE|FILE_CSV);
  }
Die erstellte Datei wird im folgenden Verzeichnis gespeichert: tester\Agent\MQL5\Files

Beim zweiten Durchlauf (Read=true). Wir müssen Daten aus dieser Datei lesen, aber die Datei ist gelöscht.

 
Vitya:

Können Sie mir sagen, wie ich das Problem lösen kann?
Nach dem ersten Lauf des Expert Advisors im Tester (Read=false) wird eine csv-Datei mit Statistiken erstellt.
In int OnInit() der folgende Code:

Die erstellte Datei wird im folgenden Verzeichnis gespeichert: tester\Agent\MQL5\Files

Beim zweiten Durchlauf (Read=true). Wir müssen Daten aus dieser Datei lesen, aber die Datei ist gelöscht.

In diesem Fall müssen Sie eine Datei mit dem Flag FILE_COMMON erstellen. Die Datei wird im gemeinsamen Ordner des Terminals erstellt.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:
In diesem Fall müssen Sie eine Datei mit dem Flag FILE_COMMON erstellen. Die Datei wird im gemeinsamen Ordner des Terminals erstellt.
filehandle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_COMMON);
Ich danke Ihnen.
Ich habe es herausgefunden.
 
Rosh:
ChartIndicatorAdd ausprobieren
Ich danke Ihnen!
 
Servicedesk, ist Antrag Nr. 359447 in Bearbeitung oder haben Sie es vergeblich versucht?
 
x100intraday:
Servicedesk, wird der Antrag Nr. 359447 befummelt oder haben Sie es umsonst versucht?
Es gibt eine Menge Diskussionen. Aber noch ist keine Antwort fertig.
 

Wenn wir davon ausgehen, dass dies der Indikator ist, wird beim ersten Mal das Datum angezeigt, aber bei den nächsten Einstellungen im Diagramm (zweite, dritte Kopie) wird das Datum nicht angezeigt.

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
    Print(TimeCurrent());
   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
{
  
  
  
  return(rates_total);
  
}
 
Karlson:

Wenn wir davon ausgehen, dass dies der Indikator ist, wird das Datum beim ersten Mal angezeigt, aber bei den nächsten Einstellungen im Diagramm (zweite und dritte Kopie) wird das Datum nicht angezeigt.

Jetzt wird der Berechnungsteil des Indikators mit einer Verzögerung aus dem mql-Speicher gelöscht.

Wenn Sie denselben Indikator (mit denselben Parametern) auf verschiedene Charts (aber mit demselben Symbol/Zeitleiste) anwenden, findet keine Neuinitialisierung statt.

Wenn nach dem Löschen der letzten Kopie eine Zigarette geraucht wird, erfolgt beim Start eine Neuinitialisierung.

Eine solche Nebenwirkung der Optimierung. :)

Hinweis: Rauchen ist schlecht für IHRE GESUNDHEIT!

;)

 

Liebe Programmierer,

Sagen Sie mir, was im Programmcode von mql5 die Geschwindigkeit am meisten beeinflusst? Das Problem ist, dass ich bei der Erstellung meines eigenen Programms und der Vergrößerung des Codevolumens feststellen musste, dass die Geschwindigkeit deutlich abgenommen hat. Allerdings sind die code-intensiveren Standard-Expertenberater aus dem Ordner Advisors and Examples wesentlich schneller.

Gibt es generell einen Artikel oder eine Erklärung, wie man die Codestruktur im Forum besser formatieren kann? Geben Sie einem unerfahrenen Programmierer einen Ratschlag. Ich danke Ihnen!

 
Alex5757000:

Liebe Programmierer,

Sagen Sie mir, was im Programmcode von mql5 die Geschwindigkeit am meisten beeinflusst? Das Problem ist, dass ich bei der Erstellung meines Programms und der Vergrößerung des Codevolumens feststellen musste, dass die Geschwindigkeit deutlich abgenommen hat. Allerdings sind die code-intensiveren Standard-Expertenberater aus dem Ordner Advisors and Examples wesentlich schneller.

Gibt es generell einen Artikel oder eine Erklärung, wie man die Codestruktur im Forum besser formatieren kann? Geben Sie einem unerfahrenen Programmierer einen Ratschlag. Danke!

IMHO beeinträchtigen verschachtelte Schleifen die Geschwindigkeit am meisten. Verschachtelte Schleifen bis zur dritten Tiefe sind praktisch eine Grenze, über die hinaus man mit der Größe der Schleifen sehr vorsichtig sein muss. Nehmen wir zum Beispiel meinen P4: Er läuft mit 3Hz, ich bekomme ~10k Operationen pro Sekunde.

Diese Zahl bedeutet, dass dreifach verschachtelte Zyklen 1000x1000x10 in 1 Sekunde ausgeführt werden, wenn man versteht, dass man 10 Sekunden erhält, wenn man den dritten Zyklus auf 100 erhöht.