Vente sur le MACD ?

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

    Bonjour,

    J’essaie de coder une stratégie de vente sur base du MACD.

    J’ai un code mais qui n’opère pas comme je le souhaite, pouvez-vous m’aider?

    L’idée est de vendre au marché lorsque le MACD arrive à -4, mais à la condition que précède une bougie MACD qui a clôturée à +2.

    J’ai donc développé ceci, qui s’active à -4 mais ré enchaine les ventes sans tenir compte de la seconde variable, ou du moins en terme de bougie… :

    // Calcul de la MACD
    macdValue = macd[6,26,10]
    isignal = macdsignal[6,26,10]
    // Conditions de la stratégie
    previousClose = close[1]
    currentClose = close
    // Conditions pour vendre à découvert
    if macdValue crosses under -4 and previousclose > 2 then
    sellshort at market
    endif

     

    Avec ceci, la vente s’active donc à -4 et se réactive dès que le MACD passe à -2 puis -4.

    #242182 quote
    robertogozzi
    Moderator
    New

    Ce serait le code correct:

    // Calcul de la MACD
    macdValue = macd[6,26,10]
    isignal = macdsignal[6,26,10]
    // Conditions de la stratégie
    //previousClose = close[1]
    //currentClose = close
    // Conditions pour vendre à découvert
    if macdValue = -4 and macdValue[1] = 2 then// previousclose > 2 then
       sellshort at market
    endif

    Mais cela n’ouvrira JAMAIS aucune position car il est impossible que le Macd actuel soit exactement -4 et le précédent 2.
    Ils peuvent être -3,993 ou 4,001, ou 1,995 ou 2,003, etc…
    J’ai modifié le code pour qu’il vérifie une certaine plage, au lieu de 4 il suffit que la valeur soit comprise entre -3,5 et -4,5 et pour la bougie précédente, entre 1,5 et 2,5.
    De cette façon, une transaction devrait parfois s’ouvrir.
    J’ai également mis un SL et un TP à tester.

    // Calcul de la MACD
    macdValue = macd[12,26,9]
    isignal = macdsignal[12,26,9]
    // Conditions de la stratégie
    //previousClose = close[1]
    //currentClose = close
    // Conditions pour vendre à découvert
    if (macdValue <= -3.5) and (macdValue >= -4.5) and (macdValue[1] >= 1.5) and (macdValue[1] <= 2.5) then// previousclose > 2 then
       sellshort at market
       set target %profit 0.5
       set stop   %loss   0.5
    endif
    Iván thanked this post
    #242193 quote
    Nicoa
    Participant
    New

    Ok, voilà pourquoi j’avais l’impression que la vente s’effectuait toujours avec un temps de retard.

    Merci pour ces explications, il est donc plus judicieux de parler de zone avec le MACD.

    Par contre le second code n’ouvre aucune position tandis que le premier bien. Mais pas tout à fait comme je le souhaite.

    Avec vos explications, l’idée serait alors que la vente s’active lorsque le Macd est dans la zone des 4 mais mon problème est qu’elle doit s’activer uniquement si c’est précédé d’une bougie Macd bleu qui a clôturée au delà de la zone des 2. Et cette dernière partie semble coincer.

    #242461 quote
    JC_Bywan
    Moderator
    New

    Bonjour,

    Avant tout au cas où, ça vaut le coup de préciser que si tu veux l’histogramme MACD (= la différence entre la ligne MACD et la ligne de signal), alors tu peux effectivement utiliser le mot clé MACD dans macdValue = MACD[6,26,10]

    Mais si tu voulais la ligne MACD (la différence entre la mm exponentielle courte ici période 6, et la mm exponentielle longue ici période 26), alors : macdValue = macdline[6,26,10]

    Je te propose d’approcher le problème avec l’instruction CROSSES UNDER, qui permet de voir quand on passe sous une valeur donnée. Ainsi macdvalue cross under 2 permet de détecter quand tu étais au-dessus de 2 la période précédente et que tu passes en-dessous.

    Et comme tu veux te retrouver sous -4, tu peux le combiner avec un macdvalue cross under -4 qui détecte que tu étais au-dessus de -4 avant et que tu viens de passer en-dessous.

    Si les 2 sont vrais simultanément, alors c’est tu es passé d’au-dessus de +2 à en-dessous de -4, donc tu peux les grouper avec AND, ce qui donne:

     

    macdValue = MACD[6,26,10] // ou macdValue = macdline[6,26,10] si on voulait la ligne plutôt que l'histogramme
    IF macdValue CROSSES UNDER +2 and macdValue CROSSES UNDER -4 then
    SELLSHORT 1 contract at market
    ENDIF
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Vente sur le MACD ?


Support ProOrder

New Reply
Author
author-avatar
Nicoa @nicoa Participant
Summary

This topic contains 3 replies,
has 3 voices, and was last updated by JC_Bywan
1 year ago.

Topic Details
Forum: Support ProOrder
Language: French
Started: 01/04/2025
Status: Active
Attachments: No files
Logo Logo
Loading...