OnTradeTransaction - Seite 6

 
prostotrader:

Sie erinnern sich vielleicht an gar nichts

Ich stimme zu, dass dies funktionieren würde (im Falle eines vollen Gusses)
void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{
  if ((Trans.type == TRADE_TRANSACTION_DEAL_ADD) && (Trans.position > 0) && !PositionSelectByTicket(Trans.position))
    Print("Position #" + (string)Trans.position + " - triggered SL/TP.");
}

Aber die Diskussion scheint etwas breiter zu werden.
 
Andrey Dik:

Sie sind sehr unaufmerksam, ich bin nichtder Themenstarter.

Sie sollten mir auch einen Code wie diesen zeigen:

//——————————————————————————————————————————————————————————————————————————————
void  OnTradeTransaction (const MqlTradeTransaction &trans,   // структура торговой транзакции
                          const MqlTradeRequest     &request, // структура запроса
                          const MqlTradeResult      &result)  // структура ответа
{
  
}  

Wenn es Ihnen nicht gefällt, können Sie Joba verwenden! Ist das so?

Ich habe genug Zeit investiert, um Ihre Frage zu beantworten.

Wenn Ihre Frage nicht so "abstrakt" wäre, wäre die Antwort vielleicht etwas konkreter.

Nämlich:

1. FORTS oder FOREX

2. Welche Art von Netzen oder Hecken verwenden Sie?

3. ob während der Laufzeit der Position andere Aufträge verwendet werden

Die Frage ist die gleiche wie die Antwort.

 
fxsaber:
Ich stimme zu, dass dies funktionieren würde (im Falle einer vollständigen Befüllung)
void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{
  if ((Trans.type == TRADE_TRANSACTION_DEAL_ADD) && (Trans.position > 0) && !PositionSelectByTicket(Trans.position))
    Print("Position #" + (string)Trans.position + " - triggered SL/TP.");
}

Aber die Diskussion scheint etwas breiter zu werden.

Ich kann mich nicht erinnern, dass die Lautstärke für ST/TP eingestellt werden kann.

Wenn nicht (ich überprüfe das jetzt), wird die Position FULL oder SL oder TP geschlossen

 
prostotrader:

Ich kann mich nicht erinnern, dass ich auf ST/TP gewartet habe, um die Lautstärke einzustellen, falls nicht,

dann wird die Position VOLLSTÄNDIG entweder SL oder TP geschlossen

Möglicherweise reicht die Liquidität einfach nicht aus.
 
fxsaber:
Möglicherweise reicht die Liquidität einfach nicht aus.
Ja, und der Broker kann den Strom abschalten :)....
 
prostotrader:
Ja, und der Broker kann den Strom abschalten :)....
Nehmen Sie ein Instrument mit geringem Liquiditätsbedarf und das war's.
 
fxsaber:
Nehmen Sie ein Instrument mit geringer Liquidität und das war's.

Aus diesem Grund habe ich die Verwendung von schwebenden Aufträgen empfohlen

Hinzugefügt von

Vieles hängt vom Markt und dem Instrument ab...

 
<br/ translate="no">

Um genau zu erkennen, welcher Auftrag im OnTradeTransaction-Ereignis beantwortet wurde, werden alle anderen Ereignisse als das erste Auftragsereignis mit einem Ticket signiert.

Das erste Ereignis wird sowohl durch das Ticket als auch durch die request_id signiert. Die request_id erhält der Benutzer direkt nach dem Absenden der Bestellung von der Funktion OrderSendAsinc. Auf diese Weise wird eine bestimmte OrderSendAsinc-Iteration mit den in OnTradeTransaction erzielten Ergebnissen verknüpft.

Das Ticket in OrderSendAsync existiert möglicherweise gar nicht, und höchstwahrscheinlich wird es das auch nicht, wenn wir Aufträge mit einer Geschwindigkeit von hundert pro Sekunde abfeuern (bestenfalls Retcode 10008, und das war's).

 
dmipec:

Das Ticket in OrderSendAsync kann vorhanden sein oder auch nicht, und höchstwahrscheinlich wird es nicht vorhanden sein, wenn die Aufträge nach ein paar Tsas abgefeuert werden (bestenfalls Retcode 10008 und das war's).

Nun, nicht zehn, sondern 30 pro Sekunde bei einer Standardanmeldung.

Wenn Sie es richtig geschrieben haben, wird der Auftrag bzw. werden die Aufträge auf jeden Fall vorhanden sein.

 
Vasiliy Sokolov:

Anstatt Ereignisse zu analysieren, sollten Sie das Handelsumfeld analysieren, und nur wenn sich das Handelsumfeld verändert hat, sollten Sie die notwendigen Entscheidungen treffen. OnTransaction kann nur in sehr begrenzten Fällen verwendet werden, und es ist in der Regel besser, bei Ihrer Arbeit darauf zu verzichten. Schauen Sie sich MetaTrader 4 an, er hat kein OnTransaction und jeder kommt ohne aus.

Ich stimme zu. Aber leider kann es sein, dass im MT5, anders als im MT4, die Handelsumgebung nicht der Realität entspricht. Wenn beispielsweise ein schwebender Auftrag mehrere Millisekunden lang ausgeführt wird, ist er möglicherweise nirgendwo zu finden. Und auch OnTradeTransaction hilft hier nicht weiter.