Sei sulla pagina 1di 8

PROREALTIME - PROBUILDER

ESEMPI CODICI INDICATORI IN PROREALTIME

Ora vediamo i codici di alcuni indicatori molto famosi, presenti come esempi nella piattaforma di
prorealtime.

La programmazione di questi indicatori è molto utile perchè possiamo capire la loro costruzione e possiamo
anche modificarli o implementarli a nostro piacimento.

Li trovate nella sezione ESEMPI nella finestra principale degli indicatori.

1 - PUNTI PIVOT
 

IF BARINDEX = 0 THEN
inizializzazione = 2 // siamo a metà giornata
 
ELSE
 
IF DAYOFWEEK[1] <> DAYOFWEEK THEN
 
prevmax = newmax
prevmin = newmin
prevclose = newclose
 
newmax = HIGH
newmin = LOW
newopen = OPEN
newclose = CLOSE
 
inizializzazione = MAX(0, inizializzazione - 1)
// inizializzazione = 1 significa che siamo sul primo giorno intero
// inizializzazione = 0 significa che siamo almeno sul 2-ndo giorno
 
ELSE
 
newmax = MAX(newmax, HIGH)
newmin = MIN(newmin, LOW)
newclose = close
 
// solo doppo le inizializzazioni
IF inizializzazione = 0 THEN
IF pivotmethod = 0 THEN
pivot = (prevmax + prevmin + prevclose) / 3
ELSIF pivotmethod = 1 THEN
pivot = (prevmax + prevmin + prevclose + newopen) / 4
ELSE
pivot = (prevmax + prevmin + newopen) / 3
ENDIF
  
curva0 =  pivot + prevmax - prevmin
curva1 = (2 * pivot) - prevmin
curva2 = pivot
curva3 = (2 * pivot) - prevmax
curva4 = pivot - (prevmax - prevmin)
ENDIF
 
ENDIF
 
ENDIF

RETURN curva0, curva1, curva2, curva3, curva4

//VARIABILI DI DEFAULT: PIVOTMETHOD[0]

2 - RSI (RELATIVE STRENGHT INDEX)

REM Determina le variazione giornaliere

rialzo = MAX(0, CLOSE - CLOSE[1])


ribasso = MAX(0, CLOSE[1] - CLOSE)

REM Calcola la media dei guadagni i giorni  di rialzo


REM e delle perdite i gorni di ribasso

mmRialzo = WILDERAVERAGE[p](rialzo)
mmRibasso = WILDERAVERAGE[p](ribasso)

REM En déduit le RS

RS = mmRialzo / mmRibasso

REM E finalmente le RSI

mioRSI = 100 - 100 / (1 + RS)

RETURN mioRSI AS "Relative Strength Index"

//VARIABILI DI DEFAULT: P[14]

3 - STOCASTICO

REM Determina i piu alti et più bassi su p barre

piuAlto = HIGHEST[p](HIGH)
piuBasso = LOWEST[p](LOW)

REM Construit l'oscillateur

oscillatore = (CLOSE - piuBasso) / (piuAlto - piuBasso) * 100

REM Ne deduca le linee dello stocastico


lineaK = AVERAGE[q](oscillatore)
lineaD = AVERAGE[r](lineaK)

RETURN lineaK AS "%K", lineaD AS "%D"

//VARIABILI DI DEFAULT: R[5], Q[3], P[14]

4 - BBO (OSCILLATORE DI BOLLINGER)

REM Calcolo dell'oscillatore di Bollinger

delta = CLOSE - BOLLINGERDOWN


width = 4 * STD

BBO = delta * 100 / width

RETURN BBO AS "Bollinger Band Oscillator"

5 - ADX
 

REM Determina +DM et -DM

piuDM = MAX(HIGH-HIGH[1], 0)
menoDM = MAX(LOW[1]-LOW, 0)

IF piuDM > menoDM THEN


menoDM = 0
ENDIF

IF piuDM < menoDM THEN


piuDM = 0
ENDIF

IF piuDM = menoDM THEN


piuDM = 0
menoDM = 0
ENDIF

REM Calcolo degli indicatori direzionali

piuDI = WILDERAVERAGE[p](piuDM)
menoDI = WILDERAVERAGE[p](menoDM)

REM Calcolo del ADX

DX = ABS(piuDI - menoDI) / (piuDI + menoDI) * 100


mioADX = WILDERAVERAGE[p](DX)

RETURN  mioADX AS "ADX"

 
//VARIABILI DI DEFAULT: P[14]

6 - BANDE DI BOLLINGER

mediaBollinger = AVERAGE[p](CLOSE)

REM Determina lo scarto quadratico medio (senza passare dalla funzione STD)
REM  per l'esempio, in pratica si deve utilizzare STD !

IF BARINDEX >= p-1 THEN


 
sumy2 = 0
sumy = 0
FOR i = 0 TO p-1
sumy2 = sumy2 + SQUARE(CLOSE[i])
sumy = sumy + CLOSE[i]
NEXT
scartoQuadraticoMedio = SQRT(sumy2 / p - SQUARE(sumy / p))
ELSE
 
scartoQuadraticoMedio = UNDEFINED
 
ENDIF

REM Ne deduciamo le curve di Bollinger

bollSup = mediaBollinger + s * scartoQuadraticoMedio


bollInf = mediaBollinger - s * scartoQuadraticoMedio

RETURN bollSup AS "Boll+", bollInf AS "Boll-"

//VARIABILI DI DEFAULT: S[2], P[20]


7 - MACD

REM questo esempio calcola il MACD

MMveloce = EXPONENTIALAVERAGE[p](CLOSE)
MMlento = EXPONENTIALAVERAGE[q](CLOSE)

mioMACD = MMveloce - MMlento


Linea = EXPONENTIALAVERAGE[r](mioMACD)

RETURN mioMACD - linea AS "istogramma MACD"

//VARIABILI DI DEFAULT: R[9], Q[26], P[12]

Potrebbero piacerti anche