Ho semplicemente sostituito l’RSI con il PREZZO, provalo, ma non so se la logica sarà corretta:
// Doppi Massimi & Minimi indicat
//
ONCE p = 50 //50 periodi di storico
ONCE PerCent= 3 //3% max. DiffLerenza tra i due MASSIMI
CondL = 0
CondS = 0
Cond = 0
myPrice = close//Rsi[14](close)
Max1 = myPrice
Min1 = myPrice
Bar1L = BarIndex
Bar1S = BarIndex
Max2 = highest[p](myPrice)
Minimo = lowest[p](myPrice)
Massimo = Max2
Min2 = Minimo
FOR i = 0 TO (p - 1)
// Doppio MASSIMO
IF myPrice[i] = Minimo THEN
BarMin = BarIndex[i]
PrezzoMin= close[i]
ELSIF myPrice[i] = Max2 THEN
Bar2L = BarIndex[i]
Prezzo2L = close[i]
ELSIF myPrice[i] > Max1 THEN
Max1 = myPrice[i]
Bar1L = BarIndex[i]
Prezzo1L = close[i]
ENDIF
// Doppio MINIMO
IF myPrice[i] = Massimo THEN
BarMax = BarIndex[i]
PrezzoMax= close[i]
ELSIF myPrice[i] = Min2 THEN
Bar2S = BarIndex[i]
Prezzo2S = close[i]
ELSIF myPrice[i] < Min1 THEN
Min1 = myPrice[i]
Bar1S = BarIndex[i]
Prezzo1S = close[i]
ENDIF
//
NEXT
//
IF (Max2 > Max1) AND (Max1 > Minimo) AND (Prezzo2L > Prezzo1L) THEN
IF (Bar2L < BarMin) AND (BarMin < Bar1L) THEN
GapL = Prezzo2L - Prezzo1L
DiffL = abs(GapL * 100 / Prezzo2L) <= PerCent
IF DiffL THEN
IF (close <= Prezzo1L) AND (close >= PrezzoMin) THEN
//CondL = 1 //restituisce l'Ultimo trovato (anche se vecchio)
CondL = (Bar1L = BarIndex) //restituisce solo quelli rilevati sulla candela corrente
ENDIF
ENDIF
ENDIF
ENDIF
//
IF (Min2 < Min1) AND (Min1 < Massimo) AND (Prezzo2S < Prezzo1S) THEN
IF (Bar2S < BarMax) AND (BarMax < Bar1S) THEN
GapS = Prezzo1S - Prezzo2S
DiffS = abs(GapS * 100 / Prezzo2S) <= PerCent
IF DiffS THEN
IF (close >= Prezzo1S) AND (close <= PrezzoMax) THEN
//CondS = 1 //restituisce l'Ultimo trovato (anche se vecchio)
CondS = (Bar1S = BarIndex) //restituisce solo quelli rilevati sulla candela corrente
ENDIF
ENDIF
ENDIF
ENDIF
//
IF CondL THEN
Cond = 1
DrawText("◉",Bar1L,Max1 + 2,dialog,bold,24) coloured(0,0,255,255)
DrawText("●",Bar2L,Max2 + 2,dialog,bold,10) coloured(0,0,255,255)
DrawText("●",BarMin,Minimo - 2,dialog,bold,10) coloured(0,0,255,255)
ENDIF
//
IF CondS THEN
Cond = 2
DrawText("◉",Bar1S,Min1 - 2,dialog,bold,24) coloured(255,0,0,255)
DrawText("●",Bar2S,Min2 - 2,dialog,bold,10) coloured(255,0,0,255)
DrawText("●",BarMax,Massimo + 2,dialog,bold,10) coloured(255,0,0,255)
ENDIF
RETURN myPrice AS "Prezzo"