Liebe PRTler,
seit kurzem gab es entweder eine Funktions-Änderung zum pTrailing oder es läuft fehlerhaft.
Bislang funktionierte “SET STOP PTRAILING 1” mit eingehaltenen Mindestspunkteabstand natürlich, z.B. wie hier im Dax mit 5 Points, dass ein Punkt unter dem Einstiegskurs getrailt werden konnte. Nunmehr viel mir jedoch bei Backtests auf, dass dies seit kurzem nicht mehr funktioniert. Entweder aufgrund Funktions-Änderung oder es läuft fehlerhaft. Im besonderen ärgerlich, dass bei Ergebnisaufruf bei Optimierungen, ein abweichendes Ergebnis zum Vorschein kommt. Siehe Screenshot in der Anlag. Gut nachvollziehbar sollte ein Profit in der Equity von 621 ausgewiesen werden, jedoch tatsächlich werden nur rd. 500 Gewinn berechnet.
Um dies nachvollziehbar zu machen, habe ich neben dem Screenshot, schnell ein Testcode erstellt. Bitte mal ausprobieren, denn allzu häufig werden abweichende Ergebnisse aus der Optimierungstabelle angezeigt.
Da ich grundsätzlich alle Probleme zunächst nachvollziehen möchte und erst aufgebe, wenn ich die Ursache gefunden habe, stehe ich hier vor einem Rätsel und bitte um Hilfe.
Vielen Dank vorab und liebe Grüße
Rainer
//Dax 5 Min 5K
// Nur zu Testzwecken / Problemverdeutlichung - kein reales Handels-System!
DEFPARAM CumulateOrders = False
If Not OnMarket Then
$ActivTrail[lastset($ActivTrail)+1] = 0
EndIf
PositionsSize = 1
ShortTrade = 0
LongTrade = 0
BETrail1 = 0
Perioden = 10
//***************************************************************************************************************************
INDSV = CCI[Perioden]
INDST = 100
ShortTrade = INDSV Crosses Under INDST And Momentum[12] < 0
INDLV = CCI[Perioden]
INDLT = -100
LongTrade = INDLV Crosses Over INDLT And Momentum[12] > 0
//***************************************************************************************************************************
If NOT OnMarket And ShortTrade Then
SELLShort PositionsSize CONTRACT AT MARKET
EndIf
If NOT OnMarket And LongTrade Then
Buy PositionsSize CONTRACT AT MARKET
EndIf
ProfitPROZ = 1
LossPROZ = 1
If OnMarket Then
SET TARGET %Profit ProfitPROZ
SET STOP %Loss LossPROZ
EndIf
//***************************************************************************************************************************
///// ***** 2 Optimierungs-Variablen ***** /////
// TrailBEPoints (BreakEven) 10 bis 30 und Trailpoints 1 bis 20
MinTRD = 6
TrailBE = Max(MinTRD,TrailBEPoints)
If ShortOnMarket Then
BETrail1 = ((TradePrice-TrailBE*PointSize) - Close)
EndIf
If LongOnMarket Then
BETrail1 = (Close - (TradePrice+TrailBE*PointSize))
EndIf
If (BETrail1 > 0) And ($ActivTrail[lastset($ActivTrail)] = 0) Then
SET STOP PTRAILING Trailpoints // Differenz Points Entry
$ActivTrail[lastset($ActivTrail)+1] = 1
EndIf
//***************************************************************************************************************************
//***************************************************************************************************************************
If LongOnMarket Then
LongProfitPo =(Close-(TradePrice*PointSize))
PRBV1 = TradePrice*PointSize
PREV1 = Close
PRDV1 = (((PREV1*100)/PRBV1)-100)
LongProfitPr = PRDV1
Else
LongProfitPo = 0
LongProfitPr = 0
EndIf
If ShortOnMarket Then
ShortProfitPo =((TradePrice*PointSize)-Close)
PRBV2 = Close
PREV2 = TradePrice*PointSize
PRDV2 = (((PREV2*100)/PRBV2)-100)
ShortProfitPr = PRDV2
Else
ShortProfitPo = 0
ShortProfitPr = 0
EndIf
//***************************************************************************************************************************
GRAPH (TrailBE) Coloured(100, 255, 20) AS "BreakEven-Trail"
GRAPH (LongProfitPo) Coloured(0, 255, 50) AS "LongProfit Points"
GRAPH (ShortProfitPo) Coloured(255, 0, 50) AS "ShortProfit Points"
GRAPH (LongProfitPr) Coloured(0, 255, 50) AS "LongProfit %"
GRAPH (ShortProfitPr) Coloured(255, 0, 50) AS "ShortProfit %"
2. Fehler-Screenshot.
Extrem. Lt. Optimierungstabelle/Ergebnis 496 Euro, Anzeige bei Aufruf extrem abweichend. Die ist nicht auf den noch laufenden Trade zurückzuführen, sondern tritt nur im Zusammenhang mit pTrailing auf. Ansonsten funktioniert alles normal. Hier muss ein schwerer Fehler vorliegen.
Dem gilt es auf dem Grund zu gehen.
Nochmals Danke vorab.
Ich sehe, Sie arbeiten mit dem DAX auf einem 5-Minuten-Zeitrahmen.
Können Sie mir den Tag und die Uhrzeit der Eröffnung einer Operation sagen, die Ihrer Meinung nach falsch operiert hat (und warum sie Ihrer Meinung nach falsch ist)?
Wie auch immer, als mein Vorschlag ist es ratsam, für den Trailing Stop den Nicolas-Code aus den Zeilen 17 bis 56 unter diesem Link https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/ zu verwenden. .
SET STOP TRAILING kann sehr unterschiedliche Ergebnisse zwischen Backtest und Real liefern und hat einen Schritt von nur einer Einheit (Standard und unveränderlich). Du kannst ihm nur sagen, wann er anfangen soll.
Guten Morgen Roberto,
vielen Dank für die zeitnahe Antwort. Danke auch für den Link von Nicolas Code, den kannte ich, der ist gut. Danke.
Im Grunde kommt bei mir ein pTrailing sehr selten zum Einsatz, dennoch funktioniert es meiner Meinung nach nicht korrekt. Bislang habe ich auch stets nach Breakeven mit Mindestabstand “pTrailing 1”, also bekanntlich 1 Punkt unter Entry, bewusst eingesetzt. Aber genau dies funktioniert seit kurzem nicht mehr korrekt.
Teste doch einfach mal Bitte kurz mit dem obigen Testcode, bzw. verwende doch mal kurz ein “pTrailing 1” in Deinen Tests und gefühlsmäßig wirst Du gleich kuriose Abweichungen zwischen Ergebnis aus der Optimierungstabelle und Equity, auch Detail-Bericht, feststellen können.
Habe nochmals ein Screenshot beigefügt, dort lt. MaxProfit der Optimierungstabelle 635 Euro, lt. Detailbericht 499 Euro und Equity lfd. Trade berücksichtigt ebenso 499 Euro abweichend. Dies verstehe ich eben nicht. Und wie angemerkt, diese Abweichungen treten nur in Verbindung mit pTrailing 1 nach BreakEven auf.
Ich entschuldige mich für die Behelligung, aber würde mich freuen, wenn ich den Grund für die Abweichung verstehen könnte. An dieser Stelle auch nochmal ein DANKE an für das tolle Forum und Eure hoch professionelle kompetente und freundliche Arbeit! DANKE!
Schönen erfolgreichen Tag und liebe Grüße
Rainer
Es tut mir leid, aber ich weiß nicht, was ich überprüfen soll. Sie müssen mir eine (nur eine reicht) fehlerhafte Operation mit Datum und Uhrzeit zeigen und mir erklären, wo der Unterschied zwischen dem, was es macht und dem, was Sie tun möchten, ist.
Hallo Roberto,
Danke für die schnelle Antwort.
Festzustellen, ob der Optimierungsvorgang fehlerhaft ist, wird nicht einfach, aber mit großem Aufwand machbar. Werde es versuchen.
Nochmal kurz gefragt:
Aber wie lässt sich die grobe Diskrepanz zwischen Optimierungsergebnis und Detail-Bericht, siehe nochmaliger Screenshot anbei, erklären, nachfolgend kurz aufgeführt, Idee?
– Optimierungstabelle: Gewinn 947,70 Euro, 105 Trades bei 82% gewinnende
– Detail-Bericht: Gewinn 425,90 Euro, 96 Trades bei 80% gewinnende
Kuriosum, nur bei Verwendung von „pTrailing 1“ gibt es derartige grobe Abweichungen.
Ich möchte es einfach nachvollziehen können. SORRY.
Einfach mal Bitte etwas kurzer Hand mit “pTrailing 1” laufen lassen, oder den TestCode verwenden. Sorry für die Umstände.
Danke für die Geduld und Bemühungen vorab.
Liebe Grüße
Rainer
SET STOP TRAILING 1 bedeutet, dass bei jedem Pip der Stop-Loss aktualisiert wird. Aber es war nie genau, deshalb wird Trailing-Stop-Code verwendet.
Hallo Roberto,
habe einige Trades im Detail nachvollzogen(2 Screenshots anbei).
Ergebnis, dass die Werte der Optimierungstabelle falsch sind.
Mein Gedanke war zunächst, dass die Optimierung ohne “Tick by Tick” durchgeführt wurde, dies war jedoch nicht der Fall. Unverändert Ratlosigkeit.
“pTrailing” hat korrekt funktioniert, die Werte der Optimierung sind inkorrekt, schade. Hilfe, Verständnislosigkeit.
Ich würde mich freuen, wenn dies geklärt werden könnte, denn es handelt sich ja um keine geringe Abweichung.
Ggf. halt doch mal kurz gegentesten.
Liebe Grüße und DANKE.
Rainer
Hallo Roberto,
ganz genau, Danke.
wenn ich ohne “Tick by Tick” teste, stimmen die Ergebnisse überein, sehr merkwürdig.
Dennoch fragt man sich, was ist korrekt, bzw. wo arbeitet der “Tick by Tick”-Modus inkorrekt?
Liebe Grüße
Rainer
Ich denke, es ist kein Tick-by-Tick-Modus, der falsch funktioniert, sondern SET STOP TRAILING, das nicht vertrauenswürdig ist.
Hallo Roberto,
ja, dem kann ich nur zustimmen.
Nochmals vielen Dank für Deine Bemühungen und Geduld.
Liebe Grüße
Rainer