Support et résistance avec Ichimoku
Forums › ProRealTime forum Français › Support ProBuilder › Support et résistance avec Ichimoku
- This topic has 25 replies, 2 voices, and was last updated 4 years ago by Fantasio2020.
Tagged: ichimoku, resistance, support
-
-
10/25/2020 at 6:59 PM #148436
Bonjour la communauté,
je suis tombé sur un post par hasard, et je me demandais s’il n’y avait pas moyen d’obtenir une ligne horizontale lorsque les plats Kijun et SSB sont alignés.
123456789101112131415kijun = (highest[26](high)+lowest[26](low))/2SSB = (highest[52](high[26])+lowest[52](low[26]))/2kijunp = summation[9](Kijun=Kijun[1])=9ssbp = summation[9](SSB=SSB[1])=9if kijunp thenkijunPrice = kijunendifif ssbp thenssbPrice = SSBendifreturn kijunPrice as "Plat KIjun", ssbPrice as "Plat SSB"En effet, quand on trace une droite horizontale lorsque l’on a un plat Kijun et un plat SSB de valeur identique on obtient généralement un bon support ou une bonne résistance.
aussi, plutôt que de retourner un “Plat Kijun” pour kijunPrice et un “Plat SSB” pour ssbPrice, l’idée serait par exemple tous les “x” Barindex de tester une condition pour ces “x” Barindex:
123456if kijunPrice = ssbPrice thendrawline(SR = kijunp = SSBp)endifreturn SR as "S/R"// ou un truc du stylece serait une belle manière de tracer des support et résistance…
Si quelqu’un à une idée pour coder ça…..? (perso j’ai pas le niveau)
10/26/2020 at 8:32 AM #148468Le code ci-dessous trace une ligne horizontale dés que les plats Kijun et SSB sont identiques. Si tu souhaites utiliser une instruction et comprendre comment elle fonctionne, tu peux utiliser la documentation: https://www.prorealcode.com/prorealtime-documentation/
123456789101112131415161718kijun = (highest[26](high)+lowest[26](low))/2SSB = (highest[52](high[26])+lowest[52](low[26]))/2kijunp = summation[9](Kijun=Kijun[1])=9ssbp = summation[9](SSB=SSB[1])=9if kijunp thenkijunPrice = kijunendifif ssbp thenssbPrice = SSBendifif kijunprice=ssbprice thendrawhline(kijunprice)endifreturn //kijunPrice as "Plat KIjun", ssbPrice as "Plat SSB"10/26/2020 at 4:05 PM #148529Bonjour Nicolas,
Merci, cela fonctionne….
j’ai essayé d’apport une petite modif pour intégrer ca dans une stratégie, mais ça n’a pas l’aire de fonctionner:
1234567891011121314151617181920212223kijun = (highest[26](high)+lowest[26](low))/2SSB = (highest[52](high[26])+lowest[52](low[26]))/2kijunp = summation[9](Kijun=Kijun[1])=9ssbp = summation[9](SSB=SSB[1])=9if kijunp thenkijunPrice = kijunendifif ssbp thenssbPrice = SSBendifif kijunprice = ssbprice thenSR = kijunprice = ssbpriceif SR > Close thenResist = SRelsif SR < Close thenSupport = SRendifendifreturn support as "Support" , resist as "resist"Condition vente:
123Condition1Condition2Condition3 = (Close - Support) > pipsize*15Comment faire également pour identifier quel zone de support se trouve proche du prix?
10/26/2020 at 4:23 PM #148532Ton code identifie et enregistre le dernier support ou résistance. Donc tu ne pourras utiliser que ce dernier dans ta stratégie, si tu souhaites utiliser ceux précédemment trouvés, alors soit :
- en v10.3, il faut faire des boucles dans le passé de l’historique pour identifier l’un des supports et résistances le plus proche
- en v11, utiliser un tableau pour enregistrer les anciens niveaux et faire une boucle dans ce tableau
Par ailleurs, je ne comprends pas ce que tu cherches à faire avec ta condition de proximité dans le cas d’une vente ? Peux-tu le détailler stp ?
10/27/2020 at 7:45 AM #148617SLt Nicolas,
- Oui… En fait je remarque, avec la stratégie que j’ai mi en place, que lorsque je perd une position, c’est parce que le bot prend une position sur un support ou un résistance; et 9 fois sur 10 le prix change de sens. (j’ai donné un exemple avec une vente, mais c’est pareille à l’achat)
- donc si une opportunité se présente à moins de 15 pips d’un niveau de support ou résistance il ne doit rien faire …
- avec plus de 15 pips le mécanisme de “trailingstart/trailingstep” jouera sont rôle.
je me doutais bien que j’allais devoir utiliser des boucles pour identifier les niveaux du passé….(j’ai du mal à appréhender le mécanisme de ces boucles), je veux bien un peu d’aide.
Slts
10/27/2020 at 8:48 AM #148622Pour apprendre le fonctionnement d’une boucle, l’une des bases de la programmation, je te suggère de consulter la formation sur la programmation avancée : https://www.prorealcode.com/courses/prorealtime-programmation-avancee/
Donc tu voudrais un code compatible prorealtime 10.3 j’imagine ?
10/27/2020 at 9:07 AM #148625Re Nicolas,
Oui V10.3….. V11 pas encore dispo chez IG Market
10/27/2020 at 9:45 AM #148628Très bien, j’ai créé une stratégie toute simple qui prendra ses ordres si “allowtrading” est égal à 1 (égal à 0 si trop proche d’un SR).
Dans la boucle on teste une proximité de “distance” avec un support/resistance détecté dans les “lookback” derniers chandeliers.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758defparam cumulateorders=false// --- settingsdistance = 15 //no orders if there is a SR within X pointslookback = 1000 //lookback in bars to check recent SRtp = 30 //takeprofit in pointssl = 10 //stoploss in points// ----------------------------------// --- icihmoku support and resistancekijun = (highest[26](high)+lowest[26](low))/2SSB = (highest[52](high[26])+lowest[52](low[26]))/2kijunp = summation[9](Kijun=Kijun[1])=9ssbp = summation[9](SSB=SSB[1])=9if kijunp thenkijunPrice = kijunendifif ssbp thenssbPrice = SSBendifif kijunprice=ssbprice thenSRlevel = kijunpriceendif// ----------------------------------// --- dummy strategybuycondition = rsi[14] crosses over 50sellcondition = rsi[14] crosses under 50if buycondition or sellcondition then//check if the current price is distant from at least "distance" from recent support or resistanceallowtrading=1for i = 0 to lookback-1 dodist = abs(close-srlevel[i])<distance*pointsizeif dist thenallowtrading=0 //no trading is allowed we are near a SR!break //break the loop, no need to continue, trading is not allowed anymore!endifnext//trigger orders or notif allowtrading thenif buycondition thenbuy 1 contract at marketendifif sellcondition thensellshort 1 contract at marketendifendifset target pprofit tpset stop ploss slendif// ----------------------------------graph allowtrading as "0=near a SR , don't trade!"1 user thanked author for this post.
10/27/2020 at 10:42 AM #148639Slt Nicolas,
c’est topissime!!!
j’ai néanmoins un soucis avec la variable “i”… en effet, je travaille sur des timeframes différents (Ichimoku est dans un timeframe en 15 minutes pour identifier SRlevel en UT 15 minutes)
et lorsque j’insère la boucle en UT 10 secondes qui est mon ut de trading, le système me signale qu’une variable ne peut être utilisé dans des timeframes différents.
Une idée?
10/27/2020 at 11:02 AM #148641Problème réglé…. autant pour moi!!
10/27/2020 at 2:29 PM #148657Slt Nicolas,
Voici les résultats avec l’intégration du code:
C’est Top…! juste ce qu’il me fallait.
1 user thanked author for this post.
10/27/2020 at 3:06 PM #14866310/27/2020 at 5:17 PM #148700J’ai lancé la stratégie depuis tout à l’heure…
==> 3 arrêts du système dû à un problème de rechargement de donnée
- j’ai d’abord preloadé 15.000 Bars
- j’ai ensuite préloadé 30.000 Bars
pas de résultat…
Une idée d’où ça peut venir? LookBack?
10/27/2020 at 5:30 PM #14870210/27/2020 at 5:31 PM #148703 -
AuthorPosts
Find exclusive trading pro-tools on