Discussione: indicatore Varianza
- 
	19-11-13, 22:00 #1Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Feb 2013
 - Località
 - Verona/Vicenza
 - Messaggi
 - 154
 
indicatore Varianza
Visto che stavo seguendo il post molto interessante di Thalos, ho provato a creare la funzione e il relativo script per ottenere la varianza......
Sono andato a cercarmi in rete la formula per il suo calcolo che risulta essere questa:
................n
s² = 1/n * ∑ (xi - x°)²
................i = 1
Ove con x° si intende la media campionaria. Con xi si indica invece la i-esima osservazione.
Ho quindi provato a realizzare il relativo script:
funzione
# Funzione per il calcolo della varianza # # dati n valori (Xi......Xn) si calcola prima la media (Xm) di questi valori nel periodo considerato # # la varianza è pari a 1/n*sommatoria da 1 a n di (Xi-Xm)^2 INPUTS: @periods(14) SET valmed = SMA(CLOSE, @periods) SET n = @periods SET k = SQUARE(CLOSE - valmed) SET somma = SUM(k, @periods) SET Varianza = 1 / n * somma
indicatore
INPUTS: @periods(14) SET PLOT1 = Varianza(@periods)
Provate a darci un occhiata per vedere se risulta corretto!!!
Io comunque ci ho provato......
Beppe
p.s.
peccato che i plot possano essere solo a linee e non a istogrammi.....
						Ultima modifica di masterci; 19-11-13 alle 22:25
 - 
	19-11-13, 22:36 #2Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Feb 2013
 - Località
 - Verona/Vicenza
 - Messaggi
 - 154
 
Mi ammonisco da solo!!!!
L'indicatore c'è già e si chiama Variance................


Vabbè ma io ho voluto fare esercizio ok?!?!?!?!?
A tal proposito chiedo a Tiziano o Andrea: perchè se plotto il mio indicatore mi restituisce risultati diversi da quello di BT???
Ho provato sia la formula relativa alla varianza di un campione (con n-1) sia quella relativa alla popolazione (con n) ma entrambi i risultati non coincidono......
Dove sbaglio?
Inoltre, perchè voi fate gli indicatori a istogramma e io non posso????
						
 - 
	20-11-13, 10:54 #3Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Dec 2012
 - Messaggi
 - 186
 
 - 
	20-11-13, 11:29 #4
 - 
	20-11-13, 12:41 #5Senior Member
				
				

				
				
				
			
- Data Registrazione
 - Feb 2012
 - Località
 - Pisa
 - Messaggi
 - 351
 
 - 
	20-11-13, 15:35 #6Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Sep 2013
 - Località
 - Monza
 - Messaggi
 - 186
 
Ultima modifica di maxmax68; 20-11-13 alle 15:50
 - 
	20-11-13, 23:06 #7Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Feb 2013
 - Località
 - Verona/Vicenza
 - Messaggi
 - 154
 
Grazie Andrea e sig. Bollinger!!!! Non lo avevo notato!!!
 - 
	20-11-13, 23:35 #8Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Feb 2013
 - Località
 - Verona/Vicenza
 - Messaggi
 - 154
 
Ciao Smash!
Non mi trovo.......
Faccio un esempio pratico che forse riesco a capire meglio!
Prendiamo il calcolo della varianza a 5 periodi di questo campione di 7 elementi:
1 = 3
2 = 5
3 = 9
4 = 2
5 = 4
-------------
6 = 7
7 = 5
la var(5) relativa all'elemento n. 5 prenderà come media gli elementi da 1 a 5: (3+5+9+2+4)/5 = 4.6
e quindi (sempre riferita all'elemento 5) sarà pari a 1/5 * (3-4.6)^2+(5-4.6)^2+(9-4.6)^2+(2-4.6)^2+(4-4.6)^2 = 27.152
la var(5) relativa allemente n. 6 prenderà come media gli elementi da 2 a 6: (5+9+2+4+7)/5 = 5.4
e quindi (sempre riferita all'elemento 6) sarà pari a 1/5 * (5-5.4)^2+(9-5.4)^2+(2-5.4)^2+(4-5.4)^2+(7-5.4)^2 = 29.072
e così via....
Quindi il valore di valmed, giustamente, deve variare perchè deve fare la media degli ultimi 5 elementi e spostare in avanti di un elemento la media man mano che procede nell'elemento successivo.....
Non so se mi sono spiegato!!!!
Valmed è un vettore che dovrebbe avere al suo interno tante medie dei 5 elementi precedenti....
 - 
	21-11-13, 00:11 #9Senior Member
				
				
				
				
				
			
- Data Registrazione
 - Feb 2013
 - Località
 - Verona/Vicenza
 - Messaggi
 - 154
 
Capito l'inghippo!!!!!!
Grazie Max!
 - 
	21-11-13, 15:29 #10Senior Member
				
				

				
				
				
			
- Data Registrazione
 - Feb 2012
 - Località
 - Pisa
 - Messaggi
 - 351
 
Il problema è che il vettore valmed lo volevi utilizzare per calcolare questa sommatoria (al posto di x°):
...n
∑ (xi - x°)²
...i = 1
in questo modo:
SET k = SQUARE(CLOSE - valmed) SET somma = SUM(k, @periods)
e non poteva andare bene perchè avresti dovuto calcolare la sommatoria di n elementi (xi - x°)² dove gli xi cambiano per n volte mentre gli x° hanno sempre lo stesso valore.
Nell'esempio numerico che hai citato:
per la varianza(5) relativa all'elemento n. 5 che prende come media gli elementi da 1 a 5;
la media è
(3+5+9+2+4)/5 = 4.6
mentre la sommatoria richiesta è
(3 - 4.6)² + (5 - 4.6)² + (9 - 4.6)² + (2 - 4.6)² + (4 - 4.6)²
Nel tuo codice invece i vettori CLOSE e valmed variano entrambi ad ogni elemento.Ultima modifica di Smash; 21-11-13 alle 15:44
 
								
					
					
					
						
  Rispondi Citando
						

