Linear Régression = Delta à l’intérieur d’une moyenne

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #260289 quote
    finplus
    Participant
    Master
    ////////Parameters
    Len = 100
    P   = 150
    
    
    z1  = linearregression[Len](high)
    z2  = linearregression[Len](low)
    z2s = -std[Len](low)  + z2
    z1s =  std[Len](high) + z1
    M   = (z2s + z1s) / 2
    
    
    Delta  = abs(z2s - z1s)
    Deltam = abs(z2s - z1s)
    
    
    RLUp = M > M[1]
    RLDn = M < M[1]
    
    
    if RLUp then
    Delta = Delta
    endif
    if RLDn then
    Delta = -Delta
    endif
    
    
    deltamoyup = average[150](Deltam)
    deltamoydn = average[150](-Deltam)
    
    
    // Écart entre les deux moyennes
    ecart = deltamoyup - deltamoydn
    
    
    // 1er minimum : fonction native lowest
    min1 = lowest[P](ecart)
    
    
    // 2e minimum : plus petit écart strictement > min1
    min2 = 999999999
    j = 0
    WHILE j < P DO
    val = ecart[j]
    if val > min1 AND val < min2 then
    min2 = val
    endif
    j = j + 1
    WEND
    
    
    // 3e minimum : plus petit écart strictement > min2
    min3 = 999999999
    k = 0
    WHILE k < P DO
    val = ecart[k]
    if val > min2 AND val < min3 then
    min3 = val
    endif
    k = k + 1
    WEND
    
    
    // Moyenne des 3 → ligne horizontale
    moyMinEcartsUP = (min1 + min2 + min3) / 3
    moyMinEcartsDN = -(min1 + min2 + min3) / 3
    
    
    RETURN delta as "delta", deltamoyup as "deltamoyup", deltamoydn as "deltamoydn", moyMinEcartsUP as "MoyMinEcartsUp",moyMinEcartsDn as "MoyMinEcartsDn"
    

    Bonsoir, 

    à partir de l’indicateur ci-dessus, je souhaiterai un screener permettant d’identifier les 2 situations suivantes :


    Delta est inférieur à moyMinEcartup

    ou

    delta est supérieur à moyMinEcartdn


    Merci.

    #260294 quote
    Nicolas
    Keymaster
    Master

    Voici le screener basé sur ton indicateur. Il reprend les mêmes calculs et retourne 1 quand l’une des deux conditions est vérifiée.

    //Parameters
    Len = 100
    P   = 150
    z1  = linearregression[Len](high)
    z2  = linearregression[Len](low)
    z2s = -std[Len](low)  + z2
    z1s =  std[Len](high) + z1
    M   = (z2s + z1s) / 2
    Delta  = abs(z2s - z1s)
    Deltam = abs(z2s - z1s)
    RLUp = M > M[1]
    RLDn = M < M[1]
    if RLUp then
    Delta = Delta
    endif
    if RLDn then
    Delta = -Delta
    endif
    deltamoyup = average[150](Deltam)
    deltamoydn = average[150](-Deltam)
    
    
    ecart = deltamoyup - deltamoydn
    
    
    min1 = lowest[P](ecart)
    
    
    min2 = 999999999
    j = 0
    WHILE j < P DO
    val = ecart[j]
    if val > min1 AND val < min2 then
    min2 = val
    endif
    j = j + 1
    WEND
    
    
    min3 = 999999999
    k = 0
    WHILE k < P DO
    val = ecart[k]
    if val > min2 AND val < min3 then
    min3 = val
    endif
    k = k + 1
    WEND
    
    
    moyMinEcartsUP = (min1 + min2 + min3) / 3
    moyMinEcartsDN = -(min1 + min2 + min3) / 3
    
    
    test = (delta < moyMinEcartsUP) OR (delta > moyMinEcartsDN)
    
    
    SCREENER[test]
    

    Une petite remarque : dans l’indicateur d’origine, delta peut être négatif (quand M est en baisse). La condition delta > moyMinEcartsDN sera donc souvent vraie puisque moyMinEcartsDN est négatif et que delta peut l’être aussi. Vérifie que c’est bien le comportement souhaité sur tes graphiques avant de lancer le screener sur un grand nombre de valeurs.

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

Linear Régression = Delta à l’intérieur d’une moyenne


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
finplus @finplus Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Nicolas
4 days, 1 hour ago.

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 04/16/2026
Status: Active
Attachments: No files
Logo Logo
Loading...