Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1930

 
Valeriy Yastremskiy #:

Ich verstehe die Logik überhaupt nicht. Es werden Ereignisse wie Positionseröffnung, SL-Änderung und Positionsschließung für mehrere Symbole überwacht. Positionseröffnung - Suche, ob ein Fenster mit dem gegebenen Symbol geöffnet ist (Suche nach der Fensterkennung), wenn es geöffnet ist, dann zeichnen wir Niveaus und überwachen dann das SL-Trawl. Ist dies nicht der Fall, öffnen wir entweder ein Fenster mit dem gewünschten Symbol und Zeitrahmen und zeichnen die Levels ein oder wir öffnen es nicht. Im Falle einer Änderung suchen Sie das gewünschte Symbolfenster, die Ebenen wurden bereits gezeichnet und ändern die Farbe der Ebene oder löschen sie und zeichnen die Ebene erneut.

Um den Einfluss des Kunden auszuschließen, sollten wir zu Beginn der Arbeit die Positionen und Fenster analysieren und für Symbole mit offenen Positionen und nicht offenen Fenstern öffnen.

Das Wichtigste bei all dem ist ein gut funktionierender Schleppnetzalgorithmus, d. h. die Handelsoperationen selbst.

Das Zeichnen erfolgt im Hintergrund, ist informativ und hat nichts mit der Systemrentabilität zu tun.

Wenn es also eine Position gibt, die Karte aber geschlossen ist und sich nicht von selbst geschlossen hat, muss nichts geöffnet werden, der Schleppnetzalgorithmus funktioniert und die Stopps werden verschoben. Viel schlimmer ist es, wenn das Diagramm offensichtlich geschlossen ist, aber das Programm es buchstäblich zum Zeichnen des Diagramms wieder geöffnet hat - das ist bereits schlecht.

 

Kollegen - ich habe eine Optimierungs-Cache-Datei in die Cloud exportiert. Wie kann ich sie auf einem anderen Computer verwenden, um eine Variante für eine Ausschreibung auszuwählen?


Antwort:

Falls jemand es braucht - hier.


Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При...
 
Vitaly Muzichenko #:

Das Wichtigste bei all dem ist ein gut funktionierender Schleppnetzalgorithmus, d. h. der Handel selbst.

Das Zeichnen erfolgt im Hintergrund, ist informativ und hat nichts mit der Systemrentabilität zu tun.

Wenn es also eine Position gibt, die Karte aber geschlossen ist und sich nicht von selbst geschlossen hat, muss nichts geöffnet werden, der Schleppnetzalgorithmus funktioniert und die Stopps werden verschoben. Viel schlimmer ist es, wenn das Diagramm geschlossen ist, aber das Programm es buchstäblich zum Zeichnen des Diagramms wieder geöffnet hat - das ist schon schlimm.

Wir können es auch auf diese Weise machen. In diesem Fall kann jedoch ein offenes Diagramm, das auf dem Ereignis basiert, gezeichnet werden. Im Allgemeinen können wir die Ebenen jedes Mal neu zeichnen, um Verwirrung zu vermeiden. Wir haben alle Daten dafür. Die Auslöseschwelle für das Schleppnetz, die Schleppnetzstufe, der Positionspreis. Die Ebenennummer und die Anzahl der ausgelösten Ebenen für die Position lassen sich leicht berechnen.

 
Valeriy Yastremskiy #:

Auch das ist möglich. Aber dann ziehen wir, wenn es eine offene Karte für das Ereignis gibt. Im Allgemeinen können die Ebenen jedes Mal neu gezeichnet werden, um Verwirrung zu vermeiden. Wir haben alle Daten dazu. Auslöseschwelle für das Schleppnetz, Schleppnetzschritt, Positionspreis. Die Ebenennummer und die Anzahl der ausgelösten Ebenen für eine Position lassen sich leicht berechnen.

Ich würde sagen, dass wir, wenn es eine Position gibt, im Voraus Niveaus ziehen sollten, die ein Schleppnetz auslösen werden. Wenn eine zusätzliche Position aufgetaucht ist, ziehen Sie die Linien zu den neuen Ebenen auch nach vorne.

Ich sehe keinen Sinn darin, die Farbe nach der Übergabe/Änderung zu ändern. Nach dem Schließen von Positionen können alle Zeilen gelöscht werden.

Am Beispiel wurde gezeigt, wie es sein sollte

Die Objekte, an denen die Positionen geöffnet werden, werden hier gezeichnet, das ist nur informativ.


---

P.S. Im Moment kann ich leider nicht nachrechnen

 

Frage zu OnTimer

Wenn ein Timer-Ereignis vor der Programmausführung eintritt, wird dann gewartet (das Programm überspringt das Timer-Ereignis) oder das Programm bricht ab und beginnt mit der Arbeit am neuen Timer-Ereignis? Bleibt sie in einer Endlosschleife hängen, oder wird sie jede Sekunde wiederholt?

