Originariamente Scritto da
maxmax68
Salve Max,
sto tentando di usare la nuova funzione per tradurre il codice in EasyScript,
ma mi sono incastrato su un messaggio d'errore.
Ho scritto il seguente codice:
# Volatilità Thalos
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
....
ma mi segnala Error Division by Zero per la linea
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
e non riesco a trovare il modo di superare l'intoppo.
Potresti suggerirmi come fare ?
Grazie
Saluti
Massimo
P.S.
Ho provato anche con:
SET DeltaHistVol = IF ( (YestHistVol <> 0) , (HistVol - YestHistVol)/HistVol , 0)
ma segnala sempre errore Division by zero
Si, ho provato anch'io con l'artifizio indicato da Max ma non ha funzionato però puoi risolvere in maniera meno elegante con un altro artificio ovvero basta che aggiungi alla definizione della HistVol una piccola ininfluente quantità infinitesimale in modo che il risultato sia sempre diverso da zero e non ci sono problemi poi di divisione al denominatore nella successiva definizione della DeltaHistVol.
la riga diventa quindi
SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)+0.0001
tutto il resto rimane invariato
Apo