Secondo Break di una media.
Forums › ProRealTime forum Italiano › Supporto ProOrder › Secondo Break di una media.
- This topic has 57 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
Tagged: Incrocio
-
-
10/01/2018 at 11:36 AM #81659
Ho fatto delle prove sommarie e sembra funzionare, provalo anche te:
12345678910111213141516171819202122232425262728293031323334353637383940defparam cumulateorders = falseonce signal=0//once signal2=0Media = Average[3](close)[3]BarreMedia = 5BarreCC = 20ONCE CCIbarindex = 0MyCCI=cci[136](close)cc=MyCCI crosses over -200if cc thensignal=1CCIbarindex=BarIndexendifIF signal THENIF (Barindex - CCIbarindex) > BarreCC THENsignal = 0ENDIFENDIFIF MyCCI >= 0 THENsignal = 0endifif onmarket thensignal=0endifif signal>0 thenRialzo = summation[BarreMedia - 1](close[1] CROSSES OVER Media[1])Ribasso = summation[BarreMedia - 1](close[1] CROSSES UNDER Media[1])Rialzo2 = (close crosses over media)Cond = Rialzo AND Ribasso AND Rialzo2if Cond thenSL= (close - lowest[30](low)) / pipsizebuy 1 contract at marketset stop ploss SLset target pprofit 50signal=0endifendif10/01/2018 at 12:00 PM #8166110/01/2018 at 12:16 PM #81662Secondo me NON doveva fare quell’imgresso perché:
- ho evidenziato in arancio l’ultimo cross Rialzista ed il cross del CCI – BENE
- ho evidenziato in viola il precedente cross Ribassista – BENE
- manca il precedente ancora Rialzista – NO (perché quello evidenziato in celeste è una candela ribassista, a causa del gap d’apertura, quindi NON è considerato un incrocio al Rialzo)
10/01/2018 at 7:11 PM #81691Allora il concetto della mia esposizione è stato errato, per la prima candela da rilevare non deve per forza essere un cross rialzista, deve chiudere sopra, poi da li ho sempre parlato di cross al ribasso e rialzo perchè penso sia impossibile dire al codice di distinguere le singole candele che chiudono allora i cross si prestavano meglio, quindi basterebbe modificare nel codice la riga 29 con sostituendo “crosses over” con “>” ? che ne pensi?
10/01/2018 at 8:14 PM #8169410/01/2018 at 11:21 PM #81717Non ti serve un altro contatore, tanto NON possono esserci due incroci contrari contemporaneamente.
Dopo la riga 11 dovrai inserirne una per gli SHORT e poi aggiungere le righe per entrare short.
10/02/2018 at 2:54 PM #8176610/16/2018 at 2:54 PM #82899Buongiorno Roberto, non so se hai provato il sistema ma devo dire che funziona discretamente bene, l’ho backtestato sui futures e lavora bene, pero’ vorrei correggere un errore, se per il pattern long (cci esce da -200) avviene che prima del secondo break della media il cci ritorna sotto 200 vorrei azzerare il conteggio del pattern, non saprei proprio come fare.
10/16/2018 at 5:03 PM #82911Hai scritto “il cci ritorna sotto 200“, intendevi scrivere -200 ?
10/18/2018 at 8:58 PM #8314410/20/2018 at 2:38 PM #83228Prova questa soluzione (fatta sul codice postato, senza gli short, ma puoi adattarlo facilmente):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051defparam cumulateorders = falseonce signal=0//once signal2=0Media = Average[3](close)[3]BarreMedia = 5BarreCC = 20ONCE CCIbarindex = 0MyCCI=cci[136](close)cc=MyCCI crosses over -200if cc thensignal=1CCIbarindex=BarIndexendifIF signal THENIF (Barindex - CCIbarindex) > BarreCC THENsignal = 0ENDIFENDIFIF MyCCI >= 0 THENsignal = 0endifif onmarket thensignal=0endifif signal>0 thenRialzo = summation[BarreMedia - 1](close[1] CROSSES OVER Media[1])Ribasso = summation[BarreMedia - 1](close[1] CROSSES UNDER Media[1])Rialzo2 = (close crosses over media)Cond = Rialzo AND Ribasso AND Rialzo2FOR j = 1 TO (BarreMedia - 1)IF NOT Rialzo2[j] THENIF MyCCI[j] CROSSES UNDER -200 THENCond = 0signal = 0BREAKENDIFELSEBREAKENDIFNEXTif Cond thenSL = (close - lowest[30](low)) / pipsizebuy 1 contract at marketset stop ploss SLset target pprofit 50signal=0endifendifho aggiunto le linee da 33 a 43.
10/23/2018 at 7:33 PM #83411Purtroppo no, guarda per esempio oggi alle 9.35 c’e’ un entrata che non doveva fare, e manca invece l’entrata che DOVEVA fare alle 11.30 che infatti ho fatto manualmente e ha portato a casa 100 punti.
Anche inserendo la tua ultima modifica non cambia il risultato.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788defparam cumulateorders = false//defparam flatbefore = 070000//defparam flatafter = 210000once signal=0//once signal2=0Media = Average[3](close)[3]BarreMedia = 5BarreCC = 20timeon= time> 080000 and time < 205500mycc=-200myccS=200ONCE CCIbarindex = 0myCCI=cci[136](close)cc=MyCCI crosses over myccif cc thensignal=1CCIbarindex=BarIndexendifIF signal THENIF (Barindex - CCIbarindex) > BarreCC THENsignal = 0ENDIFENDIFIF MyCCI >= 0 THENsignal = 0endifif onmarket thensignal=0endifif signal>0 thenRialzo = summation[BarreMedia - 1](close[1] > Media[1])Ribasso = summation[BarreMedia - 1](close[1] CROSSES UNDER Media[1])Rialzo2 = (close crosses over media)Cond = Rialzo AND Ribasso AND Rialzo2if Cond and timeon thenSL= (close - lowest[30](low)) / pipsizebuy 1 contract at marketset stop ploss SLset target pprofit SLsignal=0endifendif//////////SHORT///once signalSHORT=0ccS=MyCCI crosses UNDER myccSif ccS thensignalSHORT=1CCIbarindex=BarIndexendifIF signalSHORT THENIF (Barindex - CCIbarindex) > BarreCC THENsignalSHORT = 0ENDIFENDIFIF MyCCI <= 0 THENsignalSHORT = 0endifif onmarket thensignalSHORT=0endifif signalSHORT>0 thenRialzoS = summation[BarreMedia - 1](close < Media)RibassoS = summation[BarreMedia - 1](close[1] CROSSES OVER Media[1])Rialzo2S = (close crosses UNDER media)CondS = RialzoS AND RibassoS AND Rialzo2Sif CondS and timeon thenSLS= (HIGHEST[30](high)- close) / pipsizeSELLSHORT 1 contract at marketset stop ploss SLSset target pprofit SLSsignalSHORT=0endifendifIF ONMARKET AND TIME >=222000 THENSELL AT MARKETEXITSHORT AT MARKETENDIF10/24/2018 at 10:31 AM #83431Ne ho cambiato un bel pò, provalo, ho fatto una prova sommaria non significativa:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136defparam cumulateorders = false//defparam flatbefore = 070000//defparam flatafter = 210000once signal=0//once signal2=0Media = Average[3](close)[3]//BarreMedia = 5BarreCC = 20timeon= time> 080000 and time < 205500mycc=-200myccS=200ONCE CCIbarindex = 0ONCE CCICrossOver = 0ONCE CCICrossUnder = 0ONCE MediaCrossOver = 0ONCE MediaCrossUnder = 0myCCI=cci[136](close)cc=MyCCI crosses over myccif cc thenCCICrossOver = 1CCICrossUnder = 0MediaCrossOver = 0MediaCrossUnder = 0signal=1CCIbarindex=BarIndexendifIF CCICrossOver THENIF MediaCrossOver = 0 THENMediaCrossOver = close CROSSES OVER MediaELSIF MediaCrossUnder = 0 THENMediaCrossUnder = close CROSSES UNDER MediaENDIFENDIFIF signal THENIF MyCCI crosses under mycc THENsignal = 0CCICrossOver = 0CCICrossUnder = 0MediaCrossOver = 0MediaCrossUnder = 0ELSIF (Barindex - CCIbarindex) > BarreCC THENsignal = 0CCICrossOver = 0CCICrossUnder = 0MediaCrossOver = 0MediaCrossUnder = 0ENDIFENDIFIF MyCCI >= 0 THENsignal = 0endifif onmarket thensignal=0endifif signal>0 thenCond = (close crosses over media) AND MediaCrossOver AND MediaCrossUnderif Cond and timeon and Not OnMarket thenSL= (close - lowest[30](low)) / pipsizebuy 1 contract at marketset stop ploss SLset target pprofit SLsignal=0endifendif//////////SHORT///once signalSHORT=0ccS=MyCCI crosses UNDER myccSif ccS thenCCICrossOver = 0CCICrossUnder = 1MediaCrossOver = 0MediaCrossUnder = 0signalSHORT=1CCIbarindex=BarIndexendifIF CCICrossUnder THENIF MediaCrossUnder = 0 THENMediaCrossUnder = close CROSSES UNDER MediaELSIF MediaCrossOver = 0 THENMediaCrossOver = close CROSSES OVER MediaENDIFENDIFIF signalSHORT THENIF MyCCI crosses over myccS THENsignalSHORT = 0CCICrossOver = 0CCICrossUnder = 0MediaCrossOver = 0MediaCrossUnder = 0ELSIF (Barindex - CCIbarindex) > BarreCC THENsignalSHORT = 0CCICrossOver = 1CCICrossUnder = 0MediaCrossOver = 0MediaCrossUnder = 0ENDIFENDIFIF MyCCI <= 0 THENsignalSHORT = 0endifif onmarket thensignalSHORT=0endifif signalSHORT>0 thenCondS = (close crosses under media) AND MediaCrossOver AND MediaCrossUnderif CondS and timeon and Not OnMarket thenSLS= (HIGHEST[30](high)- close) / pipsizeSELLSHORT 1 contract at marketset stop ploss SLSset target pprofit SLSsignalSHORT=0endifendifIF ONMARKET AND TIME >=222000 THENSELL AT MARKETEXITSHORT AT MARKETENDIF//graph signal//graph signalSHORT//graph CCICrossOver//graph CCICrossUnder//graph MediaCrossOver//graph MediaCrossUnder//graph CCIBarindex//graph barindex - CCIbarindex1 user thanked author for this post.
10/24/2018 at 3:28 PM #8344502/05/2019 at 6:25 PM #90540Ciao Roberto… scusami tanto se ti disturbo nuovamente… vorrei chiederti una info, vorrei implementare il sistema con una nuova variabile che non so se sia fattibile sto provando con scarsi risultati.
Una volta ottenuti i doppi rientri vorrei che partisse l’ordine solo dopo che la barra successiva rompe il massimo della precedente che ha rispettato tutte le condizioni, come si puo’ fare? -
AuthorPosts