[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 339

 
future >> :
Meine Herren, ich quäle mich immer noch mit einer Frage herum. Wie schreibt man das Folgende? Wenn der Preis am xx.xx des aktuellen Tages höher ist als der Preis am yy.yy desselben Tages....dann... müssen diese Preise jeden Tag verglichen werden. Ich weiß nicht, wie ich die Erwähnung des Datums vermeiden kann. Versucht datetime Time 1=D'().().() 12:00 '; aber es funktioniert nicht in Tester. Es werden keine Fehler geschrieben, aber beim Testen hat man das Gefühl, dass die Daten dieses Mal einfach ignoriert werden.

Es funktioniert folgendermaßen:

int time=iTime(NULL,PERIOD_D1,0)+60*(60*Stunden+Minuten);

double price=iOpen(NULL,PERIOD_M1,iBarShift(NULL,PERIOD_M1,time));

 


Ich verfolge genau diesen Artikel, aber wie ich oben sagte,

channel=ddeinit('MT4','BID'); - alles in Ordnung, channel = 7.2920e-304 - Verbindung ist hergestellt

sondern

rc = ddeadv(channel, 'EURUSD','disp(x)','x',[1 1]); - nichts passiert,

trotz rc = 1.

Obwohl es in dem Artikel zu funktionieren scheint. Was ist los?

 


Hallo!

Könnten Sie mir bitte sagen, wie ich in der Schleife verfolgen kann, wann ein Handel mit einem Stop-Loss oder einem Gewinn abgeschlossen wird?

Welche Funktion sollte verwendet werden, um dies korrekt zu tun?

Ich danke Ihnen.

 
Klinskih писал(а) >>

Hallo!

Könnten Sie mir bitte sagen, wie ich in der Schleife verfolgen kann, wann ein Handel mit einem Stop-Loss oder einem Gewinn abgeschlossen wird?

Welche Funktion sollte verwendet werden, um dies korrekt zu tun?

Ich danke Ihnen.

Es gibt kein Ereignis für das Schließen von Aufträgen bei Stop-Loss oder Take-Profit, aber Sie können die Verfügbarkeit von offenen Aufträgen überwachen.

int OrdersTotal( )

Gibt die Gesamtzahl der offenen und schwebenden Aufträge zurück.

bool OrderSelect( int index, int select, int pool= MODE_TRADES) 

Die Funktion selektiert einen Auftrag zur weiteren Bearbeitung. Gibt TRUE zurück, wenn die Funktion erfolgreich abgeschlossen wurde. Gibt FALSE zurück, wenn die Funktion fehlschlägt. Um die Informationen über den Fehler zu erhalten, müssen Sie die Funktion GetLastError() aufrufen.
Der Parameter pool wird ignoriert, wenn die Bestellung über die Ticketnummer ausgewählt wird. Die Ticketnummer ist eine eindeutige Kennung für die Bestellung. Um herauszufinden, aus welcher Liste ein Auftrag ausgewählt wurde, muss man seine Schlusszeit analysieren. Ist der Zeitpunkt des Orderschlusses 0, so ist die Order offen oder schwebend und wird aus der Liste der offenen Positionen des Terminals übernommen. Eine offene Position unterscheidet sich von einem schwebenden Auftrag durch ihren Typ. Wenn der Zeitpunkt des Abschlusses ungleich 0 ist, dann ist der Auftrag abgeschlossen oder in der Schwebe und wurde aus der Historie des Terminals ausgewählt. Die Unterscheidung zwischen einem abgeschlossenen Auftrag und einem gelöschten schwebenden Auftrag kann auch nach Auftragsart erfolgen.

Sie können auch fertige Lösungen finden, zum Beispiel von KimIV - https://www.mql5.com/ru/forum/107476/page2.

 
xeon >> :

Es gibt kein Ereignis, um die Order bei Stop oder Takeout zu schließen, aber Sie können die Verfügbarkeit von offenen Orders überwachen

Gibt die Gesamtzahl der offenen und schwebenden Aufträge zurück.

Diese Funktion wählt einen Auftrag aus, um mit ihm zu arbeiten. Gibt TRUE zurück, wenn die Funktion erfolgreich abgeschlossen wurde. Sie gibt FALSE zurück, wenn die Funktion fehlschlägt. Um die Informationen über den Fehler zu erhalten, müssen Sie die Funktion GetLastError() aufrufen.
Der Pool-Parameter wird ignoriert, wenn der Auftrag über die Ticketnummer ausgewählt wird. Die Ticketnummer ist eine eindeutige Kennung für die Bestellung. Um herauszufinden, aus welcher Liste ein Auftrag ausgewählt wurde, muss man seine Schlusszeit analysieren. Ist der Zeitpunkt des Orderschlusses 0, so ist die Order offen oder schwebend und wird aus der Liste der offenen Positionen des Terminals übernommen. Eine offene Position unterscheidet sich von einem schwebenden Auftrag durch ihren Typ. Wenn der Zeitpunkt des Abschlusses ungleich 0 ist, dann ist der Auftrag abgeschlossen oder in der Schwebe und wurde aus der Historie des Terminals ausgewählt. Die Unterscheidung zwischen einem abgeschlossenen Auftrag und einem gelöschten schwebenden Auftrag kann auch über die Auftragsart erfolgen.

Sie können auch fertige Implementierungen sehen, z.B. von KimIV - https://www.mql5.com/ru/forum/107476/page2

Herzlichen Dank für die ausführliche Antwort!

 
xeon >> :

Es gibt kein Ereignis, um die Order bei Stop oder Takeout zu schließen, aber Sie können die Verfügbarkeit von offenen Orders überwachen

Gibt die Gesamtzahl der offenen und schwebenden Aufträge zurück.

Diese Funktion wählt einen Auftrag aus, um mit ihm zu arbeiten. Gibt TRUE zurück, wenn die Funktion erfolgreich abgeschlossen wurde. Sie gibt FALSE zurück, wenn die Funktion fehlschlägt. Um die Informationen über den Fehler zu erhalten, müssen Sie die Funktion GetLastError() aufrufen.
Der Pool-Parameter wird ignoriert, wenn der Auftrag über die Ticketnummer ausgewählt wird. Die Ticketnummer ist eine eindeutige Kennung für die Bestellung. Um herauszufinden, aus welcher Liste ein Auftrag ausgewählt wurde, muss man seine Schlusszeit analysieren. Ist der Zeitpunkt des Orderschlusses 0, so ist die Order offen oder schwebend und wird aus der Liste der offenen Positionen des Terminals übernommen. Eine offene Position unterscheidet sich von einem schwebenden Auftrag durch ihren Typ. Wenn der Zeitpunkt des Abschlusses ungleich 0 ist, dann ist der Auftrag abgeschlossen oder in der Schwebe und wurde aus der Historie des Terminals ausgewählt. Die Unterscheidung zwischen einem abgeschlossenen Auftrag und einem gelöschten schwebenden Auftrag kann auch über die Auftragsart erfolgen.

Sie können auch fertige Implementierungen sehen, z.B. von KimIV - https://www.mql5.com/ru/forum/107476/page2

Vielen Dank für die ausführliche Antwort!

 
future >> :
Meine Herren, ich quäle mich immer noch mit einer Frage herum. Wie schreibt man das Folgende? Wenn der Preis am xx.xx des aktuellen Tages höher ist als der Preis am yy.yy desselben Tages....dann... müssen diese Preise jeden Tag verglichen werden. Ich weiß nicht, wie ich die Erwähnung des Datums vermeiden kann. Versucht datetime Time 1=D'().().() 12:00 '; aber es funktioniert nicht in Tester. Es werden keine Fehler geschrieben, aber beim Testen hat man das Gefühl, dass die Daten dieses Mal einfach ignoriert werden.

Für den Prüfer ist das in Ordnung.

int час=15; час2=20;
int мин=21; мин2=00;

if(Hour()> час-1&&Hour()< час+1&&Minute()> мин-1&&Minute()< мин+1)
double цена_инструмента=Bid;
if(Hour()> час2-1&&Hour()< час2+1&&Minute()> мин2-1&&Minute()< мин2+1)
double цена_инструмента2=Bid;

if( цена_инструмента> цена_инструмента2)....
if( цена_инструмента< цена_инструмента2)....
 

Hallo.

Woher weiß ich, ob der SL oder der TP ausgelöst wird? Wenn zum Beispiel ein Auftrag abgeschlossen wird durch

SL oder TP, dann dieses und jenes ausführen. Ich habe eine solche Funktion nicht gefunden.

 

Angenommen, eine Reihe von Indikatoren wurde in der Vorlage gespeichert und die Vorlage wurde für ein Währungspaar geladen.

- Haben die Indikatoren in diesem Fenster danach noch irgendeinen Bezug zu den in der Vorlage gespeicherten Parametern oder sind sie völlig unabhängig?

 
chief2000 >> :

Angenommen, eine Reihe von Indikatoren wurde in der Vorlage gespeichert und die Vorlage wurde für ein Währungspaar geladen.

- Haben die Indikatoren in diesem Fenster irgendeinen Bezug zu den in der Vorlage gespeicherten Parametern oder sind sie völlig unabhängig?


Die gespeicherten Paare werden einmalig bei der Initialisierung der Vorlage in die Indikatoren "eingetragen", danach "verselbständigen" sie sich vollständig.

Alle geänderten Indikatorparameter werden in der Vorlage gespeichert. Wenn Sie die Indikatorparameter geändert haben, speichern Sie die Vorlage erneut.

Grund der Beschwerde: