Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 20

 
Andrej Dik:

Auch zur Absicherung.

Im Laufe der Jahre wurde mein Gehirn auf Netting geschärft: Order->Transaktion->Position. Es kann viele Geschäfte in einer Position geben(in einem Hedge gibt es nur ein Geschäft, korrigieren Sie mich, wenn ich falsch liege), Sie können anhand der Art des Geschäfts erkennen, was mit der Position passiert ist.

In einer Hecke ist es natürlich leichter zu verstehen, aber schwieriger zu verfolgen. Natürlich ist sie das.

Eine, solange die Position auf dem Markt existiert. Aber wenn er geschlossen wird, gibt es einen zweiten Auftrag und einen zweiten Handel.

ps: Ich liege wahrscheinlich falsch. Siehe ps in dem Beitrag unten.

 
Artyom Trishkin:
Und das SL-Schleppnetz? Wie werden Sie feststellen, was mit dem SL-Schleppnetz auf der Plusseite geschlossen wurde?

Ok, das habe ich nicht bedacht. Dann prüfen wir den Preis des Auftrags , der die Position eröffnet hat, und den Preis des Auftrags, der die Position schließt.

Obwohl wir wahrscheinlich auf Aufträge verzichten und nur mit Geschäften arbeiten können.

ps; Nein... Hier stimmt etwas nicht. Schließlich ist jede Änderung von Take oder Stop nach der Positionseröffnung ein neuer Auftrag und ein neues Geschäft. Offensichtlich sollten wir mit diesen Daten arbeiten...

Ich kann es nicht überprüfen, ich habe keine Positionen mit Stopps. Nur einige mit Takes.

 
Alexey Viktorov:

Wenn Sie den letzten Handel DEAL_ENTRY_OUT finden und die gesamte Historie der Position HistorySelectByPosition in dieser Liste auswählen, gibt es für Hadge-Konten 2 Trades und 2 Aufträge, die eine Position eröffnen und schließen. Der Auftrag, auf dessen Grundlage der Abschluss erfolgte, enthält ORDER_PRICE_OPEN. Dann prüfen Sie die Positionsart und die Auftragsart, mit der sie geschlossen wurde. Wenn die Auftragsart entgegengesetzt ist, bedeutet dies, dass es sich um einen Abschluss handelt. Dementsprechend ist der Orderpreis der Preis, den wir suchen sollten, mit einer kleinen Korrektur: Wenn der Ordergewinn > 0 ist, dann ist dies der Preis des TP, wenn er < 0 ist, dann wurde die Position auf SL geschlossen.

Wenn wir uns auf den Kommentar zum Beschluss verlassen, würde ich das nicht tun.

So einfach ist das nicht. Der letzte Auftrag in einer Position kann sowohl derjenige sein, der die Position schließt, als auch derjenige, der sie umkehrt.

In Bezug auf SL und TP - aus dem Kommentar zu bestimmen, die einfachste und zuverlässigste Weg. Die Preise für SL und TP zu vergleichen, wird nicht immer korrekt funktionieren, da SL und TP sowohl in der Gewinn- als auch in der Verlustzone liegen können. Dies wurde im Forum bereits recht heftig diskutiert, Herr Sergeev gab die passende Lösung für den von mir zitierten Kommentar.

 
Andrej Dik:

So einfach ist das nicht. Der letzte Auftrag in einer Position kann entweder derjenige sein, der den Handel schließt oder derjenige, der ihn umkehrt.

Und über SL und TP - aus dem Angebot zu bestimmen, die einfachste und zuverlässigste Weg. Der Vergleich der Preise von SL und TP wird nicht immer korrekt funktionieren, da sowohl SL als auch TP in der Gewinn- und Verlustzone liegen können.

Ich habe nicht gesagt, dass es einfach ist. Nur bei Nettokonten sind die SL und TP gleich der SL und TP. Und zwar nur auf Verrechnungskonten. Bei Hedging-Konten muss eine Position, um sie umzukehren, durch die entgegengesetzte Position mit einem größeren Volumen geschlossen werden. Ist es nicht so?

Dieses Thema ist interessant, aber ich kann es aus den oben genannten Gründen nicht prüfen. Ich habe keine Positionen mit Stopps und Takeaways, insbesondere keine mit Trailing.

 
Alexey Viktorov:

Ein Auftrag, der eine Position umkehrt, kann weder ein Take noch ein Stop sein.

