Bonjour à tous,
j’ai besoin de votre aide pour écrire un code car je ne maîtrise pas assez le langage de prorealtime.
voici mon idée :
Je veux créer un indicateur de signal d’achat et de vente avec les conditions suivantes :
ACHAT :
( Donne alors un signal d’achat sous le graphe par une “barre verte”
Condition 1 : les cours sont au dessus des EMA 50 et 20
Condition 2 : le super trend est “vert” (sous les cours )
VENTE :
( Donne alors un signal d’achat sous le graphe par une “barre rouge “
Condition 3 : le super trend est “rouge ” (sous les cours )
Condition 4 : les cours sont au dessus des EMA 50 et 20
serait-il également possible de compléter avec des “barre orange ou jaune ( les posions neutres)
lorsque les cours sont au dessus des EMA mais que les super trend est négatif et lorsque le super trend est positif mais que les cours sont en dessous des EMA 20 et 50
pouvez-vous m’aider ?
En vous remerciant par avance.
Merci
@cyberdede voici un indicateur ProBuilder qui affiche un histogramme sous le graphique :
- Barre verte quand Close est au-dessus des EMA20 et EMA50 ET que le SUPERTREND[3,10] est haussier (supertrend sous les prix).
- Barre rouge quand Close est sous les EMA20 et EMA50 ET que le SUPERTREND[3,10] est baissier (supertrend au-dessus des prix).
- Barre jaune/orange (neutre) dans les 2 cas “mixtes” : au-dessus des EMA mais supertrend baissier, ou sous les EMA mais supertrend haussier.
// --- Paramètres EMA
emaFast = ExponentialAverage[20](close)
emaSlow = ExponentialAverage[50](close)
// --- SuperTrend demandé (période=3, multiplicateur=10)
st = SuperTrend[3,10]
// Logique de tendance SuperTrend:
// - si le SuperTrend est sous le prix => tendance haussière (vert)
// - si le SuperTrend est au-dessus du prix => tendance baissière (rouge)
stBull = st < close
stBear = st > close
// Logique EMA
aboveEMAs = close > emaFast AND close > emaSlow
belowEMAs = close < emaFast AND close < emaSlow
// --- États
buyState = aboveEMAs AND stBull
sellState = belowEMAs AND stBear
neutralState = (aboveEMAs AND stBear) OR (belowEMAs AND stBull)
// --- Valeur histogramme (1 = achat, -1 = vente, 0.5 = neutre)
hist = 0
IF buyState THEN
hist = 1
ELSIF sellState THEN
hist = -1
ELSIF neutralState THEN
hist = 0.5
ENDIF
// --- Couleurs via colorR/G/B
colorR = 180
colorG = 180
colorB = 0 // neutre (jaune/orange) par défaut
IF buyState THEN
colorR = 0
colorG = 180
colorB = 0
ELSIF sellState THEN
colorR = 200
colorG = 0
colorB = 0
ENDIF
RETURN hist coloured(colorR, colorG, colorB) style(histogram)
Pourquoi ça fonctionne : l’indicateur combine un filtre de tendance “moyennes mobiles” (prix au-dessus/en-dessous des EMA20/EMA50) avec un filtre directionnel SUPERTREND[3,10] (haussier si sa courbe est sous les prix, baissier si elle est au-dessus). L’histogramme renvoie une valeur différente selon l’état, et la couleur est pilotée par colorR, colorG, colorB.
Merci infiniment pour cette aide précieuse et pour cette réactivité a trouver une solution. Cordialement.