ciaOne a tutti,
nella realizzazione di Trading System è consigliabile, o sconsigliabile, l’utilizzo, anche più volte, dell’istruzione CALL per richiamare indicatori personalizzati?
Di norma riscrivo il codice dell’indicatore all’interno dei ProBackTest, però se non ci fossero particolari controindicazioni (rallentamento nell’esecuzione dei calcoli, errori etc) preferirei utilizzare l’istruzione CALL.
tanchiu a tutti
L’istruzione CALL rallenta molto l’esecuzione, per cui, quando possibile, è preferibile cercare d’incorporare l’indicatore nella strategia.
Ad esempio l’indicatore DYNAMIC ZONE RSI (https://www.prorealcode.com/prorealtime-indicators/dynamic-zone-rsx/) puoi incorporarlo così:
DEFPARAM.........
.
.
/////////////////////////////////////////////////////
prix = close + 0.5 * STD(high[10])
Hausse = MAX(0, prix-prix[1])
Baisse = MAX(0, prix[1]-prix)
MH = wilderaverage[20](Hausse)
MB = wilderaverage[20](Baisse)
RS = MH/MB
MonRSX = endpointaverage (100-( 100/(1 + RS)))
coeff = 1.2
ind = SQUARE(MonRSX)
ind1 = Average[20](MonRSX)
ind2 = Average[20](ind)
variance = ind2 - SQUARE(ind1)
ecart = SQRT(variance)
UpBand = ind1 + coeff*ecart
DownBand = ind1 - coeff*ecart
prix = close + 0.5 * STD(high[10])
Hausse = MAX(0, prix-prix[1])
Baisse = MAX(0, prix[1]-prix)
MH = wilderaverage[20](Hausse)
MB = wilderaverage[20](Baisse)
RS = MH/MB
MonRSX = endpointaverage (100-( 100/(1 + RS)))
coeff = 1.2
ind = SQUARE(MonRSX)
ind1 = Average[20](MonRSX)
ind2 = Average[20](ind)
variance = ind2 - SQUARE(ind1)
ecart = SQRT(variance)
UpBand = ind1 + coeff*ecart
DownBand = ind1 - coeff*ecart
/////////////////////////////////////////////////////
.
.
alla fine del codice dell’indicatore farai riferimento alle tre variabili MonRSX (valore dell’indicatore) , UpBand (valore della banda superiore) e DownBand (valore della banda inferiore).
L’importante è che nel codice della tua strategia non usi nessuno dei nomi che viene utilizzato nell’indicatore, per non creare problemi di sovrascrittura dei dati.
Se devi usare RS, che è già usato, opta per un nome diverso, RS1 o RSX or MioRS ecc…
E’ ovvio che se il codice dell’indicatore è molto lungo può rappresentare un problema inserirlo nella tua strategia, in tal caso ti converrà continuare ad ussare CALL.
grazie Rob 🙂
era giusto per ulteriore conferma