// Détecteur de début de tendance haussière
// Conditions: Nouveau signal haussier ExtraTrend + Bande bleue ExtraTrend > MM200
// --- ExtraTrend ---
myTrend, ignored, myExpansion, ignored, ignored = CALL "ExtraTrend"[0, 0, 0, 0, 0, 0](close)
uptrend = myTrend <> myExpansion //ExtraTrend bande bleue
dntrend = myTrend = myExpansion //ExtraTrend bande rouge
newDnTrend = dntrend and not dntrend[1] //nouvelle tendance baissière
newUpTrend = uptrend and not uptrend[1] //nouvelle tendance haussière
// --- Moyenne Mobile 200 ---
mm200 = average[200](close)
// --- Conditions sur la bande bleue ---
// La bande bleue ExtraTrend (myTrend en période uptrend) doit être au-dessus de la MM200
bandeBleueAuDessusMM200 = uptrend AND myTrend > mm200
// Détection du passage de la bande bleue au-dessus de la MM200
passageBandeBleueAujourdhui = bandeBleueAuDessusMM200 AND (NOT (uptrend[1] AND myTrend[1] > mm200[1]))
passageBandeBleueHier = (uptrend[1] AND myTrend[1] > mm200[1]) AND NOT (uptrend[2] AND myTrend[2] > mm200[2])
// --- Conditions combinées ---
// Cas 1: Nouveau signal haussier ExtraTrend ET bande bleue déjà au-dessus MM200
cas1 = newUpTrend AND myTrend > mm200
// Cas 2: Bande bleue vient de passer au-dessus MM200 (aujourd'hui ou hier)
cas2 = passageBandeBleueAujourdhui OR (bandeBleueAuDessusMM200 AND passageBandeBleueHier)
debutTendanceHaussiere = cas1 OR cas2
// Signal pour le screener
if debutTendanceHaussiere then
signal = 1
elsif newDnTrend then
signal = -1
else
signal = 0
endif
// Screener - détecte quand la bande bleue passe au-dessus de la MM200
screener[debutTendanceHaussiere](signal as "TendanceHaussiere")