Exemple pour détecter avec un indicateur les débuts de tendance haussière (apparition bande bleue) et tendance baissière (disparition bande bleue). Les signaux sont ici matérialisées par des pics verts ou rouges (voir image jointe).
myTrend, myNeutral, myExpansion = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
uptrend = myTrend <> myExpansion //ExtraTrend bande bleue
dntrend = myTrend = myExpansion
newDnTrend = dntrend and not dntrend[1] //nouvelle tendance baissière (bande bleue)
newUpTrend = uptrend and not uptrend[1] //nouvelle tendance haussière (bande bleue)
return newDnTrend coloured(255,0,0), newUpTrend coloured(0,255,0)
Screener reprenant cet indicateur pour détecter le tout début d’un signal haussier ou sa fin avec l’aide du signal baissier (disparation de la bande bleue).
myTrend, ignored, myExpansion = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
uptrend = myTrend <> myExpansion //ExtraTrend bande bleue
dntrend = myTrend = myExpansion
newDnTrend = dntrend and not dntrend[1] //nouvelle tendance baissière (bande bleue)
newUpTrend = uptrend and not uptrend[1] //nouvelle tendance haussière (bande bleue)
if newDnTrend then
signal=-1
else
signal=1
endif
screener[newUpTrend OR newDnTrend](signal as "Trend")
Le type de signal est indiqué dans la colonne de critère de tri de ProScreeer (1 = haussier ; -1 = fin haussier ou baissier)
Merci Nicolas pour ce nouveau topic, on va pouvoir commencer à réfléchir à des idées de screeners pour utiliser au mieux ce nouvel outil développé par Christophe…
Bonjour,
Quelles sont les données liées à l’indicateur et accessibles via le ProScreener ?
Est ce que la résistance dynamique est accessible pour déceler les valeurs qui la franchissent ?
Idem pour ShortTermResistance ?
Merci d’avance
Je ne pense pas que ces informations soient restituées par l’indicateur, mais je crois que son auteur va ajouter d’autres variables dans une mise à jour à venir.
Bonjour à tous,
Aller, j’ouvre le bal, voici un petit Screener permettant d’extraire les plus longs Trend haussier grâce à ce très beau indicateur mis à notre disposition par Christophe.
désolé, mais je ne connais pas la méthode pour mettre directement le code dans le message (cf. messages de Nicolas ci-dessus), merci Nicolas de m’indiquer la marche à suivre.
il est ultra simple et j’espère qu’il y en aura plein d’autre partages :
// Les plus longs trend
myTrend, ignored, myExpansion = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
j=0
WHILE myTrend[j] <> myExpansion[j] DO
j=j+1
if j=254 then
BREAK
endif
WEND
SCREENER[j<>0] (j)
L’indicateur semble fonctionner sur deux modes (TrendFollowing, sans TrendFollowing).
Lors de l’appel à la fonction dans un Screener, quel est le mode utilisé ?
Est-il possible de faire un appel à la fonction en précisant le mode désiré ?
Les données retournées (myTrend, myNeutral, myExpansion) n’ont j’imagine pas les mêmes valeurs (il suffit de regarder les graphes pour constater la différence.
Merci d’avance
Pour récupérer la valeur des courbes en mode “trend following”, le CALL de l’indicateur serait :
myTrend, myNeutral, myExpansion = CALL "ExtraTrend"[1, 0, 0, 0, 0](close)
La première valeur des paramètres passe à 1 (1 correspond à la case cochée dans les paramètres de l’indicateur puisque 1=vrai et 0=faux).
Un Screener permettant de retourner la liste des valeurs débutant un retournement à la hausse dans un Trend Haussier (option sans “trend following”).
Les valeurs retournées sont plus proche de la borne basse du canal (“Neutral Line”) que de celle du haut (“Expansion Line”).
Je mettrai le même algorithme avec l’option “trend following” dans un deuxième message
//
condvolume= Average[200](volume)>15000 //permet d'éviter les valeurs peu liquides
//calcul de la moyenne mobile 4 périodes pondérée par les volumes
tempValue = 0.0
tempVolume = 0.0
for step = 0 to 3 do
tempValue = tempValue + (((close[step]*volume[step]))) //+high[step]+low[step])/3)
tempVolume = tempVolume + volume[step]
next
myVWMA = tempValue / tempVolume
//Recherche des Trend Haussier (sans option "trend following")
myTrend, myNeutral, myExpansion = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
uptrend = myTrend <> myExpansion
//Calcul de la distance entre la clôture et la borne haute et basse du Trend
DistNeutral = ((close-myNeutral)/close)*100
DistExpans = ABS((myExpansion-close)/close)*100
//retournement à la hausse de la VWMA(4) sur Trend Haussier proche de la borne basse
ca = myVWMA[2]>myVWMA[1] and myVWMA[1]<myVWMA and condvolume and uptrend and close>open and DistNeutral<DistExpans
SCREENER[ca] (DistNeutral) //affichage de la distance de la borne basse
Le même Screener avec l’option “trend following” :
//
condvolume= Average[200](volume)>15000
//calcul de la moyenne mobile 4 périodes pondérée par les volumes
tempValue = 0.0
tempVolume = 0.0
for step = 0 to 3 do
tempValue = tempValue + (((close[step]*volume[step])))
tempVolume = tempVolume + volume[step]
next
myVWMA = tempValue / tempVolume
//Recherche des Trend Haussier avec "trend following"
myTrend, myNeutral, myExpansion = CALL "ExtraTrend"[1, 0, 0, 0, 0](close)
uptrend = myTrend <> myExpansion
//Calcul de la distance entre la clôture et la borne haute et basse du Trend
DistNeutral = ((close-myNeutral)/close)*100
DistExpans = ABS((myExpansion-close)/close)*100
//retournement à la hausse de la VWMA(4) sur Trend Haussier proche de la borne basse
//la condition sur les volumes évite les valeurs peu liquides
ca = myVWMA[2]>myVWMA[1] and myVWMA[1]<myVWMA and condvolume and uptrend and close>open and DistNeutral<DistExpans and DistNeutral>0
SCREENER[ca] (DistNeutral) //affichage de la distance de la borne basse
GabiParticipant
Senior
Un screener pour trouver les débuts d’expansion.
signal = 0
Trend, ignored, Expansion = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
if Trend <> Expansion and Trend[1] = Expansion[1] then
signal = 1
endif
SCREENER[signal](signal)
🙂
Bonjour,
Il serait intéressant d’avoir un screener qui nous donnerait
la distance en % par rapport à la ligne en pointillé rouge Dynamic Resistance
Merci pour une idée
Cordialement
Screener permettant de remonter les valeurs effectuant une sortie de niveau d’expansion en tendance haussière avec la durée de la tendance en cours.
Plus la valeur de la durée est proche de 1 plus le mouvement est à ses débuts.
//
myTrend1, ignored, myExpansion1 = CALL "ExtraTrend"[1, 0, 0, 0, 0](close)
myTrend0, ignored, myExpansion0 = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
condvolume=Average[200](volume)>15000
uptrend1 = myTrend1 <> myExpansion1
uptrend0 = myTrend0 <> myExpansion0
if condvolume then
//i=1
j=0
WHILE myTrend1[j] <> myExpansion1[j] DO
j=j+1
if j=254 then
BREAK
endif
WEND
endif
condvolume=Average[200](volume)>15000
ca= close crosses over myExpansion1 and uptrend1 and uptrend0
// code proscreener d'exemple
SCREENER[ca and condvolume] (j as "durée")
Bonjour à tous,
Si l’on veut appliquer la stratégie par exemple de faire une entrée lorsque l’indicateur est en TRENDFOLLOWING et que l’on vient de casser la SHORTTERMRESISTANCE en clôture, avez vous une idée pour faire ce genre de screener.
Merci pur votre aide