Screener Détection Figure Tasse et Anse
Forums › ProRealTime forum Français › Support ProScreener › Screener Détection Figure Tasse et Anse
- This topic has 66 replies, 8 voices, and was last updated 3 years ago by deletedaccount210122.
Tagged: Cup, Cup & Handle, Handle
-
-
07/23/2018 at 8:17 PM #76549
J’ai tenté autre chose sachant que je n’avais pas compris que Barindex s’inscrémentait depuis la première barre jusqu’à l’actuelle ;
Mais j’ai toujours un message d’erreur d’offset négatif …
Quelqu’un voit le problème ?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132// Cup and Handle exploration written by Jerry Tyliczka// visit us at: http://portals.wallstreettape.com//// This code written per specifications found at// http://www.haikulabs.com/mh.htm// Version 1.0//// This code calculates the Alpha, Delta, Beta and Gamma values// but they are not used in the filter criteria as specified// by the article which this code was based on.//// Look for additional changes as I tweak the below code.// I will also include Scan feature and Backtesting in future release.//// Comments, please write to admin@wallstreettape.comMinPrice=2.5MinVolume=10000//Left side of Handle formation can occur anywhere from 2-25days - look at the last 25 bars AND get the number of bars since condition met.LH=highest[25](Close) // Highest close past 25 days.BLH=barindex-barindex[LH] // Tells us # of bars that have past since high reached. Used to determine Lowest bar.BH=lowest[BLH](Close) // Lowest close since the highest value was reached/BBH=barindex-barindex[BH] // number of bars that have past since lowest value.NBLH=abs(BLH-BBH) // this is the number of bars in the formation of the left side handle. NBLH must be atleast 2 to be a valid handle formation.// Now lets get the cup formation. Cup formation can occur anywhere from 23 to 145 days. The left side of the cup can be from 20-120 days AND the right side can be anywhere from 3-25 days.// get the right side of the cup(low).BC=lowest[BLH+25](close) // look at 25 bars since the left side of handle.BBC=barindex-barindex[BC]// get the left side of the cup.//For index1=145+BBC downto BBC doif high[index1]> high[index1-1] thenLC=high[index1]BLC=barindex-barindex[LC]elseLC=LCendifNext////// Get highest value before left side of cup started to form.////once BKC =0For index2 = barindex downto BLC doif high[index2]> high[index2-1] thenKC=high[index2]//BKC=barindex[KC]elseKC=KCendifNext//Delta= LC/KC//////Calculate the up/down relative price value during time frame RC (Right Cup Formation)DRPV=0URPV=DRPVFor i=BLH to BBC doIf Close[i] > Close[i+1] thenURPV = Volume[i]*Close[i]- Close[i+1]elseUPRV=UPRVendifIf Close[i] < Close[i+1] thenDRPV = Volume[i]*(Close[i+1]-Close[i])elseDRPV = DRPVendifNextAlpha = URPV/DRPV // Should be >1// Calculate BetaDRPV=0For j=BBH to BLH doIf Close[j]< Close[j+1] thenDRPV = Volume[i]*(Close[i+1]-Close[i])elseDRPV=DRPVendifNextBeta = URPV/DRPVGamma = log(Alpha) + log(Beta) + delta////AddColumn(LH,"Left Handle")//AddColumn(BH,"Bottom Handle")//AddColumn(BC,"Bottom Cup")//AddColumn(LC,"Left Cup")//AddColumn(ALPHA,"Alpha")//AddColumn(DELTA,"Delta")//AddColumn(BETA,"BETA")//AddColumn(GAMMA,"Gamma")// Filter Criteria as follows:// 1. Right side of handle must be at least 2 bars. NBHL>2// 2. Bottom of the cup must be lower than the left top of the cup.// 3. Left handle must be lower than or equal to the lect cup formation.// 4. Bottom of the cup must be less than the left handle.// 5. Bottom of the handle must be > 80% of the left handle + 20% of the bottom cup.// 6. Start of cup/handle formation must be greater than precedding chart value. LC>LC// 7. Minimum price and volume you can set any way you like.Screener [ NBLH>2 AND Close>BH AND BC<LC AND LH<=LC AND BC<LH AND BH<LH AND (BH>0.8*LH+0.2*BC) AND KC<LC AND Close>MinPrice AND average[30](Volume) > MinVolume and alpha > 1 and beta> 1](Gamma as "gamma")07/23/2018 at 8:47 PM #76553A la ligne 23, la variable LH aura une valeur, si vous êtes sur le DAX, environ 12500, donc la ligne suivante sera, par exemple à la première barre:
BLH = 1-12500, donc la valeur de BLH ne peut être que négative!
Donc, la ligne 26 sera:
BH = lowest [-12499](close)
Ça ne peut pas marcher!07/24/2018 at 9:03 AM #76570Hello Roberto,
Je ne comprends pas car sauf erreur :
LH=highest[25](Close) => renvoie le plus bas sur les 25 dernières barres : par ex 12500 sur le DAX (même si je ne l’ai pas lancé sur ce support)BLH=barindex–barindex[LH] => renvoie : le numero de la dernière barre affichée dans l’unité de temps – le numero de la barre correspondant à ce low sur les 25 dernières barres=> donc ca ne donne pas (1-12500) mais si Barindex = 250 par ex et si barindex[LH] = 240=> 250-240 = 1007/24/2018 at 9:46 AM #76580La variable LH contiendra le cours de clôture inférieur aux 25 dernières barres, il peut être 12500 ou 1.2000 ou 85.43, etc …, donc 1 – cette valeur ne peut être que négative!
Si vous voulez éviter un décalage négatif, vous devez, avec IF …. ENDIF, exécuter cette ligne uniquement lorsque BARINDEX >= LH.
1 user thanked author for this post.
07/24/2018 at 12:32 PM #76605quelque chose m’échappe Roberto :
=> Barindex[LH] est forcément < à Barindex => c’est les nombre de barres maximal ; Barindex ne renvoie pas une valeur de prix ;
07/24/2018 at 3:25 PM #76617Ce n’est pas BARINDEX qui contient un prix, c’est la variable LH, à laquelle vous avez affecté un prix à la ligne 23, au lieu de lui donner un indice!
BARINDEX [[LH] sera:- (sur le Dax) BARINDEX [12500]
- (sur EurUsd) BARINDEX [1.2000] // n’accepte que des nombres entiers!
par conséquent, sur les premières 12499 barres, le résultat de la ligne 24, c’est-à-dire BLH, ne peut être que négatif (-12499, -12498, -12497, …..).
Je suggère toujours d’attendre jusqu’à ce que Nicolas puisse terminer la conversion du code.
1 user thanked author for this post.
07/25/2018 at 8:44 AM #76670Peut-être que vous, à la ligne 23, et dans d’autres, voudriez-vous que LH contienne le numéro de la bougie où le minimum le plus bas se situe entre les 25 derniers, n’est-ce pas?
Non, LOWEST renvoie un prix, pas un index de l’endroit où il s’est produit!
PRT n’a pas de fonction pour savoir dans quel bougie un certain événement s’est produit, vous devez utiliser une boucle FOR …. NEXT pour examiner les bougies passées et découvrir! C’est une opération plus complexe et ça ralentit beaucoup le code!1 user thanked author for this post.
07/25/2018 at 10:21 AM #76684oui c’est absolument cela Roberto que je cherche à faire ; c’est une piste ! et ce n’est pas grave pour la lenteur, les machines ne sont pas payées à l’heure 😉
07/25/2018 at 10:49 AM #76689Je peux vous donner un exemple sur la façon de trouver la bougie que vous voulez à la ligne 23, pour les suivantes, vous devrez copier ce code et l’adapter vous-même:
1234567LowestPrice = 999999 //Cette variable est utilisée uniquement pour la boucle FOR ... NEXTFOR i = 0 TO 24 //25 bougiesIF low[i] < LowestPrice THENLH = BarIndex[i] //LH contiendra le numéro de bougie où le minimum le plus bas a été trouvéLowestPrice = low[i]ENDIFNEXTLes machines ne sont pas payées à l’heure, mais … si vous êtes devant l’écran, avec 4-5 graphiques chacun avec des unités de temps différentes et vous voulez passer à un autre instrument … vous verrez que le ralentissement sera impossible à supporter!
Parce que le problème n’est pas un cycle lui-même, il s’agit de nombreux cycles dans les lignes suivantes!
07/25/2018 at 11:43 AM #76695Hello Rberto, Nouvelle version sans erreur mais ne retourne rien ;-(
Vous voyez pourquoi ? (ne tenez pas compte des commentaires qui ne correspondent plus)
on va y arriver !
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165// Cup and Handle exploration written by Jerry Tyliczka// visit us at: http://portals.wallstreettape.com//// This code written per specifications found at// http://www.haikulabs.com/mh.htm// Version 1.0//// This code calculates the Alpha, Delta, Beta and Gamma values// but they are not used in the filter criteria as specified// by the article which this code was based on.//// Look for additional changes as I tweak the below code.// I will also include Scan feature and Backtesting in future release.//// Comments, please write to admin@wallstreettape.comMinPrice=2.5MinVolume=10000//Left side of Handle formation can occur anywhere from 2-25days - look at the last 25 bars AND get the number of bars since condition met.// Highest close past 25 days.LH = highest[25](close)BLH = 0For i = 25 downto 0 doif high[i] = LH thenBLH=i // ( Tells us # of bars that have past since high reached. Used to determine Lowest bar.elseLH = LHBLH = BLHendifNext// Lowest close since the highest value was reached/BH = lowest[BLH](Close)BBH = 0For j = BLH downto 0 doif low[j] = BH thenBBH=j // number of bars that have past since lowest value.elseBH=BHBBH = BBHendifNextNBLH=BLH-BBH // this is the number of bars in the formation of the left side handle. NBLH must be atleast 2 to be a valid handle formation.// Now lets get the cup formation. Cup formation can occur anywhere from 23 to 145 days. The left side of the cup can be from 20-120 days AND the right side can be anywhere from 3-25 days.// get the right side of the cup(low).// look at 25 bars since the left side of handle.BC = lowest[BLH+25](close)BBC = 0For k = BLH + 25 downto BLH doif low[k] = BC thenBBC = k // number of bars that have past since lowest value.elseBBC = BBCendifNext// get the left side of the cup.//LC = 0For m =145 + BBC downto BBC doBLC = 0if high[m-1]< high[m] thenLC = high[m]BLC = melseLC=LCendifNext////// Get highest value before left side of cup started to form.////KC = 0//BKC = 0For n= barindex downto BLC doif high[n-1]< high[n] thenKC=high[n]//BKC=nelseKC=KCendifNext//Delta= LC/KC//////Calculate the up/down relative price value during time frame RC (Right Cup Formation)DRPV=0URPV=DRPVFor i=BLH to BBC doIf Close[i] > Close[i+1] thenURPV = Volume[i]*Close[i]- Close[i+1]elseUPRV=UPRVendifIf Close[i] < Close[i+1] thenDRPV = Volume[i]*(Close[i+1]-Close[i])elseDRPV = DRPVendifNextAlpha = URPV/DRPV // Should be >1// Calculate BetaFor j=BBH to BLH doIf Close[j]< Close[j+1] thenDRPV = Volume[i]*(Close[i+1]-Close[i])elseDRPV=DRPVendifNextBeta = URPV/DRPVGamma = log(Alpha) + log(Beta) + delta////AddColumn(LH,"Left Handle")//AddColumn(BH,"Bottom Handle")//AddColumn(BC,"Bottom Cup")//AddColumn(LC,"Left Cup")//AddColumn(ALPHA,"Alpha")//AddColumn(DELTA,"Delta")//AddColumn(BETA,"BETA")//AddColumn(GAMMA,"Gamma")// Filter Criteria as follows:// 1. Right side of handle must be at least 2 bars. NBHL>2// 2. Bottom of the cup must be lower than the left top of the cup.// 3. Left handle must be lower than or equal to the lect cup formation.// 4. Bottom of the cup must be less than the left handle.// 5. Bottom of the handle must be > 80% of the left handle + 20% of the bottom cup.// 6. Start of cup/handle formation must be greater than precedding chart value. LC>LC// 7. Minimum price and volume you can set any way you like.Screener [ NBLH>2 AND Close>BH AND BC<LC AND LH<=LC AND BC<LH AND BH<LH AND (BH>0.8*LH+0.2*BC) AND KC<LC AND Close>MinPrice AND average[30](Volume) > MinVolume and alpha > 1 and beta> 1](Gamma as "gamma")07/25/2018 at 12:26 PM #76704Ligne 23 (et autres si nécessaire) Vous ne l’avez pas remplacé par le mien, vous l’avez laissé tel quel et vous avez ajouté une boucle que je ne comprends pas.
Retirez-le ou commentez et remplacez-le par les 7 lignes de mon code.
Répétez l’opération pour toute autre ligne où elle est nécessaire, en changeant la condition LOWEST ou HIGHEST etc …
1 user thanked author for this post.
07/26/2018 at 2:37 PM #76808Hello Roberto, je n’avais pas vu votre code avant de reposter (il me semble que ce serait plutôt [message supprimé, problème de formattage] non ?)
Pour la clareté du code et pour simplifier le travail de checking de vous-même et de Nicolas j’ai repris et adapté un code déjà créé pour identifier par PRC concernant les bars (ci-dessous) ;
cela vous semble-t-il plus clair ? mais le résultat ne retourne toujours rien.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163// Cup and Handle exploration written by Jerry Tyliczka// visit us at: http://portals.wallstreettape.com//// This code written per specifications found at// http://www.haikulabs.com/mh.htm// Version 1.0//// This code calculates the Alpha, Delta, Beta and Gamma values// but they are not used in the filter criteria as specified// by the article which this code was based on.//// Look for additional changes as I tweak the below code.// I will also include Scan feature and Backtesting in future release.//// Comments, please write to admin@wallstreettape.comMinPrice=2.5MinVolume=10000//Left side of Handle formation can occur anywhere from 2-25days - look at the last 25 bars AND get the number of bars since condition met.// Highest close past 25 days.LH = highest[25](close)RangLH = 0For i = 0 to 24 doif high[i] <> LH thencontinueelsif high[i] = LH thenindexLH = barindex[i]RangLH=barindex[0]-IndexLH // determines Lowest bar #.breakendifNext// Lowest close since the highest value was reached/BH = lowest[RangLH](Close)RangBH = 0For j = 0 to RangLH doif low[j] <> BH thencontinueelsif low[j] = BH thenIndexBH = barindex[j]RangBH=barindex[0]-IndexBHbreakendifNextNLH=RangLH-RangBH // this is the number of bars in the formation of the left side handle. NRangLH must be atleast 2 to be a valid handle formation.// Now lets get the cup formation. Cup formation can occur anywhere from 23 to 145 days. The left side of the cup can be from 20-120 days AND the right side can be anywhere from 3-25 days.// get the right side of the cup(low).// look at 25 bars since the left side of handle.BC = lowest[RangLH+25](close)RangBC = 0For k = RangLH to RangLH+ 25 doif low[k] <> BC thencontinueelsif low[k] = BC thenIndexBC = barindex[k]RangBC =barindex[0]-IndexBCbreakendifNext// get the left side of the cup.LC = 0RangLC = 0For m =RangBC to RangBC+145 doif high[m+1]< high[m] thencontinueelseIndexLC = barindex[m+1]LC = high[m+1]RangLC = barindex[0]-IndexLCendifNext////// Get highest value before left side of cup started to form.//KC = 0//BKC = 0For n= RangLC to barindex doif high[n+1]< high[n] thencontinueelse//IndexKC = barindex[n+1]KC = high[n+1]//RangKC = barindex[0]-IndexKC//BKC=nendifNextDelta= LC/KC//Calculate the up/down relative price value during time frame RC (Right Cup Formation)DRPV=0URPV=DRPVFor o=RangLH to RangBC doIf Close[o] > Close[o+1] thenURPV = Volume[o]*(Close[o]- Close[o+1])elseUPRV=UPRVendifIf Close[o] < Close[o+1] thenDRPV = Volume[o]*(Close[o+1]-Close[o])elseDRPV = DRPVendifNextAlpha = URPV/DRPV // Should be >1//// Calculate BetaFor p=RangBH to RangLH doIf Close[p]< Close[p+1] thenDRPV = Volume[i]*(Close[i+1]-Close[i])elseDRPV=DRPVendifNextBeta = URPV/DRPVGamma = log(Alpha) + log(Beta) + delta////AddColumn(LH,"Left Handle")//AddColumn(BH,"Bottom Handle")//AddColumn(BC,"Bottom Cup")//AddColumn(LC,"Left Cup")//AddColumn(ALPHA,"Alpha")//AddColumn(DELTA,"Delta")//AddColumn(BETA,"BETA")//AddColumn(GAMMA,"Gamma")// Filter Criteria as follows:// 1. Right side of handle must be at least 2 bars. NBHL>2// 2. Bottom of the cup must be lower than the left top of the cup.// 3. Left handle must be lower than or equal to the lect cup formation.// 4. Bottom of the cup must be less than the left handle.// 5. Bottom of the handle must be > 80% of the left handle + 20% of the bottom cup.// 6. Start of cup/handle formation must be greater than precedding chart value. LC>LC// 7. Minimum price and volume you can set any way you like.Screener [ NLH>2 AND Close>BH AND BC<LC AND LH<=LC AND BC<LH AND BH<LH AND (BH>0.8*LH+0.2*BC) AND KC<LC AND Close>MinPrice AND average[30](Volume) > MinVolume and alpha > 1 and beta> 1](Gamma as "gamma")08/01/2018 at 5:20 PM #77355Bonjour à tous,
Bon voilà ma faible contribution à la communauté ; ce n’est sans doute pas parfait mais ça fonctionne ; -) Cela demande à être amélioré ;
Il faudrait faire plusieurs choses pour l’optimiser qui dépasse ma compétence :
- rajouter une condition pour que des plus hauts ne se forment pas entre le haut de l’anse (LH = Left Handle) et le base de la coupe (BC = Bottom Cup)
- rajouter une condition pour que des plus bas ne se forment pas entre le bas de la coupe (BC ) et le haut de la coupe (LC = Left Cup)
- peaufiner une condition sur les volumes qui doivent s’incrémenter de BC à LH puis baisser de LH au bas de l’anse (BH = Bottom Handle)
Par ailleurs, j’ai développé l’indicateur qui permet de repérer LH / BC / LH / BH ; il ne marche qu’en Daily ;
- je ne comprends pas pourquoi il se décale en weekly ;
Merci de vos remarques et améliorations
Kris
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130Timeframe (daily)MinPrice= close > 2.5MinVolume= average[23](Volume) > 2000// LEFT HANDLE///////////////////////LH = highest[24](high)For i = 0 to 24 doif high[i] = LH thenindexLH = ibreakendifNext//BOTTOM HANDLE///////////////////////BH = lowest[1+indexLH](low)For j = 0 to indexLH doif low[j] = BH thenIndexBH = jbreakendifNextNLH=IndexLH-IndexBH// BOTTOM CUP//////////////////////BC = low[indexLH]For k = indexLH to IndexLH+25 doif low[k+1] > BC thenindexBC = indexBCelsif low[k+1] < BC thenBC = low[k+1]IndexBC = k+1endifNext// LEFT CUPLC = high[indexBC]For m =IndexBC to IndexBC+145 doif high[m+1]< LC thenLC = LCelsif high[m+1]> LC thenLC = high[m+1]IndexLC = m+1endifNext// LEFT OF THE CUPKC = low[indexLC]For n= IndexLC to IndexLC + 50 doif low[n+1]> KC thenKC = KCelsif low[n+1] < KC thenKC = low[n+1]endifNextDelta= LC/KCDRPV1=0URPV1=0For o=IndexBC downto IndexLH doIf Close[o+1] < Close[o] thenURPV1 = Volume[o]*(Close[o]- Close[o+1])+URPV1elseUPRV1=UPRV1endifIf Close[o] < Close[o+1] thenDRPV1 = Volume[o]*(Close[o+1]-Close[o])+DRPV1elseDRPV1 = DRPV1endifNextAlpha = URPV1/DRPV1 // Should be >1AmplitudeMax = Max(LC,LH)/Min(KC,BC)<1.3//////// Calculate Beta//DRPV2=0//URPV2=0////////For p=IndexLH downto IndexBH do//If Close[p+1] > Close[p] then//URPV2 = Volume[p]*(Close[p+1]-Close[p])+URPV2////else//URPV2=URPV2//endif////If Close[p+1]< Close[p] then//DRPV2 = Volume[p+1]*(Close[p+1]-Close[p])+DRPV2////else//DRPV2=DRPV2//endif//Next////Beta = DRPV2/URPV2//Gamma = log(Alpha) + log(Beta) + deltascreener [NLH > 2 AND Close>BH AND BC<LC AND LC>0.97*LH AND LC < 1.03*LH and BC<LH AND BH<LH and delta>1 and BH>0.8*LH and BH>BC AND alpha > 1 and MinPrice AND MinVolume and AmplitudeMax](IndexLH as "rang")//AND (BH>0.8*LH+0.2*BC)and beta> 1123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596DefParam DrawOnLastBarOnly = true// LEFT HANDLE///////////////////////LH = highest[24](high)For i = 0 to 24 doif high[i] = LH thenindexLH = iDRAWARROWDOWN(barindex-i,LH)coloured(255,0,0)breakendifNextDRAWVLINE(barindex-indexLH)coloured(255,0,0)//BOTTOM HANDLE///////////////////////BH = lowest[1+indexLH](low)For j = 0 to indexLH doif low[j] = BH thenIndexBH = jDRAWARROWUP(barindex-j,BH)coloured(255,192,203)breakendifNextDRAWVLINE(barindex-indexBH)coloured(255,0,0)// BOTTOM CUP//////////////////////BC = low[indexLH]For k = indexLH to IndexLH+25 doif low[k+1] > BC thenindexBC = indexBCelsif low[k+1] < BC thenBC = low[k+1]IndexBC = k+1endifNextFor k = indexLH to IndexLH+25 doif low[k+1] = BC thenDRAWARROWUP(barindex-(k+1),BC)coloured(255,255,0)endifNextDRAWVLINE(barindex-indexBC)coloured(0,0,255)// LEFT CUPLC = low[indexBC]For m =IndexBC to IndexBC+145 doif high[m+1]< LC thenLC = LCelsif high[m+1]> LC thenLC = high[m+1]IndexLC = m+1endifNextDRAWARROWDOWN(barindex-(IndexLC),LC)coloured(255,255,0)DRAWVLINE(barindex-indexLC)coloured(255,255,0)KC = low[indexLC]For n= IndexLC to IndexLC+50 doif low[n+1]> KC thenKC = KCelsif low[n+1] < KC thenKC = low[n+1]IndexKC = n+1endifNextDRAWARROWUP(barindex-(IndexKC),KC)coloured(0,0,0)DRAWVLINE(barindex-indexKC)coloured(0,100,0)Return IndexLC1 user thanked author for this post.
08/01/2018 at 5:37 PM #77360NB : 00-CUP-HANDLE-DAY-INDICATOR-1.itf est le bon : il y a une coquille dans l’autre fichier ;
1 user thanked author for this post.
08/07/2018 at 9:40 AM #77693Bravo Kris75 ! Excellent travail et j’apprécie beaucoup le retour et le partage. Je viens de tester tes codes, il y a en effet une avancée majeure dans la détection de la figure.
Concernant tes demandes:
- rajouter une condition pour que des plus hauts ne se forment pas entre le haut de l’anse (LH = Left Handle) et le base de la coupe (BC = Bottom Cup)
- rajouter une condition pour que des plus bas ne se forment pas entre le bas de la coupe (BC ) et le haut de la coupe (LC = Left Cup)
Pour le 1/ , donc simplement que LH>BC ? et pour le 2/ que BC<LC ?
Puisque la détection de ces points est correct, selon le code original, j’ai un peu de mal à suivre 🙂
L’image d’exemple que tu as fourni est un cas parfait de la figure non ? Donc il faudrait “simplement” s’assurer que les points détectés forment ce même type d’alignement vertical ? exemple: point A > point B et point B <= point C, etc….
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on