indicador divergencia CCI con cambio color

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #77373 quote
    Antuan
    Participant
    Senior

    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??

    #77561 quote
    supertiti
    Participant
    Master

    Buenas 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

    // DIV CCI/Prix
    
    REM Cet indicateur détecte les divergences baissières et haussièresentre les prix et le CCI
    REM Si une divergence baissière est détectée, il renvoie -1
    REM Si aucune divergence n'est détectée, l'indicateur reste à 0
    REM Si une divergence haussière est détectée, cet indicateur renvoie 1
    REM Rappel : Une divergence baissière est un des signaux de vente les plus forts de l'analyse technique
    REM 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 retard
    IF indicator >= indicator[1] AND indicator[1] <= indicator[2] AND indicator[1] < seuilbas THEN
    output = 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 retard
    ELSIF indicator <= indicator[1] AND indicator[1] >= indicator[2] AND indicator[1] > seuilhaut THEN
    output = indicator[1]
    ELSE
    output = (seuilbas+seuilhaut)/2
    ENDIF
    ELSE
    output = undefined
    ENDIF
    signal = 0
    IF BarIndex > (perCCI+N) THEN
    
    //*****************************************
    //** DETECTION DES DIVERGENCES HAUSSIERES
    //*****************************************
    IF output < seuilbas THEN
    extremum2 = output // La valeur actuelle de l'indicateur correspond à un creux
    extremum1 = LOWEST[N](output) // On cherche le creux le plus bas parmis les N barres précédentes
    cpt = 0
    indice = 0
    indiceextremum1 = 0
    valid = 0
    coeffdirprix=0
    IF 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 actuel
    REM 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 barres
    REM On récupère également les indices de ces creux
    FOR i=1 TO N
    IF (output[i] < extremum2) THEN
    IF (output[i] > extremum1) THEN
    indice = indice*100 + i
    cpt = cpt +1
    ELSIF output[i] = extremum1 THEN
    indiceextremum1 = i
    BREAK
    ENDIF
    ENDIF
    NEXT
    REM 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êmes
    REM Si un creux dépasse, la divergence est invalidée
    IF cpt <> 0 THEN
    FOR i=cpt DOWNTO 1
    ind = indice MOD 100
    IF output[ind] < (extremum2 + ind*((extremum1-extremum2)/indiceextremum1)) THEN
    valid = 1
    ENDIF
    indice = (indice-ind)/100
    NEXT
    ENDIF
    
    REM Calcul du coefficient directeur de la droite reliant les 2 creux
    coeffdircci=(extremum2-extremum1)/(indiceextremum1)
    REM Calcul de l'angle de la pente de la droite reliant les 2 creux
    anglecci= ROUND(ATAN(abs(extremum2-extremum1)/(indiceextremum1)))
    
    //*********************************************
    //** COMPARAISON AVEC LES PRIX
    //*********************************************
    monplusBas=Lowest[N](low)
    FOR k=0 TO 5
    IF(low[k]=monplusBas) THEN
    REM Calcul du coefficient directeur de la droite reliant les 2 prix
    coeffdirprix=(low[k]-low[indiceextremum1])/(indiceextremum1+1-k)
    ENDIF
    NEXT
    filtre=close-open<0.5 //filtre les faux signaux d'achat
    REM Si aucun des creux ne dépassent la droite en question, alors on valide la divergence
    IF(valid=0 AND coeffdirprix<0 AND coeffdircci>0 AND anglecci>angle AND filtre) THEN
    signal = 20  //1
    ENDIF
    ENDIF
    //*****************************************
    //** DETECTION DES DIVERGENCES BAISSIERES
    //*****************************************
    ELSIF output > seuilhaut THEN
    extremum2 = output // La valeur actuelle de l'indicateur correspond à un sommet
    extremum1 = HIGHEST[N](output) // On cherche le sommet le plus haut parmis les N barres précédentes
    cpt = 0
    indice = 0
    indiceextremum1 = 0
    valid = 0
    coeffdirprix=0
    IF 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 actuel
    REM 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 barres
    REM On récupère également les indices de ces sommets
    FOR i=1 TO N
    IF (output[i] > extremum2) THEN
    IF (output[i] < extremum1) THEN
    indice = indice*100 + i
    cpt = cpt +1
    ELSIF output[i] = extremum1 THEN
    indiceextremum1 = i
    BREAK
    ENDIF
    ENDIF
    NEXT
    REM 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êmes
    REM Si un sommet dépasse, la divergence est invalidée
    IF cpt <> 0 THEN
    FOR i=cpt DOWNTO 1
    ind = indice MOD 100
    IF output[ind] > (extremum2 + ind*((extremum1-extremum2)/indiceextremum1)) THEN
    valid = 1
    ENDIF
    indice = (indice-ind)/100
    NEXT
    ENDIF
    REM Calcul du coefficient directeur de la droite reliant les 2 sommets
    coeffdircci=(extremum2-extremum1)/(indiceextremum1)
    REM Calcul de l'angle de la pente de la droite reliant les 2 sommets
    anglecci = ROUND(ATAN(abs(extremum2-extremum1)/(indiceextremum1)))
    //*********************************************
    //** COMPARAISON AVEC LES PRIX
    //*********************************************
    monplusHaut=Highest[N](high)
    FOR k=0 TO 5
    IF(high[k]=monplusHaut) THEN
    REM Calcul du coefficient directeur de la droite reliant les 2 prix
    coeffdirprix=(high[k]-high[indiceextremum1])/(indiceextremum1+1-k)
    ENDIF
    NEXT
    REM Si aucun des sommets ne dépassent la droite en question, alors on valide la divergence
    IF(valid=0 AND coeffdirprix>0 AND coeffdircci<0 AND anglecci>angle) THEN
    Signal = -20   //-1
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    
    RETURN 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)
    
    #77564 quote
    Antuan
    Participant
    Senior

    Fabuloso supertiti… lo pruebo y comparto impresiones . perfect supertiti

    #152340 quote
    TOMASnew
    Participant
    New

    Hola 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.

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

indicador divergencia CCI con cambio color


ProBuilder: Indicadores y Herramientas

New Reply
Author
author-avatar
Antuan @osupero Participant
Summary

This topic contains 3 replies,
has 3 voices, and was last updated by TOMASnew
5 years, 2 months ago.

Topic Details
Forum: ProBuilder: Indicadores y Herramientas
Language: Spanish
Started: 08/01/2018
Status: Active
Attachments: No files
Logo Logo
Loading...