Wednesday 15 November 2017

Optimal Trading Strategie Under Arbitraggio


Algorithmic Trading Qual è Algorithmic Trading trading algoritmico, noto anche come algo trading e scatola nera di trading, è un sistema commerciale che utilizza modelli e formule matematiche avanzate e complesse di prendere decisioni ad alta velocità e le operazioni nei mercati finanziari. trading algoritmico implica l'uso di programmi per computer veloci e complessi algoritmi per creare e determinare strategie di trading per i ritorni ottimali. Abbattere Algorithmic Trading Alcune strategie di investimento e strategie di trading, come l'arbitraggio. Intermarket diffusione, market making, e la speculazione possono essere migliorate attraverso il trading algoritmico. piattaforme elettroniche possono operare completamente strategie di investimento e di trading attraverso il trading algoritmico. Come tale, gli algoritmi sono in grado di eseguire istruzioni negoziazione in particolari condizioni di prezzo, volume e tempistica. L'uso di trading algoritmico è più comunemente usato dai grandi investitori istituzionali a causa della grande quantità di azioni che acquistano ogni giorno. complessi algoritmi permettono questi investitori di ottenere il miglior prezzo possibile, senza alterare in modo significativo il prezzo delle scorte e aumento dei costi di acquisto. L'arbitraggio è la differenza dei prezzi di mercato tra due entità differenti. L'arbitraggio è comunemente praticata in aziende globali. Ad esempio, le aziende sono in grado di approfittare delle forniture più economiche o di lavoro da altri paesi. Queste aziende sono in grado di tagliare i costi e aumentare i profitti. L'arbitraggio può essere utilizzato anche in futures trading SampP e le scorte SampP 500. E 'tipico per i futures e le scorte SampP SampP 500 per sviluppare le differenze di prezzo. Quando ciò si verifica, le azioni scambiate sui mercati NASDAQ e NYSE sia in ritardo o andare avanti dei futures SampP, offrendo l'opportunità di arbitraggio. trading algoritmico ad alta velocità in grado di monitorare questi movimenti e il profitto dalle differenze di prezzo. Trading Prima di risparmio Index Fund Riequilibrio pensionamento come i fondi pensione sono per lo più investiti in fondi comuni di investimento. I fondi indice di fondi comuni di investimento sono regolati regolarmente per abbinare i nuovi prezzi dei fondi sottostanti asset. Prima che questo accada, le istruzioni di negoziazione pre-programmati sono attivati ​​da algoritmici strategie di trading supportato, in grado di trasferire i profitti da parte degli investitori ai commercianti algoritmici. Mean reversion mean reversion è metodo matematico che calcola la media di un securitys prezzi alti e bassi temporanei. negoziazione algoritmica calcola la media e il potenziale di profitto dal movimento del prezzo securitys quanto sia va distanti o va verso il prezzo medio. Scalper risultato dell'attività di negoziazione il bid-ask spread più velocemente possibili numerose volte al giorno. movimenti di prezzo deve essere inferiore alla diffusione securitys. Questi movimenti avvengono in pochi minuti o meno, così la necessità di decisioni rapide, che possono essere ottimizzate da formule di trading algoritmico. Altre strategie ottimizzate per il trading algoritmico includere la riduzione dei costi di transazione e di altre strategie relative al dark pool. Machine apprendimento e Automated Trading The Big brevi (Mi piace) in cerca di strategie di trading con backtests redditizie - UPDATE Ho avuto alcune conversazioni molto interessanti da quando ho offerto il mio quadro non pubbliche trading intraday in cambio di informazioni sulle strategie redditizie, ed è per questo che voglio estendere questo invito inizialmente limitata nel tempo indefintely. Si noti che non sono alla ricerca di idee di strategia. Ho un sacco di quelli me stesso. La sfida non consiste nel venire con un'idea, ma nella scelta di quello giusto e la sperimentazione attraverso fino alla fine, quando youll o sapere che funziona o che pretende molto. Il fattore critico è il tempo. Quindi quello che sto essenzialmente Trading è il tempo che ho investito nello sviluppo di una solida roccia quadro trading intraday contro il tempo che avete investito nello sviluppo di un strtategy scambio proficuo. Può essere una strategia di magazzino, ETF, future o un'opzione. Tutte le discussioni e le informazioni scambiate saranno mantenute riservate. Sono ovviamente aperto a discutere puramente idee, ma per favore non aspettatevi me per metterli alla prova per te e non lo si lamentano se li implementare senza chiedere per la vostra approvazione. Invito a presentare proposte in cerca di strategie di trading con backtests redditizie fino a giugno 15. Sto accettando le proposte di promettenti strategie di trading su azioni, valute e indici stockbondcommodity. La strategia deve essere redditizia in backtesting e hanno un Indice di Sharpe annualizzato di almeno 1,0. Su 1. Luglio, le due strategie più promettenti saranno selezionati ed i loro autori possono scegliere una delle seguenti opzioni: 1) Ottenere una copia completa e gratuita del rafforzata, quadro di scambio non pubblico sulla base di R che ho sviluppato e usato dal 2012 e che gli autori possono utilizzare per il trading dal vivo le loro strategie con Interactive Brokers. (La versione pubblica semplificata può essere scaricato qui) 2) Inserire in un accordo di cooperazione in cui si impegnano a implementare la loro strategia in R e carta commerciale per un massimo di tre mesi. Tutti gli scambi individuali saranno condivisi con gli autori quando ocurr. Inoltre, il codice R che è specifico per la strategia (non il codice del quadro di negoziazione) sarà consegnato agli autori strategia. Cosa a presentare: una descrizione scritta della strategia oltre a un elenco dei mestieri più i timeseries di ritorno del backtest o del codice eseguibile Roctavepython che calcola direttamente i timeseries ritorno backtest, insieme con il pieno set di dati dei prezzi utilizzati nel backtest. Invia alla mia email disponibili nella sezione Contatti aggiornamento del quadro Trading Intraday R puro finalmente ho trovato il tempo di fare questo. Attesa da tempo. Il quadro ora corre con gli ultimi (UNIX) versioni della IB TWSGW (versione 9493 e successive). Questo di per sé ha richiesto un parziale ri-scrittura di diverse funzioni dal grande, ma ora un po 'datato pacchetto IBrokers R da Jeff Ryan. Anche la configurazione di default per la negoziazione EURUSD è stato aggiornato in modo che ora è un pezzo di torta per eseguire la strategia manichino esempio. Basta clonare il repo git sulla macchina locale. githubcensixINTRADAY-PartAB e seguire la README. Qualcosa su Hardware io sono ancora un fan di possedere il mio metallo. Certo, fare le cose con le immagini della macchina configurabili in the cloud è popolare perché non dovete passare attraverso il fastidio di gestire il proprio hardware, ma, isnt i problemi che in realtà solo un problema per le grandi organizzazioni in cui hundredsthousands di utenti devono essere tenuti felice costo minimo. Così è la nube non solo una soluzione ad un problema di persone che devono gestire scala, ma sono allo stesso tempo cercando di vendere contro tale soluzione all'individuo Joe là fuori che, lascia la faccia esso, realmente non bisogno. In ogni caso, come ho già detto, io sono un fan di possedere il mio metallo. Economico off-the-shelf hardware può ottenere un lungo cammino, se si prende il tempo per configurarlo correttamente. Un desktop 16-64Gb RAM con uno o anche due GPU sarà praticamente fare tutto il necessario. Sembra che le strategie di backtesting utilizza modo più risorse di calcolo rispetto effettivo di trading dal vivo, che è il motivo per cui in questi giorni è possibile impostare ed eseguire una strategia intraday da qualsiasi computer portatile decente con fiducia, mentre per il backtesting e la ricerca è davvero vorrebbe la RAM CPU GPU mostro al di sopra o un piccolo gruppetto supercomputing della propria, come ho recentemente descritto qui. Pure R Intraday commercio di inquadramento Dimensioni su disco disponibile Ho fatto INTRADAY-PartA. tar. gz e INTRADAY-PartB. tgz disponibile per il download. censixdownloads. html Trovare relazioni tra le attività che possono essere utilizzati per l'arbitraggio statistico Invece di concentrarsi su prevedere la direzione dei prezzi e la volatilità dei prezzi con i modelli non lineari derivati ​​con metodi di apprendimento automatico, un'alternativa potrebbe essere quella di cercare di scoprire relazioni di prezzo sfruttabili tra le attività della stessa classe e reagire (commercio), quando mispricing accade, in altre parole, fare arbitraggio statistico. In un certo senso questo è in qualche modo più facile che tentare di prevedere i prezzi, poiché l'unica cosa che si deve fare è di trovare un rapporto relativamente stabile, lineare o non lineare tra un gruppo di almeno due attività e supponiamo che, dal momento la sua individuazione, quel rapporto porterà per qualche tempo nel futuro. Trading in questa ipotesi è poi molto un processo reattivo che viene attivato da movimenti di prezzo che si discostano in modo significativo dalla relazione modellato. Tradizionale coppia scambia e commercializzazione di assetti in un VECM (Vector Error Correction Model) rapporti sono buoni esempi per statarb utilizzando modelli lineari. Allora perché non utilizzare un semplice rete neurale uno strato o anche un RBM per scoprire un rapporto prezzo non lineare tra due beni non-cointegrate e se questo processo di rilevamento è successo, il commercio in un modo simile a una coppia classica. Le cose diventano ancora più interessanti quando si considerano i gruppi con più di due beni. Questo sarebbe l'equivalente non lineare di un VECM. Funzione di selezione Larghezza vs. Profondità Consente di dire che abbiamo un timeseries univariata bersaglio di predizione che può essere sia di tipo regressione o di classificazione, e dobbiamo decidere quali caratteristiche ingresso per selezionare. Più concretamente, abbiamo un grande universo di timeseries che possiamo usare come ingressi e vorremmo sapere quanti dovremmo raccogliere (ampiezza) e anche quanto indietro nel tempo ci vuole cercare ciascuno (profondità). C'è un spazio bidimensionale di scelte, delimitata dalle seguenti quattro casi estremi, sotto l'ipotesi che abbiamo un totale di serie N e si può, al massimo, guardare indietro Timesteps K: (1) mantenere una sola serie e lookback un passo temporale, (2) scegliere una sola serie e K lookback Timesteps, (3) raccogliere serie N e lookback un passo temporale, (4) selezionare serie N e K Timesteps lookback. La scelta ottimale è probabile che non sia uno di quelli che, dal momento che (1) e (2) non possono contenere informazioni sufficienti predictve e (3) e soprattutto (4) sarà o non sarà possibile a causa contstraints calcolo o contenere rumore troppo casuale. Il modo suggerito di affrontare questo è quello di iniziare in piccolo a (1), vedere ciò che le prestazioni che si ottiene, e quindi aumentare la dimensione dello spazio di ingresso, sia l'ampiezza o profondità-saggio, fino a raggiungere le prestazioni di previsione soddisfacente o fino ad aver esaurito le risorse di calcolo e hanno bisogno di uno abbandonare l'intero approccio :( o acquistare una nuova (fattoria di) desktop (s) :) Utilizzando Stacked Autoencoders e limitato Macchine Boltzmann in R 12 febbraio 2014 Stacked Autoencoders (SAS) e ristrette Macchine Boltzmann ( MLF) sono modelli molto potenti per l'apprendimento non supervisionato. Purtroppo, al momento della scrittura sembra come se non ci sono R implementazioni dirette disponibili, il che è sorprendente dal momento che entrambi i tipi di modello sono stati intorno per un po 'e R ha implementazioni per molti altri tipi di modelli di apprendimento automatico. Per risolvere il problema, SAS potrebbe essere implementata utilizzando uno dei diversi pacchetti di reti neurali di R abbastanza rapidamente (nnet, AMORE) e MLF, beh, qualcuno avrebbe dovuto scrivere una buona implementazione R per loro. Ma dato che la formazione di entrambi i tipi di modello richiede un sacco di risorse di calcolo, vogliamo anche una implementazione che può fare uso di GPU. Quindi al momento la soluzione più semplice sembra che abbiamo è quello di utilizzare Theano. E 'possibile utilizzare le GPU e fornisce implementazioni di impilati autoencoders e meccanismi (denoising). Inoltre il codice PythonTheano per molte altre varianti più esotiche macchina Boltzmann è flottante intorno alla rete pure. Possiamo usare rPython di chiamare queste funzioni Python da R, ma la sfida è i dati. Ottenere grandi set di dati avanti e indietro tra R e Python senza usare la serializzazione ascii che rPython attrezzi (troppo lento) deve essere risolto. Un almeno altrettanto potente implementazione di autoencoders che supporta l'uso della GPU è disponibile tramite il quadro Torch7 (demo). Tuttavia, le funzioni Torch7 sono chiamate utilizzando lua e chiamarli dall'interno R invece richiederà un po 'di lavoro a livello C. In conclusione: Usa Theano (Python) o Torch7 (Lua) per i modelli di formazione con il supporto GPU e scrivere i modelli addestrati su file. In R, importare il modello addestrato da file e utilizzare per la previsione. Aggiornamento 25 aprile 2014: La seguente soluzione piacevole chiamata Python da R attraverso Rcpp ci dovrebbe portare un passo avanti verso usando Theano direttamente da R. quali frequenze al commercio. 13 gennaio 2014 Quando si cerca di trovare i modelli di mercato sfruttabili che si potrebbe commercio come un commerciante al dettaglio, una delle prime domande è: che le frequenze di trading a guardare mensile settimanale giornaliera o infragiornaliera ovunque tra 5 secondi a 1 ora Con il poco tempo a disposizione per effettuare ricerche presso tutti questi tempi, questo diventa una questione importante per rispondere. Io ed altri abbiamo osservato che ci sembra essere una semplice relazione tra la frequenza di trading e la quantità di sforzo necessario per trovare una strategia proficua che è puramente quantitativo e ha rischio accettabile. In breve: la più bassa (più lento) la frequenza che si desidera scambiare in, il più intelligente la vostra strategia redditizia deve essere. tradefreqvssmartnessAs un esempio, si potrebbe guardare il (molto) di fascia alta frequenza dello spettro, dove le strategie basate su marketmaking davvero molto semplice matematica può essere molto redditizio, se si riesce a essere abbastanza vicino al centro del mercato. Prendendo un grande salto nel regno frequenza giornaliera, sta diventando molto più difficile trovare strategie quantitative che sono redditizie, pur essendo basato sulla matematica piuttosto semplici. Trading ad intervalli settimanali e mensili, utilizzando metodi quantitativi semplici o indicatori tecnici è solo una buona ricetta per il disastro. Quindi, assumendo per un momento che questo rapporto è vero e anche considerando che siamo in grado e si desidera utilizzare sofisticate tecniche di apprendimento automatico nelle nostre strategie di trading, potremmo iniziare con una finestra frequenza settimanale e lavorare il nostro modo verso frequenze più alte. negoziazione settimanale non deve essere automatizzato a tutti e può essere fatto da qualsiasi interfaccia intermediazione web. Potremmo sviluppare un sacchetto di strategie, utilizzando i dati storici a disposizione del pubblico, in combinazione con il nostro algoritmo di apprendimento preferito per trovare modelli di mercato commerciabili e quindi eseguire la strategia manualmente. A questa scala, tutto lo sforzo dovrebbe andare in ricerca e messa a punto la strategia quantitativa e molto poco pensiero deve essere messo in esecuzione delle negoziazioni. Automatizzazione del commercio sforzo: 0. Strategia eleganza richiesto: 100 di trading giornaliero dovrebbe essere automatizzato, a meno che non si può davvero dedicare una parte fissa della vostra giornata per il monitoraggio dei mercati e l'esecuzione di mestieri. L'integrazione di algoritmi di apprendimento automatico con scambi giornalieri automatizzato non è un attività banali, ma può essere fatto. Automatizzazione del commercio sforzo: 20, Strategia smartness richiesto: 80 su scale temporali intraday, che vanno da minuti e secondi a sub-secondi, lo sforzo che dovrà intraprendere per automatizzare il vostro commercio può mentire in qualsiasi parte del range compreso tra 20 e 90. Per fortuna il più piccolo la tempistica diventa il più stupido vostra strategia può essere, ma muto è ovviamente un concetto relativo qui. Automatizzazione del commercio sforzo: 80, Strategia smartness richiesto: 20 Quali caratteristiche da usare. vs artigianale imparato 10 Dicembre 2013 A un certo punto nella progettazione di un (macchina) sistema di apprendimento vi inevitabile chiedersi quali caratteristiche per alimentare il vostro modello. Ci sono almeno due opzioni. Il primo è quello di utilizzare le funzioni artigianali. Questa opzione normalmente dare buoni risultati se le caratteristiche sono state progettate bene (che, naturalmente, è una tautologia, dal momento che si potrebbe chiamare solo loro ben progettati, se si hanno dato buoni risultati.). Progettare caratteristiche artigianali richiede conoscenze specifiche sul campo a cui verrà applicato il sistema di apprendimento, vale a dire la classificazione audio, riconoscimento delle immagini o nel nostro caso commerciale. Il problema qui è che non si può (ancora) una delle che la conoscenza di esperti e sarà molto difficile da trovare o prendere un sacco di tempo o più probabilmente entrambe le cose. Quindi l'alternativa è quella di apprendere le caratteristiche dei dati o, in altre parole, usano apprendimento non supervisionato per ottenerli. Un requisito è che si ha realmente bisogno di un sacco di dati. Molto più di quanto si avrebbe bisogno per le caratteristiche artigianali, ma poi di nuovo doesnt devono essere etichettati. Il vantaggio però è chiara. Non avete veramente bisogno di essere un esperto nel campo specifico di progettare il sistema per, vale a dire il commercio e la finanza. Così, mentre è ancora necessario per capire quale parte delle funzioni apprese saranno migliore per il tuo sistema di apprendimento, che è anche qualcosa che si hanno a che fare con le caratteristiche artigianali. Il mio suggerimento: provare a progettare alcune caratteristiche artigianali da soli. Se essi non eseguire e si hanno buone ragioni per credere che è possibile avere risultati migliori rispetto a quelli che si stanno ottenendo, utilizzare metodi di apprendimento non supervisionato per imparare le caratteristiche. È anche possibile creare un sistema ibrido che utilizza progettato e apprese le caratteristiche insieme. Perché io uso gli strumenti open source per la creazione di applicazioni di trading 19 novembre 2013 Quando ho iniziato a guardare nel fare il mio trading automatico, ho avuto tre requisiti sul set di strumenti che volevo usare. 1) Si dovrebbe costare il meno possibile per farmi iniziare, anche se questo significava che ho dovuto fare un sacco di programmazione e me le personalizzazioni (che costerebbe tempo) 2) Ci dovrebbe essere una comunità di persone che la pensano là fuori utilizzare questi stessi strumenti per uno scopo simile. 3) Gli strumenti dovrebbero permettermi di andare in profondità nelle viscere del sistema, se necessario, anche se in fin dall'inizio il mio obiettivo è stato più per scoprire le basi. Non volevo trovarmi in una situazione in cui due anni giù la linea avrei bisogno di passare a un diverso insieme di strumenti, proprio perché quelli che avevo iniziato con non mi hanno permesso di fare quello che volevo a causa di problemi con fonti chiuse e licenze restrittive. Di conseguenza sono venuto a scegliere R come la mia lingua di scelta per lo sviluppo di algortihms trading e ho iniziato ad usare Interactive Brokers in quanto forniscono una API per l'interfacciamento con il loro sistema di mediazione. Mentre ci sono molti strumenti di trading belle che si connettono alla IB Trader Workstation e alcuni possono essere utilizzati per il trading automatico, nessuno di questi offrono la stessa potenza, la flessibilità e il sostegno della comunità che il progetto R ha. Inoltre, R ha davvero una straordinaria repository di pacchetti di apprendimento statistico e la macchina liberi e molto Adavanced, qualcosa che è essenziale se si vuole creare algoritmi di negoziazione. Copyright copia Censix 2013 - 2015Applications della teoria dei grafi in Finanza molto grandi serie di dati 8211 che comprende i numeri voluminosi di simboli 8211 sfide per l'analista, non ultimo dei quali è la difficoltà di visualizzare le relazioni tra le singole attività componenti. Assente il indizi visivi che sono spesso evidenziati da immagini grafiche, è facile che l'analista si affacciano importanti cambiamenti nelle relazioni. Un mezzo per affrontare il problema è con l'uso di grafici. In questo esempio ho scelto un universo degli stock Dow 30, insieme ad un campione di materie prime e obbligazioni e compilato un database di rendimenti giornalieri nel periodo da gennaio 2012 a dicembre 2013. Se vogliamo guardare il modo in cui le attività sono correlati , un modo è quello creato un grafico di adiacenza che mappa le interrelazioni tra le attività che sono correlati a un certo livello specificato (0,5 di alto, in questa illustrazione). Ovviamente la scelta della soglia di correlazione è piuttosto arbitraria, ed è facile valutare i risultati dinamicamente, in una vasta gamma di differenti parametri di soglia, dire nell'intervallo da 0,3 a 0.75: La scelta del parametro (e di tempo) può dipendere sullo scopo dell'analisi: per costruire un portafoglio potremmo selezionare un valore di soglia inferiore, ma se lo scopo è quello di identificare le coppie di possibili strategie di arbitraggio statistico, uno sarà in genere alla ricerca di livelli molto più alti di correlazione. Tornando al grafico originale, vi è un nucleo di stock altamente interconnessi correlato che possiamo facilmente individuare più chiaramente usando la funzione FindClique Mathematica per specificare nodi del grafo che hanno più connessioni: Potremmo, per esempio, esplorare la performance relativa dei membri di questo sottogruppo nel corso del tempo e, forse, di indagare la questione se relativa sovraperformance o sotto-prestazioni è probabile a persistere, o, date le caratteristiche di correlazione di questo gruppo, invertire corso del tempo per dare un effetto di media-reversion. Una domanda ovvia potrebbe essere quella di costruire un portafoglio replicante composto questo altrettanto ponderato sotto-gruppo di stock, e di esplorare come ben si rintraccia l'indice Dow nel corso del tempo (qui sto usando l'ETF DIA come proxy per l'indice, per il bene di convenienza): la correlazione tra l'indice Dow (DIA ETF) e il portafoglio rimane forte (circa 0,91) per tutto il periodo out-of-campione dal 2014-2016, anche se le prestazioni del portafoglio è nettamente più debole di quella dell'indice ETF dopo la prima parte del 2014: Un'altra applicazione potrebbe essere quella di costruire portafogli robuste di attività più bassi-correlato. Qui per esempio si usa il grafico per identificare vertici indipendenti che hanno ben poche relazioni correlate (designati con il simbolo della stella nel grafico sottostante). Possiamo quindi creare un portafoglio equamente ponderato che comprende le attività con le correlazioni più bassi e confrontare la propria performance con quella dell'Indice Dow. Il nuovo portafoglio underperforms l'indice nel corso del 2014, ma con una minore volatilità e drawdown media. Conclusione Teoria dei grafi ha chiaramente un gran numero di potenziali applicazioni in finanza. E 'particolarmente utile come un mezzo per fornire una sintesi grafica di insiemi di dati che coinvolgono un gran numero di interrelazioni complesse, che è al centro della teoria di portafoglio e replicazione dell'indice. Un'altra applicazione utile potrebbe essere quella di identificare e valutare correlazione e cointegrazione le relazioni tra coppie o in piccoli portafogli di azioni, come si evolvono nel corso del tempo, nel contesto di arbitraggio statistico.

No comments:

Post a Comment