Bonjour ,
je recherche un Sceener en DAY et HA et H1 et UT 30 Minutes avec ……
La Tendance de l’action
SuperTrend (10,3)
Sar (0,02 0,02 0,2)
Bollinger bandWidh 34,1.6185
ADX (10)
Divergence MACD (9,19,6)
Merci d’avance 🙏
Cordialement
hugo
@hugo-levieils Pour faire un screener multi-UT (DAY, Heikin Ashi, H1, 30 min), le plus simple dans ProScreener est de travailler en UT courante (celle du screener) et d’appliquer des critères “simples” sur vos indicateurs. Comme votre demande ne précise pas exactement la logique attendue (ex : “tendance = quoi ?”, seuils exacts, conditions d’entrée/sortie, priorités entre indicateurs), je me limite ci-dessous à des tests basiques et robustes. J’omets la divergence MACD comme demandé par la modération.
- Tendance haussière si SuperTrend(10,3) est sous le prix (prix au-dessus du ST).
- Confirmation si SAR est sous le prix.
- Expansion de volatilité si la BandWidth Bollinger (longueur 34) est supérieure à sa moyenne × 1.6185.
- Force de tendance si ADX(10) est au-dessus d’un seuil simple (ex : 20).
- MACD (9,19,6) en filtre simple : MACD ligne > signal (pas de divergence).
Pourquoi ça marche (logique) : on combine (1) direction (SuperTrend), (2) confirmation stop-and-reverse (SAR), (3) régime de volatilité (BandWidth), (4) force (ADX) et (5) momentum (MACD). Le screener retient ainsi des valeurs en tendance + force + volatilité en expansion.
ProScreener (à lancer sur l’UT souhaitée : DAY, H1, 30 min)
// Screener simple : SuperTrend + SAR + BB Width + ADX + MACD
// UT = celle du ProScreener (lancer séparément en DAY, H1, 30min)
// Divergence MACD volontairement omise
// --- Paramètres
stPeriod = 10
stMult = 3
sarStep = 0.02
sarInc = 0.02
sarMax = 0.2
bbLen = 34
bbK = 2
bwFactor = 1.6185
adxLen = 10
adxMin = 20
macdFast = 9
macdSlow = 19
macdSig = 6
// --- SuperTrend (approximation standard via ATR)
// Calcul basique du SuperTrend en ProRealTime
atr = AverageTrueRange[stPeriod](close)
basicUpper = (high+low)/2 + stMult*atr
basicLower = (high+low)/2 - stMult*atr
// Final bands
if barindex = 0 then
upperBand = basicUpper
lowerBand = basicLower
st = basicLower
trendUp = 1
else
upperBand = basicUpper
lowerBand = basicLower
if upperBand > upperBand[1] AND close[1] <= upperBand[1] then
upperBand = upperBand[1]
endif
if lowerBand < lowerBand[1] AND close[1] >= lowerBand[1] then
lowerBand = lowerBand[1]
endif
// Trend decision
if close > upperBand[1] then
trendUp = 1
elsif close < lowerBand[1] then
trendUp = 0
else
trendUp = trendUp[1]
endif
if trendUp then
st = lowerBand
else
st = upperBand
endif
endif
condST = close > st
// --- SAR
sar = SAR[sarStep, sarInc, sarMax]
condSAR = close > sar
// --- Bollinger BandWidth (34, 2) puis expansion x1.6185 vs moyenne
basis = Average[bbLen](close)
dev = StdDeviation[bbLen](close)
upper = basis + bbK*dev
lower = basis - bbK*dev
bw = (upper - lower) / basis
bwAvg = Average[bbLen](bw)
condBW = bw > bwAvg * bwFactor
// --- ADX(10)
adx = ADX[adxLen]
condADX = adx > adxMin
// --- MACD(9,19,6) : filtre simple (ligne > signal)
macdLine = MACD[macdFast, macdSlow](close)
macdSignal = Average[macdSig](macdLine)
condMACD = macdLine > macdSignal
// --- Résultat
SCREENER[ condST AND condSAR AND condBW AND condADX AND condMACD ]
Heikin Ashi (HA) : ProScreener ne “bascule” pas automatiquement une série en Heikin Ashi via code. Pour un screener HA, il faut lancer le screener sur un graphique / univers paramétré en Heikin Ashi (ou utiliser une liste dédiée) et garder la même logique de filtres.
Multi-UT (DAY + H1 + 30 min) : ProScreener filtre sur une UT à la fois. Pour reproduire “DAY ET H1 ET 30 min”, il faut soit :
- lancer 3 screeners (un par UT) et croiser les listes,
- ou définir une UT principale et ajouter des filtres multi-UT (plus avancé, à préciser : quelles règles entre UT ?).
voici
// --- ProScreener Trend Filter ---
// Parameters: SuperTrend(10,3), SAR(0.02, 0.02, 0.2), ADX(10), BB(34, 1.6185)
// 1. SuperTrend
stValue = SuperTrend[10, 3]
// 2. Parabolic SAR
sarValue = SAR[0.02, 0.02, 0.2]
// 3. ADX (Strength of trend)
myADX = ADX[10]
// 4. Bollinger BandWidth (Custom Std Dev 1.6185)
avgPeriod = 34
stdDevMultiplier = 1.6185
midBand = Average[avgPeriod](close)
stdVal = std[avgPeriod](close)
upperBand = midBand + (stdDevMultiplier * stdVal)
lowerBand = midBand - (stdDevMultiplier * stdVal)
IF midBand <> 0 THEN
bwValue = (upperBand - lowerBand) / midBand
ELSE
bwValue = 0
ENDIF
// 5. MACD (9, 19, 6)
myMACD = MACD[9, 19, 6](close)
mySignal = MACDline[9, 19, 6](close)
// --- Conditions ---
// Price above SuperTrend and SAR
condBullish = (close > stValue) AND (close > sarValue)
// Trend strength
condADX = myADX > 20
// Basic MACD Bullish state (as part of a bullish divergence context)
condMACD = myMACD > mySignal
// --- Final Filter ---
finalCondition = condBullish AND condADX AND condMACD
SCREENER[finalCondition] (bwValue AS "BandWidth")