Stop-Auslöser im OnTradeTransaction-Backtest erkennen - Seite 2

 
chinaski:

Hallo angevoyageur,

im Anhang finden Sie einen einfachen EA, der das Problem demonstriert. Der EA eröffnet long mit Stop und Target, dann short, dann long und so weiter.

Eine Dump-Methode ist ebenfalls enthalten. Wenden Sie einfach EUR.USD 1 Minute 1 Woche an und beobachten Sie die Transaktionsdumps im Backtest-Log.

Vielen Dank für Ihre Hilfe.

Hier wird Ihr Stoploss ausgelöst:

2013.05.03 16:52106EURUSDkaufenin0.011.312401060.000.000.009 978.84
2013.05.03 18:35107EURUSDverkaufenaus0.011.310401070.000.00-2.009 976.84sl 1.31040

2013.05.07 18:45:27    Core 1    2013.05.03 18:35:40   trans=symbol=EURUSD price=1.3104000 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit

 
angevoyageur:

Hier wird Ihr Stoploss ausgelöst:

2013.05.03 16:52106EURUSDkaufenin0.011.312401060.000.000.009 978.84
2013.05.03 18:35107EURUSDverkaufenaus0.011.310401070.000.00-2.009 976.84sl 1.31040

2013.05.07 18:45:27    Core 1    2013.05.03 18:35:40   trans=symbol=EURUSD price=1.3104000 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit

Hallo,

aber dies istentry-type=IN , nicht out....

 
chinaski:

Hallo,

aber dies istentry-type=IN , nicht out....

Vielleicht, aber es ist trotzdem dein Sl ausgelöst. Glaube nie, was ein Programm dir sagt;-)
 
angevoyageur:
Vielleicht, aber es ist trotzdem Ihr Sl ausgelöst. Glauben Sie nie, was ein Programm Ihnen sagt;-)

Sie haben Recht, andererseits, wie kann ich wissen, dass ich mich darauf verlassen kann, dass sl=0.0 und tp=0.0 bedeutet, dass es sich um eine Stop- oder Target-Order handelt und nicht: sl und tp sind einfach nicht vorhanden (in der Transaktionsstruktur)...?

 
chinaski:

Sie haben Recht, auf der anderen Seite, wie kann ich wissen, dass ich mich auf sl=0.0 und tp=0.0 verlassen kann, was bedeutet, dass es sich um eine Stop- oder Target-Order handelt und nicht: sl und tp sind einfach nicht vorhanden (in der Transaktionsstruktur)...?

Eine Struktur kann keine fehlenden Felder haben. Es handelt sich um eine Transaktion über ein Geschäft(DEAL_TYPE_SELL), ein Geschäft kann keine SL/TP haben, das macht keinen Sinn. Ein SL (oder TP) ist ein Auftrag (eine Art spezieller schwebender Auftrag), wenn er ausgelöst wird, führt der Auftrag zu einem Geschäft. Sie können all das in OnTradeTransaction überprüfen.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5
 
angevoyageur:

Eine Struktur kann kein fehlendes Feld haben. Es handelt sich um eine Transaktion über ein Geschäft(DEAL_TYPE_SELL), ein Geschäft kann keine SL/TP haben, das macht keinen Sinn. Ein SL (oder TP) ist ein Auftrag (eine Art spezieller schwebender Auftrag), wenn er ausgelöst wird, führt der Auftrag zu einem Geschäft. Sie können all das in OnTradeTransaction überprüfen.

Ich meine natürlich nicht die Strukturelemente; ich meine Werte.
 
chinaski:
Ich meine natürlich nicht die Strukturelemente; ich meine Werte.
Und? Es ist ein wenig verwirrend, kann ich noch helfen?
 
angevoyageur:
Ja und? Es ist ein wenig verwirrend, kann ich trotzdem helfen?

Ja, das war eine Hilfe. Was meinen Sie mit verwirrend? Ich habe mich gewundert, dass ich immer ENTRY_IN bekomme. Sie sagten, ich solle nie glauben, was das Programm mir sagt. Ich sage, Sie haben Recht, also sl=0.0 oder tp=0.0 (fehlende Werte) könnte auch ein Fehler des Servers sein - vergessen, Werte zu schreiben.

Was für mich wichtig ist: eine sichere Methode, um festzustellen, welche Transaktion abgebrochen wird. MT ist großartig, aber in vielen Aspekten verwirrend, macht nicht das, was man normalerweise erwarten würde, wie in diesem Fall.

Verstehen Sie, was ich meine?

 
chinaski:

Ja, das war eine Hilfe. Was meinen Sie mit verwirrend? Ich habe mich gewundert, dass ich immer ENTRY_IN bekomme. Sie sagten, ich solle nie glauben, was das Programm mir sagt. Ich sage, Sie haben Recht, also sl=0.0 oder tp=0.0 (fehlende Werte) könnte auch ein Fehler des Servers sein - vergessen, Werte zu schreiben.

Was für mich wichtig ist: eine sichere Methode, um festzustellen, welche Transaktion abgebrochen wird. MT ist großartig, aber in vielen Aspekten verwirrend, macht nicht das, was man normalerweise erwarten würde, wie in diesem Fall.

Wissen Sie, was ich meine?

Ich bin es, der verwirrt ist;-) Ich lese und antworte auf viele Themen. Ich verstehe, was Sie sagten, muss in der Lage sein, die Gewohnheiten mit MT4 zu ändern .
 
chinaski:

Ja, das war eine Hilfe. Was meinen Sie mit verwirrend? Ich habe mich gewundert, dass ich immer ENTRY_IN bekomme. Sie sagten, ich solle nie glauben, was das Programm mir sagt. Ich sage, Sie haben Recht, also sl=0.0 oder tp=0.0 (fehlende Werte) könnte auch ein Fehler des Servers sein - vergessen, Werte zu schreiben.

Was für mich wichtig ist: eine sichere Methode, um festzustellen, welche Transaktion abgebrochen wird. MT ist großartig, aber in vielen Aspekten verwirrend, macht nicht das, was man normalerweise erwarten würde, wie in diesem Fall.

Wissen Sie, was ich meine?

Ich habe es überprüft. Wenn ein SL/TP ausgelöst wird, haben Sie diese Transaktion:

  1. TRADE_TRANSACTION_POSITION mit gesetztem SL und TP (aber noch keinem Geschäft), dann
  2. TRADE_TRANSACTION_DEAL_ADD

HANDEL_GESCHAEFT_POSITION

Änderung einer Position, die nicht mit einer Geschäftsabwicklung verbunden ist. Diese Art von Transaktion zeigt an, dass eine Position auf der Seite des Handelsservers geändert wurde. Positionsvolumen, offener Preis, Stop-Loss- und Take-Profit-Level können geändert werden. Daten über Änderungen werden in der MqlTradeTransaction-Struktur über den OnTradeTransaction-Handler übermittelt. Eine Positionsänderung (Hinzufügen, Ändern oder Schließen) als Ergebnis einer Geschäftsausführung führt nicht zum Auftreten der Transaktion TRADE_TRANSACTION_POSITION.

Grund der Beschwerde: