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

 
Wie kann ich programmatisch überprüfen, ob das One-Click-Trading-Panel läuft oder nicht?
 
Vladimir Tkach:
Wie kann ich programmatisch überprüfen, ob das One-Click-Trading-Panel läuft oder nicht?

Ich habe es aus der Klasse herausgeholt:

   //--- Получение параметра "панель торговли OneClick" на чарте
   bool                 IsChartOneClick(void)            {return(ChartGetInteger(m_chart_id,CHART_SHOW_ONE_CLICK));}
 
Artyom Trishkin:

Ein solches Problem sollte dadurch gelöst werden, dass man überprüft, ob es eine offene und eine geschlossene Position auf eben diesem Balken gibt oder gegeben hat.

Andernfalls werden Sie alles aufstapeln. Die Signalfunktion sollte Signale senden und die Handelsfunktion sollte die Gültigkeit des Signals überprüfen.


Das wollte ich tun, aber ich weiß nicht, wie ich es umsetzen soll. So überprüfen Sie den aktuellen Balken.
 
AlGuru:

Genau das wollte ich tun, ich weiß nur nicht, wie ich es umsetzen soll. So überprüfen Sie den aktuellen Balken.

Prüfen Sie, ob es eine offene Position gibt, die in Takt 0 eröffnet wurde.

Wenn nicht, dann prüfen Sie zusätzlich, ob es eine geschlossene Position gibt, die am Takt 0 geöffnet und am gleichen Takt geschlossen wurde.

Dementsprechend müssen Sie diese Funktionen ausführen:

  1. Offener Balken der letzten offenen Position
  2. letzte geschlossene Position offener Balken
  3. Close bar der letzten geschlossenen Position
  4. Die Tatsache, dass die letzte geschlossene Position auf demselben Balken geöffnet und geschlossen wird (die beiden vorherigen Funktionen 2 und 3 werden verwendet)
Mithilfe dieser Funktionen können Sie dann die Daten abrufen, die Sie für eine Entscheidung benötigen.
 
a196012a:

Guten Tag an alle!

Bitte geben Sie an, wie die folgende Aktion im Strategietester zu kodieren ist

Allgemeine Idee

1.offene Bestellung N -X (Volumen = 0,1)

2.wenn dieser Auftrag auf SL geschlossen wird, dann, um den Verlust zu kompensieren, sofort zum Schlusskurs auf SL eines Auftrags N X, den Auftrag N - X1 eröffnen (Volumen = 0,3)

WIR MÜSSEN TUN.

3 Wenn der Auftrag (Volumen = 0,3) bei SL geschlossen wird, wird nur der Wert der Eröffnungsstunde des Auftrags N - X gespeichert, um die Verluste auszugleichen , zu denen er eröffnet wurde.

Ich weiß, wie man beide Orders eröffnet, aber ich kann nicht herausfinden, wie man den Stundenwert für eine bei SL geschlossene Order mit einem Volumen von 0,1 Lot speichert.

HINWEIS: Dies bezieht sich auf Auftragsabschlüsse auf demselben Tick.

Manchmal werden mehr als ein Auftrag mit einem Volumen von 0,1 und 0,3 auf einem Tick geschlossen.

Wenn z.B. 3 Aufträge zu 0,1 auf einen einzigen Tick an einem SL geschlossen werden, anstatt 3 Aufträge zu 0,3 zu eröffnen. - nur 1 Auftrag über 0,3 Lose ist eröffnet

Wenn ich in diesem Fall nur einen Auftrag von 0,3 Lots auf dem SL schließe, erhalte ich nicht die Werte der Stunde, wenn zwei Aufträge von 0,1 Lots geöffnet werden , die ihre Verluste ausgleichen.

D.h., in diesem Fall müssen 3 Aufträge zu 0,3 Lots eröffnet werden, nicht einer.


Manchmal werden 3 Aufträge von 0,3 Lots durch einen SL auf einen Tick geschlossen, obwohl die entsprechenden 0,1-Lot-Aufträge auf verschiedenen Ticks (aber nur zu einem Preis) eröffnet wurden.

In diesem Fall speichert das Programm den richtigen Wert nur für einen letzten Auftrag von 0,1 Lot.

