Remettre a zero valeur d'un tableau (indicateur de gaps)

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #121305 quote
    grivoire
    Participant
    New

    Bonjour,

    Un petit code pour identifier les Gaps.

    je me lance dans le codage, donc désolé s’il n’est pas optimisé.

    J’ai rencontré un problème pour mettre a 0 la valeur dans un tableau ( cas du gap qui se clôture )

    Une idée pour  ne pas recalculer une variable d’un tableau si celui ci a déjà été remis a zéro

    /////////variables
    historique = 700
    Gapmini = 100
    ////////////
    
    
    Hjour = high
    Bjour= low
    if dclose(1)<>lastclose then //new day begin
    jour = lastset($ferm)+1
    $ferm[jour] = dclose(1)
    $ouv[jour] = dopen(0)
    $jour[jour] = barindex
    ferm = $ferm[jour]
    ouv= $ouv[jour]
    if ouv > ferm and ouv-ferm>gapmini then //////// gap et valeur gap
    $gap[jour]=1
    else
    if ouv-ferm<-gapmini then
    $gap[jour]= -1
    endif
    endif///////////////////////////////////////////////////////////////////////////
    lastclose = dclose(1) //save the current Dclose(1) value to future check of new day
    endif
    
    
    if jour>historique then
    for i = 0 to historique
    fermI = $ferm[jour-i]
    ouvI = $ouv[jour-i]
    JourI = $jour[jour-i]
    gapi =$gap[jour-i]
    if high>fermI then/////////////////////////////////////fin gap baissier
    $gapbaissier[jouri]=0
    endif
    if gapi=-1 and high<fermI  then //////// gap Baissier
    ///////////////////////////////////////
    $gapbaissier[jouri]=1+$gapbaissier[jouri]
    gapbaissier=$gapbaissier[jouri]
    $jj[i] = jour-jouri+1
    jj=$jj[i]
    closegap = jj-gapbaissier
    //////////////////////////////////////////////
    if closegap <1 then
    DRAWSEGMENT(jouri, fermi, barindex+1, fermi)coloured(255,180,180)
    DRAWRECTANGLE(jouri, fermi, barindex, ouvi)coloured(250,0,0,20) bordercolor(250,0,0,20)
    if high>fermI then
    gapbaissier=0
    
    endif
    endif
    endif
    /////////////////////////////////////////////////////////////////////////////////
    if low<fermI then/////////////////////////////////////fin gap haussier
    $gaphaussier[jouri]=0
    endif
    if gapi=1 and low>fermI  then //////// gap haussier
    ///////////////////////////////////////
    $gaphaussier[jouri]=1+$gaphaussier[jouri]
    gaphaussier=$gaphaussier[jouri]
    $jj[i] = jour-jouri+1
    jj=$jj[i]
    closegap = jj-gaphaussier
    //////////////////////////////////////////////
    if closegap <1 then
    DRAWSEGMENT(jouri, fermi, barindex+1, fermi)coloured(255,180,180)
    DRAWRECTANGLE(jouri, fermi, barindex, ouvi)coloured(0,0,255,20) bordercolor(0,0,255,20)
    if high>fermI then
    gaphaussier=0
    
    endif
    endif
    endif
    Next
    endif
    
    
    
    
    
    
    return
    

     

    ?

    GAP.itf
    #121309 quote
    grivoire
    Participant
    New

    Ha , fonctionne sur un graph cash exclusivement , je n ai pas intégré les horaires ouvertures et fermetures des marchés

    #121310 quote
    grivoire
    Participant
    New

    une copie ecran du code  ….

    2020-03-06.png 2020-03-06.png
    #121322 quote
    Nicolas
    Keymaster
    Master

    On ne peut pas “unset” un index dans un tableau, mais on peut lui affecter une valeur arbitraire comme zéro pour indiquer qu’elle ne contient aucune information valable. Donc quand ton gap est comblé pour l’index N, effacer sa valeur en la remplaçant avec 0, ainsi dans sa boucle de détection tu pourras sauter cet index.

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

Remettre a zero valeur d'un tableau (indicateur de gaps)


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
grivoire @grivoire Participant
Summary

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

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 03/06/2020
Status: Active
Attachments: 2 files
Logo Logo
Loading...