Changement couleur EMA sur 2 timeframe

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #227478 quote
    imencity
    Participant
    Senior

    Bonjour,

    Je me suis inspiré de la base du code situé ici:

    Changement couleur de remplissage entre EMA

     

    // base 21 ticks
    valMMmin =  40
    valMMMax = 110
    MAH=average[5]
    
    //timeframe(100 ticks)
    valMMmin100 = valMMmin * 4.762
    valMMMax100 = valMMMax * 4.762
    
    //timeframe(21 ticks)
    ma1 = ExponentialAverage[valMMmin](close)
    ma2 = ExponentialAverage[valMMmax](close)
    ma3 = ExponentialAverage[valMMmin100](close)
    ma4 = ExponentialAverage[valMMmax100](close)
     
    if ma1>ma2 AND ma3>ma4 then
    red=0
    green=255
    elsif ma1<ma2 AND ma3<ma4 then
    red=255
    green=0
    else 
    red=155
    green=155
    endif
    
    colorbetween(ma1,ma2,red,green,0,50)
    
    return

    Mais je rencontre un problème: pas de couleur.

    Objectif:
    Avoir un ruban de couleur verte (par ex) si le cours monte et qu’il y a concordance entre 21 ticks et 100 ticks (les 2 haussières).
    Avoir un ruban de couleur rouge (par ex) si le cours descends, et qu’il y a concordance des EMA entre 21 et 100 ticks (les 2 baissières).

    Si haussier en 21 ticks et baissiers en 100 ticks alors le mieux, on affiche rien.

    Je simule le 100 ticks en multipliant les valeurs des  EMA 21 ticks par 4.762

    Une idée svp ?
    Merci.

    #227480 quote
    imencity
    Participant
    Senior

    En fait après redémarrage (ça devait planter) cela fonctionne… presque.

    J’ai l’impression que j’ai une grosse erreur sur les couleurs.

    valMMmin =  40
    valMMMax = 110
    MAH=average[5]
    
    //timeframe(100 ticks)
    valMMmin100 = valMMmin * 4.762
    valMMMax100 = valMMMax * 4.762

    On dirait que le fait de multiplier les valeurs par 4.762 ne fonctionne pas en effet, je n’ai pas du tout les croisements au même endroit quand j’affiche une fenêtre 100 ticks avec ces mêmes EMA. Les horaires des croisements ne correspondent absolument pas.

    #227493 quote
    imencity
    Participant
    Senior

    Bon finalement ça marche pas trop mal.
    J’en suis à cela:

     

    valMMmin =  40
    valMMMax = 110
    
    //timeframe(100 ticks)
    valMMmin100 = valMMmin * 4.2
    valMMMax100 = valMMMax * 4.2
    STO100      = Stochasticd[35,15,9](close)
    
    //timeframe(21 ticks)
    ma1 = ExponentialAverage[valMMmin](close)
    ma2 = ExponentialAverage[valMMmax](close)
    ma3 = ExponentialAverage[valMMmin100](close)
    ma4 = ExponentialAverage[valMMmax100](close)
    
    if ma1>ma2 AND ma3>ma4 then
    red   = 0
    green = 255
    alpha = 20
    elsif ma1<ma2 AND ma3<ma4 then
    red   = 255
    green = 0
    alpha = 40
    elsif ma1<ma2 AND ma3>ma4 then
    red   = 100
    green = 255
    alpha = 20
    else
    red   = 0
    green = 0
    alpha = 0
    endif
    
    colorbetween(ma1,ma2,red,green,0,alpha)
    
    IF STO100 >= 80 THEN
    DRAWTEXT ("-",barindex, highest[7](high)+4) coloured(255,0,0)
    ENDIF
    
    IF STO100 <= 20 THEN
    DRAWTEXT ("-",barindex, highest[7](high)-4) coloured(10,105,100, 255)
    ENDIF
    
    return ma1 coloured(0,0,255,40) style(line,1)
    
    

    Mais je rencontre un problème.
    En effet je voudrais utiliser le stochastique 11 5 3 du MTF 100 ticks sur le 10 ticks… mais pas possible ?
    J’en suis à des approximations mais c’est pas terrible.

    Une idée svp pour le MTF en ticks ?

    #227998 quote
    Iván González
    Moderator
    Master

    Salut
    J’ai introduit un stochastique calculé “manuellement” dans votre code.
    Vous pouvez paramétrer le nombre de périodes et le lissage de K et D.

    valMMmin =  40
    valMMMax = 110
    ///Transformation ticks
    t1 = 100
    t2 = 10
    trans = t1/t2
    //timeframe(100 ticks)
    valMMmin100 = valMMmin*trans
    valMMmax100 = valMMMax*trans
    //STOCASTICO
    P=11
    K=5
    D=3
    REM First calculate highest and lowest P bars
    maximo = highest[round(P*trans)](high)
    minimo = lowest[round(P*trans)](low)
    REM Second. calculate oscilator
    oscilador = (close - minimo) / (maximo - minimo) * 100
    REM get the %K y %D
    lineaK = average[round(k*trans)](oscilador)
    lineaD = average[round(d*trans)](lineaK)
    
    //timeframe(xx ticks)
    ma1 = ExponentialAverage[valMMmin](close)
    ma2 = ExponentialAverage[valMMmax](close)
    ma3 = ExponentialAverage[valMMmin100](close)
    ma4 = ExponentialAverage[valMMmax100](close)
    
    if ma1>ma2 AND ma3>ma4 then
    red   = 0
    green = 255
    alpha = 20
    elsif ma1<ma2 AND ma3<ma4 then
    red   = 255
    green = 0
    alpha = 40
    elsif ma1<ma2 AND ma3>ma4 then
    red   = 100
    green = 255
    alpha = 20
    else
    red   = 0
    green = 0
    alpha = 0
    endif
    
    colorbetween(ma1,ma2,red,green,0,alpha)
    
    IF lineaK >= 80 THEN
    DRAWTEXT ("-",barindex, highest[7](high)+4) coloured(255,0,0)
    ENDIF
    
    IF lineaK <= 20 THEN
    DRAWTEXT ("-",barindex, highest[7](high)-4) coloured(10,105,100, 255)
    ENDIF
    
    return ma1 coloured(0,0,255,40) style(line,1)
    #228225 quote
    imencity
    Participant
    Senior

    Merci, je vais tester cela.

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

Changement couleur EMA sur 2 timeframe


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
imencity @imencity Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by imencity
1 year, 11 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 02/06/2024
Status: Active
Attachments: No files
Logo Logo
Loading...