Ich benötige das Programm, um den Stundenwert jedes Auftrags (0,1 Lot) zu speichern, der durch SSL geschlossen wurde.


Hier ist mein Code, den wir ändern müssen.

Ich danke Ihnen für Ihre Hilfe.

Hier ein Beispiel für eine Situation, in der mehrere Aufträge auf einen Tick geschlossen werden


Guten Tag!

Warum müssen Sie den Zeitpunkt jedes abgeschlossenen Auftrags berücksichtigen? Es geht auch ohne... Oder haben Sie diese Daten irgendwo anders?

2) Und genau 3 letzte Aufträge, die mit Verlust abgeschlossen wurden? Oder es spielt keine Rolle, wie viele Aufträge es gibt, vielleicht 5 oder 8... Und dementsprechend wird für jeden

...ein Auftrag, der mit einem Verlust abgeschlossen wurde, einem Auftrag mit einem größeren Los entsprechen sollte?

 
Valerius:


Guten Tag!

1. Warum müssen Sie die Zeit für jede geschlossene Bar eingeben? Es geht auch ohne... Bewahren Sie diese Daten irgendwo anders auf?

2) Und was ist mit den letzten 3 Aufträgen, die mit einem Verlust abgeschlossen wurden? Oder es spielt keine Rolle, wie viele Aufträge es gibt, vielleicht 5 oder 8... Und dementsprechend wird für jeden

...ein Auftrag, der mit einem Verlust abgeschlossen wurde, einem Auftrag mit einem größeren Los entsprechen sollte?

Vielen Dank für Ihre Antwort.

Ja, die Öffnungszeit wird bei den nächsten Schritten des Programms berücksichtigt.

Die Zahl kann zwischen 2 und 10 liegen.

Genau genommen sollte jede Order, die durch einen Stop-Loss geschlossen wurde, einer anderen Order entsprechen, die mit einem größeren Volumen eröffnet wurde.

Mit "Match" meine ich, dass innerhalb eines Tages 3 Aufträge, die zu einem beliebigen Zeitpunkt eröffnet wurden, vom SL sofort zu ihrem Schlusskurs geschlossen wurden.

Es sollten 3 Aufträge mit einem größeren Volumen eröffnet werden. Direkt nach Abschluss jeder einzelnen Bestellung. Zum Beispiel wurde um 12 Uhr ein Auftrag zum Preis von 1,2000

Um 12 Uhr wird zum Preis von 1,2000 eine größere Order eröffnet. Dies gilt auch für jede Bestellung eines kleineren Volumens, die durch einen SL abgeschlossen wird. Nachdem der Auftrag eines größeren Volumens durch einen SL geschlossen wurde, merken Sie sich die Stunde, in der der Auftrag als Antwort auf den Abschluss, zu dem er geöffnet wurde, geöffnet wird. Das heißt, wenn der Auftrag um 12:00 Uhr zum Kurs von 1,200 eröffnet und durch einen Stop geschlossen wurde, dann wird der Auftrag mit hohem Volumen um 12:00 Uhr zum Kurs von 1,2000 eröffnet. Wenn der Auftrag mit dem größeren Volumen durch einen SL geschlossen wurde , merken Sie sich die Eröffnungsstunde des Auftrags mit dem kleineren Volumen, d.h. 12 Uhr.

Das Gleiche sollten wir uns nach jedem großvolumigen Auftrag merken, der nur durch den SL abgeschlossen wurde.

Ich finde es besonders schwierig, Aufträge zu öffnen und die Stundenwerte zu speichern, wenn mehrere Aufträge (von 2 bis 10) durch einen einzigen Tick auf einem SL geschlossen werden.

Siehe die ausführliche Beschreibung dieser Situation im ersten Beitrag.

 
a196012a:

Wir danken Ihnen für Ihr Feedback.

Ja, die Öffnungszeit berücksichtige ich bei den nachfolgenden Programmaktionen.

Die Zahl kann zwischen 2 und 10 liegen.

Genau genommen sollte jeder durch einen Stop geschlossene Auftrag einem anderen, durch ein größeres Volumen eröffneten Auftrag entsprechen.

