stratégie en MTF sur le livre de Alexander Elder (triple screen)
Forums › ProRealTime forum Français › Support ProOrder › stratégie en MTF sur le livre de Alexander Elder (triple screen)
- This topic has 7 replies, 3 voices, and was last updated 1 year ago by ArturAgababyan13.
-
-
01/15/2023 at 1:43 AM #207453
Bonjour,
J’essaie de programmer une stratégie en MTF en me basant sur le livre de Alexander Elder (stratégie Triple Screen).
Dans le livre il est expliqué que :
Screen 1 : doit afficher la tendance à long terme
Screen 2 : doit afficher une tendance opposé au Screen 1 à court terme
Screen 3 : l’ouverture de position dans le sens de la tendance du Screen 1
Pour cette stratégie j’ai choisi d’utiliser un indicateur de tendance pour le Screen 1, un oscillateur pour le Screen 2 et des conditions de breakout pour le Screen 3.Screen 1 : MACD
Screen 2 : RSI
Screen 3 : achat si cassure high[1] du timeframe Screen 2 et vente si cassure low[1] du timeframe Screen 2
Voici mon code :123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475DEFPARAM CUMULATEORDERS = FALSEDEFPARAM NoCashUpdate = FALSEDEFPARAM MinOrder = 1//DEFPARAM FlatBefore = 100000//DEFPARAM FlatAfter = 180000MinSize = 10 //CAC40 0.5 //Forex 1AmplitudeMax = 50AmplitudeMin = 20/*==============================================================================================================================*/// Ecran 1 : définir la tendance de long termeTIMEFRAME(Weekly, updateonclose)MACDhistogram = MACD[12,26,9](close)WeeklyC1 = MACDhistogram < 0 AND MACDhistogram[1] < 0WeeklyC2 = MACDhistogram > 0 AND MACDhistogram[1] > 0WeeklyC3 = MACDhistogram > MACDhistogram[1]WeeklyC4 = MACDhistogram < MACDhistogram[1]/*==============================================================================================================================*/// Ecran 2 : Définir si la tendance intérmédiaire est dans le sens opposé de la tendance LTTIMEFRAME(Daily, updateonclose)DailyRSI = RSI[14](close)DailySAR = SAR[0.02,0.02,0.2]Haut = high[1]Bas = low[1]DailyAmplitude = abs(haut - bas)// Calculer la taille de la positionDailyC1 = DailyRSI < 30DailyC2 = DailyRSI > 70DailyC3 = DailyAmplitude > AmplitudeMin AND DailyAmplitude < AmplitudeMax/*==============================================================================================================================*/// Ecran 3 : Placer les ordres d'achat et de venteTIMEFRAME(1 hour, updateonclose)// Conditions pour ouvrir une position à l'achat et pour fermer une position d'achatOneHourC1 = Close CROSSES OVER HautOneHourC2 = Close CROSSES UNDER DailySAR// Ouverture position acheteuseIF NOT ONMARKET AND (WeeklyC1 OR WeeklyC2) AND WeeklyC3 AND DailyC1 AND DailyC3 AND Close CROSSES OVER Haut THENBUY MinSize CONTRACTS AT MARKETENDIF// Clôture position acheteuseIF LongOnMarket AND OneHourC2 THENSELL AT MARKETENDIF// Conditions pour ouvrir une position à la vente et pour fermer une position à la venteOneHourC3 = Close CROSSES UNDER BasOneHourC4 = Close CROSSES OVER DailySAR// Ouverture position vendeuseIF NOT OnMarket AND (WeeklyC1 OR WeeklyC2) AND WeeklyC4 AND DailyC2 AND DailyC3 AND OneHourC3 THENSELLSHORT MinSize CONTRACTS AT MARKETENDIF// Clôture position vendeuseIF ShortOnMarket AND OneHourC4 THENEXITSHORT AT MARKETENDIF// STOP LOSS GARANTIESET STOP LOSS DailyAmplitudeIF STRATEGYPROFIT < -200 THENQUITENDIFJe souhaite utiliser cette stratégie sur les actions. Je n’ai pas encore paramétré le calcul de la taille de position c’est pour cela que la taille de la position est à 10 actions.
Mon problème et qu’après avoir tester sur plusieurs actions (avec des prix différents > 100€ ou < 100€), le backtest n’affiche rien, comme s’il n’y a pas eu de transactions. Pouvez-vous m’aider à trouver l’erreur ?
Merci d’avance !
01/16/2023 at 10:23 PM #207523Bonsoir,
Lorsque je le teste en version “Indicateur” PRT remonte un problème de TimeFrame(). Lorsque je lance l’indicateur avec une unité de temps de 1 heure ça ne fonctionne pas car les 3 TimeFrame() utilisés dans ton code ne sont pas des multiples du TimeFrame() utilisé.
A+
01/16/2023 at 10:45 PM #20752501/17/2023 at 9:27 AM #207537Bonjour,
C’est le livre : vivre du trading; version française.
01/17/2023 at 9:29 AM #207539Bonjour,
Je n’ai pas compris ce que tu veux dire par multiple. Peux-tu expliquer davantage ?
Merci
01/17/2023 at 1:06 PM #207543As-tu testé que toutes tes conditions étaient réunies pour ouvrir des positions ?
Pour ouvrir une position acheteuse, est-ce que cet ensemble de conditions est présent ? Si non, il faut les tester une par une et voir celle qui n’est pas valable:
1NOT ONMARKET AND (WeeklyC1 OR WeeklyC2) AND WeeklyC3 AND DailyC1 AND DailyC3 AND Close CROSSES OVER Haut1 user thanked author for this post.
01/17/2023 at 3:07 PM #207565Effectivement, c’est pas un problème de TF().
Comme le dis Nicolas il te faut tester les conditions d’entrées. Tu peux utiliser le fichier joint si tu veux (c’est celui d’origine modifié en indicateur)
1 user thanked author for this post.
01/18/2023 at 8:26 PM #207653Bonjour,
Merci pour la réponse, j’ai compris ce qui ne fonctionne pas. Ce sont les conditions de l’UT courte.
Les conditions des UT supérieure et intermédiaire qui marche bien.
-
AuthorPosts
Find exclusive trading pro-tools on