Backtest Pin bar ribassista
Forums › ProRealTime forum Italiano › Supporto ProOrder › Backtest Pin bar ribassista
- This topic has 15 replies, 2 voices, and was last updated 6 years ago by Tradesun.
-
-
12/24/2017 at 12:51 AM #56468
Salve, vorrei chiedere aiuto per provare a fare un backtest della candela pin bar ribassista con i seguenti condizioni
Vorrei inserire un ordine pendente all’inizio della candela successiva dopo il formarsi della candela pin bar ribassista
- viene inserito un ordine pendente in corrispondenza del livello di prezzo della Pin bar ribassista, con un pendente sell stop
- in sostanza, si attende che il prezzo superi il minimo della candela pin bar ribassista + 1 pip
- lo stop-loss viene posto in corrispondenza del massimo della candela pin bar ribassista + 1 pip
- il take-profit viene posto alla distanza tra stop-loss e sell stop della stessa
- quando viene raggiunto il 50% della distanza dal take-profit e lo stop-loss lo stop loss viene spostato in parità, ovvero sul prezzo di attivazione della posizione
- il pendente viene lasciato per 1 candela, dopodiché se non si è ancora attivato alla fine della candela successiva viene cancel
Qui sotto è riportatata una bozza del codice ma mancano delle condizioni e non sono riuscito a completarlo.
pip=1 //Inserire il valore del pip
Pin bar ribassista
c1=High=Highest[5](High)
c2=Close < Close[1]
RHB=c1 and c2
if PBR then
ingressoshort = low – (1*pip)
stopshort = high + (1*pip)
targetshort = ingressoshort – (stopshort-ingressoshort)
endif
sellshort at ingressoshort stop
endif
endif
exitshort at stopshort stop
exitshort at targetshort limit
12/24/2017 at 9:03 AM #56474Per scrivere il codice , utilizza il pulsante <> “insert PRT code”.
Inoltre ho spostato questo topic nel supporto ProOrder, in quanto si tratta di una strategia.
Roberto
12/27/2017 at 1:46 PM #5663712/27/2017 at 1:59 PM #56639E’ proprio qui sopra, contrassegnasto dai due simboli <> (vedi screenshot allegato).
12/27/2017 at 4:04 PM #56651Pin bar ribassista per fare un backtest e trading automatico12345678910111213141516pip=1 //Inserire il valore del pipPin bar ribassistac1=High=Highest[5](High)c2=Close < Close[1]RHB=c1 and c2if PBR theningressoshort = low – (1*pip)stopshort = high + (1*pip)targetshort = ingressoshort – (stopshort-ingressoshort)endifsellshort at ingressoshort stopendifendifexitshort at stopshort stopexitshort at targetshort limit12/27/2017 at 4:19 PM #56655Non comprendo bene cosa fa il tuo codice, per favore dammi come vuoi che sia definita una pin bar ribassista (quanto deve essere grande il corpo e quanto le due ombre), in tal modo posso provare a scrivere qualcosa.
Inoltre ti faccio presente che:
- il tuo punto 6 non è detto che venga raggiunto in modo preciso (oppure mai), perché le strategie vengono eseguite solo alla CHIUSURA di una candela (almeno fino alla prossima versione, speriamo) , per cui in que momento il prezzo potrebbe essere al 49,9% e lo SL resta invariato, anche se nel corso della formazione della candela il 50% è stato superato
- gli ordini pendenti durano SEMPRE solo una candela, ed ogni volta vanno reimmessi se le condizioni persistono.
12/28/2017 at 12:34 AM #56719La Pin bar ribassista deve essere:
- con un piccolo real body e deve essere situato vicino ai minimi della candela
- ha una lunga upper shadow che deve avere una lunghezza almeno doppia rispetto a quella del real body che segnala il raggiungimento di un massimo importante da parte dei prezzi
- ha una lower shadow molto piccola.
Per quanto riguarda il punto 6 lo modifico mettendo lo stop un pip sopra il massimo della candela successiva, ogni volta che se ne forma una nuova, fino al raggiungimento del target o la chiusura per stop.
12/28/2017 at 11:49 AM #56729La Pin bar ribassista deve essere:
- con un piccolo real body e deve essere situato vicino ai minimi della candela
- ha una lunga upper shadow che deve avere una lunghezza almeno doppia rispetto a quella del real body che segnala il raggiungimento di un massimo importante da parte dei prezzi
- ha una lower shadow molto piccola.
Per quanto riguarda il punto 6 lo modifico mettendo lo stop un pip sopra il massimo della candela successiva, ogni volta che se ne forma una nuova, fino al raggiungimento del target o la chiusura per stop.
Purtroppo i programmi per i computer, contrariamente all’occhio umano, non riescono ad interpretare il concetto di “piccolo” o “vicino”, per cui serve che si indichino esattamente i parametri entro cui tali definizioni sono valide, per cui:
- entro quali limiti (in percentuale sulla lunghezza totale della candela, o range, ad esempio tra il 2% ed il 10%) deve essere il real body?
- il limite “vicino” ai minimi della candela non m’interessa, tanto dovrai dirmi quanto deve essere grande l’ombra inferiore
- per la lunghezza dell’ombra superiore va bene così, ho capito che deve essere almeno il doppio del real body
- entro quali limiti deve essere l’ombra inferiore (ad esempio tra 0, cioè assente, e 3%)?
Una volta avuta risposta ai quesiti 1 e 4 scriverò qualcosa. Tieni presente che, comunque, i valori che io scriverò potrai modificarli a tuo piacimento ogni volta che vorrai, per cui non è necessario che qui tui faccia dei calcoli precisissimi, a me servono come indicazione sommaria.
12/29/2017 at 12:24 AM #5677612/29/2017 at 11:38 PM #56849Questo codice (per ora è uno screener, poi lo modificheremo in una strategia) ti fa vedere le candele PinBar ribassiste.
Tu avevi indicato:
- Il realbody deve essere tra il 0,01% e lo 0,50%
- L’ombra inferiore deve essere nei limiti tra 0 (assente) e lo 0,30%
immagino intendessi quei valori SENZA il simbolo di percentuale , altrimenti otterresti dati pressoché inesistenti. Inoltre un Real Body che arriva al 50% può essere definito una PinBar? A me sembra piuttosto alto. Ad ogni modo i valori puoi cambiarli a tuo piacimento.
1234567891011Corpo = abs(open - close) //grandezza del corpo//OmbraSuperiore = high - max(open,close) //grandezza ombra superioreOmbraInferiore = min(open,close) - low //grandezza ombra inferiore//TotaleOmbre = OmbraSuperiore + OmbraInferioreAmpiezza = range //ampiezza della candela (high - low)PinBar = (Corpo >= (Ampiezza * 0.01)) AND (Corpo <= (Ampiezza * 0.50))PinBar = PinBar AND (OmbraInferiore >= 0) AND (OmbraInferiore <= (Ampiezza * 0.30))PinBar = PinBar AND (close < open)SCREENER [PinBar] (PinBar AS "PinBar")Adesso che il codice per identificare una PinBar ribassista è pronto, cosa vuoi che faccia la tua strategia?
1 user thanked author for this post.
12/30/2017 at 4:30 PM #5687512/30/2017 at 4:40 PM #5687712/30/2017 at 5:39 PM #56883Ormai la farò l’annuo nuovo.
Buon 2018!
12/31/2017 at 1:19 AM #5692501/03/2018 at 8:03 PM #57175Ho scritto questa strategia (provata su DAX 10 minuti) ed inizia correttamente un’operazione Short, però non aggiorna lo Stop Loss e viene chiusa solo quando raggiunge la data indicata come fine del backtest.
Avrebbe dovuto aggiornare lo Stop Loss già alla candela successiva all’entrata, ma non l’ha fatto e non capisco perché. Spero Nicolas possa eserci d’aiuto .
123456789101112131415161718192021222324252627282930313233DEFPARAM CumulateOrders = falseONCE nLots = 1// aggiornare lo Stop Loss al massimo di ogni candela successiva, se questa è inferioreIF ShortOnMarket THENIF high < high[1] AND high < Sl THENSl = highSET STOP LOSS SlENDIFENDIF// verificare se + una Pin BAR ribassistaCorpo = abs(open - close) //grandezza del corpoOmbraInferiore = min(open,close) - low //grandezza ombra inferioreAmpiezza = range //ampiezza della candela (high - low)PinBar = (Corpo >= (Ampiezza * 0.01)) AND (Corpo <= (Ampiezza * 0.40)) //0.01 e 0.40PinBar = PinBar AND (OmbraInferiore >= 0) AND (OmbraInferiore <= (Ampiezza * 0.30)) //0 e 0.30PinBar = PinBar AND (close < open)// entrare SHORTIF PinBar AND Not OnMarket THENSellPrice = low - (1 * pipsize) //Prezzo di entrataSl = high + (1 * pipsize) //Stop LossTp = SellPrice - (Sl - SellPrice) //Target ProfitSELLSHORT nLots CONTRACT AT SellPrice STOP //Ordine Pendente (valido per una sola candela)SET STOP LOSS SlSET TARGET PROFIT TpENDIF//GRAPH SellPrice//GRAPH Sl//GRAPH Tp//GRAPH high -
AuthorPosts
Find exclusive trading pro-tools on