Mit "Match" meine ich, dass innerhalb eines Tages 3 Aufträge, die zu einem beliebigen Zeitpunkt eröffnet wurden, vom SL sofort zu ihrem Schlusskurs geschlossen wurden.

3 Aufträge mit einem größeren Volumen sollten eröffnet werden. Direkt nach Abschluss jeder einzelnen Bestellung. Zum Beispiel wurde um 12 Uhr ein Auftrag zum Preis von 1,2000

Um 12 Uhr wird sofort zum Preis von 1,2000 eine größere Order eröffnet. So wird es in jedem Auftrag gemacht. Und nachdem der Auftrag eines größeren Volumens von einem SL geschlossen wurde, sollten wir uns die Stunde der Auftragseröffnung als Antwort auf die Schließung, bei der er geöffnet wurde, merken. Das heißt, wenn der Auftrag um 12:00 Uhr zum Kurs von 1,200 eröffnet und durch einen Stop geschlossen wurde, dann wird der Auftrag mit hohem Volumen um 12:00 Uhr zum Kurs von 1,2000 eröffnet. Wenn der Auftrag mit dem größeren Volumen durch einen SL geschlossen wurde , merken Sie sich die Eröffnungsstunde des Auftrags mit dem kleineren Volumen, d.h. 12 Uhr.

Und so wurde nach jeder Bestellung eines größeren Volumens, das nur auf SL geschlossen.


Und ein weiteres Detail.... Zum Beispiel wurde der 1. Auftrag mit 0,1 Lot geschlossen, der 2. Auftrag wurde mit 0,3 Lot eröffnet. Wir haben uns den Zeitpunkt der Eröffnung der ersten Bestellung gemerkt. Dann wurde die 2. Order durch einen Stop geschlossen und wir haben uns den Zeitpunkt der Eröffnung der 2. Order gemerkt und eine Order mit 0,9 Lot gesetzt. Und so weiter. Habe ich das richtig verstanden? Sollten wir uns immer nur an den Zeitpunkt der ersten Bestellung erinnern?
 
Hallo. Warum zeigt das WährungspaarEuro vs. US-Dollar 149,16325 anstelle von 1,0616?


 
sidovi:
Hallo. Warum wird das PaarEuro vs. US-Dollar bei 149,16325 statt bei 1,0616 angezeigt?



Versuchen Sie, die Zitate zu aktualisieren. Service - Kursarchiv - Wählen Sie Ihr Währungspaar - Laden.

Wenn das nicht hilft, installieren Sie den Metatrader neu.

 
Valerius:

Nun, und noch eine Klarstellung.... Zum Beispiel wurde der 1. Auftrag mit 0,1 Lot geschlossen, der 2. Auftrag wurde mit 0,3 Lot eröffnet. Wir haben uns den Zeitpunkt der Eröffnung der ersten Bestellung gemerkt. Dann wurde die 2. Order durch einen Stop geschlossen und wir haben uns den Zeitpunkt der Eröffnung der 2. Order gemerkt und die Order mit 0,9 Lot platziert. Und so weiter. Habe ich das richtig verstanden? Wir müssen uns nur an den Zeitpunkt der ersten Bestellung erinnern?

Alle größeren Aufträge werden nur mit einem Volumen von 0,3 Lots eröffnet. Alle Aufträge mit geringerem Volumen, die als Reaktion auf einen SL-Schluss mit einem Volumen von 0,3 Lots eröffnet werden, werden mit einem Volumen von 0,1 Lot eröffnet. Nur 0,1 und 0,3. Es gibt keine weiteren Bände.

Wenn Sie eine 0,3-Lot-Order über den SL schließen, merken Sie sich bitte die Stunde, in der die Order als Antwort auf die Schließung der Order (d.h. die 0,1-Lot-Order) eröffnet wurde.

Ich danke Ihnen für Ihre Hilfe.

Können Sie mir bitte sagen, wo die Option eingestellt ist, eine Nachricht an meine E-Mail zu senden, wenn eine Antwort auf meinen Beitrag erfolgt.

Nochmals herzlichen Dank.

Grund der Beschwerde: