Voglio realizzare 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 diminuendo esponenziale, che può essere non va bene. È 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 a 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 Questo alle 14:45 è 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). Quindi 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 conteggio, ma penso che non dovrebbe essere problema che consente di 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 Gen 14 ad 15:59 tua risposta 2017 Stack Exchange, Inca Closer Look At The code avanzata Moving Average Algoritmo Versatile media mobile in Advanced code rumore filtri algoritmo forma d'onda, estratti significano, e elimina la deriva della linea di base. La media mobile è una semplice tecnica matematica utilizzata principalmente per eliminare le aberrazioni e rivelare la vera tendenza in un insieme di punti dati. Si potrebbe avere familiarità con esso da una media di dati rumorosi in un esperimento di fisica matricola, o di rilevare il valore di un investimento. Si potrebbe non sapere che la media mobile è anche un prototipo del filtro risposta all'impulso finita, il tipo più comune di filtro utilizzato nella strumentazione computer basato su. Nei casi in cui una data forma d'onda è ingombra di rumore, in cui un mezzo deve essere estratto da un segnale periodico, o quando una linea di base alla deriva lentamente deve essere eliminata da un segnale a frequenza più elevata, un filtro a media mobile può essere applicato per ottenere il desiderato risultato. L'algoritmo di media mobile di Advanced code offre questo tipo di prestazioni di filtraggio forma d'onda. Avanzate code è un pacchetto software di analisi che opera su file di dati di forma d'onda esistenti create dalla prima generazione WinDaq o pacchetti di acquisizione dati WinDaq di seconda generazione. Oltre al movimento algoritmo di media, avanzata code comprende anche un programma di utilità generatore di report e le routine software per l'integrazione di forme d'onda, la differenziazione, picco e valle cattura, rettifica, e le operazioni aritmetiche. Moving Filter Media Theory DATAQ Instruments movimento algoritmo media consente una grande flessibilità nelle applicazioni di filtraggio forma d'onda. Può essere usato come un filtro passa-basso per ridurre il rumore inerente a molti tipi di forme d'onda, o come un filtro passa-alto per eliminare una linea di base deriva da un segnale a frequenza più elevata. La procedura utilizzata per l'algoritmo per determinare la quantità di filtraggio prevede l'utilizzo di un fattore di livellamento. Questo fattore smoothing, controllato da voi attraverso il software, può essere aumentato o diminuito per specificare il numero di punti dati della forma d'onda reale o campioni che la media mobile si estenderà. Qualsiasi forma d'onda periodica può essere pensato come una lunga stringa o insieme di punti di dati. L'algoritmo compie una media mobile prendendo due o più di questi punti dati dalla forma d'onda acquisite, aggiungendoli, dividendo la somma per il numero totale di punti dati aggiunti, sostituendo il primo punto di dati della forma d'onda con la media appena calcolato, e ripetere le fasi del secondo, terzo, e così via punti dati fino al raggiungimento della fine dei dati. Il risultato è una seconda forma d'onda o generato costituito dai dati medi e avente lo stesso numero di punti come forma d'onda originale. Figura 1 8212 Qualsiasi forma d'onda periodica può essere pensato come una lunga serie o un insieme di punti dati. Nella figura sopra, i punti dati della forma d'onda consecutive sono rappresentate da quotyquot per illustrare come la media mobile viene calcolato. In questo caso, un fattore di livellamento di tre è stato applicato, il che significa tre punti di dati consecutivi dalla forma d'onda originale vengono aggiunti, la loro somma divisa per tre, e poi questo quoziente è tracciata come primo punto di dati di una forma d'onda generata. Il processo si ripete con il secondo, terzo, e così via punti dati della forma d'onda originale fino a raggiungere la fine dei dati. Una speciale tecnica quotfeatheringquot medie l'inizio e la fine dei dati punti della forma d'onda originale per garantire che la forma d'onda generato contiene lo stesso numero di punti di dati come l'originale. La Figura 1 illustra come l'algoritmo media mobile è applicata alla forma d'onda punti di dati (che sono rappresentati da y). L'illustrazione presenta un fattore di livellamento di 3, il che significa che il valore medio (rappresentato da a) sarà calcolata su 3 valori di dati di forma d'onda consecutivi. Si noti la sovrapposizione che esiste nel movimento calcoli medi. È questa tecnica sovrapposizione, insieme con uno speciale trattamento PRIMI e end-point che genera lo stesso numero di punti di dati nella forma d'onda media come esisteva nell'originale. Il modo in cui l'algoritmo calcola una media mobile merita una visione e può essere illustrato con un esempio. Dire che siamo stati su una dieta per due settimane e vogliamo calcolare il nostro peso media degli ultimi 7 giorni. Ci sarebbe riassumere nostro peso il giorno 7 con il nostro peso nei giorni 8, 9, 10, 11, 12, e 13 e poi moltiplicare per 17. Per formalizzare il processo, questo può essere espresso come: a (7) 17 (y ( 7) y (8) y (9). y (13)) Questa equazione può essere ulteriormente generalizzato. La media mobile di una forma d'onda può essere calcolata: Dove: un valore medio posizione del punto n dati s lisciatura fattore y effettivo punto dati valore Figura 2 8212 La forma d'onda di uscita della cella di carico mostrato originale e filtrato nel canale superiore e come un 11-point spostando forma d'onda media nel canale inferiore. Il rumore che appaiono sulla forma d'onda originale era dovuto alle intense vibrazioni create dalla stampa durante l'operazione di confezionamento. La chiave di questa flessibilità algoritmi è la sua vasta gamma di fattori di livellamento selezionabili (da 2 - 1000). Il fattore di smoothing determina come saranno mediati molti punti di dati reali o campioni. Specificando qualsiasi fattore di smoothing positivo simula un filtro passa-basso, mentre specificando un fattore di livellamento negativo simula un filtro passa-alto. Dato il valore assoluto del fattore di livellamento, valori più alti si applicano maggiori vincoli livellamento della forma d'onda risultante e viceversa, valori più bassi applicano effetti inferiori. Con l'applicazione del corretto fattore di livellamento, l'algoritmo può essere utilizzato anche per estrarre il valore medio di una data forma d'onda periodica. Un fattore di livellamento positivo più elevato è di norma applicato per la generazione di forme d'onda valori medi. Applicando la media mobile Algorithm Una caratteristica saliente del movimento dell'algoritmo media è che può essere applicato più volte la stessa forma d'onda, se necessario, per ottenere il risultato desiderato filtraggio. filtraggio della forma d'onda è un esercizio molto soggettivo. Che cosa può essere una forma d'onda adeguatamente filtrata per un utente può essere inaccettabilmente rumorosa ad un altro. Solo si può giudicare se il numero di punti selezionati mediate era troppo alto, troppo basso, o anche solo a destra. La flessibilità dell'algoritmo consente di regolare il fattore di livellamento e fare un altro passaggio attraverso l'algoritmo quando i risultati soddisfacenti non vengono raggiunti con il tentativo iniziale. L'applicazione e le capacità del movimento algoritmo di media possono essere illustrati meglio dai seguenti esempi. Figura 3 8212 waveform L'ECG mostrato originale e filtrato nel canale superiore e come punto 97 muove forma d'onda media nel canale inferiore. Si noti l'assenza di deriva della linea di base nel canale inferiore. Entrambe le forme d'onda vengono mostrati in una condizione compressa per scopi di presentazione. Una riduzione del rumore Application Nei casi in cui una data forma d'onda è ingombra di rumore, il filtro a media mobile può essere applicato per sopprimere il rumore e produrre un quadro più chiaro della forma d'onda. Ad esempio, un cliente avanzato CODAS stava usando una pressa e una cella di carico in una operazione di imballaggio. Il loro prodotto doveva essere compresso ad un livello predeterminato (monitorato dalla cella di carico) per ridurre la dimensione del pacchetto richiesto per contenere il prodotto. Per motivi di controllo della qualità, hanno deciso di monitorare il funzionamento della pressa con strumentazione. Un problema imprevisto è apparso quando hanno iniziato la visualizzazione l'uscita cella di carico in tempo reale. Poiché la macchina pressa vibrato notevolmente durante il funzionamento, le celle di carico di forma d'onda di uscita era difficile da discernere perché conteneva una grande quantità di rumore dovuto alla vibrazione come mostrato nel canale superiore della figura 2. Questo rumore è stato eliminato generando un 11-point movimento canale media come mostrato nel canale inferiore della Figura 2. Il risultato è stato un quadro molto più chiaro dell'uscita celle di carico. Un'applicazione in Eliminando Baseline Drift Nei casi in cui una linea di base alla deriva lentamente deve essere rimosso da un segnale a frequenza più elevata, il filtro media mobile può essere applicata per eliminare la deriva della linea di base. Ad esempio, una forma d'onda ECG presenta tipicamente un certo grado di linea di base come si può vedere nel canale superiore della Figura 3. Questo deriva della linea di base può essere eliminato senza modificare o disturbare le caratteristiche della forma d'onda come illustrato nel canale inferiore della Figura 3. Questo si ottiene applicando un fattore di livellamento negativo valore appropriato durante il calcolo della media mobile. Il fattore di livellamento appropriata viene determinata dividendo un periodo della forma d'onda (in secondi) per l'intervallo di campionamento canali. L'intervallo di campionamento canali è semplicemente il reciproco della frequenza di campionamento canali e viene visualizzato comodamente nel menu di utilità media mobile. Il periodo della forma d'onda è facilmente desumibile da display posizionando il cursore in un punto opportuno della forma d'onda, impostando un indicatore di tempo, e quindi spostando il cursore di un ciclo completo di distanza dal marcatore ora visualizzata. La differenza di tempo tra cursore e indicatore di tempo è un periodo di forma d'onda e viene visualizzato nella parte inferiore dello schermo in secondi. Nel nostro esempio ECG, la forma d'onda possedeva un intervallo di campionamento di canale di .004 secondi (ottenuti dal menu di utilità media mobile) e un periodo di forma d'onda è stata misurata a estendersi .388 secondi. Dividendo il periodo di forma d'onda per l'intervallo di campionamento canali ci ha dato un fattore di livellamento di 97. Dal momento che è la deriva della linea di base che siamo interessati ad eliminare, abbiamo applicato un fattore di livellamento negativo (-97) per il movimento algoritmo di media. Questo in effetti sottratto il risultato media muove dal segnale della forma d'onda originale, che ha eliminato la deriva della linea di base senza disturbare le informazioni di forma d'onda. Altre forme d'onda Spostamento Problemi media Qualunque sia l'applicazione, la ragione universale per l'applicazione di un filtro a media mobile è quello di quotsmooth outquot le aberrazioni alti e bassi e rivelare un valore più rappresentativo intermedio forma d'onda. Nel fare questo, il software non deve compromettere altre caratteristiche della forma d'onda originale nel processo di generazione di una forma d'onda media mobile. Ad esempio, il software dovrebbe regolare automaticamente le informazioni di calibrazione associato al file di dati originale, in modo che la forma d'onda media mobile è in unità ingegneristiche appropriate quando generato. Tutte le letture nelle figure sono state scattate con Windaq acquisizione dati softwareOnline Algoritmi a Trading ad alta frequenza Le sfide affrontate dai concorrenti HFT algoritmi Jacob Loveless, Sasha Stoikov, e Rolf Waeber HFT (trading ad alta frequenza) è emerso come una forza potente in finanziaria moderna mercati. 20 anni fa, la maggior parte del volume degli scambi si è verificato negli scambi quali la Borsa di New York, dove gli esseri umani, vestito in abiti dai colori vivaci sarebbe gesticolare e gridare le loro intenzioni di trading. Al giorno d'oggi, il commercio si verifica soprattutto nei server elettronici in centri dati, dove i computer comunicano le loro intenzioni commerciali attraverso messaggi di rete. Questo passaggio da scambi fisici alle piattaforme elettroniche è stato particolarmente proficuo per le imprese HFT, che hanno investito pesantemente nelle infrastrutture di questo nuovo ambiente. Anche se l'aspetto della sede ed i suoi partecipanti ha cambiato radicalmente, l'obiettivo di tutti gli operatori, sia in forma elettronica o umano, rimane lo stesso: per comprare un bene da un locationtrader e venderlo ad un altro locationtrader per un prezzo più elevato. La differenza definenti tra un operatore umano e un HFT è che quest'ultimo possa reagire più rapidamente, più frequentemente, e ha molto brevi periodi di portafoglio possesso. Un tipico algoritmo di HFT opera alla scala di tempo inferiore al millisecondo, dove i commercianti umani non possono competere, come il battito di un occhio umano è di circa 300 millisecondi. Come algoritmi HFT in concorrenza tra loro, si trovano ad affrontare due sfide: toro Essi ricevono grandi quantità di dati ogni microsecondi. toro devono essere in grado di agire estremamente veloce ai dati ricevuti, come la redditività dei segnali che stanno osservando decade molto rapidamente. algoritmi online forniscono una classe naturale di algoritmi adatti per applicazioni HFT. In un problema di linea, le nuove variabili di ingresso sono rivelate in modo sequenziale. Dopo ogni nuovo ingresso l'algoritmo ha bisogno di fare un esempio di decisionmdashfor, o meno di presentare un mestiere. Questo è in netto contrasto con un problema di linea, che presuppone che l'intero dati di input è disponibile al momento del processo decisionale. Molti problemi di ottimizzazione pratici affrontati nelle applicazioni informatiche e di ricerca operazioni sono problemi on-line. 1 Oltre a risolvere un problema di linea, gli algoritmi HFT anche bisogno di reagire molto velocemente per gli aggiornamenti di mercato. Al fine di garantire un rapido tempo di reazione, la gestione efficiente della memoria è una necessità per un algoritmo di trading dal vivo. Mantenere una grande quantità di dati nella memoria rallenterà qualsiasi CPU, quindi è importante che un algoritmo utilizza solo una minima quantità di dati e parametri, che possono essere memorizzati nella memoria accessibile veloce quale la cache L1. Inoltre, questi fattori dovrebbero riflettere lo stato attuale del mercato e devono essere aggiornati in tempo reale quando si osservano nuovi punti di dati. In sintesi, minore è il numero di fattori che devono essere tenuti in memoria e più semplice il calcolo necessario per aggiornare ciascun fattore, più velocemente un algoritmo è in grado di reagire agli aggiornamenti di mercato. Sulla base della richiesta di velocità e la natura linea di problemi HFT, la classe di algoritmi a passo singolo è particolarmente adatto per applicazioni HFT. Questi algoritmi ricevono un punto di dati alla volta e utilizzarlo per aggiornare una serie di fattori. Dopo l'aggiornamento, il punto dati viene scartato e solo i fattori aggiornati sono tenuti in memoria. Tre problemi possono sorgere in algoritmi HFT. La prima è la stima di un funzionamento medio di liquidità questo può essere utile per una HFT determinare la dimensione di un ordine che possa eseguire con successo su un particolare scambio elettronico. Il secondo problema è una stima della volatilità in esecuzione, che può aiutare a quantificare il rischio a breve termine di una posizione. Il terzo problema è una regressione lineare in esecuzione, che può essere utilizzato in coppie di negoziazione di beni. Ciascuno di questi problemi possono essere risolti in modo efficiente utilizzando un algoritmo-pass uno online. In questo articolo Backtest le prestazioni di algoritmi passa-uno su dati limite-order-book per gli ETF altamente liquidi (exchange-traded funds) e descriviamo come calibrare questi algoritmi nella pratica. Algoritmi online di HFT L'unico vantaggio che HFT ha rispetto agli altri partecipanti al mercato è la velocità di reazione. le imprese HFT sono in grado di vedere ogni azione nel marketmdashthat è, le informazioni contenute nell'ordine limite bookmdashand reagisce entro microsecondi. Anche se alcuni algoritmi HFT possono basare le proprie azioni su una fonte di informazioni al di fuori del mercato (ad esempio, analizzando notizie, misurazione della temperatura, o misurare il sentiment di mercato), la maggior parte basano le loro decisioni solo sui messaggi che arrivano al mercato. Secondo alcune stime, ci sono circa 215.000 gli aggiornamenti di citazione al secondo sul New York Stock Exchange. 4 La sfida per HFTs è a trattare tali dati in un modo che permette loro di prendere decisioni, come quando per immettere le posizioni o ridurre il rischio. Gli esempi utilizzati in questo articolo si presuppone che HFTs possono osservare ogni aggiornamento nel migliore offerta e chiedere i prezzi, tra cui l'offerta migliore e chiedere misure. Questo sottoinsieme delle informazioni contenute nel libro degli ordini limite è spesso definito come il livello-ordino le informazioni libro. I seguenti tre esempi di algoritmi on-line, ogni motivati con un'applicazione in HFT, sono descritte in dettaglio in questo articolo: toro in linea significa algoritmo. Illustrati costruendo un fattore che predice la liquidità disponibile, definito come la somma delle dimensioni al meglio in acquisto e la migliore proposta in, un orizzonte fisso in futuro. Questo quantitativo può essere utile nello stimare che taglia fine è probabile che l'esecuzione ai migliori citazioni in un dato latenza. toro algoritmo di varianza in linea. Illustrato costruendo un fattore che predice la volatilità realizzata in un orizzonte fisso in futuro. Questo quantitativo può essere utile nella stima del rischio a breve termine di tenere l'inventario. algoritmo di regressione toro in linea. Illustrato con la costruzione di un fattore che predice l'atteso PNL (profitti e perdite) di una lunga posizione corta in due dei relativi asset. Questo può essere utile nella costruzione di un segnale indicativo quando una posizione long-short è probabile che sia vantaggioso. In tutti e tre i casi, l'algoritmo ha un parametro singolo, alfa, che controlla la velocità con cui le informazioni vecchio è dimenticato. Figura 1 trame della misura di liquidità grezzo (dimensioni bid più chiedere formato) in blu. Rosso e verde rappresentano il fattore di liquidità in linea, con alpha0.9 e alpha0.99, rispettivamente. Si noti che come alpha si avvicina ad un valore di 1, il segnale diventa più liscia e tiene traccia l'andamento dei dati sottostanti in modo efficiente. Figura 2 terreni La misura della volatilità online di vari valori di alpha. Ancora una volta, si noti che la misura è più agevole per alpha più grande. Anche se un alpha più grande fornisce un segnale più agevole, è in ritardo anche più indietro la tendenza di fondo in quanto dà molto peso ai dati più vecchi. Come discusso in seguito, la scelta di un valore per alpha traduce in un compromesso tra un segnale liscia ed un ridotto ritardo del trend. Per illustrare l'algoritmo di regressione in linea, andiamo a vedere la serie storica dei prezzi a metà per spia e SSO, due ETF altamente correlati (SSO è la versione a doppia leva di SPY). Come mostrato in figura 3, il rapporto tra le due attività sembra molto vicino a lineare nel corso di una giornata. Figura 4 lotti media on-line e di intercettazione per due valori di alfa. Algoritmi Un passa-Come indicato dal suo nome, un algoritmo-pass si legge ogni variabile di ingresso esattamente una volta e poi scarta. Questo tipo di algoritmo è molto efficiente in termini di gestione della memoria, in quanto richiede solo una minima quantità di dati da memorizzare nella memoria. Questa sezione presenta tre importanti esempi di algoritmi passa-uno on-line: la media mobile esponenziale, la varianza esponenzialmente ponderata, e la regressione esponenziale ponderata. La sezione successiva descrive poi l'applicazione di tali algoritmi per HFT. In primo luogo, permette di guardare brevemente la media mobile semplice di una serie storica. Questa è una stima della media di una serie temporale su una finestra mobile di una dimensione fissa. In finanza, è spesso utilizzato per rilevare le tendenze di prezzo, in particolare dal confronto di due medie mobili semplici: uno per un lungo finestra e un corso di un breve finestra. In un'altra applicazione, la media del volume scambiato negli ultimi cinque minuti può servire come una previsione dei volumi scambiati nel prossimo minuto. In contrasto con la media mobile esponenziale, la media mobile semplice non può essere risolto con un algoritmo a passo singolo. Sia (X t) t X 0, X 1, X 2. la successione osservato di variabili di ingresso. In ogni momento t vogliamo prevedere la prossima esito X t1. Per M gt 0 e t ge M. la media mobile semplice con la dimensione della finestra M è definito come la media delle ultime osservazioni M nelle serie temporali (X t) t mdashthat è,. La media mobile può essere calcolata tramite la seguente ricorsione: Anche se questo è un algoritmo on-line, non è un algoritmo di passa-uno, come ha bisogno di accedere a ogni ingresso punto di dati esattamente due volte: una volta per aggiungerlo al media mobile e poi nuovo per cadere fuori della stima media mobile. Tale algoritmo è indicato come un algoritmo di due passaggi e richiede di mantenere un intero array di dimensione M in memoria. Esempio 1: One-pass media esponenziale ponderata Contrariamente alla media normale, la media ponderata esponenziale assegna un peso esponenziale decrescente fino osservazioni anziani: Qui alpha è un parametro di ponderazione scelto dall'utente e deve soddisfare 0 lt alfa Le 1. Come questa media ponderata esponenziale dà più importanza di inserire più recente rispetto ai punti dati meno recenti, è spesso considerato come una buona approssimazione della media mobile semplice. Rispetto alla media mobile semplice, la media ponderata esponenziale prende tutti i dati precedenti in considerazione, non solo le ultime osservazioni M. Per confrontare la semplice media mobile e la media ponderata esponenziale ulteriormente, la figura 5 mostra quanti punti dati ricevono 80, 90, 95, 99, e il 99,9 percento in peso nella stima come funzione di alfa. Ad esempio, se alpha 0.95, quindi l'ultimo M 90 osservata punti dati contribuiscono al 99 per cento del valore stimato. Come un avvertimento, se la serie storica (X t) t ha code molto pesanti, quindi la media esponenziale lisciato potrebbe essere dominata da una osservazione estrema, mentre la media mobile è meno soggetto a osservazioni estreme come queste alla fine cadono fuori dalla finestra di osservazione . riavvio frequente della procedura di stima può risolvere tale effetto memoria a lungo termine di livellamento esponenziale. Il motivo per favorire la media mobile esponenziale oltre la semplice media mobile in HFT è che può essere efficacemente risolto utilizzando un algoritmo a passo singolo, inizialmente introdotto in Brown (1956). 3 Questa formula fornisce anche una semplice interpretazione del parametro alfa come un controllo di quanto peso è dato alla osservazione più recente, rispetto a tutti i precedenti osservazioni. Esempio 2: Variance One-pass ponderata esponenzialmente Il livellamento esponenziale descritto nel paragrafo precedente stima una media mobile di una serie storica. In finanza, la volatilità di una serie storica è spesso un fattore importante pure. In linea generale, la volatilità dovrebbe acquisire quanto una serie temporale oscilla attorno al suo media. Non esiste una definizione ampiamente accettata della volatilità per i dati finanziari ad alta frequenza. Questa sezione considera la volatilità sia la deviazione standard (radice quadrata della varianza) di un punto dati in serie storica (X t) t. Simile alla media mobile esponenziale ponderata della sezione precedente, un algoritmo in un solo passaggio on-line può essere costruito che stima la volatilità delle serie storiche (X t) t con un sistema di ponderazione esponenziale. La varianza di una variabile casuale è definita come Var (X) E X - E X) 2. La stima della varianza ponderata esponenziale della serie storica richiede due stimatori: uno che stima la media EX e uno che stima la varianza: La deviazione standard del prossimo punto di misura X T1 è quindi stimato come. Anche in questo caso, il parametro di input isin alfa (0,1) viene scelto dall'utente e riflette quanto peso viene assegnato a punti dati più vecchi rispetto l'ultima immissione di dati osservati. Qui, abbiamo inizializzato lo stimatore di varianza con 1, che è una scelta piuttosto arbitraria. Un altro modo è quello di avere un primo periodo di invecchiamento per il quale si osserva la serie temporale (X t) t e varianza stimatore standard della serie su questo burn-in finestra temporale può essere utilizzato per inizializzare stimatore. Naturalmente, un metodo simile può essere utilizzato per inizializzare stimatore dello stimatore media ponderata esponenzialmente. Esempio 3: Un-pass Algoritmo per ponderata esponenzialmente regressione lineare L'ultimo esempio è un algoritmo-pass uno on-line per il modello di regressione lineare in modo esponenziale ponderata. Questo modello è simile a regressione lineare ordinario, ma dà ancora più importanza (secondo una ponderazione esponenziale) a recenti osservazioni rispetto alle osservazioni anziani. Come già evidenziato, tali metodi di regressione sono molto utili nelle strategie HFT di stimare il rapporto di diversi beni, che possono essere, per esempio, sfruttati nella creazione di strategie di trading coppia. In questo modello consideriamo una serie bidimensionale tempo (X t, Y t) t e congettura che le variabili X e Y sono legati tramite una relazione lineare che danneggia da un epsilon t termine rumore con media zero. Cioè, la variabile Y è definito come variabile di risposta, mentre X è detta variabile esplicativa. Per semplicità assumiamo solo una variabile esplicativa qui, ma l'estensione a diverse variabili esplicative è semplice. Nell'approccio linea standard per la regressione lineare, siano rispettati i parametri beta 0 e beta 1 sono calibrati dopo tutti i punti di dati. Questi punti di dati vengono raccolti in un vettore Y (Y 0. Y 1. Y t) T e una matrice La colonna di quelli nella matrice X corrisponde al intercetta nell'equazione 3. Se ulteriormente scrivere i parametri beta 0 e beta 1 come vectormdashthat è, beta (beta 0, beta 1) T mdashthen la relazione tra Y e X possono convenientemente essere scritta in notazione matriciale come dove epsilon è un vettore di rumore termini stocastici, e ciascuno di questi termini di errore ha media zero. L'approccio più comune per la stima del parametro beta utilizza minimi quadrati ordinari estimationmdashthat è, beta viene scelto in modo che minimizza la somma dei quadrati dei residui. La soluzione a questo problema di minimizzazione è. Come in media e della varianza stime, punti di dati più recenti dovrebbero essere più importante per la stima del parametro beta. Inoltre, un algoritmo a passaggio singolo beta è necessaria per il calcolo veloce. Successivo lascia considerare un metodo ricorsivo che aggiorna beta sequenzialmente e minimizza nuovo, il parametro alfa deve essere nella gamma (0,1) ed è scelto dall'utente. I parametri beta 0 e beta 1 della stima dei minimi quadrati pesata possono essere calcolate con un algoritmo passaggio one linea efficiente. Ad ogni passo dell'algoritmo a 2 volte 2 matrice M t e 2 volte 1 vettore V t bisogno di essere salvati nella memoria e aggiornato con nuovi dati puntare secondo la seguente ricorsione: Per quanto riguarda la media e la varianza stimatore, l'inizializzazione della ricorsione può essere fatto utilizzando un periodo di burn-in. Infine, dopo il tempo t. la migliore stima della beta è. Nella letteratura di questo metodo è anche chiamato ricorsive minimi quadrati con oblio esponenziale. 2 Estimating Alpha Come si fa a decidere sul valore ottimale di alfa, il parametro di tutti questi modelli on-line Il nostro approccio per tutti e tre i modelli è quello di definire una funzione di risposta che ci proponiamo di prevedere, e ridurre al minimo l'errore quadratico tra la ri risposta e il nostro fattore fi. Questo metodo trova l'alfa ottimale su una serie storiche. Un altro approccio sarebbe quello di stimare l'alfa ottimale anche online. Questo, tuttavia, richiede più lavoro e va oltre la portata di questo articolo. Ora forniamo i dettagli sulle stimatori in linea descritte e stimare l'alfa ottimale su un dato insieme di dati. 1. Lo stimatore media di liquidità è definito come dove l'indice i rappresenta il tempo preventivo. La risposta è definito come la liquidità in 10 secondi: dove bs i (10) rappresenta la dimensione dell'offerta 10 secondi dopo la citazione i-esimo. Esecuzione di una routine di ottimizzazione su alfa dimostra che l'alfa ottimale per il dato fornito è 0,97, mostrata in figura 6 come un grafico a dispersione del fattore e la risposta. 2 Lo stimatore volatilità è definita come dove l'indice i rappresenta tempo reale in secondi. La risposta è definito come la volatilità realizzata nel corso del prossimo minuto: Anche in questo caso, la ricerca su diversi valori di alfa alfa produce una ottimale di 0.985 per il dato insieme di dati. Figura 7 mostra un grafico a dispersione del fattore e la risposta. 3. Il pairs trading stimatore di regressione è definito come dove l'indice i rappresenta il tempo preventivo. Il fattore rappresenta il valore di SPY relativo al SSOmdashthat è, se la quantità è positiva, allora Spy è relativamente a buon mercato e un commercio che è di SPY è probabile che sia redditizia. La risposta è definito come il PNL nel prossimo minuto di un commercio che è di una azione della spia e azioni brevi beta di SSO: dove rappresenta il prezzo di SPY 60 secondi dopo. La risposta r i rappresenta il PNL del seguente strategia long-short: Acquisto 1 azione di spia e vendita di azioni beta di SSO al tempo i. uscire dalla posizione dopo 60 secondi. Nei dati analizzati impostato alfa ottimale risulta essere 0.996. La figura 8 è un diagramma a dispersione del fattore e la risposta. Conclusione online algoritmi passa-uno sono strumentali nel trading ad alta frequenza, dove ricevono di grandi quantità di dati ogni microsecondo e devono essere in grado di agire in estremamente veloce sui dati ricevuti. Questo articolo ha affrontato tre problemi che devono affrontare gli algoritmi HFT: la stima di una media di esecuzione di liquidità, che può essere utile per determinare la dimensione di un ordine che rischia di eseguire con successo su un particolare scambio elettronico una stima della volatilità in esecuzione, che può aiutare quantificare il rischio a breve termine di una posizione e di una regressione lineare in esecuzione, che può essere usato in coppie di negoziazione dei relativi asset. Online algoritmi passa-uno può aiutare a risolvere ognuno di questi problemi. Riferimenti 1. Albers, S. 2003. algoritmo online: un sondaggio. Programmazione Matematica 97 (1-2): 3-26. 2. Astrom, A. Wittenmark, B. 1994. Adaptive Control, seconda edizione. Addison Wesley. 3. Brown, R. G. 1956. esponenziale per la previsione della domanda. Arthur D. Little Inc. pag. 15 lo amano, odiano farci sapere JACOB LOVELESS è il CEO di Lucera ed ex capo di High Frequency Trading per Cantor Fitzgerald. Mr. Loveless ha lavorato per entrambi i gruppi di negoziazione ad alta frequenza e scambi per gli ultimi 10 anni in quasi tutti i beni elettronici. Prima di una vita nel campo della finanza, il signor Loveless era un imprenditore speciale per il Dipartimento della Difesa statunitense con particolare attenzione alla analisi euristica sulle cose che non può essere discusso. Prima di questo, è stato il CTO e fondatore di dati scientifici, un pioniere nell'analisi di sistemi distribuiti. SASHA Stoikov è un ricercatore associato senior presso la Cornell finanziaria Ingegneria Manhattan (CFEM) e un ex VP nel gruppo di Trading ad alta frequenza a Cantor Fitzgerald. Ha lavorato come consulente presso la Stanley Gruppo Galeone e Morgan ed era un istruttore presso il Courant Institute di New York University e presso il Dipartimento Columbias IEOR. Ha conseguito un dottorato di ricerca presso l'Università del Texas e un BS dal MIT. ROLF WAEBER è un Research Associate quantitativa a Lucera e in precedenza è stato un ricerca quantitativa presso Cantor Fitzgerald alta frequenza Trading Group. Ha partecipato a studi su rettifiche per il rischio di liquidità all'interno dei quadri di regolamentazione Basilea iiiii alla Deutsche Bundesbank. Rolf ha guadagnato il suo dottorato di ricerca in Ricerca Operativa e Ingegneria presso la Cornell University nel 2013. Ha conseguito un BS e un master in matematica presso l'ETH di Zurigo, Svizzera. copia 2013 ACM 1542-7730130800 10.00 Originariamente pubblicato nel vol coda. 11, no. 8 8212 vedono questo elemento nella ACM Digital Library Ivar Jacobson, Ian Spence, Ed Seidewitz - Industrial Scala Agile - da imbarcazione in Ingegneria Essence è strumentale nello spostamento di sviluppo software verso una vera e propria disciplina ingegneristica. Andre Medeiros - dinamiche del cambiamento: perché Reattività Matters Tame le dinamiche del cambiamento centralizzando ogni preoccupazione nel proprio modulo. Brendan Gregg - La Fiamma Grafico Questa visualizzazione di esecuzione del software è una nuova necessità di profiling delle prestazioni e il debug. Ivar Jacobson, Ian Spence, Brian Kerr - Casi d'Uso 2.0 L'hub di sviluppo software si fa anche Fri, 5 agosto 2016 19:07:59 UTC se anche voi negoziazione malato essere interessati a far parte di te Brandon Sun, 8 Maggio 2016 21 : 39: 10 UTC attualmente sto bloccato calcolare gli stimatori media e varianza utilizzati per il calcolo beta. L'articolo dice Ad ogni passo dell'algoritmo un 2 2 a matrice Mt e un 2 1 vettore Vt bisogno di essere salvati nella memoria e aggiornato con una nuova dati del punto secondo la seguente ricorsione. Come per la media e la varianza stimatore, l'inizializzazione della ricorsione può essere fatto utilizzando un periodo burn-in. Il problema che sto avendo è che non sono sicuro quali valori M e parametri V dovrebbe essere inizializzato all'utilizzo di un periodo di invecchiamento. Non sono sicuro di quali valori la matrice 2x2 o 2x1 il vettore dovrebbe essere. mperez Fri, 8 gennaio, 2016 Perché 21:47:19 UTC, quando si misura la volatilità, calcolano la deviazione standard invece di utilizzare la varianza perdono tempo, mentre il calcolo della radice quadrata. xxx Mon, 21 ott 2013 07:48:57 UTC nome degli autori, Loveless. tai Diao le la copia 2016 ACM, Inc. Tutti i diritti Reserved. I Sto cercando di trovare un modo per calcolare una media cumulativa in movimento senza memorizzare il conteggio e totale dei dati che vengono ricevuti finora. Sono venuto con due algoritmi ma entrambi bisogno di memorizzare il conteggio: nuovi media ((vecchio conte vecchi dati) prossimi dati) accanto contare nuovi media vecchi media (dati successivo - vecchi media) accanto contare Il problema con questi metodi è che il conteggio diventa sempre più grande risultante a perdere precisione nel medio risultante. Il primo metodo utilizza il vecchio conte e conteggio successivo che sono ovviamente 1 parte. Questo mi ha fatto pensare che forse c'è un modo per rimuovere il conteggio, ma purtroppo ho havent trovato ancora. E mi ha fatto ottenere un po 'più lontano, però, con conseguente il secondo metodo, ma il conteggio è ancora presente. E 'possibile, o sto solo cercando l'impossibile chiesto 28 12 settembre alle 8:46
eliminado por el autor it protesta al trato recibido en El Foro ltima edicin por el Estrada 3 giugno 2010, 16:18, editado 1 vez en totale Aviso Legale: Lo que a mi me ha funcionado non necesariamente le funcionara un usted. Existe la posibilidad de perder Una parte o toda la Inversin Inicial. No debe invertir dinero que no pueda permitirse perder. La Unica manera de evadir impuestos es teniendo Una cuenta en el extranjero, en paraiso fiscale (a veces los broker te la ofrecen). Asi tienes tu dinero Fuera del alcance de tu Hacienda. y de tu bolsillo. El Problema es: como para haces traertelo una casita. Te haces un traje de billetes de 100 y a ver si Cola en la frontera, ja ja ja Otra opcion es IRTE a vivir Al Paraiso fiscale. un poco duro, no. Bueno lo por aqui abituale es comprare billetes de Loteria premiados y asi blanqueas La Plata, ya que los premios de Loteria, al menos en Espaa, El primer AO esta exento de contribucion. Te va a costar pastn delle Nazioni Unite, pero bueno, algo e...
Comments
Post a Comment