bonjour
voici le mien pour test
/ ==========================
// RSI Wave Signals – ProRealTime
// Conversion depuis Pine Script
// Indicateur basé sur OTT et RSI
// © bartua & KivancOzbilgic
// ==========================
// 🔹 Paramètres Utilisateur
DEFPARAM calculateonlastbars = 500 // Charge un nombre suffisant de barres pour éviter les erreurs d’indexation
period1 = 2
mtp1 = 0.7
rsiLength = 12
overSoldLevel = 40
overBoughtLevel = 60
// 🔹 Calcul du RSI
MONrsi = RSI[rsiLength](CLOSE)
// ==========================
// Initialisation des variables
// ==========================
dir = 1
VAR = 0
longStop = 0
shortStop = 0
ott1 = 0
sl1 = 0
// ==========================
// Boucle principale pour calculer OTT
// ==========================
FOR i = 10 TO 500 DO // Commencer à 10 pour éviter les erreurs d’indexation
valpha = 2 / (period1 + 1)
// Calcul du CMO (Chande Momentum Oscillator)
vUD = 0
vDD = 0
FOR j = 1 TO 9 DO // J varie de 1 à 9
IF close[j] > close[j+1] THEN // Utilisation correcte des valeurs historiques
vUD = vUD + (close[j] – close[j+1])
ELSIF close[j] < close[j+1] THEN
vDD = vDD + (close[j+1] – close[j])
ENDIF
NEXT
vCMO = (vUD – vDD) / (vUD + vDD + 0.00001) // Évite la division par zéro
VAR = valpha * ABS(vCMO) * close[i] + (1 – valpha * ABS(vCMO)) * VAR
MAvg = VAR
fark = MAvg * mtp1 / 100
// Calcul du Long Stop
longStopPrev = longStop
longStop = MAX(MAvg – fark, longStopPrev)
// Calcul du Short Stop
shortStopPrev = shortStop
shortStop = MIN(MAvg + fark, shortStopPrev)
// Détermination de la tendance
dirPrev = dir
IF dirPrev = -1 AND MAvg > shortStopPrev THEN
dir = 1
ELSIF dirPrev = 1 AND MAvg < longStopPrev THEN
dir = -1
ENDIF
// Sélection de MT en fonction de la tendance
IF dir = 1 THEN
MT = longStop
ELSE
MT = shortStop
ENDIF
// Calcul de OTT1
IF MAvg > MT THEN
ott1 = MT * (200 + mtp1) / 200
ELSE
ott1 = MT * (200 – mtp1) / 200
ENDIF
// Stockage de la moyenne mobile SL
sl1 = MAvg
NEXT
// ==========================
// Affichage des Résultats
// ==========================
RETURN ott1 AS “OTT”, sl1 AS “SL”, overSoldLevel AS “Survendu”, overBoughtLevel AS “Suracheté”