Création d’un Screener GMMA

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #165209 quote
    phyxius
    Participant
    New

    Bonjour à tous,

    J’aimerai créer deux screeners (j’espère être clair dans ma demande)

     

    Un screener sur base de l’indicateur GMMA de Daryl Guppy qui détecte le rapprochement ( la compression ) des moyens mobiles exponentiels courtes 3,5,8,10,12,15 et Moyens mobiles exponentiels longues 30,35,40,45,50,60. Ceci sur quelques jours.

     

    Un autre screener sur les croissements de ces des moyens mobiles exponentiels courtes 3,5,8,10,12,15 et Moyens mobiles exponentiels longues 30,35,40,45,50,60. ( Les moyens mobiles courtes croissent les moyens mobiles longues )

     

    N’étant pas très doué en programmation ou plutôt débutant, j’en appel à votre aide.

    Merci pour vos réponses.

    Bien à vous

    Phyxius

    #165225 quote
    JC_Bywan
    Moderator
    Master

    Bonsoir, le moteur de recherche du site retourne ce sujet parmi d’autres: https://www.prorealcode.com/topic/screener-avec-lindicateur-guppy/

    qui semble être une base de départ sous forme d’indicateur. Resterait à définir exactement les compressions et/ou les croisements pour créer les conditions des screeners, et remplacer la dernière ligne “return” par une ligne screener sur les conditions exactes.

    #165230 quote
    JC_Bywan
    Moderator
    Master

    On me souffle dans l’oreillette: “Pour le croisement on prend la plus longue des courtes et la plus longue des longues“, à tester:

    a = close
    //c1 = ExponentialAverage[3](a)
    //c2 = ExponentialAverage[5](a)
    //c3 = ExponentialAverage[8](a)
    //c4 = ExponentialAverage[10](a)
    //c5 = ExponentialAverage[12](a)
    c6 = ExponentialAverage[15](a)
     
    //c7 = ExponentialAverage[30](a)
    //c8 = ExponentialAverage[35](a)
    //c9 = ExponentialAverage[40](a)
    //c10 = ExponentialAverage[45](a)
    //c11 = ExponentialAverage[50](a)
    c12 = ExponentialAverage[60](a)
     
    croisement = (c6 crosses over c12) or (c6 crosses under c12)
     
    screener[croisement]
    #165271 quote
    phyxius
    Participant
    New

    Bonjour

    Merci pour ta réponse Noobywan super, j’ai regardé, super pour l’indicateur et le croissement des moyens mobiles, je vais faire des tests avec ce screener.

    Pour la compression, le rapprochement des moyens mobiles exponentiels courtes 3,5,8,10,12,15 et Moyens mobiles exponentiels longues 30,35,40,45,50,60 sur quelques jours, sur quoi dois-je partir ?

    Pour détecter quand les moyens mobiles exponentiels courtes 3,5,8,10,12,15 sont très très proche les une des autres, et la même chose pour les Moyens mobiles exponentiels longues 30,35,40,45,50,60.

    Merci pour vos réponses.

    Bien à vous

     

    Phyxius

    #165273 quote
    Xavier01
    Participant
    Average

    J’ ai écrit celui ci qui donne un bon backtest sur le DAX en Daily mais le code plus lourd et je suis pas sur que tout s’exécute correctement

     

    // Définition des paramètres du code //
    DEFPARAM CumulateOrders = False
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Moyennes Mobiles Court Terme //
    Indic1 = ExponentialAverage[3]
    Indic2 = ExponentialAverage[5]
    Indic3= ExponentialAverage[8]
    Indic4 = ExponentialAverage[10]
    Indic5 = ExponentialAverage[12]
    Indic6 = ExponentialAverage[15]
    
    // Moyennes Mobiles Long Terme //
    
    Indic8 = ExponentialAverage[30]
    Indic9 = ExponentialAverage[35]
    Indic10 = ExponentialAverage[40]
    Indic11 = ExponentialAverage[45]
    Indic12 = ExponentialAverage[50]
    
    Indic14 = ExponentialAverage[60]
    
    
    // Conditions pour ouvrir une position acheteuse
    indicator15 = Stochastic[21,3](close)
    indicator16 = Average[3](Stochastic[21,3](close))
    indicator17 = Stochastic[5,3](close)
    indicator18 = Average[2](Stochastic[5,3](close))
    
    c1 = (indicator15 > indicator16)
    c3 = (indicator17 > indicator18)
    c5 = Indic1> Indic2 and Indic2> Indic3 and Indic3> Indic4 and Indic4> Indic5 and Indic5> Indic6
    c7 = Indic8> Indic9 and Indic9> Indic10 and Indic10> Indic11 and Indic11> Indic12 and Indic12> Indic14
    //c9 = Indic6 crosses over Indic14
    // Conditions d'Achat //
    IF c1 and c3 and c5 and not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    // Stops et objectifs
    SET TARGET PPROFIT 481
    SET STOP PTRAILING 41
    ENDIF
    
    // Conditions pour ouvrir une position vendeuse //
    
    c2 = (indicator15 < indicator16)
    c4 = (indicator17 < indicator18)
    c6 = Indic1< Indic2 and Indic2< Indic3 and Indic3< Indic4 and Indic4< Indic5 and Indic5< Indic6
    c8 = Indic8< Indic9 and Indic9< Indic10 and Indic10< Indic11 and Indic11< Indic12 and Indic12< Indic14
    c10 = Indic6 crosses under Indic14
    // Conditions de Vente //
    IF c2 and c4 and c6 and not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    // Stop et objectifs //
    SET TARGET PPROFIT 311
    SET STOP pTRAILING 30
    ENDIF
    #165282 quote
    Nicolas
    Keymaster
    Master

    L’indicateur type guppy n’est rien de plus qu’un ensemble de plusieurs EMA comme vous le constatez, donc pourquoi devoir utiliser toutes ces EMA alors que les conditions recherchées ne sont basées que sur les deux plus proches ou éloignées.

    Pour le resserrement de 2 EMA, tu peux tester ce code, on règle la quantité de période au début de celui-ci pour tester le rapprochement en pourcentage :

    //reserrement de MA en pourcentage sur x périodes
    
    period = 5
    
    percentage = 0.25
    a = exponentialaverage[15]
    c = exponentialaverage[60]
    upper = max(a,c)
    lower = min(a,c)
    d = ((upper - lower) / close) *100
    e = summation[period](d <= percentage)=period
    SCREENER[e]
    #165285 quote
    phyxius
    Participant
    New

    Merci Xavier, Merci Nicolas pour vos réponses.

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

Création d’un Screener GMMA


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
phyxius @phyxius Participant
Summary

This topic contains 6 replies,
has 4 voices, and was last updated by phyxius
4 years, 11 months ago.

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