Supertrend , TP , bougie
Forums › ProRealTime forum Français › Support ProOrder › Supertrend , TP , bougie
- This topic has 14 replies, 2 voices, and was last updated 9 months ago by Idunno.
-
-
01/29/2024 at 3:35 PM #227020
Bonjour à tous,
Je me permets de solliciter votre aide, j’apprends à coder sur la plateforme PRT.
J’ai lu plusieurs posts dont celui de Nicolas sur chatgpt & le trading.
J’ai essayé de créer le code ci-dessous (qui n’a pas vraiment de sens mais qui mixent plusieurs notions), cependant ca ne marche pas du tout
Pourriez vous m’indiquer ce que je dois changer.
STratégie :
Si le prix cloture au-dessus du ST [3,10] alors prendre une position longue
Si le prix cloture en-dessus du ST [3,10] alors prendre une position short
Autres criteres sont :
Stoploss de 100
Taille de contrat 1
Targetprofit est determiné par la taille de la bougie au moment de la cloture ; le TP est compris entre 10 et 15
Si jamais une position était déjà en cours , sans atteinte du SL ni du TP , mais que le prix à la cloture croise le ST dans l’autre sens, alors fermer la position actuelle et rouvrir une autre
J’ai reussi à taper ca, si qqun trouve une erreur je suis reconnaissant
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263SET STOP pLOSS 100.0// Définir la valeur de stop lossstopLossValue = 100// Variables pour le suivi des positions et du profitinLongPosition = 0inShortPosition = 0currentrange = 0// Taille de la bougiecurrentrange = Range// Logique principale de la stratégieif close crosses under Supertrend[3,10] and not inShortPosition then// Vérifier la plage de take profitif currentrange >= 10 and currentrange <= 15 then// Fermer la position acheteuse si en position acheteuseSELLSHORT AT MARKET// Acheter une position vendeuseSELLSHORT AT MARKETinShortPosition = 1inLongPosition = 0endifendifif close crosses over Supertrend[3,10] and not inLongPosition then// Vérifier la plage de take profitif currentrange >= 10 and currentrange <= 154 then// Fermer la position vendeuse si en position vendeuseBUY AT MARKET// Acheter une position acheteuseBUY AT MARKETinLongPosition = 1inShortPosition = 0endifendif// Vérifier les conditions de stop lossif inLongPosition and low <= (positionprice - stopLossValue) then// Fermer la position acheteuse si le stop loss est atteintSELL AT MARKETinLongPosition = 0endifif inShortPosition and high >= (positionprice + stopLossValue) then// Fermer la position vendeuse si le stop loss est atteintBUY AT MARKETinShortPosition = 0endif// Vérifier les conditions de take profitif inLongPosition and high >= (positionprice + currentrange) then// Fermer la position acheteuse si le take profit est atteintSELL AT MARKETinLongPosition = 0endifif inShortPosition and low <= (positionprice - currentrange) then// Fermer la position vendeuse si le take profit est atteintBUY AT MARKETinShortPosition = 0endif01/30/2024 at 2:21 PM #22710701/30/2024 at 3:59 PM #227110J’ai tenté de mofidier mon code :
En modifiant la facon de calculer la taille de la bougie
En mdifiant les conditions de sorties des positons
Pour autant, cela ne marche toujours par
Exemple, dans l’image en pj, j’ai un signal de 10 points à 09h00 mais rien ne se declenche123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263SET STOP pLOSS 100.0// Définir la valeur de stop lossstopLossValue = 100// Variables pour le suivi des positions et du profitinLongPosition = 0inShortPosition = 0currentrange = 0// Taille de la bougiecurrentrange = close-Open// Logique principale de la stratégieif close crosses under Supertrend[3,10] and not inShortPosition then// Vérifier la plage de take profitif currentrange >= 0.5 and currentrange <= 20 then// Fermer la position acheteuse si en position acheteuseSELL AT MARKET// Acheter une position vendeuseSELLSHORT AT MARKETinShortPosition = 1inLongPosition = 0endifendifif close crosses over Supertrend[3,10] and not inLongPosition then// Vérifier la plage de take profitif currentrange >= 0.5 and currentrange <= 20 then// Fermer la position vendeuse si en position vendeuseEXITSHORT AT MARKET// Acheter une position acheteuseBUY AT MARKETinLongPosition = 1inShortPosition = 0endifendif// Vérifier les conditions de stop lossif inLongPosition and low <= (positionprice - stopLossValue) then// Fermer la position acheteuse si le stop loss est atteintSELL AT MARKETinLongPosition = 0endifif inShortPosition and high >= (positionprice + stopLossValue) then// Fermer la position vendeuse si le stop loss est atteintBUY AT MARKETinShortPosition = 0endif// Vérifier les conditions de take profitif inLongPosition and high >= (positionprice + currentrange) then// Fermer la position acheteuse si le take profit est atteintSELL AT MARKETinLongPosition = 0endifif inShortPosition and low <= (positionprice - currentrange) then// Fermer la position vendeuse si le take profit est atteintBUY AT MARKETinShortPosition = 0endif01/31/2024 at 9:36 AM #227143Ce que tu cherches à coder peut être fait plus simplement, je n’ai cependant pas bien saisi ton message sur: “le TP est compris entre 10 et 15”, j’ai donc simplement utilisé un takeprofit de 15 points:
1234567891011121314151617181920212223// Paramètres du SupertrendPeriode = 10 // Période du SupertrendMultiplicateur = 3 // Multiplicateur du Supertrend// Calcul du SupertrendSupertrend = Supertrend[Periode, Multiplicateur]// Conditions d'entréeAchat = close crosses over SupertrendVente = close crosses under Supertrend// Exécution des ordresif Achat thenbuy 1 contract at marketset stop ploss 100set target pprofit 15endifif Vente thensellshort 1 contract at marketset stop ploss 100set target pprofit 15endifCette stratégie achète (position longue) lorsque le prix croise au-dessus du Supertrend et vend à découvert (position courte) lorsque le prix croise en dessous du Supertrend. Pour chaque position, un stop loss est fixé à 100 points et un take profit à 15 points.
01/31/2024 at 11:36 AM #227166Bonjour
Merci pour ta réponse
En fait, le targetprofit est determiné par la taille de la bougie qui clos en dessous ou au dessus du supetrend ; et donc si la taille de la bougie est compris entre 10 & 15 alors je rentre en position.
Egalement, les conditions de sorties sont
Atteinte du stoploss de 100 pts
Supertrend renversé (je suis par exemple en position acheteuse, le TP et le SL de 100 points ne sont pas touchés mais le Supertrend passe en dessous du prix à la cloture de la bougie , je dois donc fermer la position existante et ouvrir une nouvelle position acheteuse)
J’ai essayé de reproduire cela dans mon code , mais cela ne fonctionne pas
Par exemple, imaginons sur une paire de devise EURJPY
Bougie qui commence à 09 h 30 , clos à 10h00: La bougie clos en dessous du SUpertrend, aucune position ouverte , la bougie a une taille de 13 –> J’entre en position vendeuse avec un TP de 13 points et un SL 100 pts
Entre 09h30 & 12h30 les prix évoluent faiblement sans toucher le TP ni le SL
Bougie de 12h30 – 13h00 , la bougie clos au dessus du ST avec une taille de 14 , dans ce cas , je ferme la position vendeuse actuelle, j’ouvre une position acheteuse avec un TP de 14
MErci par avance pour l’aide
02/01/2024 at 1:47 PM #227243Pour adapter le code selon ta demande, il faut intégrer les conditions de taille de bougie et la gestion du stoploss et de l’ouverture d’une nouvelle position quand le Supertrend se renverse. Voici le code adapté :
123456789101112131415161718192021222324252627282930313233343536373839404142434445// Paramètres du SupertrendPeriode = 10Multiplicateur = 3// Calcul du SupertrendSt = Supertrend[Periode, Multiplicateur]// Calcul de la taille de la bougieTailleBougie = abs(high-low)// Conditions d'entréeAchat = close crosses over st and TailleBougie >= 10*pointsize and TailleBougie <= 15*pointsizeVente = close crosses under st and TailleBougie >= 10*pointsize and TailleBougie <= 15*pointsize// Exécution des ordres et gestion du stoploss et du renversement du Supertrendif Achat thenbuy 1 contract at marketset stop ploss 100set target pprofit TailleBougieendifif Vente thensellshort 1 contract at marketset stop ploss 100set target pprofit TailleBougieendif// Gestion de la fermeture de la position en cas de renversement du Supertrendif longonmarket and close crosses under st thensell at marketif Vente thensellshort 1 contract at marketset stop ploss 100set target pprofit TailleBougieendifendifif shortonmarket and close crosses over st thenexitshort at marketif Achat thenbuy 1 contract at marketset stop ploss 100set target pprofit TailleBougieendifendifCe code prend en compte la taille de la bougie pour définir le target profit, et aussi gère la fermeture et l’ouverture d’une nouvelle position quand le Supertrend se renverse, sans atteindre le stoploss ou le target profit initial.
02/01/2024 at 2:20 PM #22724602/01/2024 at 4:38 PM #227255Je reviens vers vous :
J’ai testé le code, et en backtest et en réel il ne se lance pas.
Je m’explique, je prends le NZDUSD 30 minutes aujourd’hui, la bougie de 15h30 cloture au dessus du ST avec une taille de bougie de 12.3
Ouverture 0.60977
Fermeture 0.61089
Normalement, cela devrait ouvrir une position acheteuse mais rien ne s’est passé
J’ai vérifié , le systeme etait bien lancé.
Est ce qu’ily a une subtilité qui m’échappe?
Merci par avance
02/01/2024 at 4:46 PM #22725602/01/2024 at 7:27 PM #227266Nicolas , j’essaye de trouver
Ne serait ce pas dans le code à cet endroit qu’il y a une inversion Periode, Multiplicateur
J’essaye de comprendre par moi-m$eme, mais je suis d”butant
Merci par avance123456// Paramètres du SupertrendPeriode = 10Multiplicateur = 3// Calcul du SupertrendSt = Supertrend[Periode, Multiplicateur]02/02/2024 at 12:22 PM #227307J’ai reussi à trouver
Dernier élément : le TP se calcule sur la 5eme decimale.
Je suppose que je dois modifier cette ligne
12// Calcul de la taille de la bougieTailleBougie = abs(high-low)et la remplacer par
12// Calcul de la taille de la bougieTailleBougie = abs(high-low)*1002/05/2024 at 3:00 AM #22740402/06/2024 at 1:00 PM #22746402/06/2024 at 7:13 PM #227486Finalement, ma méthode de contournement ne marche pas.
J’ai essayé de
Modifier le take profit en faisant taillebougie*10
Modifier le calcul de taille de la bougie
Utiliser pipsize en lieu de pointsize
Cela ne fonctionne pas, en fait, lorsque je trouve 10 pips par exemple entre
1.07562 & 1.07463
Mais le code dans le cadre d’une position short va me generer un objectif à 1.07462 alors que je m’attends à 1.07362
Merci par avance pour votre aide
02/19/2024 at 2:14 PM #228396Bonjour à tous
Je me permet desolliciter votre aide de nouveau
J’essaye toujours d’apprendre avec le code ;ici, je remarque que le code sur ce bloc
- La position va bien se fermer
- La nouvelle position ne s(ouvre pas et je ne comprends aps pourquoi ; j’ai joué sur les parametres pour mettre plusieurs contrtats ouverts en même temps mais rien n’y faitSi qqun aurait une solution je suis preneurMErci par avance
123456789101112131415161718// Gestion de la fermeture de la position en cas de renversement du Supertrendif longonmarket and close crosses under st thensell at marketif Vente thensellshort 1 contract at marketset stop ploss 100set target pprofit TailleBougieendifendifif shortonmarket and close crosses over st thenexitshort at marketif Achat thenbuy 1 contract at marketset stop ploss 100set target pprofit TailleBougieendifendif
-
AuthorPosts
Find exclusive trading pro-tools on