[attachment file=”82820″]
Salve,
ho scritto il codice di un indicatore basato sullo stocastico. Il codice sembra girare correttamente, almeno così appare. Però, vi sono due linee del programma dove l’editor segnala errore.
E’ possibile sapere di che errore si tratta?
Molte grazie.
Scusate,
ho fatto confusione con gli allegati.
L’allegato corretto è il seguente.
Grazie.
Highest e Lowest devono sapere, oltre al numero di candele nell’intervallo (che hai indicato tra le quadre), anche DI COSA devono restituirti il più alto/basso, può essre CLOSE, HIGH, LOW, OPEN, una Media ecc… e questo gli va detto dopo le quadre indicandolo tra le tonde, ecco un paio di esempi:
MassimoPrezzo = highest[20](high) //prezzo di chiusura più alto delle ultime 20 barre
MinimoMedia = lowest[20](average[100,0](close)) //valore più basso, di una media semplice a 100 periodi (calcolata sulla chiusura), delle ultime 20 barre
Salve Roberto, innanzitutto ti ringrazio per la risposta. Molto chiara.
Poi, se posso, approfitterei della tua disponibilità per farti un altro paio di domande collegate a questa discussione.
La prima domanda è questa. Dal momento che il codice gira e sembra che faccia quel che dovrebbe fare, devo desumere che le funzioni in questione, quando non viene specificato alcun argomento, ne abbiano uno di default.
E, in particolare, l’argomento di default dovrebbe essere High, per Highest e Low per Lowest. Pensi sia così?
La seconda domanda, invece, è in merito al primo argomento, ovvero il numero di barre su cui queste funzioni devono fare il calcolo. Nel caso che questo sia, ad esempio, pari a 20, vuol dire che il calcolo verrà fatto sulla barra appena trascorsa e le 19 precedenti?
Ti ringrazio ancora.
Non esiste un valore di default, tipo MEDIE o MACD, dove viene assunto (CLOSE) per difetto. Va sempre indicato ciò di cui vuoi conoscere il massimo/minimo, vedi https://www.prorealcode.com/documentation/highest/.
Se indichi:
Massimo = highest[20](high)
di restituirà il massimo più alto delle ultime 20 barre, da 0 a 19, quindi compresa quella appena chiusa.
Se vuoi, invece, il massimo delle 20 barre precedenti l’ultima devi scrivere una di queste due alternative:
Massimo = highest[20](high[1]) //calcola il massimo prendento, per 20 volte, lo HIGH precedente, quindi dalle candele 1 a 20
x = highest[20](high) //fa come nell'esempio mio iniziale, quindi dalle candele 0 a 19, solo che...
Massimo = x[1] //... poi tu puoi andare a prendere quello relativo alla candela precedente (o quella prima ancora, ecc...), quindi prendi comunque il valore tra le candele 1 e 20
Ottimo Roberto, ora è tutto chiaro.
Grazie mille e buona giornata.
🙂