Eccolo (ovviamente riduce di molto i segnali):
// 1-2-3 Ross
//
// ONCE Periodi = 20
ONCE HH = 0
ONCE H1 = 0
ONCE H2 = 0
ONCE H3 = 0
ONCE LL = 0
ONCE L1 = 0
ONCE L2 = 0
ONCE L3 = 0
//
Periodi = max(1,min(999,Periodi))
//
Rialzo = close > open
Ribasso = close <open
//
IF RossH THEN
H1 = 0
H2 = 0
H3 = 0
RossH = 0
ENDIF
IF RossL THEN
L1 = 0
L2 = 0
L3 = 0
RossL = 0
ENDIF
//
// 1-2-3 High
HH = highest[Periodi](high)
IF HH <> HH[1] THEN
BarraH1 = BarIndex
H1 = high
H2 = 0
H3 = 0
RossH = 0
ENDIF
IF H1 = high[1] THEN
IF not (Rialzo[1] AND Ribasso) THEN
H1 = 0
H2 = 0
H3 = 0
RossH = 0
ENDIF
ENDIF
IF H1 AND not H3 THEN
p = max(1,BarIndex - BarraH1)
IF (low[1] = lowest[p](low)) AND Ribasso[1] AND Rialzo THEN
H2 = low[1]
BarraH2 = BarIndex[1]
ENDIF
ENDIF
IF H1 AND H2[1] AND not H3 THEN
p = max(1,BarIndex - BarraH2)
IF (high[1] = highest[p](high)) AND Rialzo[1] AND Ribasso AND (low[1] < H2) THEN
H3 = high[1]
BarraH3 = BarIndex[1]
ENDIF
ENDIF
IF H1 AND H2 AND H3 THEN
RossH = 1
Offset = average[100,0](range)
DrawText("1",BarraH1,H1 + Offset,Dialog,Bold,14) coloured("Blue",255)
DrawText("2",BarraH2,H2 - Offset,Dialog,Bold,14) coloured("Blue",255)
DrawText("3",BarraH3,H3 + Offset,Dialog,Bold,14) coloured("Blue",255)
ENDIF
//
// 1-2-3 Low
LL = lowest[Periodi](low)
IF LL <> LL[1] THEN
BarraL1 = BarIndex
L1 = low
L2 = 0
L3 = 0
RossL = 0
ENDIF
IF L1 = low[1] THEN
IF not (Ribasso[1] AND Rialzo) THEN
L1 = 0
L2 = 0
L3 = 0
RossL = 0
ENDIF
ENDIF
IF L1 AND not L3 THEN
p = max(1,BarIndex - BarraL1)
IF (high[1] = highest[p](high)) AND Rialzo[1] AND Ribasso THEN
L2 = high[1]
BarraL2 = BarIndex[1]
ENDIF
ENDIF
IF L1 AND L2[1] AND not L3 THEN
p = max(1,BarIndex - BarraL2)
IF (low[1] = lowest[p](low)) AND Ribasso[1] AND Rialzo AND (high[1] > L2) THEN
L3 = low[1]
BarraL3 = BarIndex[1]
ENDIF
ENDIF
IF L1 AND L2 AND L3 THEN
RossL = 1
Offset = average[100,0](range)
DrawText("1",BarraL1,L1 - Offset,Dialog,Bold,14) coloured("Red",255)
DrawText("2",BarraL2,L2 + Offset,Dialog,Bold,14) coloured("Red",255)
DrawText("3",BarraL3,L3 - Offset,Dialog,Bold,14) coloured("Red",255)
ENDIF
//
RETURN