Heikin ashi smooth and signal
Forums › ProRealTime forum Français › Support ProScreener › Heikin ashi smooth and signal
- This topic has 13 replies, 2 voices, and was last updated 5 years ago by finplus.
-
-
06/13/2018 at 8:05 PM #73129
Bonsoir,
j’ai fait un copier coller d’un indicateur trouvé sur ce site “Heikin Ashi smooth and signal”. Je voudrais faire un screener qui détecte le passage des prix au dessus ou au dessous du “sous-indicateur” appelé “VALOR”. Je n’y arrive pas. Quelqu’un peut il m’aider SVP? merci d’avance.
3456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172//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ámetros//ONCE SmoothPeriod=2 valor por defecto//ONCE 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”06/14/2018 at 8:10 PM #7323806/15/2018 at 7:15 AM #73259Ci-dessous le code de l’indicateur modifié en screener, les résultats sont à vérifier:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162ONCE SmoothPeriod=2 // valor por defecto//ONCE period=5 // valor por defectoONCE flecha=0ONCE Dflech=barindex// ciclo normalIF BarIndex=0 THENxClose= (open+high+low+close)/4xOpen= open//xHigh= high//xLow= lowELSExClose= (open+high+low+close)/4xOpen= (xOpen[1]+xClose[1])/2//xHigh= Max(max(high, xOpen), xClose)//xLow= Min(min(Low, xOpen), xClose)endif// SUAVIZADO con la media de 2 en las velas//if 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)//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)flecha=1Dflech= barindex//valor= AvCloseELSIF (Opcl<Media7 or Opcl<Media10) and not (Alcista and Alcista1) and flecha>=1 then//DRAWARROWDOWN (barindex, AvHigh+Range) COLOURED (255, 0, 0)flecha=-1Dflech= barindex//valor= AvCloseelseflecha=0ENDIFENDIFscreener[flecha=1 or flecha=-1](flecha)06/15/2018 at 4:44 PM #7337306/15/2018 at 6:21 PM #73377Ce que je ne comprends pas c’est que quand je onstruit un système de trading en utilisant l’option “création simplifiée”, les ouvertures de position sont parfaitement corrélées avec l’apparition des flèches. Le programme utilise la fonction : ignored, ignored, ignored, ignored, indicator1 = CALL “heikin ashi smooth and signal” (close).
et après C1 = (close crosses over indicator1)
puis if C1 then
buy 1 contract at market
endif.
Et bien quand je récupère cette formule avec screener [C1], je n’ai pas les bons résultats….
si quelqu’un peut me venir en aide.
merci.
06/19/2018 at 5:55 PM #73684Je ne comprends pas pourquoi ce screener ne me renvoie pas la bonne information : à savoir croisement des cours et de la KAMA200 avec le DI.
merci de m’aider SVP.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172// Paramètres KAMA 200Period = 200Fastperiod = 2Slowperiod = 30Fastest = 2 / (FastPeriod + 1)Slowest = 2 / (SlowPeriod + 1)if barindex < Period+1 thenKama=closeelseNum = abs(close-close[Period])Den = summation[Period](abs(close-close[1]))ER = Num / DenAlpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])endif//indicateur heikin kamap=2ONCE ama = UNDEFINEDsignal = ABS(MOMENTUM[p])noise = SUMMATION[p](ABS(MOMENTUM[1]))IF noise>0 THENer = signal / noiseELSEer=1ENDIFfastsc = 2 / (2+ 1)slowsc = 2 / (20 + 1)factor = SQUARE(er * (fastsc - slowsc) + slowsc)IF BARINDEX = p THENama = CLOSEELSIF BARINDEX > p THENama = ama + factor * (CLOSE - ama)ENDIFonce haopen=openhaclose=amaif barindex> 12 thenhaopen=(haopen+haclose[1])/2endif// Paramètres DIp=50plusDM = (MAX(HIGH-HIGH[1], 0))*10minusDM = (MAX(LOW[1]-LOW, 0))*10IF plusDM > minusDM THENminusDM = 0ENDIFIF plusDM < minusDM THENplusDM = 0ENDIFIF plusDM = minusDM THENplusDM = 0minusDM = 0ENDIFplusDI = WILDERAVERAGE[p](plusDM)minusDI = WILDERAVERAGE[p](minusDM)DM = plusDI-minusDIUp= (haclose crosses over KAMA) and (DM > 0)down = (haclose crosses under KAMA) and (DM < 0)screener [up or down]06/20/2018 at 2:33 PM #73784Difficile de débugger sous ProScreener. Le mieux à faire dans ce type de situation est de vérifier les valeurs qu’on souhaite tester sont bien correctement calculés par ProScreener (et en faisant une comparaison avec les valeurs affichées de l’indicateur). Pour mémoire, ProScreener n’utilise pas le même moteur que ProBuilder et il comporte moins d’historique.
Donc je remplacerai les 3 dernières lignes du screener par:
12345Up= 1//(haclose crosses over KAMA) and (DM > 0)down = 1//(haclose crosses under KAMA) and (DM < 0)screener [up or down](KAMA)Le screener renverra forcément toutes les valeurs de la liste puisque les conditions seront toujours vraies (up=1 et down=1), mais on pourra ainsi voir dans la colonne de tri la valeur de KAMA et ainsi la vérifier avec celle à l’écran (celle de l’indicateur sur le graphique de prix). Et ainsi de suite avec les autres variables si nécessaire, jusqu’à trouver la cause de non fonctionnement du screener.
06/20/2018 at 6:01 PM #7382106/20/2018 at 6:22 PM #7382206/21/2018 at 7:46 AM #73855Je vais reprendre depuis le début, on ira plus vite 🙂
Dans cet indicateur on a beaucoup plus que le “cours et la kama”, il y a des bougies construites en Heikin Ashi depuis la KAMA et un oscillateur DMI pour générer des signaux, est-ce volontaire ou non ?
06/21/2018 at 6:42 PM #7395606/22/2018 at 8:13 AM #73991Ce code devrait fonctionner:
12345678910111213141516171819202122232425// parameters :Period = 200FastPeriod = 2SlowPeriod = 30Fastest = 2 / (FastPeriod + 1)Slowest = 2 / (SlowPeriod + 1)if barindex < Period+1 thenKama=closeelseNum = abs(close-close[Period])Den = summation[Period](abs(close-close[1]))ER = Num / DenAlpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])endifif close crosses over KAMA or close crosses under KAMA thentest=1elsetest=0endifscreener[test] (KAMA)Mais le problème c’est que pour une période aussi longue, il faudrait 400 bars d’historique, car à la ligne 12 à partir de la 200ème période on va chercher la valeur du close il y a déjà 200 périodes en arrière, donc nous n’aurons jamais les mêmes valeurs avec ProBacktest dut à la limitation de l’historique à 254 bars..
06/22/2018 at 6:28 PM #7411408/03/2019 at 3:25 PM #104084Bonjour,
je réouvre ce sujet pour savoir si la version 10.3 de PRT disposera de suffisamment d’historiques pour pouvoir disposer d’un screener permettant – par exemple – d’identifier un croisement des cours avec la kama 200.
merci.
-
AuthorPosts
Find exclusive trading pro-tools on