int OnInit()
{
 EventSetTimer(1);
      
    }
//---
  return(INIT_SUCCEEDED);
}

void OnTimer()
{
  
  int i=0;
  while(i<1) {
   
  }
}

In der Dokumentation gibt es keine direkten Hinweise auf die Priorität des Timer-Ereignisses und den Programmablauf, nur auf die Reihenfolge der Ereignisse.

Oder vielleicht verstehe ich es nicht richtig. Das Zeitereignis, bei dem die Aktion gestartet wurde, zählt als in der Warteschlange befindlich?

Docks:

EventSetTimer

Für jedes Programm kann nur ein Timer-Ereignis gestartet werden. Jedes mql4-Programm und jeder Graph hat seine eigene Ereigniswarteschlange, in der alle neu eingetroffenen Ereignisse gespeichert werden. Wenn sich bereits ein Timer-Ereignis in der Warteschlange befindet oder dieses Ereignis in Bearbeitung ist, wird ein neues Timer-Ereignis nicht in die Warteschlange des mql4-Programms gestellt.


 
Valeriy Yastremskiy Programmausführung eintritt, wird dann gewartet (das Programm überspringt das Timer-Ereignis) oder das Programm bricht ab und beginnt mit der Arbeit am neuen Timer-Ereignis? Bleibt sie in einer Endlosschleife hängen, oder wird sie jede Sekunde wiederholt?

In der Dokumentation gibt es keine direkten Angaben über die Priorität des Timer-Ereignisses und den Programmablauf, sondern nur über die Reihenfolge der Ereignisse.

Oder vielleicht verstehe ich es nicht richtig. Das Zeitereignis, bei dem die Aktion gestartet wurde, zählt als in der Warteschlange befindlich?

Docks:

EventSetTimer

Für jedes Programm kann nur ein Timer-Ereignis gestartet werden. Jedes mql4-Programm und jeder Graph hat seine eigene Ereigniswarteschlange, in der alle neu eingetroffenen Ereignisse gespeichert werden. Wenn sich bereits ein Ereignis in der Timer-Warteschlange befindet oder wenn dieses Ereignis in Bearbeitung ist, wird ein neues Timer-Ereignis nicht in die Warteschlange des mql4-Programms gestellt.


Die Ereignisse sind KEINE ZEITEN. Sie werden in OnXXX nacheinander behandelt, ohne eine der Funktionen zu unterbrechen.

Bis OnInit beendet ist, wird kein anderer OnTimer-Handler OnTick vom Terminal aufgerufen. (Es sei denn, Sie reißen es selbst als Funktion heraus).

 
Maxim Kuznetsov #:

Ereignisse sind KEINE Unterbrechungen. Sie werden in OnXXX nacheinander abgearbeitet, ohne die Textfunktionen zu unterbrechen.

Bis OnInit beendet ist, wird kein anderer OnTimer OnTick-Handler vom Terminal aufgerufen. (Es sei denn, Sie reißen es selbst als Funktion heraus).

Dankeschön)

 
Vitaly Muzichenko #:

Das Wichtigste bei all dem ist ein gut funktionierender Schleppnetzalgorithmus, d. h. der Handel selbst.

Das Zeichnen erfolgt im Hintergrund, ist informativ und hat nichts mit der Systemrentabilität zu tun.

Wenn es also eine Position gibt, die Karte aber geschlossen ist und sich nicht von selbst geschlossen hat, muss nichts geöffnet werden, der Schleppnetzalgorithmus funktioniert und die Stopps werden verschoben. Viel schlimmer ist es, wenn ein Diagramm geschlossen wird, aber das Programm es buchstäblich zum Zeichnen des Diagramms wieder geöffnet hat - das ist eine schlechte Sache.

Mein Gott - warum hat man Sie in die Waschanlage geschickt? Haben Sie an einer falschen Stelle und mit falschen Variablen geschrieben: z oder v...?

 
Hallo! Wenn jemand nicht zu schwierig ist, schreiben oder helfen Sie mir bitte eine Funktion für einen MT4 EA zu schreiben. Die Idee ist, dass, wenn ich eine offene Position oder einen Marktauftrag manuell ändere, der EA eine Nachricht an die E-Mail sendet. Beispiel: Ich habe den Stop-Loss eines offenen Limit-Auftrags verschoben. Der EA schreibt eine E-Mail, in der steht, dass der Stop-Loss für diesen Auftrag von so-und-so auf so-und-so geändert wurde.
 
Vitaly Muzichenko #:


Es sieht so aus, als sollte es funktionieren. Ich habe es nicht getestet.

Logik der Zeichnung. Ich kontrolliere die Niveaus nicht, ich zeichne den Preis nach oben und unten, bei Kaufen in grau, oben in blau, bei Verkaufen, wenn es über dem Preisniveau liegt, ist es grau, unten in rot.

Ja, ich habe vergessen, die Entfernung der Ebenen einzustellen)))

Dateien:
Grund der Beschwerde: