Screener mtf &EMA CLOUD 20/50 & EMA 200

//@version=5
indicator(title='Screener mtf &EMA CLOUD 20/50 & EMA 200 ', overlay=true)

// EMA CLOUD 20/50
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)

screen() =>
above_ema = close > ema20 and close > ema50
below_ema = close < ema20 and close < ema50
[above_ema, below_ema]

tf = timeframe.period

s1 = input.symbol('XAUUSD', 'Symbol 1', inline='1', group='ALL LIST')
s2 = input.symbol('US02Y', 'Symbol 2', inline='1', group='ALL LIST')
s3 = input.symbol('EUBUND', 'Symbol 3', inline='1', group='ALL LIST')
s4 = input.symbol('USOIL', 'Symbol 4', inline='1', group='ALL LIST')
s5 = input.symbol('TNOTE', 'Symbol 5', inline='1', group='SKILLING LIST')

[c1, v1] = request.security(s1, tf, screen())
[c2, v2] = request.security(s2, tf, screen())
[c3, v3] = request.security(s3, tf, screen())
[c4, v4] = request.security(s4, tf, screen())
[c5, v5] = request.security(s5, tf, screen())

buy_label = '======BUY======\n'
buy_label := c1 ? buy_label + str.tostring(s1) + '\n' : buy_label
buy_label := c2 ? buy_label + str.tostring(s2) + '\n' : buy_label
buy_label := c3 ? buy_label + str.tostring(s3) + '\n' : buy_label
buy_label := c4 ? buy_label + str.tostring(s4) + '\n' : buy_label
buy_label := c5 ? buy_label + str.tostring(s5) + '\n' : buy_label

lab_buy = label.new(bar_index + 10, close, buy_label, color=color.new(color.blue, 70), textcolor=color.black, style=label.style_label_up, yloc=yloc.price, textalign=text.align_left)
label.delete(lab_buy[1])

sell_label = '======SELL=======\n'
sell_label := v1 ? sell_label + str.tostring(s1) + '\n' : sell_label
sell_label := v2 ? sell_label + str.tostring(s2) + '\n' : sell_label
sell_label := v3 ? sell_label + str.tostring(s3) + '\n' : sell_label
sell_label := v4 ? sell_label + str.tostring(s4) + '\n' : sell_label
sell_label := v5 ? sell_label + str.tostring(s5) + '\n' : sell_label

lab_sell = label.new(bar_index + 10, close, sell_label, color=color.new(color.red, 70), textcolor=color.black, style=label.style_label_down, yloc=yloc.price, textalign=text.align_left)
label.delete(lab_sell[1])

// EMA CLOUD 50/20
ema20plot = plot(ema20, color=color.rgb(7, 15, 250), style=plot.style_line, linewidth=1, title='EMA(20)', transp=100)
ema50plot = plot(ema50, color=color.rgb(240, 11, 11), style=plot.style_line, linewidth=1, title='EMA(50)')
fill(ema20plot, ema50plot, color=ema20 > ema50 ? #002ae6 : #f80a0a, editable=true, transp=60)

// EMA 200
len = input.int(200, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
ema200 = ta.ema(src, len)
plot(ema200, title="EMA(200)", color=color.new(color.gray, 0), linewidth=2, offset=offset)

ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)

typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Length", defval=5, minval=1, maxval=100, group="Smoothing")

smoothingLine = ma(ema200, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=color.new(color.orange, 0), linewidth=2, offset=offset, transp=0)


------------------------------------------------------------------------------------------------------------------------------mode emploi -------------------------------------------------------------------------------------

Indicateur Principal - EMA Cloud 20/50 & EMA 200
EMA Cloud 20/50 :

Les lignes ema20 et ema50 calculent les moyennes mobiles exponentielles (EMA) sur 20 et 50 périodes, respectivement.
Ces EMAs sont utilisées pour définir une condition above_ema (au-dessus des EMAs) et below_ema (en dessous des EMAs).
Screener - screen() :

Cette fonction retourne deux conditions booléennes : above_ema et below_ema en fonction de la position du prix par rapport aux EMAs.
Ces conditions sont utilisées pour le screening des signaux sur différents symboles.
Symboles d'Entrée :

s1, s2, ..., s5 définissent les symboles à screener.
Les résultats du screening pour chaque symbole sont stockés dans [c1, v1], [c2, v2], ..., [c5, v5].
Labels Buy/Sell :

Des étiquettes (labels) sont générées pour afficher les signaux d'achat (lab_buy) et de vente (lab_sell) sur le graphique en fonction des résultats du screener.
Les symboles correspondants aux signaux sont inclus dans les labels.
EMA Cloud 50/20 :
Graphique EMA 20/50 :
Les lignes ema20plot et ema50plot tracent les lignes des EMAs 20 et 50 sur le graphique.
La fonction fill colore la zone entre les EMAs en fonction de la relation entre ema20 et ema50.
EMA 200 :
Graphique EMA 200 :
La longueur de l'EMA 200 est définie par l'entrée len.
La ligne ema200 représente l'EMA 200, et elle est tracée sur le graphique avec la fonction plot.
Smoothing Line :
Ligne de Lissage (smoothingLine) :

La fonction ma est utilisée pour appliquer différents types de moyennes mobiles (SMA, EMA, SMMA, WMA, VWMA) à l'EMA 200.
Les paramètres de type et de longueur peuvent être ajustés via les entrées.
Graphique de Lissage :

La ligne de lissage (smoothingLine) est tracée sur le graphique avec la fonction plot.
Entrées Utilisateur :
Entrées Paramétrables :
L'utilisateur peut personnaliser certaines entrées, telles que les symboles, la longueur de l'EMA 200 (len), la source de données (src), l'offset, le type de moyenne mobile (typeMA), et la longueur de lissage (smoothingLength).
Utilisation Générale :
Signaux d'Achat et de Vente :

Les signaux d'achat sont indiqués par des labels bleus, tandis que les signaux de vente sont indiqués par des labels rouges.
Les symboles correspondants aux signaux sont affichés dans les labels.
EMA Cloud 50/20 :

La zone entre les EMAs 20 et 50 est colorée en fonction de la tendance.
EMA 200 et Lissage :

L'EMA 200 est tracée sur le graphique avec la possibilité d'appliquer un lissage.
Remarque :
Cet indicateur est destiné à une analyse approfondie et peut nécessiter une compréhension avancée de l'analyse technique pour son utilisation optimale.
Les signaux d'achat et de vente doivent être interprétés en conjonction avec d'autres analyses pour prendre des décisions éclairées.

Paramètres de l'Indicateur Principal (EMA Cloud 20/50 & EMA 200) :
ema20 et ema50 :

Critères : Ces paramètres définissent les périodes des moyennes mobiles exponentielles (EMAs) à 20 et 50 jours respectivement.
Utilisation : Ils sont utilisés pour créer un nuage (cloud) basé sur la relation entre ces deux EMAs.
screen() - Fonction de Screening :

Critères : La fonction screen() utilise les valeurs de close, ema20, et ema50 pour déterminer si le prix est au-dessus ou en dessous des EMAs.
Utilisation : Fournit des conditions (above_ema et below_ema) pour filtrer les signaux d'achat et de vente.
Symboles et Résultats du Screening :

Critères : Les symboles (s1, s2, ..., s5) spécifient les actifs à analyser. Les résultats du screening ([c1, v1], [c2, v2], ..., [c5, v5]) indiquent si un actif a généré un signal d'achat (c1, c2, ..., c5) ou un signal de vente (v1, v2, ..., v5).
Utilisation : Permet de filtrer et d'afficher les signaux pour plusieurs actifs.
Labels Buy/Sell :

Critères : Les labels sont créés en fonction des résultats du screening pour afficher les symboles correspondants aux signaux d'achat et de vente.
Utilisation : Permet d'afficher clairement les signaux sur le graphique.
Paramètres de l'EMA Cloud 50/20 :
Graphique EMA 20/50 :
Critères : Les paramètres de couleur et de style définissent l'apparence des lignes ema20 et ema50 sur le graphique.
Utilisation : Permet de visualiser la relation entre les EMAs 20 et 50.
Paramètres de l'EMA 200 et Lissage :
Graphique EMA 200 :

Critères : La longueur de l'EMA 200 (len), la source de données (src), et l'offset sont ajustables.
Utilisation : L'EMA 200 est tracée avec la possibilité de personnaliser ces paramètres.
Fonction de Lissage (ma) :

Critères : La fonction permet de choisir entre différents types de moyennes mobiles (typeMA) et de définir la longueur de lissage (smoothingLength).
Utilisation : Permet d'appliquer un lissage à l'EMA 200 en fonction des préférences de l'utilisateur.
Entrées Utilisateur :
Entrées Paramétrables :
Critères : Les utilisateurs peuvent personnaliser les symboles, la longueur de l'EMA 200, la source de données, l'offset, le type de moyenne mobile, et la longueur de lissage.
Utilisation : Offre une flexibilité pour adapter l'indicateur aux préférences et à la stratégie de l'utilisateur.
Utilisation Générale :
Signaux d'Achat et de Vente :

Critères : Les signaux d'achat et de vente sont basés sur les résultats du screening et sont affichés avec des labels sur le graphique.
Utilisation : Aide à identifier les points d'entrée potentiels.
EMA Cloud 50/20 et EMA 200 :

Critères : La visualisation de la relation entre les EMAs 20 et 50 et l'EMA 200 permet de comprendre la tendance actuelle du marché.
Ligne de Lissage :

Critères : La ligne de lissage est tracée en fonction des choix de l'utilisateur pour le type de moyenne mobile et la longueur de lissage.
Utilisation : Fournit une indication plus lisse de la tendance à long terme.
Remarque :
Ajustez les paramètres en fonction de votre stratégie et de vos préférences. L'indicateur est conçu pour offrir une analyse approfondie du marché.