istruzione CALL
- This topic has 2 replies, 2 voices, and was last updated 6 years ago by .
Viewing 3 posts - 1 through 3 (of 3 total)
Viewing 3 posts - 1 through 3 (of 3 total)
Forums › ProRealTime forum Italiano › Supporto ProOrder › istruzione CALL
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ì:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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