Non croisement (MMA vs MMA, %K, vs %D, MACD vs Signal, ..

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

    Hello,

    ci-dessous, une première “tentative de code” pour détecter un non-croisement entre deux séries de données (exemples: MMA7 vs MMA 23, %K vs %D (stochastique), …). Toute suggestion d’amélioration est la bienvenue.

    JCP

    // non croisement source 1 (s1) et source 2 (s2). Exemple avec des moyennes arithmétiques
    // mais on peut remplacer l1 et s2 par le %K et le %D du stochastique, ou le MACD et son
    // signal, ...
    s1 = average[7](close)
    s2 = average[23](close)
    
    // calcul des pentes pour la barre précédente (p1) et la barre courante (source 1)
    s1p1 = s1[1] - s1[2]
    s1p0 = s1 - s1[1]
    
    // calcul des pentes pour la barre précédente (p1) et la barre courante (source 2)
    s2p1 = s2[1] - s2[2]
    s2p0 = s2 - s2[1]
    
    // abscisse de croisement entre les deux sources pour la barre précédente
    if abs(s1p1 - s2p1) < 0.001 then
    x1 = 200
    else
    x1 = min(100, max((s2[1] - s1[1]) / (s1p1 - s2p1), -100))
    endif
    
    // abscisse de croisement entre les deux sources pour la barre courante
    if abs(s1p0 - s2p0) < 0.001 then
    x0 = 200
    else
    x0 = min(100,max((s2 - s1) / (s1p0 - s2p0), -100))
    endif
    
    // non croisement => barre précédente: projection de croisement et barre courante: plus de croisement
    // (et divergence de source 1 et source 2 après le non croisement)
    // - non implémenté: les deux sources ont des tendances opposées après le non croisement
    if x1 > 0 and x1 < 1 and x0 < 0 then
    // calcul de la force du nom-croisement (angle en degrés entre les deux pentes, permet de s'affranchir
    // des "mirages visuels" car tient compte du niveau de prix)
    f = atan(abs((s1p0-s1p1)/(1 + s1p0 * s1p1)))
    if s1[2] > s2[2] and s1[1] > s2[1] and s1 > s2 then
    // vérification que les deux indicateurs ne se coisent pas (s1 > s2), non croisement à la hausse
    DRAWARROWUP(barindex, s1) coloured(0, 255, 0)
    DRAWTEXT("f=#f#°", barindex, s1, serif, bold)
    elsif s1[2] < s2[2] and s1[1] < s2[1] and s1 < s2 then
    // vérification que les deux indicateurs ne se coisent pas (s2 > s1), non croisement à la baisse
    DRAWARROWDOWN(barindex, s1) coloured(255,0,0)
    DRAWTEXT("f=#f#°", barindex, s1, serif, bold)
    endif
    endif
    
    return s1 as "Source (1)", s2 as "Source (2)"
    
    Iván González and Matriciel thanked this post
    #234659 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    quelques sujets sur le même thème, si ça peut aider:

    Non Croisement 2 moyennes mobiles

    Codage non croisement de moyennes mobiles

    Kobudera thanked this post
    #234662 quote
    Kobudera
    Participant
    New

    Bonjour,

    Merci pour ces liens, je vais y jeter un œil.

    #234667 quote
    Kobudera
    Participant
    New

    Hello,

    un graphiques avec quelques non croisement (cf. “attachement”). Pour info, la stratégie de détection des non croisements implémentée est la suivante:

    • recherche des lignes qui se seraient croisée à la barre suivante si elles avaient continué tout droit,
    • si, à la barre suivante, les lignes ne se sont finalement  pas croisées et que, en plus, elles divergent, alors un non classement a été détecté.

    En toute rigueur (pas encore implémenté), il faudrait s’assurer que:

    • au moment du non croisement, l’une des lignes est haussière et l’autre baissière,
    • deux périodes après les non croisement, les lignes ne convergent toujours pas.

    Ces deux dernières étapes pourraient supprimer pas mal de fausses détections.

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

Non croisement (MMA vs MMA, %K, vs %D, MACD vs Signal, ..


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by Kobudera
1 year, 7 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 06/30/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...