VARIARE UN INDICATORE HA SMOOTHED IN SCREENER
Forums › ProRealTime forum Italiano › Supporto ProScreener › VARIARE UN INDICATORE HA SMOOTHED IN SCREENER
- This topic has 18 replies, 3 voices, and was last updated 5 years ago by nanniarc.
-
-
03/20/2019 at 11:13 AM #94137
Buongiorno a tutti,
tramite la comunità PRT utilizzo l’indicatore HA smoothed che vedete qui sotto.
Ho fatto vari tentativi ma non riesco a tramutare l’indicatore in uno screener che possa girare sulle liste in osservazione anzichè plottarlo su ogni grafico.
Sono grato per l’aiuto.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970//Reglas en Heikin-Ashi://1- Secuencia de cuerpos blancos = tendencia alcista.// Secuencia de cuerpos negros = tendencia bajista.//2- Tendencia alcista fuerte = Grandes cuerpos blancos y sin sombras inferiores.// Tendencia bajista fuerte = Grandes cuerpos negros sin sombras superiores.//3- Cuando la tendencia se debilita surgen cuerpos pequeños con posibles sombras superior y/o inferior.//4- Una consolidación se da cuando aparecen cuerpos pequeños con ambas sombras tanto arriba como abajo.//5- La reversión de una tendencia se puede sospechar con la aparición de pequeños cuerpos con sombras largas tanto superiores como inferiores, o un cambio repentino de color.// parámetrosONCE SmoothPeriod=2 // valor por defectoONCE period=5 // valor por defectoONCE flecha=0ONCE Dflech=barindex// ciclo normalIF BarIndex=0 THENxClose = (open+high+low+close)/4xOpen = openxHigh = highxLow = lowELSExClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endif// SUAVIZADO con la media de 2 en las velasif barindex>=(period+SmoothPeriod) thenAvOpen=exponentialAverage[SmoothPeriod](xOpen)AvHigh=exponentialAverage[SmoothPeriod](xHigh)AvLow=exponentialAverage[SmoothPeriod](xLow)Avclose=exponentialAverage[SmoothPeriod](xClose)endif// y ésta es la que usoDRAWCANDLE(AvOpen, AvHigh, AvLow, AvClose)//ha7 para indicar cruces// los valores para barindex<2 son especialesIf Barindex < SmoothPeriod thenOpcl=Open[1]elseOpcl=OpenENDIF// calculo dos medias de 7 y de 10Media7 = Average[7](Opcl)Media10 = Average[10](Opcl)rango= Media7/10// uso rango para el dibujoAlcista = AvOPen<AvCloseAlcista1 = AvOpen[1]<AvClose[1]Bajista = AvOpen>AvCloseBajista1 = AvOpen[1]>AvClose[1]//Doji = Range[1] > ABS(AvOpen[1]-AvClose[1])*5//no puede haber dos operaciones en dos dias//valor representa mi compra cuando estoy dentro// y el precio de venta cuando me salgoIF Dflech < barindex[2] thenIF (Opcl>Media7 or Opcl>Media10) and not (Bajista and Bajista1) and flecha<1 then// uso Range para que salgan visibles las flechasDRAWARROWUP (barindex, AvHigh+Range) COLOURED (0, 0, 255)flecha=1Dflech = barindexvalor = AvCloseELSIF (Opcl<Media7 or Opcl<Media10) and not (Alcista and Alcista1) and flecha>=1 thenDRAWARROWDOWN (barindex, AvHigh+Range) COLOURED (255, 0, 0)flecha=-1Dflech = barindexvalor = AvCloseENDIFENDIFRETURN Media7 COLOURED (0,0,255), Opcl-rango COLOURED(0,0,0) as “op-cl”, Media7-rango coloured (0,0,255) as “media7”, Media10-rango coloured(250,0,250) as “media10”, valor COLOURED (255,0,0) as “valor”03/20/2019 at 12:01 PM #94146Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, in modo da rendere il codice più leggibile. Grazie.
03/20/2019 at 1:18 PM #94159Ho commentato le righe con istruzioni grafiche (ProScreener non le supporta) ed ho inserito le righe 36 e 37 per evitare che certe variabili venissero segnalate come inutilizzate (non fanno assolutamente niente), ho sostituito la riga RETURN con SCREENER ed ho aggiunto la variabile Segnale.
Ecco il codice modificato, segnala 1 quando c’è una freccia verso l’alto e 2 quando è verso il basso.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475//Reglas en Heikin-Ashi://1- Secuencia de cuerpos blancos = tendencia alcista.// Secuencia de cuerpos negros = tendencia bajista.//2- Tendencia alcista fuerte = Grandes cuerpos blancos y sin sombras inferiores.// Tendencia bajista fuerte = Grandes cuerpos negros sin sombras superiores.//3- Cuando la tendencia se debilita surgen cuerpos pequeños con posibles sombras superior y/o inferior.//4- Una consolidación se da cuando aparecen cuerpos pequeños con ambas sombras tanto arriba como abajo.//5- La reversión de una tendencia se puede sospechar con la aparición de pequeños cuerpos con sombras largas tanto superiores como inferiores, o un cambio repentino de color.// parámetrosONCE SmoothPeriod=2 // valor por defectoONCE period=5 // valor por defectoONCE flecha=0ONCE Dflech=barindex// ciclo normalIF BarIndex=0 THENxClose = (open+high+low+close)/4xOpen = openxHigh = highxLow = lowELSExClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endif// SUAVIZADO con la media de 2 en las velasif barindex>=(period+SmoothPeriod) thenAvOpen=exponentialAverage[SmoothPeriod](xOpen)AvHigh=exponentialAverage[SmoothPeriod](xHigh)AvLow=exponentialAverage[SmoothPeriod](xLow)Avclose=exponentialAverage[SmoothPeriod](xClose)endif// y ésta es la que uso//DRAWCANDLE(AvOpen, AvHigh, AvLow, AvClose)IF AvOpen + AvHigh + AvLow + AvClose + Rango + Valor THENENDIF//ha7 para indicar cruces// los valores para barindex<2 son especialesIf Barindex < SmoothPeriod thenOpcl=Open[1]elseOpcl=OpenENDIF// calculo dos medias de 7 y de 10Media7 = Average[7](Opcl)Media10 = Average[10](Opcl)rango= Media7/10// uso rango para el dibujoAlcista = AvOPen<AvCloseAlcista1 = AvOpen[1]<AvClose[1]Bajista = AvOpen>AvCloseBajista1 = AvOpen[1]>AvClose[1]//Doji = Range[1] > ABS(AvOpen[1]-AvClose[1])*5//no puede haber dos operaciones en dos dias//valor representa mi compra cuando estoy dentro// y el precio de venta cuando me salgoIF Dflech < barindex[2] thenIF (Opcl>Media7 or Opcl>Media10) and not (Bajista and Bajista1) and flecha<1 then// uso Range para que salgan visibles las flechas//DRAWARROWUP (barindex, AvHigh+Range) COLOURED (0, 0, 255)Segnale = 1flecha=1Dflech = barindexvalor = AvCloseELSIF (Opcl<Media7 or Opcl<Media10) and not (Alcista and Alcista1) and flecha>=1 then//DRAWARROWDOWN (barindex, AvHigh+Range) COLOURED (255, 0, 0)Segnale = 2flecha=-1Dflech = barindexvalor = AvCloseENDIFENDIFSCREENER [Segnale](Segnale AS "1=↑/2=↓")//RETURN Media7 COLOURED (0,0,255), Opcl-rango COLOURED(0,0,0) as "op-cl", Media7-rango coloured (0,0,255) as "media7", Media10-rango coloured(250,0,250) as "media10", valor COLOURED (255,0,0) as "valor"03/20/2019 at 6:33 PM #94187Roberto, grazie per lo screener HA smoothed. Avevo già caricato l’indicatore e lo screener completa il cassetto degli attrezzi… C’è un problema relativo al grande numero di risultati che vengono fuori perlopiù di tipo 2 ribassista. Forse sarebbe utile, ma io non riesco in quel codice così strutturato, inserire dei filtri, es. sopra/sotto medie mobili, volumi di un certo tipo, es. superiore a 1000K o altro che fornisse un risultato con un certo numero di titoli in ambedue le tipologie di situazione da tradare. Grazie ancora
03/20/2019 at 8:36 PM #94195Lancia lo screener, poi prova a mettere sul grafico una media a 50, 100 e 200, un Rsi, uno Stocastico, Volumi, magari non tutti insieme!
Vedi quali ti sembra siano migliori come filtri ed io te li aggiungo.
03/20/2019 at 9:12 PM #94200Inizierei con i prezzi sopra 2 medie mobili: la EMA8 e la SMA50, dove la EMA8 > SMA50 con pendenze al rialzo, per la fase 1 con la freccina su, mentre per la fase ribassista i prezzi dovrebbero essere sotto le 2 medie, dove la EMA8 < SMA50 con pendenze al ribasso. Come inizio proverei con questi filtri per scremare i risultati, spero che possa funzionare per rilevare le inversioni a favore di trend. Grazie ancora per la tua competenza e per la veloce efficienza nelle risposte
03/20/2019 at 9:59 PM #94210Grazie mille Roberto,
lo screener lo fa ed è un grosso passo avanti tuttavia mi sfugge la ratio del perchè evidenzi anche in alcuni casi l’ultima freccia “n” giorni prima e non sulla candela appena chiusa.
Grazie ancora per il prezioso supporto.
03/21/2019 at 10:33 AM #94253Prova questa versione dello screener trasformato in strategia, fai il backtest ed osserva, candela per candela, il valore delle variabili che vuoi con GRAPH e/o GRAPHONPRICE (io ne ho messe 2 a caso a titolo di esempio):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778//Reglas en Heikin-Ashi://1- Secuencia de cuerpos blancos = tendencia alcista.// Secuencia de cuerpos negros = tendencia bajista.//2- Tendencia alcista fuerte = Grandes cuerpos blancos y sin sombras inferiores.// Tendencia bajista fuerte = Grandes cuerpos negros sin sombras superiores.//3- Cuando la tendencia se debilita surgen cuerpos pequeños con posibles sombras superior y/o inferior.//4- Una consolidación se da cuando aparecen cuerpos pequeños con ambas sombras tanto arriba como abajo.//5- La reversión de una tendencia se puede sospechar con la aparición de pequeños cuerpos con sombras largas tanto superiores como inferiores, o un cambio repentino de color.// parámetrosONCE SmoothPeriod=2 // valor por defectoONCE period=5 // valor por defectoONCE flecha=0ONCE Dflech=barindex// ciclo normalIF BarIndex=0 THENxClose = (open+high+low+close)/4xOpen = openxHigh = highxLow = lowELSExClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endif// SUAVIZADO con la media de 2 en las velasif barindex>=(period+SmoothPeriod) thenAvOpen=exponentialAverage[SmoothPeriod](xOpen)AvHigh=exponentialAverage[SmoothPeriod](xHigh)AvLow=exponentialAverage[SmoothPeriod](xLow)Avclose=exponentialAverage[SmoothPeriod](xClose)endif// y ésta es la que uso//DRAWCANDLE(AvOpen, AvHigh, AvLow, AvClose)IF AvOpen + AvHigh + AvLow + AvClose + Rango + Valor THENENDIF//ha7 para indicar cruces// los valores para barindex<2 son especialesIf Barindex < SmoothPeriod thenOpcl=Open[1]elseOpcl=OpenENDIF// calculo dos medias de 7 y de 10Media7 = Average[7](Opcl)Media10 = Average[10](Opcl)rango= Media7/10// uso rango para el dibujoAlcista = AvOPen<AvCloseAlcista1 = AvOpen[1]<AvClose[1]Bajista = AvOpen>AvCloseBajista1 = AvOpen[1]>AvClose[1]//Doji = Range[1] > ABS(AvOpen[1]-AvClose[1])*5//no puede haber dos operaciones en dos dias//valor representa mi compra cuando estoy dentro// y el precio de venta cuando me salgoIF Dflech < barindex[2] thenIF (Opcl>Media7 or Opcl>Media10) and not (Bajista and Bajista1) and flecha<1 then// uso Range para que salgan visibles las flechas//DRAWARROWUP (barindex, AvHigh+Range) COLOURED (0, 0, 255)Segnale = 1flecha=1Dflech = barindexvalor = AvCloseELSIF (Opcl<Media7 or Opcl<Media10) and not (Alcista and Alcista1) and flecha>=1 then//DRAWARROWDOWN (barindex, AvHigh+Range) COLOURED (255, 0, 0)Segnale = 2flecha=-1Dflech = barindexvalor = AvCloseENDIFENDIF//SCREENER [Segnale](Segnale AS "1=↑/2=↓")//RETURN Media7 COLOURED (0,0,255), Opcl-rango COLOURED(0,0,0) as "op-cl", Media7-rango coloured (0,0,255) as "media7", Media10-rango coloured(250,0,250) as "media10", valor COLOURED (255,0,0) as "valor"buy at -close limit //linea inutile, però è richiesta da ProBackTestGRAPH Dflech //lo vedi nella finestra delle variabiliGRAPHONPRICE valor coloured(0,128,0,255) AS "V" //lo vedi sul grafico dei prezzi03/21/2019 at 11:26 AM #94256Aggiungendo i filtri suggeriti da luxrun si ottiene una grossa scrematura:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980//Reglas en Heikin-Ashi://1- Secuencia de cuerpos blancos = tendencia alcista.// Secuencia de cuerpos negros = tendencia bajista.//2- Tendencia alcista fuerte = Grandes cuerpos blancos y sin sombras inferiores.// Tendencia bajista fuerte = Grandes cuerpos negros sin sombras superiores.//3- Cuando la tendencia se debilita surgen cuerpos pequeños con posibles sombras superior y/o inferior.//4- Una consolidación se da cuando aparecen cuerpos pequeños con ambas sombras tanto arriba como abajo.//5- La reversión de una tendencia se puede sospechar con la aparición de pequeños cuerpos con sombras largas tanto superiores como inferiores, o un cambio repentino de color.// parámetrosONCE SmoothPeriod=2 // valor por defectoONCE period=5 // valor por defectoONCE flecha=0ONCE Dflech=barindex// ciclo normalIF BarIndex=0 THENxClose = (open+high+low+close)/4xOpen = openxHigh = highxLow = lowELSExClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endif// SUAVIZADO con la media de 2 en las velasif barindex>=(period+SmoothPeriod) thenAvOpen=exponentialAverage[SmoothPeriod](xOpen)AvHigh=exponentialAverage[SmoothPeriod](xHigh)AvLow=exponentialAverage[SmoothPeriod](xLow)Avclose=exponentialAverage[SmoothPeriod](xClose)endif// y ésta es la que uso//DRAWCANDLE(AvOpen, AvHigh, AvLow, AvClose)IF AvOpen + AvHigh + AvLow + AvClose + Rango + Valor THENENDIF//ha7 para indicar cruces// los valores para barindex<2 son especialesIf Barindex < SmoothPeriod thenOpcl=Open[1]elseOpcl=OpenENDIF// calculo dos medias de 7 y de 10Media7 = Average[7](Opcl)Media10 = Average[10](Opcl)rango= Media7/10// uso rango para el dibujoAlcista = AvOPen<AvCloseAlcista1 = AvOpen[1]<AvClose[1]Bajista = AvOpen>AvCloseBajista1 = AvOpen[1]>AvClose[1]//Doji = Range[1] > ABS(AvOpen[1]-AvClose[1])*5//no puede haber dos operaciones en dos dias//valor representa mi compra cuando estoy dentro// y el precio de venta cuando me salgoIF Dflech < barindex[2] thenIF (Opcl>Media7 or Opcl>Media10) and not (Bajista and Bajista1) and flecha<1 then// uso Range para que salgan visibles las flechas//DRAWARROWUP (barindex, AvHigh+Range) COLOURED (0, 0, 255)Segnale = 1flecha=1Dflech = barindexvalor = AvCloseELSIF (Opcl<Media7 or Opcl<Media10) and not (Alcista and Alcista1) and flecha>=1 then//DRAWARROWDOWN (barindex, AvHigh+Range) COLOURED (255, 0, 0)Segnale = 2flecha=-1Dflech = barindexvalor = AvCloseENDIFENDIFEma8 = average[8,1](close)Sma50 = average[50,0](close)Rialzo = ((Ema8 > Sma50) AND (close > Ema8)) * SegnaleRibasso = ((Ema8 < Sma50) AND (close < Ema8)) * SegnaleSegnale = Rialzo OR RibassoSCREENER [Segnale](Segnale AS "1=↑/2=↓")//RETURN Media7 COLOURED (0,0,255), Opcl-rango COLOURED(0,0,0) as "op-cl", Media7-rango coloured (0,0,255) as "media7", Media10-rango coloured(250,0,250) as "media10", valor COLOURED (255,0,0) as "valor"03/21/2019 at 1:33 PM #9428703/21/2019 at 1:44 PM #94290Aggiungi in fondo:
12If Segnale thenEndif03/21/2019 at 2:01 PM #94298Ok, quindi l’output è come quello che ti allego?
Sopra prezzi Ha e sotto HA smoothed con le frecce di eventuale ingresso/uscita?
Poi dovessi codificarle con i parametri di buy e sellshort una volta rivisti con altri filtri la vedo difficile (per me…)
Grazie!
03/21/2019 at 2:23 PM #9430603/21/2019 at 6:38 PM #94345Roberto, nel ringraziarti per l’aiuto, posto il codice dello screener che per me ha un senso e trova titoli (pochi) sia al rialzo che al ribasso; i quali comunque vanno confermati dal trend e da ulteriori verifiche di prezzo. Lo stocastico lento è l’oscillatore che mi ha soddisfatto di più perché rispetta le condizioni di ipercomprato e ipervenduto che ho impostato. Sulle azioni italiane ho avuto anche la corrispondenza tra cambio di candela e possibile inversione indicata anche dallo stocastico (segnale 1 o 2). Con l’RSI e le medie mobili non funzionava perché i titoli trovati erano tantissimi e non rispettavano la attesa condizione di inizio di potenziale rialzo e inizio di potenziale ribasso ottenuto con un qualsiasi tipo di filtro. Insomma bisogna continuare ad affinarlo se si vuole!
Heikin Ashi smoothed screener with stochastic12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485//Reglas en Heikin-Ashi://1- Secuencia de cuerpos blancos = tendencia alcista.// Secuencia de cuerpos negros = tendencia bajista.//2- Tendencia alcista fuerte = Grandes cuerpos blancos y sin sombras inferiores.// Tendencia bajista fuerte = Grandes cuerpos negros sin sombras superiores.//3- Cuando la tendencia se debilita surgen cuerpos pequeños con posibles sombras superior y/o inferior.//4- Una consolidación se da cuando aparecen cuerpos pequeños con ambas sombras tanto arriba como abajo.//5- La reversión de una tendencia se puede sospechar con la aparición de pequeños cuerpos con sombras largas tanto superiores como inferiores, o un cambio repentino de color.// parámetrosONCE SmoothPeriod=2 // valor por defectoONCE period=5 // valor por defectoONCE flecha=0ONCE Dflech=barindex// ciclo normalIF BarIndex=0 THENxClose = (open+high+low+close)/4xOpen = openxHigh = highxLow = lowELSExClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endif// SUAVIZADO con la media de 2 en las velasif barindex>=(period+SmoothPeriod) thenAvOpen=exponentialAverage[SmoothPeriod](xOpen)AvHigh=exponentialAverage[SmoothPeriod](xHigh)AvLow=exponentialAverage[SmoothPeriod](xLow)Avclose=exponentialAverage[SmoothPeriod](xClose)endif// y ésta es la que uso//DRAWCANDLE(AvOpen, AvHigh, AvLow, AvClose)IF AvOpen + AvHigh + AvLow + AvClose + Rango + Valor THENENDIF//ha7 para indicar cruces// los valores para barindex<2 son especialesIf Barindex < SmoothPeriod thenOpcl=Open[1]elseOpcl=OpenENDIF// calculo dos medias de 7 y de 10Media7 = Average[7](Opcl)Media10 = Average[10](Opcl)rango= Media7/10// uso rango para el dibujoAlcista = AvOPen<AvCloseAlcista1 = AvOpen[1]<AvClose[1]Bajista = AvOpen>AvCloseBajista1 = AvOpen[1]>AvClose[1]//Doji = Range[1] > ABS(AvOpen[1]-AvClose[1])*5//no puede haber dos operaciones en dos dias//valor representa mi compra cuando estoy dentro// y el precio de venta cuando me salgoIF Dflech < barindex[2] thenIF (Opcl>Media7 or Opcl>Media10) and not (Bajista and Bajista1) and flecha<1 then// uso Range para que salgan visibles las flechas//DRAWARROWUP (barindex, AvHigh+Range) COLOURED (0, 0, 255)Segnale = 1flecha=1Dflech = barindexvalor = AvCloseELSIF (Opcl<Media7 or Opcl<Media10) and not (Alcista and Alcista1) and flecha>=1 then//DRAWARROWDOWN (barindex, AvHigh+Range) COLOURED (255, 0, 0)Segnale = 2flecha=-1Dflech = barindexvalor = AvCloseENDIFENDIF// Ema8 = average[8,1](close)// Sma50 = average[50,0](close)Sto = Stochastic[10,3](close)signal = average[3](sto)STOUP = sto>80 AND sto[1]>signal[1] AND sto<signalSTODOWN = sto<20 AND sto[1]<signal[1] AND sto>signal// Rialzo = ((Ema8 > Sma50) AND (close > Ema8)) * Segnale// Ribasso = ((Ema8 < Sma50) AND (close < Ema8)) * SegnaleRialzo = (STOUP) * SegnaleRibasso =(STODOWN) * SegnaleSegnale = Rialzo OR RibassoSCREENER [Segnale](Segnale AS "1=↑/2=↓")1 user thanked author for this post.
03/26/2019 at 1:37 PM #94723Buongiorno a tutti,
nel we ho provato in maniera “fai da te” a trasformare lo screener HA smoothed di questo topic in strategia con buy e sell più altri filtri ma non sono addivenuto a nulla…
Qualche anima pia avrebbe voglia di risolvere questo mio impasse?
Grazie mille.Nanni
-
AuthorPosts
Find exclusive trading pro-tools on