Ho in sostanza hanno una serie di valori come this. The serie di cui sopra è Semplificando al massimo, mi sto raccogliendo 1 valore per millisecondo nel mio codice vero e ho bisogno di elaborare l'uscita su un algoritmo che ho scritto per trovare il picco più vicino prima di un punto nel tempo mio la logica fallisce perché nel mio esempio di cui sopra, 0 36 è il vero picco, ma il mio algoritmo sarebbe guardare indietro e vedere l'ultimo numero 0 25 come il picco, in quanto non vi SA riduce a 0 24 prima it. The obiettivo è quello di prendere questi valori e applicare un algoritmo per loro che li appianare un po 'in modo da avere i valori più lineari cioè mi piacerebbe miei risultati siano curve, non jaggedy. I già stati detto di applicare un filtro a media mobile esponenziale a miei valori Come posso fare questo E 'davvero difficile per me da leggere equazioni matematiche, ho a che fare molto meglio con code. How faccio ad elaborare valori nella mia matrice, l'applicazione di un calcolo della media mobile esponenziale a addirittura out. asked 8 febbraio 12 a 20 27.To calcolo una media mobile esponenziale è necessario mantenere uno stato in giro e avete bisogno di un parametro di sintonia Questo richiede un po 'di classe supponendo che si sta utilizzando Java 5 o later. Instantiate con il parametro di decadimento che si desidera può richiedere la sintonizzazione dovrebbe essere compreso tra 0 e 1 e quindi usare media per filter. When la lettura di una pagina su qualche ricorrenza mathmatical, tutti si ha realmente bisogno di sapere quando trasformandolo in codice è che i matematici piace scrivere indici in array e sequenze con gli indici Essi sono già alcune altre notazioni pure, che doesn t aiutare Tuttavia, l'EMA è piuttosto semplice come avete solo bisogno di ricordare un valore vecchio non elementi di superfici sensibile complicate required. answered 8 febbraio 12 a 20 42. TKKocheran praticamente Isn t è bello quando le cose possono essere semplici oppure con la nuova sequenza, ottenere un nuovo averager nota che i primi termini della sequenza media salteranno in giro un po 'a causa di effetti di bordo, ma si ottiene quelli con altre medie mobili troppo Tuttavia, un buon vantaggio è che si può avvolgere la logica di media mobile nella averager e sperimentare senza disturbare il resto del programma troppo Donal Fellows 9 febbraio 12 a 0 06.I sto avendo difficoltà a capire le vostre domande, ma cercherò di rispondere anyway.1 Se l'algoritmo trovato 0 25 invece di 0 36, allora è sbagliato è sbagliato perché presuppone un aumento o una diminuzione monotona che sta andando sempre verso l'alto o verso il basso andando sempre meno che la media di tutti i dati, i punti dati --- come li presenti --- non sono lineari Se si vuole veramente per trovare il valore massimo tra due punti nel tempo, quindi tagliare la matrice da Tmin a tmax e trovare il massimo di quel subarray.2 Ora, il concetto di medie mobili è molto semplice immaginare che ho il seguente elenco 1 4, 1 5 , 1 4, 1 5, 1 5 posso liscia fuori prendendo la media di due numeri 1 45, 1 45, 1 45, 1 5 si noti che il primo numero è la media di 1 5 e 1 4 secondo e primi numeri la seconda nuova lista è la media di 1 4 e 1 5, terzo e secondo elenco vecchia terzo nuovo elenco della media di 1 5 e 1 4 quarto e terzo, e così via ho potuto reso periodo di tre o quattro, o n Avviso come i dati è molto più agevole un buon modo di vedere medie mobili sul posto di lavoro è quello di andare a Google Finance, selezionare un magazzino provare Tesla Motors piuttosto volatili TSLA e cliccare su fattori tecnici in fondo grafico Select media mobile con un determinato periodo, e media mobile esponenziale di confrontare la loro media mobile differences. Exponential è solo un altro elaborazione di questo, ma i pesi i dati più vecchi in meno rispetto ai nuovi dati questo è un modo per polarizzare il livellamento verso il retro si prega di leggere la Wikipedia entry. So, questo è più un commento di una risposta, ma la piccola casella di commento era solo per piccola buona luck. If si ri problemi con la matematica, si potrebbe andare con una media mobile semplice anziché esponenziale Così l'uscita si ottiene sarebbe stata l'ultima x termini divisi da x pseudocode. Note testato che sarà necessario per gestire le parti iniziali e finali dei dati poiché si può chiaramente media T ultimi 5 termini quando si è sulla 2 ° dati dei punti Inoltre, ci sono modi più efficaci di calcolo di questa media mobile sum sum - più antica più recente, ma questo è quello di ottenere il concetto di ciò che sta accadendo across. answered 8 febbraio 12 a 20 41.A mobile semplice implementazione media in Java. On diverse occasioni ho Ve voluto per calcolare metriche semplici nelle mie applicazioni Java, per esempio, il numero di visite per ora, o errori per un periodo di tempo durante il calcolo delle metriche semplici non è molto difficile, s lavoro solo in più e io preferirei spendere quel momento in poi il dominio del problema sono rimasto sorpreso di non trovare alcuna soluzione ampiamente accettata per le metriche in Java ho trovato metrica ma sembrava un po 'troppo complicato e non ben documentato - Tutto quello che volevo era per calcolare una media mobile ho pensato al problema un po' di più e ha deciso che non è un problema difficile Qui è la mia soluzione. Questo funziona creando un array di aggiornamento della finestra dimensioni frequenza, quindi un thread imposta il numero al successivo indice nella matrice sulla frequenza di aggiornamento il conteggio dell'intervallo è semplicemente matrice i - matrice i 1, che è il valore più recente meno il conteggio più antica per un intervallo di 10 minuti, il più antico conteggio i 1 è 10 minuti esatti old. To aggiungere una media mobile per il nostro codice prima abbiamo ll bisogno di un contatore, utilizzando AtomicLong. This contatore dovrebbe essere incrementati in base agli eventi si ri interessati a calcolare le richieste ad esempio POST per un riposo service. We necessità di fornire l'implementazione con accesso al contatore e che si compie attraverso l'interfaccia GetCount Qui creeremo una media mobile con una finestra cinque minuti che si aggiorna ogni second. And per ottenere la media attuale semplicemente chiamare l'implementazione dettaglio chiave getAverage method. A è come la dimensione della matrice è determinata dividendo la finestra per la frequenza di aggiornamento Quindi una grande finestra con una frequenza di aggiornamento frequente può consumare una notevole quantità di memoria in questo esempio, l'array dimensione è ragionevole 300 Tuttavia, se abbiamo creato una media mobile 24 ore con un intervallo di 1 secondo la dimensione sarebbe 86400 una frequenza di aggiornamento più ragionevole per un periodo di 24 ore potrebbe essere ogni 5 minuti dimensione dell'array di 288.Another considerazione della scelta della finestra e la frequenza di aggiornamento è la finestra deve essere divisibile per la frequenza, ad esempio una finestra di due minuti con una frequenza di aggiornamento di sei secondi è ok, ma una frequenza di 7 secondi di aggiornamento non è, dal momento che non è divisibile per 120 un IllegalArgumentException viene gettato se la finestra frequenza di aggiornamento del modulo non è implementazione zero. This richiede un thread per ogni media mobile, che non è molto efficiente una soluzione migliore sarebbe quella di condividere un filo in molte medie Aggiorna io ho aggiornato il codice di condividere un filo here. Lastly, c'è un problema stato iniziale non ci sono i dati ancora per l'intera finestra per esempio, se si dispone di una finestra di cinque minuti e solo 15 secondi di dati Questa implementazione restituisce un valore nullo fino a quando abbiamo 5 minuti di dati un altro approccio è quello di stimare la Supponiamo media abbiamo un conteggio di 10 in 30 secondi, quindi possiamo stimare la media del 40 in 2 minuti Tuttavia, vi è il rischio di errore significativo estrapolando i dati incompleti per esempio, se avessimo una raffica di 20 colpi in 2 secondi, ci piacerebbe essere la stima 1200 per 2 minuti, che con ogni probabilità è il modo off. Moving media - MA. BREAKING GIU media Mobile - MA. As un esempio SMA, prendere in considerazione un titolo con i seguenti prezzi di chiusura di oltre 15 days. Week 1 5 giorni 20, 22, 24, 25, 23.Week 2 5 giorni 26, 28, 26, 29, 27.Week 3 5 giorni 28, 30, 27, 29, 28.A 10 giorni MA sarebbe in media i prezzi di chiusura per i primi 10 giorni come il primo punto di dati il punto dati successivo sarebbe cadere il primo prezzo, aggiungere il prezzo del giorno 11 e prendere la media, e così via, come mostrato below. As osservato in precedenza, il Mas lag attuale azione di prezzo perché si basano sui prezzi passati più lungo è il periodo di tempo per il mA, maggiore è il ritardo Così un 200 giorni mA avrà un grado molto maggiore di ritardo di 20 giorni mA perché contiene i prezzi per gli ultimi 200 giorni la lunghezza del mA da utilizzare dipende dal commercio obiettivi, con AIC più brevi utilizzati per il trading a breve termine ea lungo termine AIC più adatto per investitori a lungo termine Il 200 giorni MA è ampiamente seguita dagli investitori e commercianti, con i viaggi sopra e sotto questa media mobile considerato importante segnali di trading. MAS anche impartire importanti segnali di trading per conto proprio, o quando due medie attraversa un mA in aumento indica che la sicurezza è in una tendenza rialzista, mentre un mA in calo indica che è in una tendenza al ribasso Allo stesso modo, slancio verso l'alto è confermata con un crossover rialzista, che si verifica quando un MA breve termine attraversa sopra un MA-lungo termine slancio verso il basso è confermata con un crossover ribassista, che si verifica quando un MA breve termine incrocia al di sotto di un MA-lungo termine.
No comments:
Post a Comment