TP und SL sind keine Aufträge im MT-Buchhaltungssystem, sondern Positionseigenschaften. Sie können also nicht mit SL/TP an Aufträgen/Geschäften arbeiten (sogar die Wise Site Engine bestätigt dies mit einem Link).

Alexey Viktorov:

Bei Hedging-Konten sollten Sie eine Position mit einem entgegengesetzten Auftrag mit größerem Volumen schließen, um sie umzukehren. Ist es nicht so?

Nein, ist es nicht. Bei Hedge-Konten kann eine Position nicht rückgängig gemacht, sondern nur geschlossen werden.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrej Dik:

TP und SL sind keine Aufträge im MT-Buchhaltungssystem, sondern Positionseigenschaften. Sie können also nicht mit SL/TP an Aufträgen/Transaktionen arbeiten (selbst die weise Site Engine bestätigt dies mit einem Link).

Nein, ist es nicht. Bei Hedge-Konten kann eine Position nicht rückgängig gemacht, sondern nur geschlossen werden.

Sobald eine Position jedoch geschlossen wird, sind ihre Eigenschaften nicht mehr verfügbar. Alles, was Sie tun müssen, ist, nach den erforderlichen Informationen über Aufträge und Geschäfte zu suchen.
 

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

MQL5 Wie kann ich wissen, ob ein Handel mit einem Stop-Loss geschlossen wurde oder nicht?

fxsaber, 2017.02.14 19:46

Ticket die Bestellung, die der Grund für die Schließung der Position war, schieben Sie es hier
#define ORDER_TYPE_TAKEPROFIT (-1)
#define ORDER_TYPE_STOPLOSS   (-2)

int GetOrderType(const ulong OrderTicket)
{
  int OrderType=(int)::HistoryOrderGetInteger(OrderTicket,ORDER_TYPE);

  if((OrderType==ORDER_TYPE_BUY) || (OrderType==ORDER_TYPE_SELL))
    {
     const string OrderComment=HistoryOrderGetString(OrderTicket,ORDER_COMMENT);
     const string OrderPrice=::DoubleToString(::HistoryOrderGetDouble(OrderTicket,ORDER_PRICE_OPEN),
                                              (int)::SymbolInfoInteger(HistoryOrderGetString(OrderTicket,ORDER_SYMBOL),SYMBOL_DIGITS));

     if(OrderComment=="tp "+OrderPrice)
        OrderType=ORDER_TYPE_TAKEPROFIT;
     else if(OrderComment=="sl "+OrderPrice)
        OrderType=ORDER_TYPE_STOPLOSS;
    }

  return(OrderType);
}
 
Andrej Dik:
Nennen Sie mir bitte ein Beispiel.
Ein Beispiel für was? Dass die Eigenschaften der Position nach dem Schließen nicht mehr verfügbar sind?
 
Alexey Viktorov:
Ein Beispiel für was? Dass die Eigenschaften einer Position nicht mehr verfügbar sind, nachdem sie geschlossen wurde?
Ein Beispiel dafür, wie Sie bestimmen, was die Position SL oder TP auf Aufträge und Trades geschlossen. Ich habe ein Beispiel dafür gegeben, wie Sie dies anhand Ihres Kommentars feststellen.
 
Andrey Dik:
Beispiel dafür, wie Sie bestimmen, was die SL- oder TP-Position bei Aufträgen und Geschäften geschlossen hat. Ich habe ein Beispiel dafür gegeben, wie Sie dies anhand Ihres Kommentars feststellen.

Ich tue nichts. Selbst in mql4 finde ich es nutzlos, die Auftragshistorie durchzusehen. Ich versuche immer noch, die Richtung zu analysieren, in der ich gegebenenfalls zu graben beginnen kann. Da es in keinem Terminal verkehrte Positionen gibt, kann ich sie nicht überprüfen.

Folglich gibt es nach dem Schließen der Position in meinen Konten nur noch 2 Aufträge und 2 Geschäfte, die sich auf die Position beziehen. Mit ihnen können wir einige Informationen über die Position erhalten. Zum Beispiel, zu welchem Preis der Antrag eröffnet wurde und zu welchem Preis er genau eröffnet wurde. Dementsprechend lässt sich der Slippage, zu dem die Position eröffnet wurde, leicht ermitteln.

Seit MT4 behandle ich Kommentare mit Vorsicht, weil Brokerfirmen alle Kommentare aus ihren eigenen Gründen überschreiben.