Quit / Stop Funktion backtesting
Forums › ProRealTime Deutsch forum › ProOrder Support › Quit / Stop Funktion backtesting
- This topic has 8 replies, 1 voice, and was last updated 2 years ago by rmhandel.
-
-
05/10/2017 at 3:03 PM #35075
Hallo,
ich bin beim Backtesting auf etwas gestossen, was nicht funktionierte, eventuell hat jemand Erfahrung damit.
Es geht um die QUIT Funktion bzw. um das Stoppen des Systems bei einem bestimmen STRATEGYPROFIT Wert.
Bei meinem Backwardstesting funktioniert das nicht, daher wollte ich frage ob jemand Erfahrung hat und ob das nur in backwards nicht geht, aber in echt schon.
z.B.
IF Strategyprofit -1000 THEN
QUIT
END IF
oder
if Gewinn < (-a*startcontracts + dyncontracts*a) THEN
contractnumber = 0
ENDIFDanke für eure Hilfe.
MFG
Wolfi
05/11/2017 at 12:54 PM #35203Um eine Strategie vollständig zu stoppen, sollte dein Code so aussehen:
123IF Strategyprofit <-1000 THENQUITENDIFHast du das schon so geschrieben?
Sie können in der Dokumentation etwas mehr über die STOP-Funktion erfahren: https://www.prorealcode.com/documentation/quit/05/11/2017 at 4:07 PM #35225Ja, habe ich probiert und soeben noch einmal probiert.
Das Ergebnis sieht aber komisch für mich auch, bis zu einem gewissen Wert funktioniert es recht gut und dann auf einmal ist ein Riesen Sprung drinnen.
Im Detail stelle den Wert auf -1000, dann stoppt er bzw. drowdown ist 1200, – 1500 drowndown 1700 und dann auf einmal bei -2500 ist der drowndown -14000, er hat aber keine Position die so groß ist dann.
Ich schick dir den Code hier mit.
Ich habe auch probiert die Zeile des Codes im Programm zu verändern, am Anfang oder Ende, aber das hat keinen Einfluss, was ich gesehen habe.
Der mitgeliefert Code ist irgendein System von mir.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// Tagestrend H1 17042017// System optimiert wegen retourrechnen und weiters Stop Limit reduziert// Festlegen der Code-Parameter H1DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert// Das Handelssystem wird um 0:00 Uhr alle pending Orders stornieren und alle Positionen schließen. Es werden vor der "FLATBEFORE"-Zeit keine neuen Orderaufträge zugelassen.DEFPARAM FLATBEFORE = 090000// Stornieren aller pending Orders und Schließen aller Positionen zur "FLATAFTER"-ZeitDEFPARAM FLATAFTER = 173000// dynamische Anpassung contract auf Basis Evaluierung / testen des Wertes//c1 = AverageTrueRange[10](close)IF Strategyprofit <-2500 THENQUITENDIFstartcontracts = 5 //start of contract system with 2000 Euro BaseGewinn = STRATEGYPROFITif gewinn > 2000 thendyncontracts = 1ENDIFif gewinn > 4000 thendyncontracts = 2ENDIFif gewinn > 6000 thendyncontracts = 3ENDIFif gewinn > 8000 thendyncontracts = 4ENDIFif gewinn > 10000 thendyncontracts = 5ENDIF//dyncontracts = round(Gewinn/1500)//dyncontracts = 0contractnumber = startcontracts + dyncontracts//c5 = AverageTrueRange[10](close)indicator2 = Average[200](close)indicator3 = Average[200](close)//indicator4 = Average[80](close)//indicator5 = Average[80](close)c2 = (indicator2 > indicator3[4])c3 = (indicator2 < indicator3[4])//c4 = (indicator4 > indicator5[7])//c5 = (indicator4 < indicator5[7])if currenttime = 100000 and c2 thenBUY contractnumber CONTRACT AT MARKETENDIFif currenttime = 100000 and c3 thenSELLSHORT contractnumber CONTRACT AT MARKETENDIFSET STOP %LOSS 0.55//SET STOP LOSS 1.5*c1//SET TARGET %PROFIT 0.8//SET TARGET PROFIT 1.5*c1//----05/11/2017 at 4:12 PM #35226Weil auch der höchste berechnete Verlust nicht in einer Größenordnung ist, wo man sagt er macht Tausende Euro Minus bei einem falschen Trade.
MFG
Wolfi
05/12/2017 at 1:52 PM #3531905/13/2017 at 7:37 AM #35381Das ist mir bekannt, das wenn alle Positionen geschlossen sind die Berechnung erfolgt und nicht die Potentielle Gewinne berücksichtig werden. Für mich ist es aber trotzdem nicht erklärbar, warum ein so großer Sprung drinnen ist.
ich sehe z.B. das bei einer Erhöhung des Verlustes bei welchem das System beendet werden soll, dass ein gewaltiger Sprung im Drowndown vorhanden ist, der weit über dieser Grenze liegt, aber der angezeigte maximale Verlust ist viel kleiner, siehe z.B. aus den beigefügten Bilder.
In den Bilder sieht man:
DAXmini, H1, 10.000 Startkapital, Spread 1
- Bild ist mit Grenze bei -2000 Euro = sieht logisch aus
- Bild ist mit Grenze bei -2000 Euro = sieht nicht logisch aus, weil max. drohdown = 14000 Euro, aber Höchster Verlust ist mit 702 Euro angeführt
–> Also wäre der extrem Fall, das System hat einen Strategyprofit von -1999,99 Euro und beim nächsten Trade können maximal die -702 Euro (höchster Verlust) hinzukommen und dann das System gestoppt werden.
Eventuell habe ich einen Gedankenfehler, aber so würde ich mir diese Funktionen erwarten aus den vorhanden Zahlen aus dem Backtesting.
05/13/2017 at 1:25 PM #3541005/13/2017 at 2:31 PM #35417Vielen Dank, ich hab meinen Fehler schon gesehen, dass System funktioniert schon. Der Drowndown und maximale Verlust haben keine Aussage, weil erst bei einem absolut Wert von -2000 des Systemes, es abgeschalten wird.
Der Drowdown kann auch passieren natürlich nach dem vorher schon viel viel mehr gewonnen wurde und dadurch nicht die Schwelle von -2000 durchbrochen wird.
Daher habe ich dann das System entwickelt, welches den Stop kontinuierlich nachzieht.
if Gewinn < (-a*startcontracts + dyncontracts*a) THEN
contractnumber = 0
ENDIFVielen Dank beim Schreiben hier ist mir nun der Fehler aufgefallen und vielen Dank für den Hinweis mit der GRAPH-Funktion
10/25/2022 at 1:44 PM #203012Hallo und vielen Dank für die tolle Info!
if Gewinn < (-a*startcontracts + dyncontracts*a) THEN
contractnumber = 0
ENDIFBitte das noch einmal für Nicht Mathematiker wenn möglich. Besonders würde mich das (-a*) interessieren von der Bedeutung her.
bedeutet dass das Strategyprofit damit das System nicht ganz abschaltet sondern in der eingestellten Anzahl die Strategie sich wiederholen lässt.
-
AuthorPosts
Find exclusive trading pro-tools on