indicador divergencia CCI con cambio color
Forums › ProRealTime foro Español › Soporte ProBuilder › indicador divergencia CCI con cambio color
- This topic has 3 replies, 3 voices, and was last updated 4 years ago by TOMASnew.
-
-
08/01/2018 at 9:55 PM #77373
Buenas tardes.. alguien sabria programar un CCI en 30 peridos con cambio de color en zonas de – 100 y – 200 y viceversa e indicador de divergencia en dichas zonas de un numero determinado de barras.. no se. 20 40..60..he porbado esta estrategia en dow dax y es bastante rentable con apertura de posición por encima de la, ema 8 y cierre al llehar a niveles de – 100 y 100..tanto en cokpra, coko en venta. la idea ea elaborar una EA con esos parámetros. . alguien me puede ayudar??
08/04/2018 at 6:16 PM #77561Buenas tardes Osupero
Aqui tienes un codigo con la nomencladura en frances , creo que eso te va a convenir , tu cambias los parametros a tu gusto ///
Un saludo desde Cadiz
Divergences CCI / PRIX123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161// DIV CCI/PrixREM Cet indicateur détecte les divergences baissières et haussièresentre les prix et le CCIREM Si une divergence baissière est détectée, il renvoie -1REM Si aucune divergence n'est détectée, l'indicateur reste à 0REM Si une divergence haussière est détectée, cet indicateur renvoie 1REM Rappel : Une divergence baissière est un des signaux de vente les plus forts de l'analyse techniqueREM Rappel : Une divergence haussière est un des signaux d'achat les plus forts de l'analyse technique//**********************************************// CALCUL DE L'INDICATEUR//**********************************************indicator=CCI[perCCI](TypicalPrice)//**********************************************//** DETECTION DES SOMMETS ET CREUX//**********************************************REM On détecte tout d'abord les creux en dessous du seuil bas ainsi que les sommets au dessus du seuil haut.IF BarIndex > perCCI+1 THEN// Pour détecter un creux, on regarde trois barres: la barre actuelle et les deux barres précédentes// Si la valeur de l'oscillateur sur la barre précédente est plus basse que les valeurs sur les autres barres, il s'agit d'un creux// Pour cette raison le creux est détecté avec une barre de retardIF indicator >= indicator[1] AND indicator[1] <= indicator[2] AND indicator[1] < seuilbas THENoutput = indicator[1]// Ici on détecte les sommets : on regarde la barre actuelle ainsi que les deux barres précédentes// Si la valeur de l'oscillateur sur la barre précédente est plus haute que les deux autres, il s'agit d'un sommet// On a donc là aussi une barre de retardELSIF indicator <= indicator[1] AND indicator[1] >= indicator[2] AND indicator[1] > seuilhaut THENoutput = indicator[1]ELSEoutput = (seuilbas+seuilhaut)/2ENDIFELSEoutput = undefinedENDIFsignal = 0IF BarIndex > (perCCI+N) THEN//*****************************************//** DETECTION DES DIVERGENCES HAUSSIERES//*****************************************IF output < seuilbas THENextremum2 = output // La valeur actuelle de l'indicateur correspond à un creuxextremum1 = LOWEST[N](output) // On cherche le creux le plus bas parmis les N barres précédentescpt = 0indice = 0indiceextremum1 = 0valid = 0coeffdirprix=0IF extremum1 < seuilbas AND extremum1<extremum2 THEN // On s'assure que le creux le plus éloigné dans le temps est bien plus bas que le creux actuelREM Cette boucle permet de compter le nombre de creux présents entre le creux actuel et le creux le plus bas parmis les N dernières barresREM On récupère également les indices de ces creuxFOR i=1 TO NIF (output[i] < extremum2) THENIF (output[i] > extremum1) THENindice = indice*100 + icpt = cpt +1ELSIF output[i] = extremum1 THENindiceextremum1 = iBREAKENDIFENDIFNEXTREM Si des creux ont été détectés entre le creux actuel et le creux le plus bas parmis les N barres précédentes, on vérifie qu'ils ne croisent pas la droite tracée entre les deux creux extrêmesREM Si un creux dépasse, la divergence est invalidéeIF cpt <> 0 THENFOR i=cpt DOWNTO 1ind = indice MOD 100IF output[ind] < (extremum2 + ind*((extremum1-extremum2)/indiceextremum1)) THENvalid = 1ENDIFindice = (indice-ind)/100NEXTENDIFREM Calcul du coefficient directeur de la droite reliant les 2 creuxcoeffdircci=(extremum2-extremum1)/(indiceextremum1)REM Calcul de l'angle de la pente de la droite reliant les 2 creuxanglecci= ROUND(ATAN(abs(extremum2-extremum1)/(indiceextremum1)))//*********************************************//** COMPARAISON AVEC LES PRIX//*********************************************monplusBas=Lowest[N](low)FOR k=0 TO 5IF(low[k]=monplusBas) THENREM Calcul du coefficient directeur de la droite reliant les 2 prixcoeffdirprix=(low[k]-low[indiceextremum1])/(indiceextremum1+1-k)ENDIFNEXTfiltre=close-open<0.5 //filtre les faux signaux d'achatREM Si aucun des creux ne dépassent la droite en question, alors on valide la divergenceIF(valid=0 AND coeffdirprix<0 AND coeffdircci>0 AND anglecci>angle AND filtre) THENsignal = 20 //1ENDIFENDIF//*****************************************//** DETECTION DES DIVERGENCES BAISSIERES//*****************************************ELSIF output > seuilhaut THENextremum2 = output // La valeur actuelle de l'indicateur correspond à un sommetextremum1 = HIGHEST[N](output) // On cherche le sommet le plus haut parmis les N barres précédentescpt = 0indice = 0indiceextremum1 = 0valid = 0coeffdirprix=0IF extremum1 > seuilhaut AND extremum1>extremum2 THEN // On s'assure que le sommet le plus éloigné dans le temps est bien plus haut que le sommet actuelREM Cette boucle permet de compter le nombre de sommets présents entre le sommet actuel et le sommet le plus haut parmis les N dernières barresREM On récupère également les indices de ces sommetsFOR i=1 TO NIF (output[i] > extremum2) THENIF (output[i] < extremum1) THENindice = indice*100 + icpt = cpt +1ELSIF output[i] = extremum1 THENindiceextremum1 = iBREAKENDIFENDIFNEXTREM Si des sommets ont été détectés entre le sommet actuel et le sommet le plus haut parmis les N barres précédentes, on vérifie qu'ils ne croisent pas la droite tracée entre les deux sommets extrêmesREM Si un sommet dépasse, la divergence est invalidéeIF cpt <> 0 THENFOR i=cpt DOWNTO 1ind = indice MOD 100IF output[ind] > (extremum2 + ind*((extremum1-extremum2)/indiceextremum1)) THENvalid = 1ENDIFindice = (indice-ind)/100NEXTENDIFREM Calcul du coefficient directeur de la droite reliant les 2 sommetscoeffdircci=(extremum2-extremum1)/(indiceextremum1)REM Calcul de l'angle de la pente de la droite reliant les 2 sommetsanglecci = ROUND(ATAN(abs(extremum2-extremum1)/(indiceextremum1)))//*********************************************//** COMPARAISON AVEC LES PRIX//*********************************************monplusHaut=Highest[N](high)FOR k=0 TO 5IF(high[k]=monplusHaut) THENREM Calcul du coefficient directeur de la droite reliant les 2 prixcoeffdirprix=(high[k]-high[indiceextremum1])/(indiceextremum1+1-k)ENDIFNEXTREM Si aucun des sommets ne dépassent la droite en question, alors on valide la divergenceIF(valid=0 AND coeffdirprix>0 AND coeffdircci<0 AND anglecci>angle) THENSignal = -20 //-1ENDIFENDIFENDIFENDIFRETURN signal AS "Divergence" , 0 as " zero "// Variables :// Nombre de périodes (N = 30)// seuilhaut (seuilhaut = 100)// seuilbas (seuilbas = -100)// angle (angle = 0)// Période du CCI (perCCI = 20)08/05/2018 at 1:21 AM #7756412/01/2020 at 9:11 PM #152340Hola Supertiti.
Estoy buscando un screener para detectar divergencias del indicador “Fuerza Indice” con el precio, en diario y/o en semanal y lo más parecido que me he encontrado es este aporte tuyo, pero lo copio e intento ejecutarlo en mi PRT y no me funciona. Me devuelve pantallas con errores. ¿podrías ayudarme con esto porfa?
Muchas Gracias.
-
AuthorPosts
Find exclusive trading pro-tools on