stratégie de trading basée sur le fractal de Bill Williams
Forums › ProRealTime forum Français › Support ProOrder › stratégie de trading basée sur le fractal de Bill Williams
- This topic has 29 replies, 2 voices, and was last updated 2 years ago by fifi743.
-
-
01/14/2019 at 3:28 PM #88577
En reprenant le code que t’a gentiment fait Magifina, on pourrait les placer ainsi :
1234567891011121314151617181920212223242526272829303132333435363738394041DEFPARAM Cumulateorders=false// Visualisation des fractales avec flèchesArrow = 0// Nombres de bougies constituant la fractale (impair)// libre à vous de changer ce nombre, qui doit être impairNcandles = 4// Nombres de bougies de chaque côté de la bougie extrêmeNside = (Ncandles) / 2// Définition de la fractale supérieureIF high[Nside] >= highest[Ncandles](high) THEN//Fup = high[Nside]Arrow = 1buylevel = high[Nside]ENDIF// Définition de la fractale inférieureIF low[Nside] <= lowest[Ncandles](low) THEN//Fdown = low[Nside]Arrow = -1selllevel = low[Nside]ENDIF// Tracé des flèchesIF Arrow = 1 THENBUY 1 CONTRACT AT buylevel stopENDIFIF //rajoute ici ta condition de sortie de position long// THENSELL AT MARKETENDIFIF Arrow = -1 THENSELLSHORT 1 CONTRACT AT selllevel stopENDIFIF //rajoute ici ta condition de sortie de position short// THENEXITSHORT AT MARKETENDIFJe n’ai pas testé dans la plateforme, à vérifier.
01/14/2019 at 7:57 PM #8861401/15/2019 at 9:33 AM #88652…Merci d’écrire en français dans un sujet rédigé en français 🙂
En effet, il y a des erreurs de syntaxe, cela dépend des conditions de sorties que tu souhaites y ajouter, donc faire un peu de programmation. Sinon dans le genre tout cuit, on aurait :
1234567891011121314151617181920212223242526272829303132333435363738394041DEFPARAM Cumulateorders=false// Visualisation des fractales avec flèchesArrow = 0// Nombres de bougies constituant la fractale (impair)// libre à vous de changer ce nombre, qui doit être impairNcandles = 4// Nombres de bougies de chaque côté de la bougie extrêmeNside = (Ncandles) / 2// Définition de la fractale supérieureIF high[Nside] >= highest[Ncandles](high) THEN//Fup = high[Nside]Arrow = 1buylevel = high[Nside]ENDIF// Définition de la fractale inférieureIF low[Nside] <= lowest[Ncandles](low) THEN//Fdown = low[Nside]Arrow = -1selllevel = low[Nside]ENDIF// Tracé des flèchesIF Arrow = 1 THENBUY 1 CONTRACT AT buylevel stopENDIFIF //rajoute ici ta condition de sortie de position long// THENSELL AT MARKETENDIFIF Arrow = -1 THENSELLSHORT 1 CONTRACT AT selllevel stopENDIFIF //rajoute ici ta condition de sortie de position short// THENEXITSHORT AT MARKETENDIFDonc ici, ce sera uniquement un ordre inverse qui fermera le précédent et ainsi de suite.
01/17/2019 at 10:49 AM #88896Bonjour, Merci de votre aide Nicolas je début en programmation du coup c’est un peut difficile pour moi.
je souhaiterais aussi rajouter un TP qui ce place sur le point pivot le plus proche dans le sens du marché.
Je pense qu’il faut faire une boucle pour analyse la distance des pivot mais je sais pas comment la construire….
01/17/2019 at 3:23 PM #88943J’avais justement un petit snippet à ce propos sous la main, à tester en profondeur, j’ai fais ça rapidement :
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110DEFPARAM Cumulateorders=false// Visualisation des fractales avec flèchesArrow = 0// Nombres de bougies constituant la fractale (impair)// libre à vous de changer ce nombre, qui doit être impairNcandles = 4// Nombres de bougies de chaque côté de la bougie extrêmeNside = (Ncandles) / 2// Définition de la fractale supérieureIF high[Nside] >= highest[Ncandles](high) THEN//Fup = high[Nside]Arrow = 1buylevel = high[Nside]ENDIF// Définition de la fractale inférieureIF low[Nside] <= lowest[Ncandles](low) THEN//Fdown = low[Nside]Arrow = -1selllevel = low[Nside]ENDIF//compute takeprofit based on pivot pointsHt = DHigh(1)Bs = DLow(1)C = DClose(1)Pivot = (Ht + Bs + C) / 3Res3 = Res1 + (Ht - Bs)Res2 = Pivot + Ht - BsRes1 = (2 * Pivot) - BsSup1 = (2 * Pivot) - HtSup2 = Pivot - (Ht - Bs)Sup3 = Sup1 - (Ht - Bs)if close>pivot then//** above Pivot **i=1while i<=3 doif i=1 thenfloor=pivotceil=res1if close>floor and close<ceil thenbreakendifelsif i=2 thenfloor=res1ceil=res2if close>floor and close<ceil thenbreakendifelsif i=3 thenfloor=res2ceil=res3if close>floor and close<ceil thenbreakendifendifi=i+1wendelsif close<pivot then//** below Pivot **i=1while i<=3 doif i=1 thenfloor=sup1ceil=pivotif close>floor and close<ceil thenbreakendifelsif i=2 thenfloor=sup2ceil=sup1if close>floor and close<ceil thenbreakendifelsif i=3 thenfloor=sup3ceil=sup2if close>floor and close<ceil thenbreakendifendifi=i+1wendendif// Tracé des flèchesIF Arrow = 1 and not longonmarket THENBUY 1 CONTRACT AT buylevel stopsell at ceil limitENDIFIF Arrow = -1 and not shortonmarket THENSELLSHORT 1 CONTRACT AT selllevel stopexitshort at floor limitENDIFif longonmarket thensell at ceil limitendifif shortonmarket thenexitshort at floor limitendifgraph floor coloured(0,200,200)graph ceil coloured(200,0,0)La stratégie est presque toujours au marché, puisqu’on prend chaque cassure de fractals. Par ailleurs il n’y a pas de stoploss.
01/29/2019 at 2:06 PM #89942Bonjour, toujour sur mon bot je suis arriver a l’etape de faire un trailing stop qui ce déplace a chaque nouvelle fractals qui s’affiche mais prt ne le prend jamais en compte est ce que vous pourriez m’aider ?
Le but etant que a l’achat par exemple le stop ce place sur la dernière fractals présente et remonte de fractals en fractals.
merci d’avance pour votre aide. 🙂
01/29/2019 at 2:38 PM #8994301/29/2019 at 3:30 PM #89951Je vous met mon code en piece jointe prt ne le prend pas en compte si vous pouviez me corriger ce serait super.
merci.
01/29/2019 at 3:46 PM #8995601/31/2019 at 3:22 PM #90146Bonjour, merci de votre aide, j’ai un nouveau probleme le bot, ne trade presque pas je ne comprend pas pourquoi… je fais mes test sur le DJ 15M .
fractals 15m DJ123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384// configDEFPARAM CumulateOrders = falsedefparam flatafter = 220000defparam flatbefore = 090000// Variables//Tenkan = (highest[9](high)+lowest[9](low))/2Kijun = (highest[26](high)+lowest[26](low))/2av1 = Average[100](close)av2 = average[200](close)Ncandles = 4Nside = (Ncandles)/2// Conditions pour ouvrir une position acheteuseIF high[Nside] >= highest[Ncandles](high) THENif close > kijun thenif av2 < close thenbuy 1 contract at high[Nside] stopendifendifendif// Conditions pour fermer une position acheteuseif close < av1 thenSELL at marketendif//// Conditions pour ouvrir une position en vente à découvertIF low[Nside] <= lowest[Ncandles](low) THENif close < kijun thenif av2 > close thensellshort 1 contract at low[Nside]stopendifendifendif// Conditions pour fermer une position en vente à découvertif close > av1 thenexitshort at marketendif// gestion du stop loss et pertesset stop %loss 1set target pprofit 50trailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 10 //trailing step to move the "stoploss"IF NOT ONMARKET THENnewSL=0ENDIFIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIFIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIFIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF10/27/2022 at 11:09 PM #203132Bonsoir Moustiks,
En complément des instructions d’entrée en position “buy” ou “sellshort” tu dois rajouter tes conditions de sortie. L’instruction “return” est également à retirer car elle est réserver aux indicateurs.
Pour terminer ton code je rajouterai en première ligne “defparam cumulateorders=false” pour éviter la cumulation d’ordres.
Je te propose donc le code suivant:
Code fractale123456789101112131415161718192021222324252627282930313233343536373839DEFPARAM Cumulateorders=false// Visualisation des fractales avec flèchesArrow = 0// Nombres de bougies constituant la fractale (impair)// libre à vous de changer ce nombre, qui doit être impairNcandles = 4// Nombres de bougies de chaque côté de la bougie extrêmeNside = (Ncandles) / 2// Définition de la fractale supérieureIF high[Nside] >= highest[Ncandles](high) THEN//Fup = high[Nside]Arrow = 1ENDIF// Définition de la fractale inférieureIF low[Nside] <= lowest[Ncandles](low) THEN//Fdown = low[Nside]Arrow = –1ENDIF// Tracé des flèchesIF Arrow = 1 THENBUY 1 CONTRACT AT MARKETENDIFIF //rajoute ici ta condition de sortie de position long// THENSELL AT MARKETENDIFIF Arrow = –1 THENSELLSHORT 1 CONTRACT AT MARKETENDIFIF //rajoute ici ta condition de sortie de position short// THENEXITSHORT AT MARKETENDIFBonjour
Je suppose que ce robot trade les cassures de niveaux de fractales? Est ce qu il met directement un ordre d achat au depassement de la fractale ou a la bougie suivante,moi je prefererais directement a la cassure si c possible
Je voudrais inserer au bon endroit dans ce code un breakeven de 8 points
un stoploss de 25 points
un takeprofit de 25 points
comme code de sortie de position
Merci d avance
Sandro
10/28/2022 at 4:21 PM #203162Bonsoir Moustiks,
En complément des instructions d’entrée en position “buy” ou “sellshort” tu dois rajouter tes conditions de sortie. L’instruction “return” est également à retirer car elle est réserver aux indicateurs.
Pour terminer ton code je rajouterai en première ligne “defparam cumulateorders=false” pour éviter la cumulation d’ordres.
Je te propose donc le code suivant:
Code fractale123456789101112131415161718192021222324252627282930313233343536373839DEFPARAM Cumulateorders=false// Visualisation des fractales avec flèchesArrow = 0// Nombres de bougies constituant la fractale (impair)// libre à vous de changer ce nombre, qui doit être impairNcandles = 4// Nombres de bougies de chaque côté de la bougie extrêmeNside = (Ncandles) / 2// Définition de la fractale supérieureIF high[Nside] >= highest[Ncandles](high) THEN//Fup = high[Nside]Arrow = 1ENDIF// Définition de la fractale inférieureIF low[Nside] <= lowest[Ncandles](low) THEN//Fdown = low[Nside]Arrow = –1ENDIF// Tracé des flèchesIF Arrow = 1 THENBUY 1 CONTRACT AT MARKETENDIFIF //rajoute ici ta condition de sortie de position long// THENSELL AT MARKETENDIFIF Arrow = –1 THENSELLSHORT 1 CONTRACT AT MARKETENDIFIF //rajoute ici ta condition de sortie de position short// THENEXITSHORT AT MARKETENDIFBonjour
Je suppose que ce robot trade les cassures de niveaux de fractales? Est ce qu il met directement un ordre d achat au depassement de la fractale ou a la bougie suivante,moi je prefererais directement a la cassure si c possible
Je voudrais inserer au bon endroit dans ce code un breakeven de 8 points
un stoploss de 25 points
un takeprofit de 25 points
comme code de sortie de position
Merci d avance
Sandro
Rebonjour,
Y a t il un service payant pour que quelqun m adapte un peu le code , en trading manuel je suis satisfait mais pas envie de passer des heures devant l écran. En plus je voulais voir si sur le long terme c est viable………..Encore merci 🙂
10/28/2022 at 7:56 PM #20317210/29/2022 at 2:06 PM #20319210/30/2022 at 10:32 AM #203216il faut modifier la variable distance qui donne le signal pour mettre le BE a 8 pts
on peut utiliser la variable breakeven aussi ,mais pour la compréhension voici comment on écrivait avant
en bas j’ai un graph qui vous dit ou est le breakeven12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485DEFPARAM Cumulateorders=false// Visualisation des fractales avec flèchesArrow = 0// Nombres de bougies constituant la fractale (impair)// libre à vous de changer ce nombre, qui doit être impairNcandles = 4// Nombres de bougies de chaque côté de la bougie extrêmeNside = (Ncandles) / 2// Définition de la fractale supérieureIF high[Nside] >= highest[Ncandles](high) THEN//Fup = high[Nside]Arrow = 1ENDIF// Définition de la fractale inférieureIF low[Nside] <= lowest[Ncandles](low) THEN//Fdown = low[Nside]Arrow = -1ENDIF//========condition==========// Tracé des flèchesIF Arrow = 1 THENBUY 1 CONTRACT AT MARKETENDIFIF Arrow = -1 THENSELLSHORT 1 CONTRACT AT MARKETENDIFSET STOP PLOSS 25SET TARGET PPROFIT 25//==========breakevendistance=30*pointsizeBE=8*pointsizeif not onmarket thenbreakev=0endifif longonmarket and close-tradeprice>distance thenbreakev=tradeprice+BEendifif shortonmarket and tradeprice-close<distance thenbreakev=tradeprice-BEendifif breakev>0 thensell at breakev stopexitshort at breakev stopendif//=============ARRET=======//IF //rajoute ici ta condition de sortie de position long// THEN////SELL AT MARKET////ENDIF////IF //rajoute ici ta condition de sortie de position short// THEN////EXITSHORT AT MARKET////ENDIFgraph breakev1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on