Saturday 5 August 2017

Moving Media Calcolo Algoritmo


Media mobile Questo esempio vi insegna come calcolare la media mobile di una serie storica in Excel. Una media mobile viene utilizzata per appianare le irregolarità (picchi e valli) di riconoscere facilmente le tendenze. 1. In primo luogo, consente di dare un'occhiata alla nostra serie temporali. 2. Nella scheda dati fare clic su Analisi dati. Nota: non riesci a trovare il pulsante Data Analysis Clicca qui per caricare il componente aggiuntivo Strumenti di analisi. 3. Selezionare media mobile e fare clic su OK. 4. Fare clic nella casella intervallo di input e selezionare l'intervallo B2: M2. 5. Fare clic nella casella Intervallo e digitare 6. 6. Fare clic nella casella Intervallo di output e selezionare cella B3. 8. Tracciare la curva di questi valori. Spiegazione: perché abbiamo impostato l'intervallo di 6, la media mobile è la media degli ultimi 5 punti di dati e il punto di dati corrente. Come risultato, i picchi e le valli si distendono. Il grafico mostra una tendenza all'aumento. Excel non può calcolare la media mobile per i primi 5 punti di dati, perché non ci sono abbastanza punti dati precedenti. 9. Ripetere i passaggi 2-8 per l'intervallo 2 e l'intervallo 4. Conclusione: Il più grande l'intervallo, più i picchi e le valli si distendono. Minore è l'intervallo, più le medie mobili sono per l'attuale Medie dati points. Moving: cosa sono tra i più popolari indicatori tecnici, medie mobili vengono utilizzati per misurare la direzione del trend corrente. Ogni tipo di media mobile (comunemente scritto in questo tutorial come MA) è un risultato matematico che viene calcolato facendo la media di un certo numero di punti dati del passato. Una volta determinato, la media risultante viene quindi tracciata su un grafico in modo da consentire agli operatori di guardare i dati smussati piuttosto che concentrarsi sulle fluttuazioni di prezzo giorno per giorno che sono insiti in tutti i mercati finanziari. La forma più semplice di una media mobile, opportunamente noto come media mobile semplice (SMA), è calcolato prendendo la media aritmetica di un dato insieme di valori. Ad esempio, per calcolare una media mobile di 10 giorni di base si sommano i prezzi di chiusura degli ultimi 10 giorni e poi dividere il risultato per 10. Nella figura 1, la somma dei prezzi negli ultimi 10 giorni (110) è diviso per il numero di giorni (10) per arrivare alla media a 10 giorni. Se un operatore desidera vedere una media di 50 giorni, invece, lo stesso tipo di calcolo sarebbe fatto, ma includerebbe i prezzi negli ultimi 50 giorni. La media risultante di seguito (11) tiene conto degli ultimi 10 punti di dati al fine di dare ai commercianti un'idea di come un bene ha un prezzo relativamente agli ultimi 10 giorni. Forse vi state chiedendo il motivo per cui gli operatori tecnici chiamano questo strumento un movimento solo un mezzo normale media e non. La risposta è che, come nuovi valori diventano disponibili, i punti di dati più vecchi devono essere eliminati dal set e nuovi punti di dati deve venire a sostituirli. Così, il set di dati è in continuo movimento per tenere conto di nuovi dati non appena disponibili. Questo metodo di calcolo assicura che solo le informazioni correnti viene contabilizzato. In figura 2, una volta che il nuovo valore di 5 viene aggiunto al set, la scatola rossa (che rappresenta gli ultimi 10 punti dati) si sposta verso destra e l'ultimo valore di 15 è scesa dal calcolo. Dato che il relativamente piccolo valore di 5 sostituisce il valore massimo di 15, ci si aspetterebbe di vedere la media della diminuzione insieme di dati, cosa che fa, in questo caso da 11 a 10. Che Do medie mobili assomigliare Una volta che i valori della MA sono stati calcolati, essi vengono tracciati su un grafico e collegate per creare una linea di media mobile. Queste linee curve sono comuni nelle classifiche di operatori tecnici, ma come vengono utilizzati può variare drasticamente (più in seguito). Come si può vedere nella figura 3, è possibile aggiungere più di una media mobile su qualsiasi tabella regolando il numero di periodi di tempo utilizzati nel calcolo. Queste linee curve possono sembrare distrazione o confusione in un primo momento, ma youll abituarsi a loro col passare del tempo. La linea rossa è semplicemente il prezzo medio degli ultimi 50 giorni, mentre la linea blu è il prezzo medio degli ultimi 100 giorni. Ora che avete capito ciò che una media mobile è e quello che sembra, e introduce un diverso tipo di media mobile e di esaminare come si differenzia dal già citato media mobile semplice. La media mobile semplice è estremamente popolare tra i professionisti, ma come tutti gli indicatori tecnici, ha i suoi critici. Molte persone sostengono che l'utilità della SMA è limitata perché ogni punto della serie di dati è ponderata la stessa, indipendentemente da dove si verifica nella sequenza. I critici sostengono che i dati più recenti è più significativo rispetto ai dati meno recenti e dovrebbe avere una maggiore influenza sul risultato finale. In risposta a queste critiche, i commercianti hanno iniziato a dare più peso ai dati recenti, che da allora ha portato all'invenzione di vari tipi di nuovi media, la più famosa delle quali è la media mobile esponenziale (EMA). (Per approfondimenti, consultare Nozioni di base di medie mobili calibrati e cosa è la differenza tra un SMA e un EMA) media mobile esponenziale La media mobile esponenziale è un tipo di media mobile che dà più peso ai prezzi recenti, nel tentativo di renderlo più reattivo alle nuove informazioni. Imparare l'equazione un po 'complicato per il calcolo di un EMA può essere inutile per molti commercianti, dal momento che quasi tutti i pacchetti grafici fanno i calcoli per voi. Tuttavia, per voi la matematica geek là fuori, qui è l'equazione EMA: Quando si utilizza la formula per calcolare il primo punto della EMA, si può notare che non vi è alcun valore disponibile da utilizzare come EMA precedente. Questo piccolo problema può essere risolto avviando il calcolo con una media mobile semplice e continuando con la formula di cui sopra da lì. Vi abbiamo fornito con un foglio di calcolo di esempio che include esempi reali di come calcolare sia una semplice media mobile e una media mobile esponenziale. La differenza tra l'EMA e SMA Ora che avete una migliore comprensione di come il SMA e l'EMA sono calcolati, consente di dare un'occhiata a come queste medie differiscono. Osservando il calcolo della EMA, si noterà che maggiormente l'accento è posto sui recenti punti di dati, il che rende un tipo di media ponderata. In figura 5, il numero di periodi di tempo utilizzati in ogni media è identico (15), ma l'EMA risponde più velocemente alle variazioni dei prezzi. Si noti come l'EMA ha un valore più alto quando il prezzo è in aumento, e cade più veloce della SMA quando il prezzo è in declino. Questa risposta è la ragione principale per cui molti operatori preferiscono utilizzare l'EMA sopra la SMA. Cosa significano i diversi medie mobili giorni medi sono un indicatore del tutto personalizzabile, il che significa che l'utente può scegliere liberamente qualunque arco di tempo che vogliono durante la creazione del media. I periodi più comuni utilizzati in medie mobili sono 15, 20, 30, 50, 100 e 200 giorni. Più breve è l'intervallo di tempo utilizzato per creare la media, più sensibile sarà alle variazioni di prezzo. Più lungo è il periodo di tempo, meno sensibili, o più levigata fuori, la media sarà. Non vi è alcun periodo di tempo giusto da utilizzare durante la configurazione degli medie mobili. Il modo migliore per capire quale funziona meglio per voi è quello di sperimentare un certo numero di diversi periodi di tempo fino a trovare quello che si adatta la vostra strategia. Le medie mobili: Come utilizzare Themi desidera implementare un algoritmo iterativo, che calcola la media ponderata. La legge peso specifico non importa, ma dovrebbe essere vicino a 1 per i valori più recenti e vicino a 0 al più vecchio. L'algoritmo dovrebbe essere iterativo. cioè non deve ricordare tutti i valori precedenti. Dovrebbe sapere solo un ultimo valore e tutte le informazioni di aggregazione sul passato, come i valori precedenti dei media, somme, conteggi ecc Ad esempio, il seguente algoritmo può essere: Vi darà peso diminuzione esponenziale, che può essere non va bene. E 'possibile avere passo diminuzione di peso o qualcosa che il i requisiti per la pesatura legge segue: 1) Il peso diminuisce in passato 2) Mi ha un po' di media o la durata caratteristica in modo che i valori più anziani Questo durata conta molto minore rispetto a quelli più recenti 3) I dovrebbe essere in grado di impostare questo tempo ho bisogno di quanto segue. Supponiamo che vi sono valori, dove V1 è il primo. Inoltre supponiamo wi sono i pesi. Ma w0 è l'ultimo. Così, dopo il primo valore è venuto devo prima media dopo che il secondo valore v2 è venuto, ho dovuto media con un valore prossimo avrei dovuto nota, che il profilo del peso si muove con me, mentre mi sto muovendo lungo la sequenza di valore. Cioè ogni valore non ha un proprio peso per tutto il tempo. Il mio obiettivo è quello di avere più bassa questo peso, mentre andando a passato. gt Ma il mio compito è quello di avere medio ricalcolato ogni nuovo valore di tempo arriva aver vecchi valori riponderati. OP Il vostro compito è quasi sempre impossibile, anche con eccezionalmente semplici schemi di ponderazione. Vi stiamo chiedendo di, con O (1) di memoria, le medie di rendimento con un sistema di ponderazione che cambia. Per esempio, come nuovi valori vengono passati in, per alcuni quasi arbitrariamente cambiando sequenza pesi. Questo è impossibile a causa iniettivit'a. Una volta che si uniscono i numeri a vivere insieme, si perde una quantità enorme di informazioni. Ad esempio, anche se si ha il vettore peso. non si poteva recuperare il vettore valore originale, o viceversa. Ci sono solo due casi mi vengono in mente dove si poteva ottenere via con questo: pesi costante come 2,2,2. 2: questo è equivalente ad un algoritmo media on-line, che non desiderate perché i vecchi valori non vengono riponderati. I pesi relativi delle risposte precedenti non cambiano. Per esempio si potrebbe fare pesi di 8,4,2,1. e aggiungere un nuovo elemento con il peso arbitrario come. 1. ma è necessario aumentare tutti i precedenti per lo stesso fattore moltiplicativo, come 16,8,4,21. Così ad ogni passo, si sta aggiungendo un nuovo peso arbitrario, e un nuovo ridimensionamento arbitrario del passato, in modo da avere 2 gradi di libertà (solo 1 se è necessario mantenere il dot-prodotto normalizzato). Il peso-vettori get youd sarà simile: Pertanto, qualsiasi sistema di ponderazione è possibile fare apparire come che funzionerà (a meno che non è necessario mantenere la cosa normalizzato per la somma dei pesi, nel qual caso si deve poi dividere il nuovo media per il nuovo somma, è possibile calcolare tenendo solo O (1) di memoria). Semplicemente moltiplicare la media precedente dalle nuove s (che implicitamente distribuirà il dot-prodotto nei pesi), e virare sulla nuova wnewValue. risposto 29 Mar 12 in 21:27 Qui Im supponendo che si desidera che i pesi per riassumere a 1. Fino a quando è possibile generare un peso relativo senza cambiare in futuro, si può finire con una soluzione che imita questo comportamento. Cioè, si supponga di definito i pesi come una sequenza e definito l'ingresso come sequenza. Si consideri il modulo: sum (s0i0 s1i1 s2i2 snin.) Sum (S0 S1 S2 sn.). Si noti che è banalmente possibile calcolare questo incrementale con un paio di contatori aggregazione: Naturalmente, calculateWeightFromCounter () in questo caso non dovrebbe generare pesi che somma uno - il trucco è che abbiamo una media dividendo la somma dei pesi in modo che alla fine, i pesi praticamente sembrano sommare a uno. Il vero trucco è come si fa calculateWeightFromCounter (). Si potrebbe semplicemente restituire il contatore stesso, ad esempio, tuttavia notare che l'ultimo numero ponderato non sarebbe vicino alla somma dei contatori necessariamente, quindi non si può finire con le proprietà esatte desiderate. (E 'difficile dire quanto, come detto, youve ha lasciato un problema abbastanza aperta.) Risposto 28 Mar 12 in 21:45 Il problema è che i pesi cambiano con ogni nuovo valore. Nel tuo caso non lo sono. ndash Suzan Cioc 29 marzo 12 al 14:43 I pesi effettivamente utilizzati stanno cambiando con ogni nuovo valore - la quotweightsquot vengono divisi da un numero più ampio successivamente, applicando in tal modo che i pesi effettivi utilizzati sommano sempre a 1. ndash Kaganar 29 Mar 12 alle 14:45 Questo è troppo lungo per inserire in un commento, ma può essere utile sapere. Supponiamo di avere: w0vn. wnv0 (ben chiamare questo w0..nvn..0 in breve) Quindi il passo successivo è: w0vn1. wn1v0 (e questo è w0..n1vn1..0 in breve) Ciò significa che abbiamo bisogno di un modo per calcolare w1..n1vn..0 da w0..nvn..0. La sua certamente possibile che vn..0 è 0. 0, z, 0. 0 dove z è in una certa posizione x. Se noi non hanno alcuna capacità di archiviazione, quindi f (ZW (x)) ZW (x 1) dove w (x) è il peso per la posizione x. Riordinando l'equazione, w (x 1) f z (ZW (x)). Ebbene, w (x 1) meglio essere costante per una costante x, quindi f (ZW (x)) z meglio essere costante. Quindi, f deve lasciare che z propagano - cioè, f (ZW (x)) ZF (w (x)). Ma anche qui abbiamo un problema. Si noti che se z (che potrebbe essere qualsiasi numero) può propagarsi attraverso f. quindi w (x) certamente possibile. Quindi f (ZW (x)) w (x) f (z). Così f (w (x)) w (x) f (z). Ma per un costante x. w (x) è costante, e quindi f (w (x)) meglio essere costante, anche. w (x) è costante, quindi f (z) meglio essere costante in modo che w (x) f (z) è costante. Così f (w (x)) w (x) c dove c è una costante. Quindi, f (x) cx dove c è una costante quando x è un valore di peso. Cioè, ciascun peso è un multiplo del precedente. Così, i pesi assumono la forma w (x) MBX. Si noti che questo presuppone l'unica informazione f ha è l'ultimo valore aggregato. Si noti che ad un certo punto si sarà ridotto in questo caso, a meno che non sei disposto a memorizzare una quantità non costante di dati che rappresentano il vostro input. Non si può rappresentare una lunghezza infinita vettore di numeri reali, con un numero reale, ma è possibile approssimare in qualche modo in una costante, quantità finita di stoccaggio. Ma questo sarebbe soltanto un'approssimazione. Anche se io ho mai rigorosamente dimostrabile che, è la mia conclusione che ciò che si desidera è possibile fare con un alto grado di precisione, ma si può essere in grado di utilizzare log spazio (n) (che può anche essere O (1) per molti applicazioni pratiche) per generare un'approssimazione qualità. Si può essere in grado di utilizzare anche meno. risposto 29 Mar 12 in 23:01 ho provato a praticamente codice qualcosa (in Java). Come è stato detto, il vostro obiettivo non è realizzabile. Puoi contare media da alcune serie di ultimi valori ricordato solo. Se non avete bisogno per essere esatti, è possibile approssimare i valori più grandi. Ho provato a farlo ricordando scorso 5 valori esattamente e più solo i valori sommati da 5 valori, ricordando gli ultimi 5 SUM. Poi, la complessità è O (2n) per ricordare ultimi valori nnn. Questa è una approssimazione molto approssimativa. È possibile modificare le lastValues ​​e le dimensioni degli array lasAggregatedSums come si desidera. Vedere questa immagine ascii-art cercando di visualizzare un grafico degli ultimi valori, mostrando che le prime colonne (dati più vecchi) sono ricordati come valore aggregato (non singolarmente), e solo i primi 5 valori sono ricordati individualmente. Sfida 1. Il mio esempio pretende molto pesi di conteggio, ma penso che non dovrebbe essere problema per aggiungere pesi per le lastAggregatedSums modo appropriato - l'unico problema è, che se si vuole pesi inferiori per i valori più grandi, sarebbe più difficile, perché la matrice è in rotazione, in modo da non è semplice per sapere quale peso per le quali gli array. Forse è possibile modificare l'algoritmo di spostare sempre i valori nella matrice invece di ruotare pesi aggiungendo quindi sognerei essere un problema. Challenge 2. Gli array vengono inizializzati con 0 valori, e questi valori contano alla media fin dall'inizio, anche quando si hanno né ricontattato ricevere valori abbastanza. Se si esegue l'algoritmo per lungo tempo, probabilmente non perdete tempo che sta imparando per un certo tempo all'inizio. Se lo fai, è possibile inserire una modifica -) risponde 21 14 Jan alle 15:59 tua risposta 2017 Stack Exchange, Inc

No comments:

Post a Comment