mql5 - vertikale Linie nach einer bestimmten Zeit seit dem letzten Handel

 

Hallo zusammen!

Leute, kann jemand helfen/vorschlagen, wie man die folgende Idee in MQL5 implementiert (ich habe mich gerade mit Metatrader vertraut gemacht - ich schreibe noch keinen Code).

Code-Algorithmus:
1) Der Zeitpunkt des Abschlusses des letzten Geschäfts und das Ergebnis des Geschäfts werden ermittelt.

2) Ermittelt das Gesamtergebnis des Tages nach Abschluss des letzten Geschäfts.

3) Je nach den Einstellungen des Indikators wird eine vertikale Linie in einem bestimmten Intervall in der Zukunft ab dem Zeitpunkt des Abschlusses des letzten Handels gezogen.
Einstellungen:
- Wenn das Ergebnis des letzten Handels negativ ist und das Tagesergebnis negativ ist, wird eine vertikale Linie im Abstand von 24 Stunden (ein Tag) in die Zukunft gezogen.
- wenn das Ergebnis des letzten Handels negativ und das Ergebnis des Tages positiv ist, wird die vertikale Linie 2 Stunden in die Zukunft gezogen.
- wenn das Ergebnis des letzten Handels positiv ist, wird die vertikale Linie 1 Stunde in die Zukunft gezogen.

4) Die Linie bleibt auch nach der Eröffnung eines neuen Handels auf dem Chart, bewegt sich aber nach der Schließung eines neuen Handels gemäß dem obigen Algorithmus, da der letzte geschlossene Handel bereits ein neuer war.

Anmerkung.
Das positive Ergebnis ist ein positives Ergebnis, unabhängig davon, ob der Auftrag ausgelöst oder die Position manuell geschlossen wurde. D.h. ein Plus in der Bilanz.
Ein negatives Ergebnis ist ein Minus oder eine Null als Ergebnis eines Geschäfts.

P.S>

Das Wesentliche an diesem Kodex ist für mich, dass ich mir angewöhne, nach Geschäften eine Pause einzulegen und mich nicht zu sehr aufzuregen. Ich habe festgestellt, dass meine Verluste dadurch verursacht werden, dass ich versuche, erfolglose Geschäfte schnell zurückzugewinnen. Für mich ist es möglich, eine Linie manuell zu setzen und sie entsprechend dieser Regel zu verschieben, aber ich brauche genau eine Programmvariante, weil ich in Zukunft zusätzliche Bedingungen/Filter an den Indikator binden möchte, d.h. den Algorithmus der Entscheidungsfindung verkomplizieren möchte.

Vielen Dank im Voraus und viel Glück!

 

Ein Beispiel.

void moveVLine(string obj_name, datetime obj_time)
{
   int         tm       = PeriodSeconds(PERIOD_D1);
   datetime    next_day = obj_time + tm;
   MqlDateTime tm_str;
   
   TimeToStruct(next_day,tm_str);
   if(tm_str.day_of_week == 6)
   {
      tm *= 3;
      next_day = obj_time + tm;
   }
   ObjectMove(0,obj_name,0,next_day,0);
   
   return;
}
 
Сергей Таболин:

Ein Beispiel.

Sergej, ich danke dir!
Ich werde Sie wissen lassen, wie es ausgeht, wenn ich Ihr Beispiel ausführe.
 
Сергей Таболин:

Ein Beispiel.

