Stavo studiando l’indicatore cycle di prorealtime, come definito dalla piattaforma, e ho cercato di codificarlo. Ecco il mio tentativo che risulta diverso nel disegno e nei numeri che risultano dalla formula. In cosa sbaglio? Oppure manca qualcosa nel mio codice? Grazie per l’aiuto. Questo sotto è quello che sono riuscito a scrivere:
// studio dell'indicatore ciclo
piualto1 = highest[5](high)
piubasso1 = lowest[5](low)
oscillatore1 = (close - piubasso1) / (piualto1 - piubasso1) * 100
lineak1 = average[3](oscillatore1)
piualto2 = highest[14](high)
piubasso2 = lowest[14](low)
oscillatore2 = (close - piubasso2) / (piualto2 - piubasso2) * 100
lineak2 = average[3](oscillatore2)
piualto3 = highest[45](high)
piubasso3 = lowest[45](low)
oscillatore3 = (close - piubasso3) / (piualto3 - piubasso3) * 100
lineak3 = average[14](oscillatore3)
piualto4 = highest[75](high)
piubasso4 = lowest[75](low)
oscillatore4 = (close - piubasso4) / (piualto4 - piubasso4) * 100
lineak4 = average[20](oscillatore4)
indice = (4.1*oscillatore1 + 2.5*oscillatore2 + oscillatore3 + 4*oscillatore4)/11.6
media = average [9] (indice)
ciclo = indice - media
return ciclo, 0
La piattaforma ha lo Schaff Trend Cycle predefinito, ma è completamente diverso.
Con quale indicatore vuoi confrontarlo?
Indicatore cycle (ciclo), grazie Roberto!
Non riesco a postare l’immagine. Comunque lo trovi tra gli indicatori predefiniti e si chiama ciclo. Io ho provato a riprodurre quella formula evidenziata dal testo di spiegazione ma ottengo risultato diverso. Grazie
Questo è il codice come lo ha indicato ProRealTime:
// Cycle (ciclo) custom
//
L = ((4.1 * Stochastic[5,3](close)) + (2.5 * Stochastic[14,3](close)) + Stochastic[45,14](close) + (4 * Stochastic[75,20](close))) / 11.6
MM = Average[9,0](L)
RETURN (L - MM) AS "Cycle (Ciclo)"
Ad ogni modo va bene anche il primo (c’è il calcolo dei singoli stocastici, invece di prendere quelli già fatti), solo che è errata la riga 31, in quanto al posto di OSCILLATOR va messo LINEAK (quella errata l’ho commentata, è la 23):
// studio dell'indicatore ciclo
//----------------------------------------------------------------------
piualto1 = highest[5](high)
piubasso1 = lowest[5](low)
oscillatore1 = (close - piubasso1) / (piualto1 - piubasso1) * 100
lineak1 = average[3,0](oscillatore1)
//----------------------------------------------------------------------
piualto2 = highest[14](high)
piubasso2 = lowest[14](low)
oscillatore2 = (close - piubasso2) / (piualto2 - piubasso2) * 100
lineak2 = average[3,0](oscillatore2)
//----------------------------------------------------------------------
piualto3 = highest[45](high)
piubasso3 = lowest[45](low)
oscillatore3 = (close - piubasso3) / (piualto3 - piubasso3) * 100
lineak3 = average[14,0](oscillatore3)
//----------------------------------------------------------------------
piualto4 = highest[75](high)
piubasso4 = lowest[75](low)
oscillatore4 = (close - piubasso4) / (piualto4 - piubasso4) * 100
lineak4 = average[20,0](oscillatore4)
//----------------------------------------------------------------------
//indice = ((4.1*oscillatore1) + (2.5*oscillatore2) + oscillatore3 + (4*oscillatore4))/11.6
indice = ((4.1*lineak1) + (2.5*lineak2) + lineak3 + (4*lineak4))/11.6
media = average[9] (indice)
ciclo = indice - media
return ciclo AS "Ciclo",0 AS "Zero"
Grazie Roberto, li provo appena possibile!
Capito, adesso, il mio errore con un pò di ritardo! Grazie ancora