Détection Dernier Plus Bas
Forums › ProRealTime forum Français › Support ProOrder › Détection Dernier Plus Bas
- This topic has 7 replies, 3 voices, and was last updated 3 weeks ago by plbourse.
-
-
10/01/2024 at 9:22 PM #23837910/02/2024 at 7:19 AM #238386
Bonjour,
j’ai fait un code similaire pour les PH, je n’ai trouvé qu’une solution assez compliquée applicable dans un indicateur ou un backtest, mais pas dans un screener…
J’explique rapidement le code pour les PH. le code me renvoie le dernier PH et son numéro de barre (j’en ai besoin pour tester la “profondeur” du PH franchi
- Stockage de tous les PH sur 5 barres dans une pile (tableau) $PH ainsi que du n0 de barre dans une pile(tableau) $barPH, le PH étant classé par ordre croissant et la pile est incrémentée lorsque on a un nouveau PH rencontré, à savoir (High[2] > High[1] ) and (High [2] > High) and (High [2] > High[3]) and (High [2] > High|4])
- dans ce cas, on incrémente les piles $PH et $barPH d’un élément
- on stocke dans le premier élément $PH[0] et $barPH[0] les valeurs High[2] et “barindex-2”
- lorsque le High de la barre courante dépasse $PH[0],
- on considère que l’on a un BO, d’où signal renvoyé ainsi que la profondeur du PH, à savoir “barindex – $barPH[0]”
- on dépile $PH et $valPH tant que high > $PH[0] et $PH[0] <>0
- si l’on vient de franchir un ATH sur la période considérée, on se retrouve avec des piles $PH et $valPH vides
il y a une petite subtilité dans mon code, car je considère que le PH ne donne lieu qu’ à un BO confirmé que si close > (la valeur du PH considéré) sur la ou les barres immédiatement suivant le PH franchi
Merci de me donner vos remarques sur cette stratégie. Je suis surtout intéressé par l’échange plus que le simple transfert de code., ceci pour me faire progresser.
C’est facilement applicable à une détection de franchissement de PB. Le code pour un screener est nettement plus compliqué compte tenu de la limitation à 256 barres d’historique mais j’ai aussi trouver un moyen de contourner ce PB avec approximation sur l’historique
Si échange, je nettoierai et partagerai mon code sans problème.
A vous lire et du succès dans vos stratégies
10/02/2024 at 9:40 AM #23839310/03/2024 at 10:17 PM #238486Bonjour,
j’ai fait un code similaire pour les PH, je n’ai trouvé qu’une solution assez compliquée applicable dans un indicateur ou un backtest, mais pas dans un screener…
J’explique rapidement le code pour les PH. le code me renvoie le dernier PH et son numéro de barre (j’en ai besoin pour tester la “profondeur” du PH franchi
- Stockage de tous les PH sur 5 barres dans une pile (tableau) $PH ainsi que du n0 de barre dans une pile(tableau) $barPH, le PH étant classé par ordre croissant et la pile est incrémentée lorsque on a un nouveau PH rencontré, à savoir (High[2] > High[1] ) and (High [2] > High) and (High [2] > High[3]) and (High [2] > High|4])
- dans ce cas, on incrémente les piles $PH et $barPH d’un élément
- on stocke dans le premier élément $PH[0] et $barPH[0] les valeurs High[2] et “barindex-2”
- lorsque le High de la barre courante dépasse $PH[0],
- on considère que l’on a un BO, d’où signal renvoyé ainsi que la profondeur du PH, à savoir “barindex – $barPH[0]”
- on dépile $PH et $valPH tant que high > $PH[0] et $PH[0] <>0
- si l’on vient de franchir un ATH sur la période considérée, on se retrouve avec des piles $PH et $valPH vides
il y a une petite subtilité dans mon code, car je considère que le PH ne donne lieu qu’ à un BO confirmé que si close > (la valeur du PH considéré) sur la ou les barres immédiatement suivant le PH franchi
Merci de me donner vos remarques sur cette stratégie. Je suis surtout intéressé par l’échange plus que le simple transfert de code., ceci pour me faire progresser.
C’est facilement applicable à une détection de franchissement de PB. Le code pour un screener est nettement plus compliqué compte tenu de la limitation à 256 barres d’historique mais j’ai aussi trouver un moyen de contourner ce PB avec approximation sur l’historique
Si échange, je nettoierai et partagerai mon code sans problème.
A vous lire et du succès dans vos stratégies
Merci beaucoup, je ne suis pas assez avancé en codage pour tout comprendre, mais je veux bien le code. J’essaierai de l’analyser et de l’adapter à ma stratégie. Merci encore de m’accorder un peu de votre temps.
10/03/2024 at 10:20 PM #238487Bonjour. Voici un exemple :
1234lmin=lowest[15](low)if low crosses under lmin[1] thenxxxxendifMerci pour cet exemple, j’ai déjà essayé cette formule mais dans mon cas ça ne fonctionne pas.
10/05/2024 at 11:28 AM #238517Bonjour
Le code ci-joint nécessite d’utiliser les Arrays donc la version PRT V11 au moins.
un PB (Plus Bas) est détecté lorsque le Low est inférieur au Low des 2 barres avoisinantes : Il est donc détecté avec une barre de retard. le cas où le Low est le même sur plusieurs barres successives n’est pas traité
Le code gère un tableau de tous les PB détecté et considérés comme encore valables, c’est à dire en-dessous de la barre courante.
L’indicateur renvoie le prochain PB donc le prochain support. Si on est dans une phase de ATL (All Times Low, en dessous de tous les PB détectés sur le graphique actuel) le code renvoie 0 jusqu’à ce qu’un PB soit détecté.
Ind PB Support 202410051234567891011121314151617181920212223242526272829303132333435363738394041// Indicateur PB Support 20241005// Renvoie le prochain support à la Baisse, 0 lorsque on est dans une phase en dessous de tous les Cours déjà enregistrés sans qu'un nouveau PB sur 3 barres n'ai été détecté,// dans ce cas, on a un ATL, (All Times Low) et on renvoie 0 jusqu'à ce qu'un nouveau PB sur 3 barres ait été détecté// pas de gestion des numéros de barres// dans cet indicateur, on gère un tableau $PB qui stocke toutes les vlaeurs des PB rencontrés inférieurs au Low actuel// l'indicatgeur renvoie le PB le plus proche de la barre actuelleCondPB = (low[1] < low) and (low[1] < low[2])if condPB then// on a détecté un nouvel élément... il faut le mettre dans la pilevalPB = low[1]// l'idée est dee stocker ce nouveau PB dans la pile// On le stocke dans la valeur maximale de la pile$PB[LastSet($PB) + 1] = valPB// on classe le tableau $PB par valeurs décroissantesArraySort($PB, Descend)// c'est termine pour la pile// fin de if condPB thenendif// nettoyage de la pile si on a franchi un support existantif (Low < $PB[0]) then// en partique la condition and ($PB[0] <>0) est inutile car (Low < $PB[0]) sous-entend que $PB[0] est non nul// il faut dépiler et répéter le dépilage tant que la condition sera respectée, la condition (low < $PB[0]) sous-entend que la pile est non vide// donc que LastSet($PB) vaut au moins 0while (low < $PB[0]) do// on annulle la valeur $PB[>0]$PB[0] = 0// on classe le tableau en mode descendantArraySort($PB, Descend)// fin de la boucle whilewend// fin de if (Low < $PB[0]) thenendifReturn $PB[0] as "Prochain Support à la baisse"J’ajoute le fichier itf pour facilite l’importation
A vous lire
10/11/2024 at 1:14 PM #23886810/12/2024 at 8:30 AM #238884 - Stockage de tous les PH sur 5 barres dans une pile (tableau) $PH ainsi que du n0 de barre dans une pile(tableau) $barPH, le PH étant classé par ordre croissant et la pile est incrémentée lorsque on a un nouveau PH rencontré, à savoir (High[2] > High[1] ) and (High [2] > High) and (High [2] > High[3]) and (High [2] > High|4])
-
AuthorPosts
Find exclusive trading pro-tools on