dessiner indicateur “suivant”

Viewing 7 posts - 16 through 22 (of 22 total)
  • Author
    Posts
  • #225386 quote
    iperkut
    Participant
    Junior

    Bonjour JC,

    Merci, merci merci ! C’est vraiment TOP !
    Pour ce qui est du “deltacours”, est-ce que tu me conseilles quelque chose de particulier ?

    J’ai commencé quelques tests avec STD (à la place de l’ATR), sur une période courte, ça semble pas mal.. Est-ce qu’il y aurait un autre indicateur pertinent à tester ?

    En restant avec la configuration de base (ATR), et en essayant avec une BB de très grande période (200 ecart type 2.5) j’ai un truc bizzare sur j+1. Est-ce normal ? Est-ce aussi le cas sur les plus petites périodes (mais non visible) et accentué sur les grosse périodes ?

    Encore merci pour le boulot, j’aurais jamais été capable de le faire, je vais m’approprier le code et essayer de le tweak.

    Merci

    Capture-decran-2023-12-18-171521.png Capture-decran-2023-12-18-171521.png
    #225391 quote
    JC_Bywan
    Moderator
    Master

    J’ai oublié de remplacer 20 par P dans les 2 lignes 12-13… pas d’impact quand P=20 mais effectivement gros impact si P=200…

    Tant qu’on y est, si tu vas t’en servir avec des P aussi grands, alors je te rajoute un if islastbarupdate, car le code étant en drawonlastbaronly=true on n’a pas besoin de calculer les projections périmées depuis les barres précédentes. Peu d’impact sur le temps de calcul si P=20, mais avec un P=200 combiné à un pourcentage non négligeable de projections les calculs de boucles prennent vite plus de temps inutilement sur l’historique. Voici donc une version qui fonctionnera mieux et beaucoup plus vite pour du P=200:

    DEFPARAM DRAWONLASTBARONLY = TRUE
    
    ATR= AverageTrueRange[14](Close)
    P= 200 // période P dans le calcul des bandes de bollinger
    coeff= 2.5 // coefficient multiplicateur de l'écart-type dans le calcul des bandes de bollinger
    PourcentProj= 0.25// 0.25 pour 25%, entre 0 pour 0% et 1 pour 100%, pourcentage à appliquer à la période P pour projection dans le futur
    Nproj= floor(P*PourcentProj)// nombre entier d'occurrences en prenant l'arrondi inférieur du pourcentage PourcentProj appliqué à la période P
    deltacours= ATR// écart entre chaque occurrence de close future simulée
    
    $coursplus[0]= close
    $coursmoins[0]= close
    $avgplus[0]= average[P](close)
    $avgmoins[0]= average[P](close)
    $BBHplus[0]= average[P](close)+coeff*STD[P](close)
    $BBHmoins[0]= average[P](close)+coeff*STD[P](close)
    $BBBplus[0]= average[P](close)-coeff*STD[P](close)
    $BBBmoins[0]= average[P](close)-coeff*STD[P](close)
    
    if islastbarupdate then
    for i=1 to Nproj
    $coursplus[i]=$coursplus[0]+deltacours*i
    $coursmoins[i]=$coursmoins[0]-deltacours*i
    //DRAWSEGMENT(barindex+i-1, $coursplus[i-1], barindex+i, $coursplus[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    //DRAWSEGMENT(barindex+i-1, $coursmoins[i-1], barindex+i, $coursmoins[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    $avgplus[i]=$avgplus[i-1]+($coursplus[i]-close[P-i])/P
    $avgmoins[i]=$avgmoins[i-1]+($coursmoins[i]-close[P-i])/P
    DRAWSEGMENT(barindex+i-1, $avgplus[i-1], barindex+i, $avgplus[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    DRAWSEGMENT(barindex+i-1, $avgmoins[i-1], barindex+i, $avgmoins[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    
    totplus=0
    totmoins=0
    for N = 0 to P-i-1// les P-i occurrences de la (P-i-1)èmee bougie précédente à l'actuelle [0]
    totplus = totplus + square(close[N]-$avgplus[i])
    totmoins = totmoins + square(close[N]-$avgmoins[i])
    next
    for j=1 to i// les i occurrence de P-i+1 à P
    totplus = totplus + square($coursplus[j]-$avgplus[i])
    totmoins = totmoins + square($coursplus[j]-$avgmoins[i])
    next
    $stdevplus[i] = sqrt(totplus/P)
    $stdevmoins[i] = sqrt(totmoins/P)
    
    $BBHplus[i]=$avgplus[i]+coeff*$stdevplus[i]
    $BBBplus[i]=$avgplus[i]-coeff*$stdevplus[i]
    $BBHmoins[i]=$avgmoins[i]+coeff*$stdevmoins[i]
    $BBBmoins[i]=$avgmoins[i]-coeff*$stdevmoins[i]
    DRAWSEGMENT(barindex+i-1, $BBHplus[i-1], barindex+i, $BBHplus[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    DRAWSEGMENT(barindex+i-1, $BBBplus[i-1], barindex+i, $BBBplus[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    DRAWSEGMENT(barindex+i-1, $BBHmoins[i-1], barindex+i, $BBHmoins[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    DRAWSEGMENT(barindex+i-1, $BBBmoins[i-1], barindex+i, $BBBmoins[i]) COLOURED(128,128,128) STYLE(DOTTEDLINE4,1)
    next
    endif
    
    RETURN
    #225392 quote
    iperkut
    Participant
    Junior

    Génial tu gères merci

    #225555 quote
    Pierreco1991
    Participant
    Junior

    Hello

    Je me permets de rajouter ma contribution en partant du  prix
    L’origine du calcul est la variation du prix => puis la MM20 => Puis les BB

    Je me suis arrêté à J+1, mais je reprendrai ce code pour tenter le j+2 ce qui ouvre la porte à J+n. Je pense que le code n’est pas optimisé mais quand j’aurais la bonne  (ou que l’on me propose)  architecture il y’aura plus qu’a

    Pour donner plus d’explication, je suis parti dans l’idée d’utiliser les tableaux pour mieux gérer les indexation de jour . L’idée serait de prendre toujours l’extrême qui va dans le bon sens. C ‘est a dire que pour le moouvement UP (Orange), on recherche toujours le +2Sigma et contraire sur le mouvement DOWN (Jaune)

    Bonne soirée

    PredictionBBMM.itf
    #225810 quote
    Pierreco1991
    Participant
    Junior

    Hello

    J’ai repris mon idée avec la variation du prix et le modèle de JC_Bywan (Merci car j’étais bloqué avec les boucles)
    Les variables sont à configurer sur la fenêtre de prix.

    A toute

    PredictionBBMM_291223.itf
    #225812 quote
    Pierreco1991
    Participant
    Junior

    erratum sur le code
    Voici la bonne version . l’ancienne avez le coef des BB en dur dans le code

    PredictionBBMM_291223-1.itf
    #225815 quote
    Pierreco1991
    Participant
    Junior

    En validant l’indicateur, j’ai vu une erreur sur la ligne 38

    Origine : totmoins = totmoins + square($coursplus[j]-$avgmoins[i])

    Patch : totmoins = totmoins + square($coursmoins[j]-$avgmoins[i]) // Remplacement $coursplus par $coursmoins

    Voici donc l’indic remis à jour de mon coté

    PredictionBBMM_291223-2.itf
Viewing 7 posts - 16 through 22 (of 22 total)
  • You must be logged in to reply to this topic.

dessiner indicateur “suivant”


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
iperkut @iperkut Participant
Summary

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

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/23/2023
Status: Active
Attachments: 8 files
Logo Logo
Loading...