Indicateur pour stratégie Donchian complexifiée

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #127144 quote
    patapouf
    Participant
    Average

    Bonjour Nicolas.

    Je cherche à comparer – d’abord visuellement – plusieurs stratégies d’entrée en position Longue (en l’occurrence, actuellement, sur le Future Dax en 5 minutes, mais ça peut servir plus largement)
    (Hichimoku Kijun/Tenkan, Trend Impulse Filter, Ehler’s MAMA & FAMA, et Donchian complexifié…)
    pour voir lesquelles sont les plus prometteuses, leurs points faibles, et pourquoi pas, les combiner.
    Pour ce faire, je crée des indicateurs  1 / 0, pour indiquer les périodes on l’on est en position avec ces différentes stratégies.

    J’ai réussi sans problème pour les 3 premières, mais je bute sur la 4è (Donchian complexifié)

    Il y aurait 2 conditions possibles pour entrer Long, et une seule pour sortir.
    Je bute sur la programmation des 2 conditions pour entrer Long :

    • Donchian typique : on définit un canal haut et un canal bas
      CanalHi = Highest[PeriodHi](high) et CanalLo = Lowest[PeriodLo](low)
    • Entrée en position sur Condition 1 OU sur Condition 2 validée.
    • Condition 1 :
      Clôture au-dessus de CanalHi[1]
      Cela devrait donner quelque chose comme :
      close crosses over CanalHi[1]
    • Condition 2 :
      – 2 moyennes mobiles comme filtres : MMcourte = exponentialaverage[3](close) et MMlongue = exponentialaverage[20](close)
      (les périodes seraient à ajuster, mais on verra plus tard)
      – Sous-condition 2/1 : MMCourte croise à la hausse MMLongue.
      On garde alors en mémoire le plus-haut de la barre pour laquelle se produit ce croisement.
      – Sous-condition 2/2 : une fois la sous-condition 2/1 validée, on attend qu’une nouvelle bougie clôture au-dessus de ce plus-haut enregistré.
      Si c’est validé, on entre long
      Si on fait un nouveau plus-haut sans clôturer au-dessus du plus-haut enregistré (= mèche),  c’est le plus haut des 2 plus hauts qui sert de nouvelle référence, et on entre long sur clôture plus haute que le plus-haut de référence
      (je pense qu’on devrait mettre à ce niveau une boucle… mais je ne sais pas pour combien de barres – sans doute pour une durée maximale = PeriodHi)
    • Mais ce qui complique les choses, c’est qu’entre temps, la Condition 1 peut se trouver validée => entrée en position
      … ce qui entraine l’abandon de la surveillance de la Condition 2
    • Sortie de position : Donchian classique
      Close crosses under CanalLo[1]

    Je cherche pour le moment à créer un indicateur qui prenne la valeur 1 quand on est en position, et qui repasse à 0 quand on sort.
    Pourrais-tu m’aider à programmer cela ?
    Merci par avance pour ton aide.

    #145217 quote
    Nicolas
    Keymaster
    Master

    Désolé pour la réponse tardive, cette demande est-elle toujours d’actualité ?

    #145284 quote
    patapouf
    Participant
    Average

    Bonsoir Nicolas. Merci pour ta réponse… tardive !
    A vrai dire, ça m’intéresserait bien. ne serait-ce que pour me pencher sur le code et apprendre comment faire les choses proprement !
    Si tu as le temps de regarder ça, merci par avance…

    #145309 quote
    Nicolas
    Keymaster
    Master

    En effet, il y a quelques sujets qui date du confinement, qui n’ont pas été traité, on a eu une sacré affluence à cette période, difficile de tout voir et tout traiter ! Je vais m’y plonger.

    #145310 quote
    Nicolas
    Keymaster
    Master

    voilà un premier jet en stratégie de trading automatique :

    DEFPARAM CumulateOrders = False
    
    Periodhi=50
    periodlo=50
    
    CanalHi = Highest[PeriodHi](high) 
    CanalLo = Lowest[PeriodLo](low)
    MMcourte = exponentialaverage[3](close) 
    MMlongue = exponentialaverage[20](close)
    
    //Condition 1 :
    //Clôture au-dessus de CanalHi[1]
    if not longonmarket and close crosses over CanalHi[1] then 
    buy at market 
    crossbar=0
    crosshigh=0
    endif 
    
    //Condition 2 :
    //- Sous-condition 2/1 : MMCourte croise à la hausse MMLongue.
    //On garde alors en mémoire le plus-haut de la barre pour laquelle se produit ce croisement.
    if not longonmarket and mmcourte crosses over mmlongue then 
    crossbar=barindex
    crosshigh=high
    endif
    //- Sous-condition 2/2 : une fois la sous-condition 2/1 validée, on attend qu’une nouvelle bougie clôture au-dessus de ce plus-haut enregistré.
    //Si c’est validé, on entre long
    if not longonmarket and barindex>crossbar and crossbar>0 then 
    //Si on fait un nouveau plus-haut sans clôturer au-dessus du plus-haut enregistré (= mèche),  c’est le plus haut des 2 plus hauts qui sert de nouvelle référence, et on entre long sur clôture plus haute que le plus-haut de référence
    if close<crosshigh then
    crosshigh=max(crosshigh,high)
    endif
    if close crosses over crosshigh then 
    buy at market 
    endif 
    endif 
    
    if longonmarket and close crosses under canallo[1] then 
    sell at market 
    endif 
    
    graphonprice crosshigh coloured(200,200,0)
    
    
    
    
    
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

Indicateur pour stratégie Donchian complexifiée


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
patapouf @patapouf Participant
Summary

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

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 04/20/2020
Status: Active
Attachments: No files
Logo Logo
Loading...