Indicateur de volatilité à ajouter à une formule

Forums ProRealTime forum Français Support ProBuilder Indicateur de volatilité à ajouter à une formule

Viewing 8 posts - 1 through 8 (of 8 total)
  • #232005

    Bonjour,

    je n’ai pas réussi à inserer le code suivant donc je fais un simple copier coller.

    /////////////////////////////////////KAMA 150

    Period = 150
    FastPeriod = 2
    SlowPeriod = 30

    Fastest = 2 / (FastPeriod + 1)
    Slowest = 2 / (SlowPeriod + 1)
    if barindex < Period+1 then
    Kama=close
    else
    Num = abs(close-close[Period])
    Den = summation[Period](abs(close-close[1]))
    ER = Num / Den
    Alpha = SQUARE(ER *(Fastest – Slowest )+ Slowest)
    KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
    endif

    ///////////////////////////////////////////////////////////////////: Distance Cours KAMA

    xClose = (Open+High+Low+Close)/4
    Distance = (xclose- kama)

    moy = exponentialaverage[period]((distance))

    if Moy<Moy[1] and Moy[1]>Moy[2] and Moy[1]>0 then
    RetB5=RetB4
    RetB4=RetB3
    RetB3=RetB2
    RetB2=RetB1
    RetB1=Moy[1]
    RetBmoy=(RetB1+RetB2+RetB3+RetB4+RetB5)/5
    endif

    if Moy>Moy[1] and Moy[1]<Moy[2] and Moy[1]<0 then
    RetH5=RetH4
    RetH4=RetH3
    RetH3=RetH2
    RetH2=RetH1
    RetH1=Moy[1]
    RetHmoy=(RetH1+RetH2+RetH3+RetH4+RetH5)/5
    endif

    if abs(retBmoy-0) > abs(retHmoy-0) then
    limitUP = retBmoy
    elsif abs(retBmoy-0) < abs(retHmoy-0) then
    LimitUp = -RetHmoy
    endif

    if abs(RetHmoy-0) > abs(RetBmoy-0) then
    limitDn = RetHmoy
    elsif abs(RetHmoy-0) < abs(RetBmoy-0) then
    LimitDn = – RetBmoy
    endif

    DistMoyKAMA = average [50](distance)

    AdditionalUpBand = RetBmoy*2
    AdditionalDNBand = RETHMoy*2

    for i=0 to 49
    $montab[i]=distance[i]
    Next

    arraysort($montab,ascend)
    moy3plusBas = ($montab[0] + $montab[1] + $montab[2]) / 3
    moy3plusHauts = ($montab[49] + $montab[48] + $montab[47]) / 3

     

    if (distance > DistmoyKAMA) and (distance > 0) then
    drawcandle (0,0, distance, distance) COLOURED (0,0,255)
    elsif (DistmoyKAMA > DistmoyKAMA[1]) and (distance > DistmoyKAMA) and (distance > 0) then
    drawcandle (0,0, distance, distance) COLOURED (0,255,255)
    endif

    if (distance < DistmoyKAMA) and (distance < 0) then
    drawcandle (0,0, distance, distance) COLOURED (255,0,0)
    elsif (DistmoyKAMA < DistmoyKAMA[1]) and (distance < DistmoyKAMA) and (distance < 0) then
    drawcandle (0,0, distance, distance) COLOURED (255,204,153)
    endif

     

    Return distance as “Distance”, moy as “Distance Moy”, RetBmoy as “Moyenne 5 derniers retournements baissiers”, RetHmoy as “Moyenne 5 derniers retournements haussiers”, moy3plusHauts as “FilterUp”, moy3plusBas as “FilterDn”, DistmoyKAMA as “DistMoyKAMA”, AdditionalUPBand as “AdditionnalUpBAnd”, AdditionalDNband as “AdditionalDnBand”

     

    voilà j’utiliser cet indicateur pour filtrer les entrée de position. J’ai ajouté aux lignes de code AdditionalUpBand = RetBmoy et AdditionalDnBand = RetHmoy un facteur 2 pour élargir la bande d’entrée en position. Mais je ne suis pas entièrement satisfait de cette solution “manuelle”. J’aimerai que ce facteur soit lié à la volatilité du sous-jacent. Donc j’aurai besoin d’un conseil.

    Je vous en remercie par avance.

    #232025

    Bonjour,

    C’est le 2 que tu veux remplacer? Ou bien c’est l’emplacement des bandes sans forcément en changer l’amplitude? Dans le 1er cas, tu peux par exemple tester des ratio d’ATR, ou d’écarts-types, entre celui de bougie en cours et celui d’il y a un nombre de barres lié à ton code (period, slowperiod…). Dans le 2e cas, tu peux créer un centre variable et lui appliquer les bandes de part et d’autre.

    1 user thanked author for this post.
    #232039

    Bonjour,

    oui c’est le 2 que je voudrais remplacer car je l’ai défini sans base rationnelle. Par contre, j’aurai besoin d’un peu d’aides sur tes propositions.

    Merci de m’avoir répondu.

    #232089

    Par exemple comme ceci, avec création de myATR pourquoi pas sur slowperiod (juste pour l’exemple), et ratio de 2 myATR espacés (encore sur slowperiod, mais pas obligé), en gardant  le 2 mais qui peut devenir 3 ou 4 ou ce qu’on veut dans la variable coeff:

     

    1 user thanked author for this post.
    #232091

    Merci. je vais tester.

    #232139

    Une question additionnelle svp : je souhaiterai prendre une position longue si moy3plusHauts > moy3plusHauts précédents (par exemple). J’ai fait : moy3plusHauts > moy3plusHauts[1] mais le résultat escompté n’est pas celui attendu.

    Puis-je avoir une aide SVP?

    Merci et bons trades.

    #232189

    Bjr,

    en supposant que le résultat qui n’a pas été comme attendu a pu être dû à la variable moy3plusHauts qui n’aurait pas changé d’une bougie sur l’autre soit moy3plusHauts=moy3plusHauts[1], alors on peut essayer de capturer à la volée la variation quand elle se produit, et la stocker en mémoire dans moy3plusHautsPrec pour l’utiliser ensuite même si cela ne s’est pas produit en bougie précédente, par exemple ainsi:

    if moy3plusHauts <> moy3plusHauts[1] then

    moy3plusHautsPrec=moy3plusHauts[1]

    endif

    if moy3plusHauts > moy3plusHautsPrec then

    … lignes de code utilisées pour l’affichage du signal de prise de position

    endif

     

    1 user thanked author for this post.
    #232214

    Merci. Je ne suis pas certain de tout comprendre mais je vais essayer.

Viewing 8 posts - 1 through 8 (of 8 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login