Bougies stochastiques

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #15484 quote
    supertiti
    Participant
    Master

    Bonjour à tous,

    A partir d’un indicateur stochastique est-il possible de normaliser le dit indicateur sur une échelle de 0 à 100 sous forme de bougies conventionnelles ?

    A remplacer donc le graphisme de l’oscillateur par des bougies qui puisse nous permettre d’interpréter à la fois les bougies (harami, etoiles etc )

    et leur position dans l’oscillateur( en bas ,au milieu, en haut ).

    Libre à chacun après d’utiliser des heikin ashi ou autres types de figures…

    // STOCHASTIQUE  bougies
    
    plusHaut = HIGHEST[p](HIGH)
    plusBas = LOWEST[p](LOW)
    
    OSC =  100 * ( customclose  - plusbas ) / ( plushaut - plusbas )
    
    DRAWCANDLE  (Open[0],High[0],Low[0], Close[0])
    
    
    RETURN  OSC as " OSC ",  0 as " zero " ,20 as " 20 " , 50 as " 50 ",80 as " 80 " , 100 as " 100 "
    // variables
    // p = 24  entier par  défaut
    
    STOCH-Candle-AIR-liquide.jpg STOCH-Candle-AIR-liquide.jpg
    #15492 quote
    Nicolas
    Keymaster
    Master

    On peut tout normaliser en effet, il suffit d’abord de définir l’échelle et dans ton cas, tu souhaiterai qu’elle soit réalisé à partir des derniers plus hauts (pour le 100%) et des derniers plus bas (pour le 0%) si je ne me trompe pas, ça rejoint en effet la stochastique, on peut aussi appeler ça un ‘percentile rank’, soit un classement en pourcentage.

    Une fois que tu as calculé ton échelle dynamique, tu peux donc calculer où se situe les OHLC de chaque bougie vis à vis de cette échelle, ici je ferai la différence en chaque valeur et le floor de cette échelle (le dernier plus bas sur X périodes):

    //PRC_CandlesticksStochastic | indicator
    //25.10.2016
    //Nicolas @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    
    period = 50
    
    //lastest highhest high and lowest low over "period"
    hh = highest[period](high)
    ll = lowest[period](low)
    scale = hh-ll
    
    //dynamic OHLC (percentile rank) 
    dynO = ((open-ll)/scale)*100
    dynH = ((high-ll)/scale)*100
    dynL = ((low-ll)/scale)*100
    dynC = ((close-ll)/scale)*100
    
    //candle color
    if open>close then 
     r = 255
     g = 0
    else
     r = 0
     g = 255
    endif 
    
    //draw candlesticks
    DRAWCANDLE(dynO,dynH,dynL,dynC) coloured(r,g,0) 
    
    return 20 as "20% level", 50 as "50% level", 80 as "80% level" 

     

    J’ai ajouté les niveaux 20, 50 et 80%. On peut en effet bien s’amuser avec la nouvelle instruction DRAWCANDLE 🙂

    stochastic-candlesticks-percentile-rank-example.png stochastic-candlesticks-percentile-rank-example.png
    #15500 quote
    supertiti
    Participant
    Master

    Campéon !!

    Un grand merci Nicolas pour ce retour en espérant qu’il profitera au plus grand nombre, c’est exactement ce que je souhaitais, en effet on peut s’amuser avec drawcandle , on peut même rajouter bordercolor  et placer des niveaux de surachat / survente à sa guise et mettre period en variable.

    merci encore pour l’efficacité et le rapidité.

    CSI-PRC.jpg CSI-PRC.jpg
    #15507 quote
    Nicolas
    Keymaster
    Master

    Je viens de l’ajouter à la Library : normalisation de chandeliers japonais

    Tu peux aussi changer les niveaux avec ceux de Fibonacci éventuellement. La détection des points hauts et bas pourraient être elle aussi issue d’un autre calcul.. Bref, toute une vie ne serait pas suffisante pour tout tester 🙂

    #15544 quote
    supertiti
    Participant
    Master

    Bonjour à tous

    Sur le même principe que les ” candles stochastic ” j’ai reproduit ci-dessous le code pour faire ressortir des bougies sous forme de heikin ashi mais malheureusement rien ne s’affiche

    si ce n’est les lignes horizontales, quelqu’un voit il où est le bug ?

    merci de votre aide.

    // HAS PRC .......... HEINKIN ASHI STOCHASTIQUE  PRC  26.10.2016
    //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge
    
    HAClose=totalprice
    HAOpen=(HAOpen[1]+HAClose[1])/2
    HAHigh=Max(high,HAOpen)
    HALow=Min(low,HAOpen)
    ////////////////////////////////////////////////////////////////////
    //lastest highhest high and lowest low over "period"
    hh = highest[period](high)
    ll = lowest[period](low)
    scale = hh-ll
    //dynamic OHLC (percentile rank)
    dynO = ((HAClose)/scale)*100
    dynH = ((HAOpen)/scale)*100
    dynL = ((HAHigh)/scale)*100
    dynC = ((HALow)/scale)*100
    //candle color
    if HAOpen>HAClose then
    r = 0
    g = 255
    else
    r = 255
    g = 0
    endif
    
    //draw candlesticks
    DRAWCANDLE(dynO,dynH,dynL,dynC) coloured(g,r,0) bordercolor (255,255,255)
    
    return 20 as "20% level", 50 as "50% level", 80 as "80% level"
    
    // Variables :
    // period = 26
    #15546 quote
    Nicolas
    Keymaster
    Master

    Le code de base était pourtant commenté 🙂

    Ok, donc pour calculer la ligne 5, il faut déjà qu’il existe un HAclose en n-1 de calculé et dés le début ça n’est pas possible, donc il faut tester auparavant si on a au moins une barre de l’historique déjà lu ou non (voir code corrigé).

    Ensuite, tu as mal recopié le calcul dynamique des bougies quand tu as voulu faire l’Heikin Ashi. Ci-joint correction ci-dessous:

    // HAS PRC .......... HEINKIN ASHI STOCHASTIQUE  PRC  26.10.2016
    //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge
    // Variables :
    period = 26
    
    HAClose=totalprice
    if barindex>1 then
    HAOpen=(HAOpen[1]+HAClose[1])/2
    else
    HAOpen = totalprice
    endif
    HAHigh=Max(high,HAOpen)
    HALow=Min(low,HAOpen)
    ////////////////////////////////////////////////////////////////////
    //lastest highhest high and lowest low over "period"
    hh = highest[period](high)
    ll = lowest[period](low)
    scale = hh-ll
    //dynamic OHLC (percentile rank)
    dynO = ((HAClose-ll)/scale)*100
    dynH = ((HAOpen-ll)/scale)*100
    dynL = ((HAHigh-ll)/scale)*100
    dynC = ((HALow-ll)/scale)*100
    //candle color
    if HAOpen>HAClose then
    r = 0
    g = 255
    else
    r = 255
    g = 0
    endif
    
    //draw candlesticks
    DRAWCANDLE(dynO,dynH,dynL,dynC) coloured(g,r,0) bordercolor (255,255,255)
    
    return 20 as "20% level", 50 as "50% level", 80 as "80% level"
    heikin-ashi-normalized.png heikin-ashi-normalized.png
    #15554 quote
    supertiti
    Participant
    Master

    Je n’ai pas toujours la lumière allumée tous les jours !!  j’aurai du être un peu plus attentif. Je pense qu’il sera utile de rajouter ce code dans la bibliothèque également pour la communauté.

    merci pour l’aide apportée.

    #15558 quote
    Nicolas
    Keymaster
    Master

    Pas grave, voici une autre version basée sur la normalisation des volumes intraday, une espèce de Value chart (en développement)..

    volume-normalized.png volume-normalized.png
    #15617 quote
    supertiti
    Participant
    Master

    Bonjour Nicolas

    Comment expliques tu que sur le code des heikin ashi on ne voit aucune mèche basse ?

    bonne journée

    HAS-PRC.jpg HAS-PRC.jpg
    #15621 quote
    JC_Bywan
    Moderator
    Master

    Bonjour, je dirais que ça vient probablement des lignes 12 et 13, qui oublient de tenir compte de HAclose pour faire les max et min.

    #15623 quote
    supertiti
    Participant
    Master

    Bonjour Noobywan

    merci pour ton commentaire, pourrais tu illustrer ta réponse par les lignes de code adéquat de façon à obtenir ces mèches basses qui sont bien utiles.

    #15625 quote
    JC_Bywan
    Moderator
    Master

    Je ne suis pas utilisateur de la 10.3 beta pour vérifier le drawcandle, donc je ne peux pas tester ces lignes, mais en théorie si je ne me trompe pas dans le Heikin Ashi, j’aurais mis en lignes 12 et 13:

    HAHigh=Max(high,Max(HAOpen, HAclose))
    HALow=Min(low,Min(HAOpen, HAclose))

    D’autre part, en lisant le reste (car un bug peut en cacher un autre), on dirait que les lignes 20 à 23 sont décalées d’un cran et qu’en les redéfinissant ainsi, c’est surtout cette partie là qui fera apparaître les mèches basses:

    dynO = ((HAOpen-ll)/scale)*100
    dynH = ((HAHigh-ll)/scale)*100
    dynL = ((HALow-ll)/scale)*100
    dynC = ((HAClose-ll)/scale)*100
    #15633 quote
    supertiti
    Participant
    Master

    Voici le code modifié par Noobywan et le graphe de Air Liquide avec les niveaux de Fibonacci

    // HAS PRC FIBO V1 .......... HEINKIN ASHI STOCHASTIQUE  PRC FIBO V1  27.10.2016
    //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge modifié NOOBYWAN
    
    HAClose=totalprice
    if barindex>1 then
    HAOpen=(HAOpen[1]+HAClose[1])/2
    else
    HAOpen = totalprice
    endif
    HAHigh=Max(high,Max(HAOpen, HAclose))
    HALow=Min(low,Min(HAOpen, HAclose))
    ////////////////////////////////////////////////////////////////////
    //lastest highhest high and lowest low over "period"
    hh = highest[period](high)
    ll = lowest[period](low)
    scale = hh-ll
    dynO = ((HAOpen-ll)/scale)*100
    dynH = ((HAHigh-ll)/scale)*100
    dynL = ((HALow-ll)/scale)*100
    dynC = ((HAClose-ll)/scale)*100
    //candle color
    if HAOpen>HAClose then
    r = 0
    g = 255
    else
    r = 255
    g = 0
    endif
    //draw candlesticks
    DRAWCANDLE(dynO,dynH,dynL,dynC) coloured(g,r,0) bordercolor (255,255,255)
    
    return 0 as " 0 " ,23.6 as "23.6 % level",38.2 as " 38.2 ", 50 as "50% level", 61.8 as " 61.8 " ,100 as " 100 "
    
    // Variables :
    // period = 26
    
    
    HAS-PRC-FIBO-V1.jpg HAS-PRC-FIBO-V1.jpg
    #16074 quote
    Nicolas
    Keymaster
    Master

    Faire ses bougies soit même avec DRAWCANDLE, c’est le sujet de ma dernière vidéo sur la programmation prorealtime : construire ses chandeliers japonais

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

Bougies stochastiques


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
supertiti @supertiti Participant
Summary

This topic contains 13 replies,
has 3 voices, and was last updated by Nicolas
9 years, 3 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 10/25/2016
Status: Active
Attachments: No files
Logo Logo
Loading...