Das Beispiel konnte nicht kompiliert werden :(
Wie ich verstanden habe - der Code ist ein Fragment und es ist notwendig, einige obligatorische Komponenten (#property, etc.) hinzufügen?
 

Ich habe einen ähnlichen Indikator gefunden, der einfach eine vertikale Linie zu einem bestimmten Zeitpunkt zeichnet - ich werde versuchen, ihn als Grundlage zu verwenden, indem ich die notwendigen Algorithmen anstelle der vorgegebenen statischen Zeit hinzufüge.
https://www.mql5.com/ru/code/18449

Vertical line
Vertical line
  • www.mql5.com
Индикатор рисует, а затем перемещает нарисованную вертикальную линию (OBJ_VLINE) на заданное время (часы и минуты). Входные параметры: Из параметра "Use only Hours and minutes" используются только часы и минуты.  Вертикальная линии рисуется для текущего дня. Если начинается новый день, то нарисованная линия переносится на этот новый день на...
 
Dummheit.
Es gibt eine Quelle (Code oben), die zu einem bestimmten Zeitpunkt eine Linie auf einem Balken zeichnet. Sie müssen nur die Zeit aus den Eingabeparametern entfernen und den Zeitwert aus der Historie der Handelsgeschäfte abrufen. Wenn ich mir die Dokumentation Handelsfunktionen ansehe, vermute ich, dass die Wahrheit irgendwo unter den Funktionen in der Gruppe Geschichte liegt... Bis jetzt sehe ich noch nichts :(
Kann mir jemand helfen oder sagen, wie ich die Daten des letzten Geschäfts aus der Historie abrufen kann (Zeitpunkt der Schließung einer Position und Festsetzung des Ergebnisses eines Geschäfts)?
 
renatmt5:
Das Beispiel konnte nicht kompiliert werden :(
Wie ich verstanden habe - der Code ist ein Fragment und es ist notwendig, einige obligatorische Komponenten (#property, etc.) hinzufügen?

Es handelt sich um eine Übertragungsfunktion mit vertikaler Linie. Sie muss vom Hauptcode aus aufgerufen werden, wenn bestimmte Bedingungen erfüllt sind. Außerdem muss die Linie selbst bereits vorhanden sein.

 
Сергей Таболин:

Es handelt sich um eine Übertragungsfunktion mit vertikaler Linie. Sie muss vom Hauptcode aus aufgerufen werden, wenn bestimmte Bedingungen erfüllt sind.

OK, nochmals vielen Dank!
 
renatmt5:

Hallo zusammen!

Leute, kann jemand helfen/vorschlagen, wie man die folgende Idee in MQL5 implementiert (ich habe mich gerade mit Metatrader vertraut gemacht - ich schreibe noch keinen Code).

Algorithmuscode:
1) Ermittelt den Zeitpunkt des Abschlusses des letzten Handels und das Handelsergebnis.

2) Ermittelt das Gesamtergebnis des Tages nach dem letzten Handelsabschluss.

3) Je nach den Einstellungen des Indikators wird eine vertikale Linie in einem bestimmten Intervall in der Zukunft ab dem Zeitpunkt des Abschlusses des letzten Handels gezeichnet.
Einstellungen:
- wenn das Ergebnis des letzten Handels negativ ist und das Ergebnis des Tages negativ ist, wird eine vertikale Linie in einem Abstand von 24 Stunden (24 Stunden) in die Zukunft gezogen.
- wenn das Ergebnis des letzten Handels negativ und das Ergebnis des Tages positiv ist, wird die vertikale Linie 2 Stunden in die Zukunft gezogen.
- wenn das Ergebnis des letzten Handels positiv ist, wird eine vertikale Linie in einem Abstand von 1 Stunde in die Zukunft gezogen.

4) Die Linie bleibt auch nach der Eröffnung eines neuen Handels auf dem Chart, bewegt sich aber nach der Schließung eines neuen Handels gemäß dem obigen Algorithmus, da der neue Handel bereits zum letzten geschlossenen Handel geworden ist.

Anmerkung.
Ein positives Ergebnis ist ein Plus, unabhängig davon, ob der Auftrag ausgelöst oder eine Position manuell geschlossen wurde. D.h. ein Plus in der Bilanz.
Ein negatives Ergebnis ist ein Minus oder eine Null als Ergebnis des Handels.

P.S>.

Die Essenz dieses Codes besteht für mich darin, mich daran zu gewöhnen, nach Geschäften eine Pause einzulegen und eine Glückssträhne nicht zu unterbrechen. Ich habe festgestellt, dass meine Verluste dadurch entstehen, dass ich versuche, nicht zustande gekommene Geschäfte schnell zurückzugewinnen. Für mich ist es möglich, eine Linie manuell zu setzen und sie entsprechend dieser Regel zu verschieben, aber ich brauche genau eine Programmvariante, weil ich in Zukunft zusätzliche Bedingungen/Filter an den Indikator binden möchte, d.h. den Algorithmus der Entscheidungsfindung verkomplizieren möchte.

Vielen Dank im Voraus und viel Glück für alle!

Nennen wir es also einen Indikator.

Lassen Sie es uns also so formulieren. Legen wir fest, dass wir den Handelsverlauf einmal pro Minute abfragen. Dann brauchen wir zwei weitere Parameter:

  • die letzten Geschäfte nur für das aktuelle Symbol (das Symbol, auf dem der Indikator läuft) oder für alle berücksichtigen?
  • und die Abrechnung von Magfic-Nummern (nur eine oder alle)?


Ich werde eine Antwort von Ihnen benötigen. Ich werde versuchen, bis Mittag wieder in diesem Thread zu erscheinen.

 
Vladimir Karputov:

Ein Indikator ist ein Indikator.

Es ist also folgendermaßen. Definieren wir, dass wir den Handelsverlauf einmal pro Minute abfragen. Dann brauchen wir zwei weitere Parameter:

  • die letzten Geschäfte nur für das aktuelle Symbol (das Symbol, auf dem der Indikator läuft) oder für alle berücksichtigen?
  • und die Abrechnung von Magfic-Nummern (nur eine oder alle)?


Ich werde eine Antwort von Ihnen benötigen. Ich werde versuchen, bis Mittag wieder in diesem Thread zu erscheinen.

Vladimir, danke, dass Sie sich die Zeit genommen haben, meine Frage zu stellen. Zunächst so einfach wie möglich, da ich davon ausgehe, dass ich es langfristig selbst verfeinern werde, anstatt es zu stoppen :)
- nur für das aktuelle Symbol
- Was die Magfic-Nummer betrifft, bin ich mir nicht sicher, worum es geht. Wie eine Art Ausweis? Um ehrlich zu sein, ist das für mich nicht wichtig. Ich benötige nur Daten zu einer letzten abgeschlossenen Transaktion

 

Ich möchte den Begriff "letzter Handel" klären.

Handelt es sich um den letzten Handel des laufenden Tages? Oder in den letzten N-Tagen?