Ajout de condition pour indicateur Divergence RSI
Forums › ProRealTime forum Français › Support ProBuilder › Ajout de condition pour indicateur Divergence RSI
- This topic has 47 replies, 5 voices, and was last updated 1 year ago by JC_Bywan.
Tagged: divergences
-
-
06/07/2020 at 4:48 PM #13506406/18/2020 at 9:30 AM #136370
salut et merci pour ce partage c’est exactment ce que je cherchais. J’ai installé le screener et l’indicateur et quand le screener me trouve des actions l’indicateur ne m’affiche aucune divergence. Est ce du au fait que j’utilise un graphe journalier et hebdo ?
06/18/2020 at 10:37 AM #13638412/23/2020 at 8:15 PM #155032Bonjour à tous,
La programmation ne faisant pas partie de mes compétences. L’idée est de créer un screener de divergences haussières et baissières, jusque là rien de compliqué il existe déjà, la particularité que je souhaite est d’anticiper la divergence, en fait d’être prévenu via le Screener lorsque la première bougie du point B de la divergence en RSI clôture sous la valeur de 30, ou au dessus de la valeur de 70. Je souhaite avec ce screener en daily pouvoir analyser techniquement les futures divergences, afin d’éliminer un maximum de mauvaises divergences, merci de votre aide et vous souhaite de bonnes fêtes de fin d’année, avec bcp de gains en bourse.
Pascal
01/02/2021 at 10:08 AM #155905@Noelopan1 En utilisant quelle version du code de divergences de ce sujet ? Merci.
1 user thanked author for this post.
02/23/2023 at 7:01 PM #210327Bonjour,
Est il possible de modifier le screener? Je souhaites que la divergence soit validée par le screener après 2 clôtures une fois le 2ème pic identifié .
Je souhaites également qu’il affiche uniquement les actions dont la capitalisation est supérieurs à 500 000 000€
les paramètres doit être paramétrable depuis: // — settings.
En vous souhaitant une bonne soirée
screener divergence1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283//PRC_AnotherRSIdivergences | indicator//25.02.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingsRSIp=14 //RSI periodobLevel=70 //overbought levelosLevel=30 //oversold levelminimalBars=5 //minimal count of bars where RSI is ob or osminBarBetween = 4maxBarBetween = 16noLowerThan = 60noHigherThan = 40// --- end of settingsirsi = rsi[RSIp]ob = irsi>obLevelos = irsi<osLevelif ob thenif not ob[1] thenmaxrsi = 0maxprice = 0firstobbar = barindexendifmaxrsi=max(maxrsi,irsi)maxprice=max(maxprice,high)if maxrsi<>maxrsi[1] thenmaxrsibar=barindexendifendifif os thenif not os[1] thenminrsi = 100minprice = close*100firstosbar = barindexendifminrsi=min(minrsi,irsi)minprice=min(minprice,low)if minrsi<>minrsi[1] thenminrsibar=barindexendifendifdivsell=0if irsi crosses under obLevel then//verif divergencebarcount=maxrsibar-oldmaxrsibardiv = maxprice>oldmaxprice and maxrsi<oldmaxrsi and (barindex-firstobbar)>=minimalBars and barcount>=minbarbetween and barcount<=maxbarbetween and summation[max(1,barcount)](irsi<noLowerThan)=0if div then//drawsegment(oldmaxrsibar,oldmaxrsi,maxrsibar,maxrsi) coloured(200,0,0)//drawarrowdown(maxrsibar,maxrsi) coloured(200,0,0)divsell=osLevelendifoldmaxrsi = maxrsioldmaxprice = maxpriceoldmaxrsibar = maxrsibarendifdivbuy=0if irsi crosses over osLevel then//verif divergencebarcount=minrsibar-oldminrsibardiv = minprice<oldminprice and minrsi>oldminrsi and (barindex-firstosbar)>=minimalBars and barcount>=minbarbetween and barcount<=maxbarbetween and summation[max(1,barcount)](irsi>noHigherThan)=0if div then//drawsegment(oldminrsibar,oldminrsi,minrsibar,minrsi) coloured(0,200,0)//drawarrowup(minrsibar,minrsi) coloured(0,200,0)divbuy=osLevelendifoldminrsi = minrsioldminprice = minpriceoldminrsibar = minrsibarendifscreener[divbuy or divsell](max(divbuy,divsell))03/02/2023 at 12:50 AM #210737Bonjour,
L’indicateur ne fonctionne pas comme je le souhaite, j’ai tenter de le magouiller à ma sauce mais je n’y arrive pas.
Je l’ai décortiquer et j’aimerais qui fonctionne comme la description ci-dessous.
Ci-dessous, un descriptif de comment je souhaites qu’il détecte les divergences.
Définition divergence haussières :
Le RSI arrive en zone de survente en dessous de osLevel pour lancer le processus de détection de divergence, le prix à prendre en compte est celui en clôture pour l’ensemble des divergences.
Recherche du premier creux :
Pour chaque barre ou les RSI est en survente, il mémorise minrsi et minprice jusqu’à ce que minrsi et minprice soit le plus bas à la recherche du premier creux. L’index le plus bas est mémorisé dans minrsibar.
Recherche du sommet :
Le code vérifie si le RSI a augmenté par rapport à une barre antérieure et si le prix a augmenté, dans cette période le RSI doit rester sous le niveau noLowerThan. Inclure une fonction de mémorisation du minimum RSI enregistré qui deviendra le bruit (pour divergence haussière), cette valeur devra rester au-dessus de noHigherThan.
Recherche du deuxième creux :
Les RSI baisse à nouveau en même temps que le prix, si les valeurs de prix sont plus basses que lors du premier creux alors les valeurs minrsi, minprice et minrsibar deviennent oldminrsi, oldminprice et oldminrsibar.
Tant que les valeurs prix er RSI baissent les mémoriser dans minrsi et, minprice. L’index le plus bas est mémorisé dans minrsibar.
Validation de la divergence haussière :
Si minrsibar est supérieur à oldmin rsi et minprice est inférieur à oldminprice et que le bruit est inférieur à noHigherThan alors une divergence est possible. La divergence sera validée (divbuy) lorsque le RSI sera au-dessus de noHigherThan en clôture.
Définition divergence baissière :
Le RSI arrive en zone de surachat au-dessus de obLevel pour lancer le processus de détection de divergence, le prix à prendre en compte est celui en clôture pour l’ensemble des divergences.
Recherche du premier sommet :
Pour chaque barre ou les RSI est en surachat, il mémorise maxrsi et maxprice jusqu’à ce que maxrsi et maxprice soit le plus haut à la recherche du premier sommet. L’index le plus haut est mémorisé dans maxrsibar.
Recherche du creux :
Le code vérifie si le RSI a baissé par rapport à une barre antérieure et si le prix a baissé, dans cette période le RSI doit rester au-dessus le niveau noHigherThan. Inclure une fonction de mémorisation du maximum RSI enregistré qui deviendra le bruit (pour divergence haussière), cette valeur devra rester en dessous de noHigherThan.
Recherche du deuxième sommet :
Les RSI monte à nouveau en même temps que le prix, si les valeurs de prix sont plus hautes que lors du premier creux alors les valeurs maxrsi, maxprice et maxrsibar deviennent oldmaxrsi, oldmaxprice et oldmaxrsibar.
Tant que les valeurs prix et RSI montent les mémoriser dans maxrsi et, maxprice. L’index le plus haut est mémorisé dans maxrsibar.
Validation de la divergence baissière :
Si maxrsibar est inérieur à oldmaxrsi et maxprice est supérieur à oldmaxprice et que le bruit est supérieur à noLowerThan alors une divergence est possible. La divergence sera validée (divsell) lorsque le RSI sera au-dessous de noLowerThan en clôture.
Affichage des divergences:
Une petite barre rouge ou verte est affichée sous le RSI en cas de divergence validée ainsi que le trait qui relie les 2 sommets comme à l’heure actuelle.
Je vous remercie d’avance pour votre aide
03/08/2023 at 11:04 PM #211156Le code ci-dessous devrait répondre à ta demande. La divergence est dessinée dès qu’elle est détectée, la flèche verte ou rouge, une fois seulement que le RSI casse le “bruit”. La divergence devient caduque au bout de 12 bougies si la cassure du “bruit” n’a pas lieu…
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154//PRC_AnotherRSIdivergences | indicator//25.02.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingsRSIp=14 //RSI periodobLevel=70 //overbought levelosLevel=30 //oversold levelminimalObBars=5 //minimal count of bars where RSI is ob or osminBarBetween = 4maxBarBetween = 16noLowerThan = 60noHigherThan = 40// --- end of settingsonce maxrsi1 = 0once minrsi1 = 100irsi = rsi[RSIp]ob = irsi>=obLevelos = irsi<=osLeveldivbuy = 0divsell = 0if irsi < noLowerThan and BearDiv = 0 thenmaxrsi1 = 0endifif ob thenif ob[1]=0 thenfirstobbar = barindex-1endifif irsi > maxrsi1 thenmaxrsi1=irsimaxprice1=highmaxclose1=closemaxrsibar1=barindexminrsi12=maxrsi1maxrsi2=0endifif maxrsi1>0 thenlastobbar = barindexendifEndifif irsi < maxrsi1 and BearDiv = 0 thenminrsi12=min(minrsi12,irsi)If minrsi12<>minrsi12[1] thenminprice12=lowminclose12=closeminrsibar12=barindexmaxrsi2=minrsi12endifendifif irsi > minrsi12 thenmaxrsi2=max(maxrsi2,irsi)If maxrsi2<>maxrsi2[1] thenmaxprice2=highmaxclose2=closemaxrsibar2=barindexendifendifIf maxrsi1 > 0 thenbarcount=maxrsibar2-maxrsibar1BearDiv = (maxprice2>maxprice1 or maxclose2>maxclose1) and maxrsi2<maxrsi1 and barcount>=minbarbetween and barcount<=maxbarbetween and maxrsi2 > minrsi12//and (lastobbar-firstobbar)>=minimalObBarsif BearDiv and irsi < maxrsi2 thendrawsegment(maxrsibar1,maxrsi1,maxrsibar2,maxrsi2)style(line,2)coloured("tomato")drawsegment(minrsibar12,minrsi12,barindex,minrsi12)style(dottedline2,2)coloured("grey")RSISellLevel=minrsi12if irsi < minrsi12 thendrawarrowdown(barindex,irsi+5) coloured(200,0,0)divsell = 20 // Divergence baissière activéemaxrsi1 = 0BearDiv = 0endifif (Barindex - maxrsibar2)>12 thenmaxrsi1 = 0BearDiv = 0endifendifEndifif irsi > noHigherThan and BullDiv = 0 thenminrsi1 = 100endifif os thenif os[1]=0 thenfirstosbar = barindex-1endifif irsi < minrsi1 thenminrsi1=irsiminprice1=lowminclose1=closeminrsibar1=barindexmaxrsi12=minrsi1minrsi2=100endifif minrsi1<100 thenlastosbar = barindexendifEndifif irsi > minrsi1 and BullDiv = 0 thenmaxrsi12=max(maxrsi12,irsi)If maxrsi12<>maxrsi12[1] thenmaxprice12=highmaxclose12=closemaxrsibar12=barindexminrsi2=maxrsi12endifendifif irsi < maxrsi12 thenminrsi2=min(minrsi2,irsi)If minrsi2<>minrsi2[1] thenminprice2=lowminclose2=closeminrsibar2=barindexendifendifIf minrsi1 < 100 thenbarcount=minrsibar2-minrsibar1BullDiv = (minprice2<minprice1 or minclose2<minclose1) and minrsi2>minrsi1 and barcount>=minbarbetween and barcount<=maxbarbetween and minrsi2 < maxrsi12 //and (lastosbar-firstosbar)>=minimalObBarsif BullDiv and irsi > minrsi2 thendrawsegment(minrsibar1,minrsi1,minrsibar2,minrsi2)style(line,2)coloured("green")drawsegment(maxrsibar12,maxrsi12,barindex,maxrsi12)style(dottedline2,2)coloured("grey")RSIBuyLevel=maxrsi12if irsi > maxrsi12 thendrawarrowup(barindex,irsi-5) coloured(0,200,0)divbuy = 20 // Divergence baissière activéeminrsi1 = 100BullDiv = 0endifif (Barindex - minrsibar2)>12 thenminrsi1 = 100BullDiv = 0endifendifEndifreturn irsi style(line,3) as "RSI",oblevel coloured(168,168,168) style(dottedline,2) as "overbought level", oslevel coloured(168,168,168) style(dottedline,2) as "oversold level", divsell coloured(200,0,0) style(histogram) as "sell divergence", divbuy coloured(0,200,0) style(histogram) as "buy divergence"2 users thanked author for this post.
03/10/2023 at 7:13 AM #211284@<span class=”bbp-author-name”>LucasBest</span>
Merci pour le code de l’indicateur, il correspond parfaitement à ce que je voulais.
Pourquoi à tu mis un seuil d’invalidation de la divergence à 12 bougies? Tu as backtesté?
En attendant, un grand merci car avec mes petites modifications, j’étais loin de la réalité du code fonctionnel.
Reste plus qu’à faire le screener
03/10/2023 at 9:18 AM #211294Non, le système d’invalidation n’est pas backtesté. Mais c’est possible de désactiver la fonction en mettant à la place de 12, un nombre de bougies plus important que le maxBarBetween.
Dans ce code, les divergences sont activées soit par les plus haut/plus bas, soit par le prix de clôture : pas besoin de choisir, il prend en compte les deux.
Si on veut plus de divergences qui se suivent, il faut désactiver les lignes 81, 85, 144, 148 (ne pas faire le reset du minrsi1 ou maxrsi1)
J’ai aussi réactivé le test du nombre de bar minimal en survente surachat (que j’avais oublié de réactiver plus haut, ligne 72 et fin de ligne 135)
Cela donne ça :
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153//PRC_AnotherRSIdivergences | indicator//25.02.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingsRSIp=14 //RSI periodobLevel=65 //overbought levelosLevel=35 //oversold levelminimalObBars=5 //minimal count of bars where RSI is ob or osminBarBetween = 4maxBarBetween = 36noLowerThan = 55noHigherThan = 45// --- end of settingsonce maxrsi1 = 0once minrsi1 = 100irsi = rsi[RSIp]ob = irsi>=obLevelos = irsi<=osLeveldivbuy = 0divsell = 0if irsi < noLowerThan and BearDiv = 0 thenmaxrsi1 = 0endifif ob thenif ob[1]=0 thenfirstobbar = barindex-1endifif irsi > maxrsi1 thenmaxrsi1=irsimaxprice1=highmaxclose1=closemaxrsibar1=barindexminrsi12=maxrsi1maxrsi2=0endifif maxrsi1>0 thenlastobbar = barindexendifEndifif irsi < maxrsi1 and BearDiv = 0 thenminrsi12=min(minrsi12,irsi)If minrsi12<>minrsi12[1] thenminprice12=lowminclose12=closeminrsibar12=barindexmaxrsi2=minrsi12endifendifif irsi > minrsi12 thenmaxrsi2=max(maxrsi2,irsi)If maxrsi2<>maxrsi2[1] thenmaxprice2=highmaxclose2=closemaxrsibar2=barindexendifendifIf maxrsi1 > 0 thenbarcount=maxrsibar2-maxrsibar1BearDiv = (maxprice2>maxprice1 or maxclose2>maxclose1) and maxrsi2<maxrsi1 and barcount>=minbarbetween and barcount<=maxbarbetween and maxrsi2 > minrsi12 and (lastobbar-firstobbar)>=minimalObBarsif BearDiv and irsi < maxrsi2 thendrawsegment(maxrsibar1,maxrsi1,maxrsibar2,maxrsi2)style(line,2)coloured("tomato")drawsegment(minrsibar12,minrsi12,barindex,minrsi12)style(dottedline2,2)coloured("grey")RSISellLevel=minrsi12if irsi < minrsi12 thendrawarrowdown(barindex,irsi+5) coloured(200,0,0)divsell = 20 // Divergence baissière activée//maxrsi1 = 0BearDiv = 0endifif (Barindex - maxrsibar2)>12 then//maxrsi1 = 0BearDiv = 0endifendifEndifif irsi > noHigherThan and BullDiv = 0 thenminrsi1 = 100endifif os thenif os[1]=0 thenfirstosbar = barindex-1endifif irsi < minrsi1 thenminrsi1=irsiminprice1=lowminclose1=closeminrsibar1=barindexmaxrsi12=minrsi1minrsi2=100endifif minrsi1<100 thenlastosbar = barindexendifEndifif irsi > minrsi1 and BullDiv = 0 thenmaxrsi12=max(maxrsi12,irsi)If maxrsi12<>maxrsi12[1] thenmaxprice12=highmaxclose12=closemaxrsibar12=barindexminrsi2=maxrsi12endifendifif irsi < maxrsi12 thenminrsi2=min(minrsi2,irsi)If minrsi2<>minrsi2[1] thenminprice2=lowminclose2=closeminrsibar2=barindexendifendifIf minrsi1 < 100 thenbarcount=minrsibar2-minrsibar1BullDiv = (minprice2<minprice1 or minclose2<minclose1) and minrsi2>minrsi1 and barcount>=minbarbetween and barcount<=maxbarbetween and minrsi2 < maxrsi12 and (lastosbar-firstosbar)>=minimalObBarsif BullDiv and irsi > minrsi2 thendrawsegment(minrsibar1,minrsi1,minrsibar2,minrsi2)style(line,2)coloured("green")drawsegment(maxrsibar12,maxrsi12,barindex,maxrsi12)style(dottedline2,2)coloured("grey")RSIBuyLevel=maxrsi12if irsi > maxrsi12 thendrawarrowup(barindex,irsi-5) coloured(0,200,0)divbuy = 20 // Divergence baissière activée//minrsi1 = 100BullDiv = 0endifif (Barindex - minrsibar2)>12 then//minrsi1 = 100BullDiv = 0endifendifEndifreturn irsi style(line,3) as "RSI",oblevel coloured(168,168,168) style(dottedline,2) as "overbought level", oslevel coloured(168,168,168) style(dottedline,2) as "oversold level", divsell coloured(200,0,0) style(histogram) as "sell divergence", divbuy coloured(0,200,0) style(histogram) as "buy divergence"03/10/2023 at 10:40 AM #211302Je préfère avec reset du minrsi1 et activé maxrsi1.
Ca fait une heure que je me bat pour le convertir en srceener. haaaa
03/10/2023 at 10:59 AM #211304j’ai toujours ces erreurs en image pj lorsque j’essai de faire le sreener, je sais pas pourquoi. j’ai ajouter quelques annotations pour que je puisse comprendre le code
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160//PRC_AnotherRSIdivergences | indicator//25.02.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- paramètres modifiablesRSIp=14 //RSI periodeobLevel=70 //Niveau surachatosLevel=30 //Niveau surventeminimalObBars=1 //Barres minimales zone survente ou surachatminBarBetween = 6 //Nbr mini de barres divergencemaxBarBetween = 26 //Nbr maxi de barres divergencenoLowerThan = 59 //Bruit div baissièrenoHigherThan = 41 //Bruit div haussière// --- end of settingsonce maxrsi1 = 0once minrsi1 = 100irsi = rsi[RSIp]ob = irsi>=obLevelos = irsi<=osLeveldivbuy = 0divsell = 0//--Initialisation de recherche de divergence baissière--if irsi < noLowerThan and BearDiv = 0 thenmaxrsi1 = 0endif//Identification conditions de divergence baissièreif ob thenif ob[1]=0 thenfirstobbar = barindex-1endif//recherche 1er sommetif irsi > maxrsi1 thenmaxrsi1=irsimaxprice1=highmaxclose1=closemaxrsibar1=barindexminrsi12=maxrsi1maxrsi2=0endifif maxrsi1>0 thenlastobbar = barindexendifEndif//recherche du creuxif irsi < maxrsi1 and BearDiv = 0 thenminrsi12=min(minrsi12,irsi)If minrsi12<>minrsi12[1] thenminprice12=lowminclose12=closeminrsibar12=barindexmaxrsi2=minrsi12endifendif//recheche 2ème sommetif irsi > minrsi12 thenmaxrsi2=max(maxrsi2,irsi)If maxrsi2<>maxrsi2[1] thenmaxprice2=highmaxclose2=closemaxrsibar2=barindexendifendif//Validation des conditions divergence baissièreIf maxrsi1 > 0 thenbarcount=maxrsibar2-maxrsibar1BearDiv = (maxprice2>maxprice1 or maxclose2>maxclose1) and maxrsi2<maxrsi1 and barcount>=minbarbetween and barcount<=maxbarbetween and maxrsi2 > minrsi12//and (lastobbar-firstobbar)>=minimalObBarsif BearDiv and irsi < maxrsi2 thenRSISellLevel=minrsi12if irsi < minrsi12 thendivsell = 20 // Divergence baissière activéemaxrsi1 = 0 // Reset, les div ne se suivent pasBearDiv = 0endifif (Barindex - maxrsibar2)>12 then //Invalidation divergence si cassure du bruit > 12maxrsi1 = 0 // Reset, les div ne se suivent pasBearDiv = 0endifendifEndif//--Initialisation de recherche de divergence haussière--if irsi > noHigherThan and BullDiv = 0 thenminrsi1 = 100endif//Identification conditions de divergence haussièreif os thenif os[1]=0 thenfirstosbar = barindex-1endif//recherche 1er creuxif irsi < minrsi1 thenminrsi1=irsiminprice1=lowminclose1=closeminrsibar1=barindexmaxrsi12=minrsi1minrsi2=100endifif minrsi1<100 thenlastosbar = barindexendifEndif//recherche du sommetif irsi > minrsi1 and BullDiv = 0 thenmaxrsi12=max(maxrsi12,irsi)If maxrsi12<>maxrsi12[1] thenmaxprice12=highmaxclose12=closemaxrsibar12=barindexminrsi2=maxrsi12endifendif//recherche 2ème creuxif irsi < maxrsi12 thenminrsi2=min(minrsi2,irsi)If minrsi2<>minrsi2[1] thenminprice2=lowminclose2=closeminrsibar2=barindexendifendif//Validation des conditions divergence haussièreIf minrsi1 < 100 thenbarcount=minrsibar2-minrsibar1BullDiv = (minprice2<minprice1 or minclose2<minclose1) and minrsi2>minrsi1 and barcount>=minbarbetween and barcount<=maxbarbetween and minrsi2 < maxrsi12 //and (lastosbar-firstosbar)>=minimalObBarsif BullDiv and irsi > minrsi2 thenRSIBuyLevel=maxrsi12if irsi > maxrsi12 thendivbuy = 20 // Divergence baissière activéeminrsi1 = 100 //Reset, les div ne se suivent pasBullDiv = 0endifif (Barindex - minrsibar2)>12 then //Invalidation divergence si cassure du bruit > 12minrsi1 = 100 //Reset, les div ne se suivent pasBullDiv = 0endifendifEndifscreener[divbuy or divsell](max(divbuy,divsell))03/22/2023 at 9:04 PM #211947Bonsoir, je relance le sujet, je ne comprends pas ces erreurs et comment les résoudre
03/23/2023 at 9:40 AM #211970Bjr,
Si on prend par exemple la première: minimalobbars,
on voit en ligne 142 que qulqu’un a supprimé son utilisation en toute fin de ligne, du coup elle est définie en ligne 10 mais ne sert pas à première vue (le code est long, j’ai peut-être raté un autre de son emploi…). Il faut supprimer (ou mettre en commentaires avec // devant) la ligne 10 minimalObBars=1 et cette erreur devrait disparaitre.
Les autres semblant de même nature, il faut répéter la démarche pour chaque variable définie une fois mais non utilisée ensuite.
03/24/2023 at 2:32 PM #212055 -
AuthorPosts
Find exclusive trading pro-tools on