Aiuto backtest
Forums › ProRealTime forum Italiano › Supporto ProOrder › Aiuto backtest
- This topic has 11 replies, 2 voices, and was last updated 5 years ago by R05.
-
-
03/28/2019 at 9:48 PM #94929
Gent.mi ho trovato il seguente trading system. Ho provato a fare il backtest sia in demo che in reale e ho avuto due risultati completamente differenti. Vi allego le schermate.
Mi aiutate a capire?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103DEFPARAM FlatAfter = 173000defparam cumulateorders= falsedefparam preloadbars = 30000OraInizio = 090000oralimite =173000tagliaposizione=1OraInizio1 = 090000d=2// vab= incrocio di B9 con A4s=3s2=6s4=14q=1q1=4q2=8mysupport=40mytarget=150if time=orainizio thenp= closeendifif close>p+d thenk=1elsif close<p-d thenk=-1elsek=0endifif longonmarket thenmassimo=highest[barindex-tradeindex](close)elsemassimo=0endifif massimo>positionprice+s*pointsize and massimo<positionprice+s2*pointsize theni=1elsif massimo>positionprice+s2*pointsize and massimo<positionprice+s4*pointsize theni=2elsif massimo>positionprice+s4*pointsize theni=3elsei=0endifif shortonmarket thenminimo=lowest[barindex-tradeindex](close)elseminimo=0endifif minimo<positionprice-s*pointsize and minimo>positionprice-s2*pointsize theni1=1elsif minimo<positionprice-s2*pointsize and minimo>positionprice-s4*pointsize theni1=2elsif minimo<positionprice-s4*pointsize theni1=3elsei1=0endifif time>orainizio1 and time<oralimite and k=-1 and not onmarket thenbuy tagliaposizione contract at p stopendifif longonmarket and i=1 thensell at positionprice+q stopendifif longonmarket and i=2 thensell at positionprice+q1 stopendifif longonmarket and i=3 thensell at positionprice+q2 stopendifif time>orainizio1 and time<oralimite and k=1 and not onmarket thensellshort tagliaposizione contract at p stopendifif shortonmarket and i1=3 thenexitshort at positionprice-q2 stopendifif shortonmarket and i1=2 thenexitshort at positionprice-q1 stopendifif shortonmarket and i1=1 thenexitshort at positionprice-q stopendifset target profit mytargetset stop loss mysupport03/29/2019 at 1:19 AM #94940Anch’io ottengo dati errati, non so se sul demo o sul reale (spero sul demo!).
Ho anche provato a cambiare TF e strumento, ma sono sempre risultati diversi.
Ho notato che le differenze di operazioni (circa il doppio sul Demo) sono quasi tutte tra quelle in Stop Loss di pochi euro.
Non so spiegarmelo, la mia ipotesi è che vi siano ancora dei problemi nel supporto MTF (Multi Time Frame), in quanto sul conto Demo è attivo da vari mesi ed è tutt’ora in fase di beta test, mentre sul Reale non è attivo. Magari è ancora in beta test proprio perché ha ancora qualche problema di fuzionamento.
Se non trovi spiegazioni puoi aprire un ticket d’assistenza premento CTRL+M dalla piattaforma.
03/29/2019 at 7:41 AM #94950Ok grazie. Comunque ho montato il sistema sul conto demo: oggi lo monitoro direttamente quando apre le posizioni così vedo come si comporta. Perchè credo, o almeno spero, che quando apre le posizioni direttamente non dovrebbero esserci differenze tra demo e reale. Spero che le differenze ci siano solo sul backtest.
03/29/2019 at 7:50 AM #94951Gent.mo Roberto dato che è un sistema che ho preso direttamente e dato che non riesco a capire il setup di entrata, siccome lo vorrei, a questo punto anche provare a mano a vedere se funziona, mi potresti aiutare a capire appunto il setup di entrata?
Ho capito che va long se k=-1 e viceversa per lo short. Ma close<p-d dove p è lo stesso il close mi confonde un pò le idee.
1234567891011if time=orainizio thenp= closeendifif close>p+d thenk=1elsif close<p-d thenk=-1elsek=0endif03/29/2019 at 8:39 AM #94960È probabilmente una buona strategia, ma scritta malissimo.
Usa nomi cortissimi, tipo P, D, ecc… che sono difficili da riconoscere. È un modo di scrivere i programmi usato fino a circa metà anni ‘90, quando la memoria disponibile era poca e si tendeva a risparmiare spazio usando nomi corti. Oggi non c’è ragione di farlo.
Ad ogni modo, P è il prezzo delle ore 9 e D è un numero di pips, quindi ad ogni candela successiva alle 9 confronta il prezzo corrente con quelli delle 9, +- 2 pips, settando la variabile K di conseguenza.
03/29/2019 at 9:27 AM #94967Ok grazie Roberto, gentilissimo. Come prima accennavo ho fatto partire la strategia in demo e purtroppo non coincide nulla. Chiarisco meglio.
Alle 9:15 mi ha aperto una posizione short appena il prezzo ha rotto a ribasso il prezzo delle 9, come mi dicevi. Solo che tutt’ora è ancora in essere la posizione (allegato 1).
Facendo il backtest in demo mi risultano 4 posizioni aperte (allegato demo).
Facendo invece il backtest in reale mi risultano 2 posizioni aperte (allegato reale).
A questo punto non so cosa pensare.
03/29/2019 at 9:34 AM #94971Generalmente è il reale che offre affidabilità. Il demo, anche per PRT, viene utilizzato per fare prove di nuove versioni, adesso oltre al supporto MTF stanno testando anche la nuova versione 11, quindi può darsi che ci siano problemi. Non so dirti di più.
03/29/2019 at 9:41 AM #9497203/29/2019 at 10:06 AM #94977Scusa Roberto mi diresti, gentilmente, come si interpreta questo codice?
12345if longonmarket thenmassimo=highest[barindex-tradeindex](close)elsemassimo=0Perchè sto cercando di capire il modo con cui la strategia esce dalla posizione ma non capisco quale massimo (sempre se è il massimo) debbo prendere in considerazione.
Vorrei fare qualche backtest in manuale.
Mentre positionprice è il prezzo a cui è stata aperta la posizione, giusto? Per il resto mi sembra di aver capito come leggerlo. Devo farmi un pò di calcoli.
123456789if massimo>positionprice+s*pointsize and massimo<positionprice+s2*pointsize theni=1elsif massimo>positionprice+s2*pointsize and massimo<positionprice+s4*pointsize theni=2elsif massimo>positionprice+s4*pointsize theni=3elsei=0endif03/29/2019 at 10:12 AM #9497803/29/2019 at 1:20 PM #9499403/29/2019 at 1:29 PM #94998Comunque credo di aver risolto. Ho navigato un pò per vedere quale fosse la soluzione al problema offset e ho trovato qualcosa. Ho fatto il seguente cambiamento alla riga 34 e 50 del codice messo al primo post.
1234massimo=highest[barindex-(tradeindex+0.1)](close)minimo=lowest[barindex-(tradeindex-0.1)](close)L’ho montato sul conto demo e come prima operazione ha fatto ciò che doveva fare. Allego la schermata con l’operazione.
Operazione aperta al prezzo di apertura e chiusa con il secondo metodo che allego sotto.
123if longonmarket and i=2 thensell at positionprice+q1 stopendifInfatti appena andato nella direzione giusta e fatto un nuovo massimo, ha chiuso l’operazione quando è risceso al prezzo di apertura + q1 (che equivale a 4 punti).
Continuerò però a testare direttamente sul conto demo, senza fare nessun backtest, in modo da verificare effettivamente il funzionamento.
-
AuthorPosts
Find exclusive trading pro-tools on