Problème avec le nombre de position
Forums › ProRealTime forum Français › Support ProBuilder › Problème avec le nombre de position
- This topic has 2 replies, 2 voices, and was last updated 4 months ago by ArturAgababyan13.
-
-
08/21/2024 at 12:54 PM #236569
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 :
Dual MACD Strategy123456789101112131415161718192021222324252627282930DEFPARAM CUMULATEORDERS = FALSE// Paramètres du MACDMACDHistLong = MACD[50,200,50](close)MACDHistShort = MACD[12,26,9](close)// Paramètre de l'ATR pour le calcul du stopmyATR = 1.5 * AverageTrueRange[14](close)// Conditions d'achatConditionAchat = (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 positionIF NOT LONGONMARKET AND ConditionAchat THEN// Calcul du niveau du stop initialStopLoss = low[1] - myATR// Ouverture de la positionBUY 10 CONTRACT AT marketENDIF// Mise à jour du stop loss lorsque le MACD(12,26,9) devient négatifIF LONGONMARKET AND ConditionSortie THEN// Calcul du nouveau stopStopLoss = low[1] - myATR// Mise à jour du stop lossSET STOP Loss StopLossENDIFLorsque 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 :
Indicateur Dual MACD12345678910111213141516171819202122232425MACDHistLong = 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 THENBACKGROUNDCOLOR(50, 180, 50, 100)ENDIF// Affichage des flèchesIF ConditionAchat THENDRAWARROWUP(barindex, LOW - atr)COLOURED(0,0,0,100)ENDIFIF ConditionSortie THENDRAWARROWDOWN(barindex, HIGH + atr)COLOURED(0,0,0,100)ENDIFRETURNMerci d’avance pour vos retours et conseils.
08/21/2024 at 1:38 PM #236571Bjr,
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é”:
- 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”)
- 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.
08/21/2024 at 1:45 PM #236572Super ! 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 ?
-
AuthorPosts
Find exclusive trading pro-tools on