Bonjour,
Svp j’ai cherché longtemps mais sans succès , je souhaite Savoir s’il y a un indicateur qui permet quelque soit l’UT choisie de tracer le dernier plus haut et le dernier plus bas , en prenant en compte uniquement les impulsions ( pas les corrections ) .
Merci d’avance
Merci de définir “impulsion” et “correction” afin de pouvoir coder ta définition en langage machine.
Hello,
IMPULSION: N’importe quel mouvement qui va dans la direction de la tendance.
CORRECTION : N’importe quel mouvement qui va contre la tendance (au sein de la même tendance )
Je joins ici un exemple de la paire forex USDCAD ou je dessine les Highs les Lows dans les Timeframes ( Weekly, daily, 4h et 1h )
D’avance Merci
Très bien, comment est déterminé la tendance selon toi ? Avec l’histogramme du MACD comme dans ton exemple ? Rouge tendance baissière, dés que c’est vert c’est une tendance haussière ? Merci pour ces précisions indispensable pour la bonne compréhension de ce qu’il faut coder.
En effet je me base sur le MACD et surtout les croisements qu’il fait , Comme illustré dans la pièce jointe 1 : il faut utiliser l’impulsion qui a complété un croisement( Crossover ) c’est à dire : MACD Vert + MACD rouge + MACD Vert ( Cross-over qui complète l’impulsion baissière )-
pour aller plus loin si le MACD fait un prochain cross-over c.à.d du rouge , Nous aurons donc : MACD Rouge + MACD vert + le nouveau MACD rouge ”qui vient compléter l’impulsion” alors la dernière impulsion H4 deviendra comme suit (cf.pièce jointe 2 ). et donc mes High et low devront être mis à jour.
Ci-joint l’esquisse de ton projet. A vérifier / commenter.
//https://www.prorealcode.com/topic/marquer-le-plus-haut-et-le-plus-bas-dun-graphe/
defparam drawonlastbaronly=true
// --- settings
fast = 12
slow = 26
factor = 1.0
// --- end of settings
fast = round(fast*factor)
slow = round(slow*factor)
myMACD=exponentialaverage[fast]-exponentialaverage[slow]
drawsegment(maxistartprev,maxiprev,barindex,maxiprev) coloured(0,200,200) style(dottedline,1)
drawsegment(ministartprev,miniprev,barindex,miniprev) coloured(200,200,0) style(dottedline,1)
if myMACD>0 then
//store the mini
if mymacd[1]<0 then
miniprev=mini
ministartprev=ministart
endif
mini = high
maxi = max(maxi,high)
if maxi<>maxi[1] then
maxistart=barindex
endif
endif
if myMACD<0 then
if mymacd[1]>0 then
maxiprev=maxi
maxistartprev=maxistart
endif
mini = min(mini,low)
maxi = mini
if mini<>mini[1] then
ministart=barindex
endif
endif
RETURN
Merci pour cette version, qui fonctionne assez bien , deux types remarques , visuels et fonctionnel .
1- En testant , les Lowest et le Highest sont bon dans toutes les TF ( W,D,4H ) sauf pour le 1H , car il ne faut pas considérer le croisement lorsqu’il est constitué de 1 seule barre d’histogramme ( Cf. pièce jointe ) (pour cette modif peux tu stp indiquer dans le code quel valeur il faut modifier au cas ou c’est 2 barre de l’histogramme au lieu de 1 )
Remarques visuelle :
1- Est il possible de mettre une couleur différente pour distinguer le couple de lignes dans les différentes UT ( vert pour les H1 , bleu pour les H4 , magenta pour les 1D et Jaune pour les 1W ?
2- Est il possible d’ajouter un label à chaque fois dans chacune des deux lignes pour indiquer quelle Timeframe ces lignes concerne elle ( W – D – 4H, 1H)
3- Est il possible lorsqu’on est dans une UT inférieur afficher toutes les lignes des Higgest et lowest des UT supérieur ( le but étant de savoir quand on va casser le niveau de la Timeframe courante pour se diriger vers le niveau suivant ?
Merci
Merci d’anvace
Hello , j’espère que ma demande n’est pas trop compliquée 🙂
A tester, notamment pour la condition de X barres dessus / dessous pour valider un niveau, avec la variable “decay”, ici par défaut à 2.
//https://www.prorealcode.com/topic/marquer-le-plus-haut-et-le-plus-bas-dun-graphe/
defparam drawonlastbaronly=true
timeframe(1 hour, updateonclose)
// --- settings
fast = 12
slow = 26
factor = 1.0
decay = 2
// --- end of settings
fast = round(fast*factor)
slow = round(slow*factor)
myMACD=exponentialaverage[fast]-exponentialaverage[slow]
if summation[decay](myMACD>0)=decay then
//store the mini
if mymacd[decay]<0 then
miniprev=mini
ministartprev=ministart
endif
mini = high
maxi = max(maxi,high)
if maxi<>maxi[1] then
maxistart=barindex
endif
endif
if summation[decay](myMACD<0)=decay then
if mymacd[decay]>0 then
maxiprev=maxi
maxistartprev=maxistart
endif
mini = min(mini,low)
maxi = mini
if mini<>mini[1] then
ministart=barindex
endif
endif
timeframe(default)
drawsegment(maxistartprev,maxiprev,barindex,maxiprev) coloured(0,200,200) style(dottedline,2)
drawsegment(ministartprev,miniprev,barindex,miniprev) coloured(200,200,0) style(dottedline,2)
drawtext("H1",maxistartprev,maxiprev,dialog,bold,20) coloured(0,200,200)
drawtext("H1",ministartprev,miniprev,dialog,bold,20) coloured(200,200,0)
RETURN
Pour obtenir plusieurs lignes pour chaque timeframe, créer plusieurs indicateurs et changer dans chacun la ligne 5 avec le nom du timeframe désiré. Les couleurs, épaisseurs et style de lignes peuvent être modifiées aux lignes 44/45 avec les instructions coloured et style.
Le nom du timeframe est également à modifier aux lignes 46 et 47 avec les DRAWTEXT.
merci beaucoup , je vais regarder ca
si je comprends bien quand je suis dans l’UT 1h par exemple je deverais avoir 5 indicteurs chargés ( celui de l’ut courante ici 1h ,puis les indicateurs pour 4h.1d ,1w et 1M )
C’est en effet ce que je propose, au lieu de coder un gros indicateur, tu as déjà la solution en dupliquant le code dans 5 versions différentes.