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

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #234605 quote
    KobuderaKobudera
    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_BywanJC_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
    KobuderaKobudera
    Participant
    New

    Bonjour,

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

    #234667 quote
    KobuderaKobudera
    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
    croisements-001.png croisements-001.png
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

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 KobuderaKobudera
2 years, 2 months ago.

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