Bonsoir,
à partir de l’indicateur ci-dessous, je souhaiterai un screener qui m’identifie les situations suivants :
– croisement à la hausse de la ligne de signal par le macd lorsque celui-ci se trouve en dessous de la ligne basse (O-STDD) si j’ai tout compris
– croisement à la baisse de la ligne de signal par le macd lorsque celui-ci se trouve au dessus de la ligne haute (STDU) si j’ai tout compris là aussi.
voici le screener à partir du code pris sur le forum et retravaillé avec l’aide de Nicolas.
pc=12
pl=26
ps=9
p=13//periodos EIS
aa=exponentialaverage[p](close)
cc=MACD[pc,pl,ps](close)
// --- nicolas
periodSTD = 500
coeffSTD = 8
// --- fin nicolas
if aa > aa[1] and cc>cc[1] Then
dd =cc
else
dd=0
endif
if aa<aa[1] and cc < cc[1] then
ee=cc
else
ee=0
endif
REM MACD
hh=(exponentialaverage[pc](close) - exponentialaverage[pl](close))
REM Signal
hh1=exponentialaverage[ps](hh)
stdu = std[periodSTD](dd)*coeffSTD
stdd = std[periodSTD](ee)*coeffSTD
hausse = (hh crosses over hh1) and (hh < stdd)
baisse = (hh crosses under hh1) and (hh > stdu)
screener [hausse or baisse]
le problème est qu’il ne me renvoie pas les bonnes informations….
Je n’ai pas testé mais je pense que le problème vient de “periodSTD = 500”, ProScreener étant limité à 255 bars d’historique, il faudrait baisser cette période à une valeur inférieure. Cela devrait fonctionner ensuite, merci de confirmer.
Bonsoir,
j’ai donc modifié le screener comme suit :
pc=12
pl=26
ps=9
p=13//periodos EIS
aa=exponentialaverage[p](close)
cc=MACD[pc,pl,ps](close)
// --- nicolas
periodSTD = 200
coeffSTD = 8
// --- fin nicolas
if aa > aa[1] and cc>cc[1] Then
dd =cc
else
dd=0
endif
if aa<aa[1] and cc < cc[1] then
ee=cc
else
ee=0
endif
REM MACD
hh=(exponentialaverage[pc](close) - exponentialaverage[pl](close))
REM Signal
hh1=exponentialaverage[ps](hh)
stdu = std[periodSTD](dd)*coeffSTD
stdd = std[periodSTD](ee)*coeffSTD
hausse = (hh crosses over hh1) and (hh < stdd)
baisse = (hh crosses under hh1) and (hh > stdu)
screener [hausse or baisse]
et le résultat en pièce jointe : pas concluant sauf si je me suis trompé quelque part.
il me ressort le dax alors que le MACD croise bien la ligne de signal mais au-dessus de la ligne du bas.
Pour ajouter du code , veuillez utiliser le bouton <> “insert PRT code”. Merci.
En complément de mon dernier post, j’ai fait un second trimestre en ne reprenant que le croisement du signal par le macd et j’obtiens beaucoup plus de résultats. Ce qui me laisse à penser que le code du screener ci-dessus va dans la bonne direction mais que subsiste un problème puisqu’il me renvoie bien un croisement du signal par le macd mais pas au bon endroit.
Est-ce que “periodSTD” est aussi réglé à 200 dans l’indicateur affiché sur la plateforme ? Histoire de bien comparer les mêmes valeurs.
Bonsoir,
je viens de le faire. Je surveille et vous reviens. Merci.
ci-joint capture d’écran USD CAD unité de temps 1 heure signalé par le screener (copie du code joint) comme en retournement sauf que si le MACD croise bien le signal, ce n’est ni au-dessous de la ligne basse ni au dessus de la ligne haute.
Je ne vois pas où est le problème dans le code du screener…
Le code de l’indicateur original que j’ai fabriqué pour obtenir les lignes de volatilité haute et basse (stdd et stdu) n’est pas bien recopié dans ton screener, à mon avis.
Je n’ai pas regardé, mais je pense que les lignes 29 et 30 devraient être remplacé par:
stdu = 0+std[periodSTD](dd)*coeffSTD
stdd = 0-std[periodSTD](ee)*coeffSTD
Puisque l’oscillateur navigue autour de son centre, le niveau 0, les bandes haute et basse doivent être également situées de part et d’autre.
Bonsoir. Je teste la modification. Je vous reviens.
Impeccable. ça fonctionne. Merci et bon week end. Philippe.