Problème avec le nombre de position

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #236569 quote
    ArturAgababyan13
    Participant
    New

    Bonjour,

    J’essaie de faire un backtest avec une stratégie utilisant 2 MACD. Lorsque mes conditions d’achat sont réuni un achat se fait. Je ne place pas de take profit, uniquement un Stop Loss que j’actualise dans le sens de mon trade.

    J’utilise un MACD[50,200,25] et un MACD[12.26.9]. Le but est d’acheté lorsque :

    • Le MACD[50,200,25] croise à la hausse la ligne 0
    • MACD[50,200,25]>0 et MACD[12.26.9] croise à la hausse la ligne 0

    La condition qui actualise le SL : MACD[12.26.9] croise à la baisse la ligne  0.

    Voici mon code :

    DEFPARAM CUMULATEORDERS = FALSE
    // Paramètres du MACD
    MACDHistLong          = MACD[50,200,50](close)
    MACDHistShort         = MACD[12,26,9](close)
    
    // Paramètre de l'ATR pour le calcul du stop
    myATR                 = 1.5 * AverageTrueRange[14](close)
    
    // Conditions d'achat
    ConditionAchat = (MACDHistLong crosses over 0) OR (MACDHistLong > 0 AND MACDHistShort crosses over 0)
    
    // Conditions de sortie (modification du stop loss)
    ConditionSortie = (MACDHistLong > 0 AND MACDHistShort crosses under 0)
    
    // Ouverture de la position
    IF NOT LONGONMARKET AND ConditionAchat THEN
    // Calcul du niveau du stop initial
    StopLoss = low[1] - myATR
        
    // Ouverture de la position
    BUY 10 CONTRACT AT market
    ENDIF
    
    // Mise à jour du stop loss lorsque le MACD(12,26,9) devient négatif
    IF LONGONMARKET AND ConditionSortie THEN
    // Calcul du nouveau stop
    StopLoss = low[1] - myATR
    // Mise à jour du stop loss
    SET STOP Loss StopLoss
    ENDIF
    

    Lorsque je lance le backtest j’ai une seule position qui est ouverte, pas au bon endroit et de plus cette position reste maintenu jusqu’à la date actuelle (Buy and Hold) alors que ce n’est pas ce qui est demandé.

    Ce qui est demandé est que le trade doit se terminer lorsque le SL est touché. Et ainsi de suite.

     

    J’ai une autre question qui concerne le risque le management, je souhaite utilise la règle des 2% d’Alexander Elder pour le calcul de la taille de la position dans mon backtest. C’est à dire :

    Risque max par trade à 2%  du capital.

    Taille de la position 0.02*Capital / (prix d’entré – SL initial) arrondi au inférieur.

    Merci d’avance pour votre aide.

     

    J’ai également programmé ce code en mode indicateur et l’affichage des flèches vers le haut et le bas sont correcte, voici le code de l’indicateur :

    MACDHistLong = MACD[50,200,25](close)
    MACDHistShort = MACD[12,26,9](close)
    
    atr = AverageTrueRange[14](close)*2.5
    
    // Condition pour la flèche vers le haut (achat)
    ConditionAchat = (MACDHistLong crosses over 0) OR (MACDHistLong > 0 AND MACDHistShort crosses over 0)
    
    // Condition pour la flèche vers le bas (sortie)
    ConditionSortie = (MACDHistLong > 0 AND MACDHistShort[1] crosses over 0)
    
    IF MACDHistLong > 0 THEN
    BACKGROUNDCOLOR(50, 180, 50, 100)
    ENDIF
    
    // Affichage des flèches
    IF ConditionAchat THEN
    DRAWARROWUP(barindex, LOW - atr)COLOURED(0,0,0,100)
    ENDIF
    
    IF ConditionSortie THEN
    DRAWARROWDOWN(barindex, HIGH + atr)COLOURED(0,0,0,100)
    ENDIF
    
    RETURN
    

    Merci d’avance pour vos retours et conseils.

    #236571 quote
    JC_Bywan
    Moderator
    Master

    Bjr,

    en première lecture du post, 2 éléments qui semblent coincer et créer un écart entre “ce qu’on veut demander” et “ce qu’on a demandé”:

    1. Le texte du post, ainsi que l’indicateur, parlent de MACD[50,200,25](close), alors que le code dual macd strategy utilise un autre paramétrage: MACD[50,200,50](close), a priori les tests seraient probablement à re-éxécuter en changeant ce dernier 50 en 25, puis de là voir si le problème d’entrée au mauvais endroit a disparu ou a minima a permi de passer à un “autre” problème qui correspondrait à autre chose à modifier aussi dans le code (comme pour les panneaux pour les trains aux passages à niveau “un bug peut en cacher un autre”)
    2. Un classique des stops: si on utilise set stop loss (ou ploss), on doit y indiquer une distance, pas un niveau de prix. Si on veut donner un niveau de prix plutôt qu’une distance, alors mieux vaut utiliser set stop price.
      Exemple: achat long à 7000, stop à 10 points de l’entrée, 10 est une distance et 7000-10=6990 est un niveau, soit on veut set stop ploss 10, soit on veut set stop price 6990, mais on ne veut pas set stop ploss 6990 (ce qui a été fait avec set stop loss low[1]-myATR qui a placé le stop comme étant une énorme distance jamais atteinte au lieu d’un niveau), ni set stop price 10.
    #236572 quote
    ArturAgababyan13
    Participant
    New

    Super ! Merci je n’avais pas remarqué cette erreur dans le paramétrage. Je viens de modifier et ça marche.

     

    Concernant la taille de la position en fonction du SL et des 2% du capital avez-vous également une idée à me suggérer ?

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

Problème avec le nombre de position


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by ArturAgababyan13
1 year, 5 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 08/21/2024
Status: Active
Attachments: No files
Logo Logo
Loading...