Backtest für Breakout gesucht
Forums › ProRealTime Deutsch forum › ProOrder Support › Backtest für Breakout gesucht
- This topic has 22 replies, 3 voices, and was last updated 7 years ago by Despair.
-
-
02/01/2017 at 5:15 PM #23442
Hallo Leute,
ich suche einen Code für einen Backtest wie folgt:
Open Range breakout
Range von 08.00 – 08:55Uhr
Einstieg long, wenn der Kurs die obere Range nach oben durchbricht
Initialstopp (SL) auf die untere Range, als Trailingstop
Kommt der Kurs bis auf 50 % der Range in den gewinn, wird der SL auf Break even gezogen und es ist kein Trailingstop mehr!!!
Wenn der Kurs das 1:1 der Range erreicht, wird der Trade per Limitorder geschlossen.
Einstieg short, wenn der Kurs die untere Range nach unten durchbricht.
Initialstopp (SL) auf die obere Range, als Trailingstop
Kommt der Kurs bis auf 50 % der Range in den gewinn, wird der SL auf Break even gezogen und es ist kein Trailingstop mehr!!!
Wenn der Kurs das 1:1 der Range erreicht, wird der Trade per Limitorder geschlossen.
Wäre schön wenn jemand helfen könnte!!!!!
Danke und gruß axmichi
02/02/2017 at 7:09 AM #2351102/18/2017 at 7:12 AM #2547402/18/2017 at 9:34 AM #25477Mojn axmichi
vielleicht hilft Dir das weiter.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566// DAX mini * Rangebreakout 8-9 * M1 Chart// Einstieg 9-12Uhr 1x * Ende 17.29Uhr * 1Punkt=1Euro// **************************************************DEFPARAM CumulateOrders = FalseDEFPARAM flatbefore = 090000DEFPARAM flatafter= 172900Einsatz=100 // Einsatz in EuroSpread=1 // Handelsspread DAX 1 Punkt 9.00-17.30 bei IGStartzeit=090000Endzeit=120000// Spanne 8-9 in Hi and Lo ermitteln// ------------------------once B=60 // 60 x 1 Minuteonce Hi=0once Lo=0If time = 090000 then // Das ist das Ende der 8.59 Kerze. Also INCLUSIVE DIESERHi=highest[B](high)Lo=lowest[B](low)endif// Positionsgrösse ermitteln// ------------------------Spannepoints=(Hi-Lo)/pointsize // Spanne in PipsSpannenwert=Spannepoints*pointvalue // Wert der SpanneIf Spannenwert<Einsatz and Einsatz > 0 thenPosition=Round(Einsatz/Spannenwert)elsePosition=0endifonce Tradetag=0If onmarket thenTradetag=dateendifIf not onmarket and time>= Startzeit and time < Endzeit and Tradetag<>date thenBUY Position Lot AT Hi+(Spread/2) StopSellshort Position Lot AT Lo-(Spread/2) StopSET stop ploss Spannepoints*1SET TARGET pPROFIT Spannepoints*2ENDIF//Stop nachziehen//If not onmarket thenTrailstop=0endif/////////////////If shortonmarket thenIf close<Lo-Spannepoints and Trailstop=0 thenTrailstop=Lo-1endif//Exitshort ShortpositionIf Trailstop> 0 thenexitshort at Trailstop stopendifendif///////////////////If longonmarket thenIf close>Hi+Spannepoints and Trailstop=0 thenTrailstop=Hi+1endif//sell LongpositionIf Trailstop> 0 thensell at Trailstop stopendifendifGruß
1 user thanked author for this post.
02/18/2017 at 3:45 PM #25501Hi ,
au vielen Dank Dir.
Der ansatz scheint ja wirklich dem zu sein was ich machen will. leider verstehe ich den code nicht und weiß nicht was ich ändern muss damit das mit meinem crv 1:1 und dem sl nachziehen wenn der kurs bei 70 % ist. Kannst du mir da helfen bitte!!
Gruß
02/19/2017 at 2:31 PM #25599Hallo
Hast Du schon die Dokumentation von ProOrder, das kann jeder von der Prorealtime Seite als PDF runterladen. Aber hier sind wirklich gute Beispiele, wo man viel über die Programmierung in PRT lernen kann. Für eine SL-Variable einzubauen und nachzuziehen muss man wissen wann der einsetzen soll, in welchem Abstand bei welchem Ereignis (zB neuer High Close ) nachgezogen werden soll. Am einfachsten für den Fall, so glaube ich wäre es so:
“SET STOP PLOSS ” austauschen durch ” SET STOP pTRAILING”. Dadurch sollte PRT automatisch ín der Größe der Eröffnungsrange nachziehen.
Mit Trailings habe ich allerdings auch net viel Erfahrungen. Ich kann Dir aber sagen, das beim Backtesten nicht immer so hinhaut wie es ausschaut. Deshalb immer erst prüfen.
Zu dem CRV 1:1 hatte ich mich vertan. Da ich das schon vorher hatte in der Version, steht da noch “SET STOP PProfit spannepoints*2”. Dh es ist ein CRV von 2:1. ( Ziel=Eröffnungsrange*2 und Stop =Eröfnungsrange*1).
Gruß
02/19/2017 at 6:51 PM #25636Hi danke für die Hinweise,
ja die bücher PDFs habe ich, leider kenne ich das grundgerüst net so richtig und erkenne es auch net. deshalb bekomm ich glaub ich das nicht hin.
Grundsätzlich ist es schon das was ich will, aber so ganz net. Ich würd gern, das das system nur immer ein Kontrakt kauft, und da sehe ich net durch bei den vielen Begriffen, hab schon was gelöscht und was anderes eingefügt, wo ich dachte es passt und dann ging garnix mehr.
mit Ziel eröffnungsrange habe ich schon angepasst. Danke Dir.
Hast du heir schon mal brauchbare systeme gefunden? Egal was ich probiert habe ist hat das nie funktioniert oder das system hatte schlechte ergebnisse. Hast du ähnliche erfahrungen, oder gibt es einen der was brauchbares postet?
Gruß
02/19/2017 at 10:24 PM #25659Hallo axmichi
wer kennt das net wenn man wie der Esel vorm Berg steht und net weiter kommt und am Ende liegt’s an einer Kleinigkeit. Deshalb meinte ich ja das hier sehr gute Beispiele zum lernen sind. Es ist natürlich von Vorteil, wenn man sich mit anderen Programmiersprachen im allgemeinen etwas auskennt oder zu tun hat. “If then ” zB gibt es in allen (mir bekannten) Programmiersprachen, am bekanntesten ist wahrscheinlich Basic, zB das VBA von den MS-Office Anwendungen. Ich hab Dir eben die Berechnung der Einsatzgröße rausgeschmissen und einfach die Variable “Position=1” reingeschrieben. Jetzt sollte ab 9-12 aus der 8-9 EröffnungsRange einmal pro Tag mit 1Kontarkt eröffnet werden, sobald die Range verlassen wird und in der 9uhr-Minute nicht die erste Kerze direkt die andere Seite angeht, denn da würde noch die andere Order stehen. Passiert in der Regel auch net. Ich hatte das auch schon öfter laufen, allerdings nicht im Dax. Hier der geänderte Code:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061// DAX mini * Rangebreakout 8-9 * M1 Chart// Einstieg 9-12Uhr 1x * Ende 17.29Uhr * 1Punkt=1Euro// **************************************************DEFPARAM CumulateOrders = FalseDEFPARAM flatbefore = 090000DEFPARAM flatafter= 172900Position=1 // KONSTANTE KONTRAKTANZAHL!!Spread=1 // Handelsspread DAX 1 Punkt 9.00-17.30 bei IGStartzeit=090000Endzeit=120000// Spanne 8-9 in Hi and Lo ermitteln// ------------------------once Bars=60 // 60 x 1 Minuteonce Hi=0once Lo=0If time = 090000 then // Das ist das Ende der 8.59 Kerze. Also INCLUSIVE DIESERHi=highest[Bars](high)Lo=lowest[Bars](low)endifSpannepoints=(Hi-Lo)/pointsize // Spanne in Punkten//once Tradetag=0If onmarket thenTradetag=dateendifIf not onmarket and time>= Startzeit and time < Endzeit and Tradetag<>date thenBUY Position Lot AT Hi+(Spread/2) StopSellshort Position Lot AT Lo-(Spread/2) StopSET stop ploss Spannepoints*1SET TARGET pPROFIT Spannepoints*1ENDIF//Stop nachziehen//If not onmarket thenTrailstop=0endif/////////////////If shortonmarket thenIf close<Lo-Spannepoints/2 and Trailstop=0 thenTrailstop=Lo-1endif//Exitshort ShortpositionIf Trailstop> 0 thenexitshort at Trailstop stopendifendif///////////////////If longonmarket thenIf close>Hi+Spannepoints/2 and Trailstop=0 thenTrailstop=Hi+1endif//sell LongpositionIf Trailstop> 0 thensell at Trailstop stopendifendifTesten musst du selber. Ich hab es nur in einer Textdatei geändert, da ich PRT nicht mehr anmachen will.
Zu der anderen Frage mit den brauchbaren Systemen……Schau Dir den Pathfinder von Reiner mal an. Die Idee ist echt richtig gut schon von der ersten Version an umgesetzt, vor allen Dingen baut er nicht nur auf Indikatoren auf, sondern bezieht die Preisaction mit ein.
Ansonsten, wenn man sich anschaut was die Startrader für ihre Kurse so nehmen ,kann man nicht erwarten das hier ausschließlich Top-Seller veröffentlicht werden…Also ich betrachte es als Hobby…
Hoffe ich konnte dir helfen.
Gute Nacht
Kurtus
02/20/2017 at 10:22 AM #25709Hi Kurtus, daaaaannnkke Dir und wie das hilft!!!!!!
ich werd weiter versuchen mich durch die Codes zu fressen und schaun ob ich was finde was mir dann einleuchtet.
Durch die Unterschiede vom Code weiter oben und jetzt dem, kann ich mir dann einiges schon mal zusammen reimen, das find ich gut.
Den code von Reiner werd ich auf jeden Fall mal untersuchen.
Lässt du dann die Systeme auch live für dich handeln???
Darauf soll es bei mir nämlich hinaus laufen. Dazu muss ich natürlich genau wissen was im Code steht.
ich werd mich mal dran machen und schaun ob ich das mit dem Stop bei 70 % der Range angepasst bekomme. Als weiteren Schritt wäre dann, den code so zu verändern, das der Kauf nicht gleich bei Durchbruch durch die Range erfolgt, sonder erst dann wenn der Kurs eine Anzahl von Punkten (2 oder 3) durch die Range ist. und dann soll ne Limitorder rein, die genau auf der Range liegt. Mal schaun ob sich das Ergebnis dadurch verbessert, denn die Trades wo die gesamte Range gleich beim ersten Candle geholt wird, machen dem Ergebnis doch ziemlich zu schaffen. Schon spannend das alles. 🙂
Lieben Gruß
02/20/2017 at 12:10 PM #25730Mojn axmichi,
Bitte. Also ein Haufen Arbeit wartet auf dich. Aber von nix kommt ja nix. wie Du sagst, es ist spannend. Hauptsache nur kleine Positionen wenn du etwas live mit echtem Geld laufen lässt, siehe Risk of Ruin.
Ja, den PF V6 (steckt schon einiges an Gehirnschmalz drin, das muss man erst mal hinkriegen..) von Reiner zB lasse ich auch live mithandeln in DAX und DOW. Im Dax bin ich da allerdings in M30 unterwegs. Die equity Kuve ist einfach zu gut um es nicht zu tun.
Das Problem ist ja, das man nicht 5Tage die woch von morgens bis abends vor den Kursen sitzen will und kann. Deshalb Hobby, nur morgens wenn ich nicht arbeiten muss. Ich würde aber auch gerne mehr laufen lassen. Ich denke dadurch könnte man halt Diversifizieren, Risiko raus nehmen. Bei einem CRV 2:1 in mehreren Märkten und Systemen könnten dann zB 5 Verluste sein und nur 3 Gewinner, aber man ist immer noch im Plus. Evtl müsste man mal hierum anfragen, ob jemand etwas besseres auch verkaufen will. Allerdings Mondpreise würde ich auch nicht ausgeben wollen, dann bleibt es so wie es ist. Wenn Du ja mal was geniales findest kannst Du es mir ja auch sagen.
Gruß Kurtus
02/20/2017 at 12:44 PM #2574002/20/2017 at 8:22 PM #25811Hi Kurtus,
au man, ich sitz den ganzen nachmittag und wenn ich deinen code verändern will kommt immer nur die syntaks nachricht. ich schaff es net.
kannst du nicht so lieb sein und mir den code umschreiben. so dass der sl bei 50 % im gewinn auf break even nachgezogen wird? es muss gar kein trailingstop sein.
ich wäre dir wirklich sehr dankbar. au man ich loose ab
Gruß
02/22/2017 at 10:01 AM #26031Hi,
prüfe nochmal, es ist mE so das bei shortonmarket und bei longonmarket bei einem Close 50% im Gewinn die Variable Trailstop mit 1P Gewinn ( bei 0 slippage)beladen und zu schließen gesetzt wird. Den Code mußt Du verstehen lernen, das ist sozzusagen Grundvoraussetzung. Ich würde nix live laufen lassen was ich net verstehe. Wie gesagt, am wichtigsten ist, Keine Experimente, nie alles auf eine Karte setzen. zum RoR gibt es auch Formeln und Beispiele im Internet. Glaube das kommt ursprünglich vom Poker. Es geht dabei darum das man eine Verlust-Serie haben kann. Auch beim Trading oder Auto-Trading. wenn man zB 50% des Kontos verliert, brauchst Du 100% es wieder reinzuholen. Das hat mE übrigens jeder, der mit irgendetwas handelt. Im Grund ist es doch so, wenn bei einem ‘ehrlichen’, ungeschönten Backtest ein positiver Handel pro Trade steht, hat man einen positiven Erwartungswert. Wenn alle Bedingungen gleich bleiben, und bei einem geringen Kapitaleinsatz, zB 1%, sollte es eine schönes Handelsergebnis bringen. Für RoR nach jedem Trade im Laufe der Backtestzeit zu sehen, könnte man einfach nur eine bestimmte Zeit berechnen. Aber wo ist da der Sinn. Man sieht es ja auch schon optisch an der equity Kurve. die Frage ist dann immer ab wo würde man (wieder) eingestiegen sein…
Gruß und Gutes Gelingen
K.
02/22/2017 at 11:14 AM #26041Hallo Kurtus,
ich bin dabei so richtig in den Kurs abzutauchen und es hat auch schon was gebracht. Wenn man lang genug drauf sieht kann man sich etwas zusammen reimen. Mit meiner Limitorder bin ich leider kein stück voran gekommen. da hört es dann doch auf.
Wenn ich jetzt statt Takeprofit 1, oder 2 vielleicht 2.1 haben will, rechnet der Backtest es aus, aber in Proorder wird es immer wieder zurück gewiesen, wegen angeblich division durch null. Die aber garnicht da ist. Ich hab es so versucht zu lösen indem ich nicht Takeprofit 2.1 eingegeben habe sondern 21/10, das wird auch beim Backtest genommen aber in Pro Order nicht.
z.B. Stopabstand Spanneepoints*1, hier will ich eigentlich 0,9, das schneidet im Test bessser ab geht aber nicht.
Hast schon mal das Bluster Dax system getestet, das hat auch ne gute Equity!!!
Gruß
02/24/2017 at 11:30 AM #26271Hallo axmichi,
hab im Moment wenig Zeit, werde aber das Dax Bluster System mal suchen und testen. Bei den Berechnungen sind Kommazahlen mit . anzugeben , zB. 0.9 nicht 0,9 , evtl liegts daran. Oder setze Rechenoperationen mal in Klammern. Bei mir läuft es jedenfalls so. Ich nutzte dieses Prg. bis jetzt, soweit ich mich erinnere aber nur zum öffnen von Position. Danach dann von Hand weiter, manuell manchmal aber auch zum eigenen Nachteil…..
Schönes WE und Gruß
-
AuthorPosts
Find exclusive trading pro-tools on