Monday 28 August 2017

Trading Strategia Matlab


Bitfinex ha annunciato oggi l'avvio di contratti minerari come un prodotto di trading sulla loro piattaforma. In totale 100 THS sono stati resi disponibili (terahashes al secondo) con una scadenza a 3 mesi per il commercio con il nome di TH1BTC. I 100 THS fanno parte di un più ampio gruppo di 3500 THS in modo più contratti minerari potrebbero diventare disponibili in futuro. È interessante notare che questo segna la prima volta che è possibile a breve un contratto mineraria. Cortocircuito un contratto minerario significa ricevere una quantità di Bitcoin ora (il prezzo lo vendiamo a) e dei dividendi in seguito paganti (in Bitcoin) oltre 3 mese successivo fino a quando il contratto scade a metà del mese di dicembre. Un profitto è realizzato se la somma di tutti i dividendi distribuiti (più gli interessi che abbiamo pagato a breve il contratto) è inferiore a quello che abbiamo ricevuto all'inizio quando abbiamo venduto il contratto (a qualcun altro, ovviamente). Questo significa che il prezzo di TH1BTC dovrebbe dipendere 3 variabili (in ordine decrescente di importanza): Il cambiamento della difficoltà mineraria fino al 15 dicembre Il tempo rimanente fino al 15 dicembre Il tasso di interesse (tasso swap) Se difficoltà aumenta i pagamenti di dividendi diventano più piccoli, perché 1 THS rappresenta una frazione più piccola di tutta la potenza di rete hashing. Pertanto, il prezzo di un contratto dovrebbe diminuire se difficoltà aumenta. Più ci avviciniamo alla scadenza dei Bitcoin febbre può essere presente con 1 THS in totale. Pertanto, il prezzo di un contratto dovrebbe diminuire più ci avviciniamo alla scadenza e raggiungere un prezzo di 0 a scadenza. Più alto è il tasso di interesse più costoso è entrare e mantenere il contratto su tutta la lunghezza di 3 mese. Bitfinex non offre 90 giorni swap, quindi entrare in un contratto con l'obiettivo di tenere fino alla fine contiene un po 'di rischio di tasso di interesse, perché ad un certo punto un nuovo scambio deve essere presa fuori (a un tasso di interesse potenzialmente sfavorevoli). Si tratta di meno di un problema quando si va a lungo (Bitcoin tariffe sono in genere bassi) rispetto a quando andare a breve (c'è solo un massimo di 100 contratti disponibili in totale, senza ponticelli nudo). Per compensare i prezzi di rischio dovrebbero aumentare quando i tassi di swap sono in aumento. L'ignoto è naturalmente il cambiamento nella difficoltà mineraria nei prossimi 90 giorni. Nella figura seguente vediamo come difficoltà cambiato rispetto al precedente di 6 mesi. I dati sono da Tradeblock e si vede non solo una rappresentazione grafica dei cambiamenti passati nella difficoltà (difficoltà cambia ogni 14 giorni a seconda del tasso di hash passato. Maggiori informazioni si possono trovare nel wiki), ma anche alcune statistiche di riepilogo di base. Sulla media difficoltà è aumentata 27 negli ultimi 30 giorni e 77 degli ultimi 60 giorni. Per stimare il prezzo equo di uno TH1BTC si suppone che la difficoltà aumenterà in media 15 al mese per i prossimi 3 mesi. Attualmente il prezzo di acquisto di un contratto del valore di 1 THS è 2 BTC. La quota di piscina è 3 e ci ignorerà i tassi di interesse. La compilazione di tutte le informazioni si ottengono i seguenti risultati: Quindi se andiamo lungo un contratto in base alle nostre ipotesi ci sarebbe una perdita di circa 0,39 Bitcoin (un po 'di più, in realtà, da quando inizieremo mineraria nella metà di settembre fino alla metà di dicembre) in quanto i dividendi attesi (entrate mensili) non ha intenzione di coprire i costi iniziali di 2 BTC prima della scadenza del contratto. D'altra parte, andare a breve a un prezzo di 2 Bitcoin avrebbe generato un utile di circa 0,39 Bitcoin per contratto. Tenete a mente che ci didn8217t includono i costi di swap che sono attualmente a circa 1 al giorno (). Ci sono due modi per guardare i risultati. O potremmo dire prezzi per TH1BTC sono attualmente sopravvalutati e dovrebbero essere più vicino a circa l'1,5 BTC. Se assumiamo difficoltà aumenterà più di 15 al mese, allora i prezzi dovrebbero essere addirittura inferiore a quello. Oppure potremmo dire che il mercato è efficiente ei prezzi sono corretti, il che implicherebbe che il mercato si aspetta la difficoltà di ridurre in media circa 2 al mese per i prossimi 90 giorni. In entrambi i casi, i risultati saranno resi noti con certezza in 90 giorni. Lottando per recuperare dalla più recente crollo lampo Bitcoin che ha avuto origine in Bitfinex solo quattro giorni passano. prezzi Bitcoin ha preso un altro tuffo oggi come commercianti del margine ottenuto le loro posizioni liquidato BTC-e. L'evento è iniziato alle 13:36 (UTC1) quando i grandi ordini di vendita hanno cominciato a presentarsi al terzo più grande Bitcoin scambio occidentale BTC-e. Verso il basso ritmo è aumentato costantemente come il portafoglio ordini è diventato sempre più sottile, si infrangono i prezzi a un minimo di USD 309 per Bitcoin alle 13:43. Nei minuti successivi prezzi rimbalzato rapidamente il volume Thin torna a circa USD 442 come i commercianti di arbitraggio hanno iniziato a trarre vantaggio dello sconto rispetto ad altri scambi. BTC-e è uno dei pochi grandi borse che offrono il commercio di margine ai propri clienti attraverso la piattaforma MetaTrader dal novembre 2013, ma i dettagli di chi fornisce excactly i fondi necessari per il commercio di margine sono rimasti poco chiari. La forma e soprattutto tempistica dei punti di arresto nei confronti di commercianti di margine in liquidazione (o si fermano gli ordini in corso di esecuzione), simile a quello che è successo su Bitfinex un paio di giorni fa. Tuttavia, a differenza Bitfinex che è trasparente sulle posizioni di swap aperte. BTC-e non fornisce dati importanti che sarebbe necessaria per fornire un'analisi più approfondita e quindi questa ultima affermazione può essere considerata solo una buona congettura. Diversamente Bitfinex, che si basa su un algoritmo nascosto nel tentativo di controllare il flusso di ordini. BTC-e sembra non avere particolari garanzie in atto per mitigare tali eventi. La caduta al di sotto di 400 è dovuto principalmente alla mancanza di offerte nel portafoglio ordini e non perché il mercato ritiene che il vero valore è inferiore a 400, come il rimbalzo di nuovo a più di 440 soli minuti dopo fondamentalmente dimostrato. Quindi, arrestare il commercio durante estrema volatilità verso il basso potrebbe essere facilmente evitato lo spargimento di sangue tra gli operatori dei margini dando altri partecipanti al mercato più tempo per addensare il portafoglio ordini. Aggiornamento 04:58 (UTC1): BrCapoeira pubblicato su Reddit un grafico interessante in base ai dati dalla piattaforma Metatrader: Questo grafico implica che un solo ordine di grandi dimensioni è stata la causa di questo evento. Se questo modo è stato creato a causa di una chiamata di margine, un semplice errore, di manipolare il mercato, o per aprire una grande posizione short rimane poco chiaro. Il buon senso suggerirebbe che era probabilmente il risultato di una chiamata margine di un unico grande operatore. Il mio precedente post su questo argomento è stato portato durante le discussioni in seguito alla più recente crollo Bitcoin flash. Coindesk è stato uno dei primi a raccoglierlo e da allora vari post su trasparenza e la possibile cura del cliente di scambio di gestire attivamente l'esecuzione degli ordini ha iniziato a comparire. A seguito di quegli eventi Josh Rossi, Vice Presidente del Business Development di Bitfinex, è andato su Reddit per affrontare apertamente alcuni dei problemi presentati contro lo scambio. I fatti che sappiamo per certo è che ci sono stati alcuni grandi ordini di vendita poco prima dello schianto ha iniziato, ad esempio un ordine di 500 vendere sul Bitstamp a 9:49 (UTC1), circa 6 minuti prima di un grande ordine di vendita sul Bitfinex innescato l'incidente. Tuttavia, i dati non ci dice se era insider trading, una qualche forma di manipolazione del mercato. o un semplice errore. Il fatto è che dopo i flash crash posizioni aperte di swap Bitcoin è diminuito da circa 28m a 24m che indica le posizioni lunghe circa 8400 di margine sono stati chiusi (ipotizzando una media di 475) in un modo (margin call) o di un altro (ordine colpo di arresto). Il dato non ci dice che cosa è il rapporto, ma secondo Josh solo circa 650 Bitcoin sono stati venduti come il risultato di richieste di margini. Come giustamente sottolineato da Jonathan Levin. Fatto sta che a partire circa 24 ore prima del crollo bitcoin flash finché l'incidente in sé un ulteriore 1000 Bitcoin sono state prese in posizioni corte e circa 2500 cortometraggi sono stati successivamente chiusi durante l'incidente. Sia che i pantaloncini sono stati aperti per coprire posizioni esistenti, come un tentativo dannoso per attivare una chiamata di margine, o un modo per front-eseguire il mercato con informazioni private non può essere determinato in base ai dati disponibili (che ha un aspetto stranamente sospetto però). Quello che è stato inaspettato Personalmente, il punto interessante è che non Bitcoin Flash si è schiantato. le fluttuazioni dei prezzi improvvise accaduto in passato e accadrà in futuro, soprattutto nei mercati illiquidi, come Bitcoin. Il punto interessante è il coinvolgimento di Bitfinex e come sono gestiti attivamente l'esecuzione degli ordini senza informare gli operatori di mercato in anticipo. Il motore di corrispondenza Bitfinex non è stata interrotta durante l'intero incidente anche se lo ha fatto rallentare (ma in nessun luogo così male come il famigerato 70 minuti ordine di ritardo sulla ormai defunta scambio MtGox durante l'incidente nel 2012). Tuttavia, ciò che ha fatto è stato Bitfinex hanno introdotto qualcosa che ora si riferiscono a come dossi. Che cosa significa è che essi essenzialmente ordini di bandiera che ritengono come non valido o potenzialmente pericolosi e li rallenta intenzionalmente. A prima vista questo potrebbe sembrare una buona idea. Chi doesn8217t vuole un filtro per rimuovere o rallentare gli ordini maligni Tuttavia, come spesso accade con questo tipo di cose il diavolo è nei dettagli. Il problema è che Bitfinex non è (e forse non lo sarà mai) rendere pubblico esattamente come si classificano un ordine come 8220bad8221 e 8220slow esso down8221. Se un operatore di mercato decide di mettere su un grande ordine di vendita nei confronti di un portafoglio ordini sottile poi that8217s la sua decisione. Sia che la sua azione era intesa o meno non spetta allo scambio di decidere. Potrebbe essere che questo partecipante al mercato era semplicemente la prima persona a reagire ad un evento importante ed è del tutto disposto a sostenere i costi aggiuntivi del slittamento conseguente previsione di un grande movimento di prezzo. Semplicemente non esiste un modo per classificare con precisione gli ordini a priori come 8220good8221 o 8220bad8221 quanto ciò assumere automaticamente la conoscenza di tutti gli eventi futuri immediati. Che cosa può essere migliorato errori (8220fat finger8221, algoritmo di andare caos) accaduto, i margini vengono chiamati e la gente cerca di ingannare il sistema in ogni modo possibile. Logicamente ci devono essere garanzie per proteggere i mercati ed i suoi partecipanti. Bitfinex era sicuramente a conoscenza del potenziale flusso degli ordini tossici e contromisure preparate. L'unica cosa che si sono dimenticati è stato quello di informare i propri clienti circa le caratteristiche di sicurezza nascoste. Nascondere tali garanzie da parte del pubblico aggiunge incertezza al mercato (soprattutto ora che sappiamo che esistono e talvolta fare qualcosa) e mette in sostanza ogni Traders Trust nelle mani di Bitfinex. A questo punto un commerciante può solo sperare che Bitfinex agirà sempre nei migliori intenzioni dei loro clienti. Questa speranza potrebbe essere inutile, però, dal momento che Bitfinex fa i soldi da commissioni di negoziazione, indipendentemente se un professionista rende effettivamente i soldi. Uno non deve pensare a lungo per realizzare il potenziale nascosto di abuso in un tale sistema. Il motivo principale allevato da Josh perché Bitfinex non intende per pubblicizzare il loro algoritmo è quello di evitare di dare i commercianti la possibilità di sfruttare è falso e le seguenti spettacoli perché. Quelli sono gli interruttori ufficiali di mercato ampi circuiti utilizzati dal NASDAQ, pubblicate online e del tutto trasparenti per ogni partecipante al mercato. Tali norme non sono certamente perfetti, ma sono semplici, trasparenti, e lavorare per uno dei più grandi mercati azionari in tutto il mondo. Ora, io ho grande rispetto per le persone che lavorano sulla piattaforma Bitfinex, ma dubito che sono riusciti a venire con un algoritmo che protegge i partecipanti al mercato meglio di quelli utilizzati da un importante scambio commerciale più di 900 milioni di azioni al giorno in media . E se lo facessero, ora è l'occasione per Bitfinex per dimostrare al mondo e, eventualmente, scrivere la storia con l'insegnamento dei grandi ragazzi come gestire correttamente uno scambio. Quando si tratta di scambi pubbliche la trasparenza è d'obbligo, non solo per Bitfinex ma per qualsiasi scambio. I partecipanti al mercato devono sapere esattamente cosa succede quando effettuare un ordine e devono in nessun caso devono fare affidamento sulla buona fede da solo. Misure di salvaguardia sono importanti perché gli incidenti accadono e commercializza incidente ma non è fino allo scambio di impegnarsi in discriminazione ordine segreto. Ci sono diversi modi per salvaguardare i mercati finanziari e nessuno di loro è perfetto. L'aggiunta di complessità di solito aumenta la possibilità di effetti collaterali indesiderati e quindi un approccio semplice, trasparente sembra più appropriato di una nascosta, un complesso. Due giorni fa BitMEX ridotto le loro commissioni di negoziazione a 0 e celebrato si rilasciando una base di market making bot su Github. BitMEX è attualmente in esecuzione una sfida commerciale fino al 29 agosto 2014 per promuovere la loro nuova piattaforma. Rilascio di un mercato marcatura bot è probabilmente un modo interessante ed efficace per aumentare il traffico e lo stress API testare la piattaforma un po '. Certo che couldn8217t resistere e aveva un aspetto. Market-maker è un Liquidbot biforcuta off. che era originale progettato per funzionare su scambio MtGox ora obsolet. Ci sono stati alcuni cambiamenti minori (nuova classe API per la connessione a BitMEX, alcune stampe aggiuntive per console, le modifiche di adattamento per i contratti a termine, e una stampa enorme e inutile console all'avvio), ma significative modifiche alla logica di commercio. L'algoritmo utilizza solo controlli REST e per le modifiche ogni 60 secondi. Questa squalifica già il bot in quanto è essenziale troppo lento a reagire ai cambiamenti in atto nel portafoglio ordini. BitMEX limita le richieste alle API REST di 150 per 5 minuti in modo da poter provare a ridurre i 60 secondi per qualcosa come 3 ma won8217t cambiare il fatto che, non appena i mercati iniziano a muoversi vi ha colpito il limite e di essere bloccato con posizioni aperte. Per essere onesti, BitMEX fornisce il bot più come una trovata di marketing ed esplicitamente afferma che il passaggio a WebSocket sarà di grande beneficio in quanto consente aggiornamenti in tempo reale. Nel complesso, l'algoritmo è solidamente scritto, funziona tecnicamente ed è facile da installare, ma won8217t ti fanno i soldi nel lungo periodo. Se qualcuno considera seriamente di utilizzare questo bot mi sento di raccomandare le seguenti piccole modifiche per rendere il codice più utilizzabile: 1. Passare alla websocket 2. Posizione uscita su una stretta: 3. Gli ordini generazione a partire dal punto centrale: Inoltre vorrei consigliare di misurare volatilità in qualche modo e adattare la distanza tra gli ordini dinamicamente nonché le dimensioni. Durante il mio test l'API è sempre reattivo e preciso. Volume sullo scambio è ancora basso, ma i fondamentali della piattaforma sembrano promettenti. Questo bot è uno strumento divertente per introdurre gli utenti nel mondo di market making e trading algoritmico, ma won8217t una possibilità contro algoritmi stabiliti. Nota: Se si considera usando questo algoritmo tenere a mente che di market making è un lavoro a tempo pieno. Qualsiasi cosa meno di completa dedizione, tempo di reazione veloce, e 100 tempi di attività causerà la perdita di denaro. Edit: Follow-up sulle conseguenze qui oggi Bitcoin prezzi hanno preso un tuffo come i commercianti di margine su uno dei più grandi scambio Bitfinex ottenuto i loro ordini liquidati. Per molti attenti osservatori del mercato e gli operatori più sofisticati questo non è venuto come una sorpresa. In realtà, le posizioni lunghe sono state costruendo continuamente nel corso degli ultimi due mesi in previsione di una nuova bolla dei prezzi Bitcoin e hanno raggiunto il più in alto 30m in posizioni di swap in circolazione Bitfinex. Ora, questo wouldn8217t essere un problema da sola finché c'è abbastanza capitale sostenere il prestito. Purtroppo, la maggior parte di quelle posizioni lunghe sono stati iscritti circa 600 8211 640 USDBTC e la garanzia è stata per lo più forniti in Bitcoin sé. Il grafico seguente mostra bene l'accumulo di posizioni long, con un picco intorno al 14 luglio con vicino ai 32m in swap. Esecuzione di un rapido calcolo sulla base del margine di Bitfinex di 13 manutenzione e assumendo Bitcoin come garanzia troviamo che richieste di margini dovrebbero iniziare intorno al marchio 520 8211 540 USDBTC. Ieri, i prezzi si sono avvicinati e oggi finalmente saltato giù dalla scogliera. Il problema è che una volta richieste di margini fissati in te hanno un effetto a cascata, che strappa attraverso il portafoglio ordini, causando ancora più ordini per raggiungere il punto di non ritorno e di aumentare ulteriormente la quantità di moto verso il basso. Questo tipo di eventi non sono limitati a Bitcoin scambi, ma può verificarsi anche sulle principali borse come ad esempio durante l'incidente Flash 2010 negli Stati Uniti. La causa di tale Flash crashe può variare e va dagli errori delle dita di grasso per errori di programmazione a cascata richieste di margini. E 'interessante vedere come gli scambi che fare con questi eventi. Negli Stati Uniti, Nasdaq implementato interruttori ampio mercato che farà sì che il commercio di fermarsi in tali circostanze estreme. Bitcoin mercati non sono ancora così avanzata e di solito continuare l'attività. Se guardiamo l'azione su ordine Bitfinex oggi vediamo qualcosa di molto particolare: sembra (e questo è solo una supposizione in quanto non vi è alcun commento ufficiale da parte del cambio), come se Bitfinex è in esecuzione un algoritmo per gestire le richieste di margini. L'algoritmo comincia a vendere, ma si limita a un calo del 10 dei prezzi entro 1 minuto. Se i prezzi scendono di oltre il 10 in 1 minuto che smetterà di vendere e aspettare ordini di acquisto di entrare. Una volta che ci sono ancora una certa quantità di ordini di acquisto nel portafoglio ordini l'algoritmo comincia a vendere di nuovo fino a quando tutte le richieste di margini sono soddisfatte. Edit: LeMogawai fu il primo a farlo notare in questo post e che corrisponda mia osservazione personale al momento dell'evento. Questo sembra essere un modo interessante per affrontare richieste di margini cascata, ma può anche essere considerato come manipolazione del mercato di confine dal lato di scambio. Diffondendo gli ordini di vendita nel corso del tempo la quantità di moto verso il basso si riduce, tuttavia i commercianti finiscono scambiato contro lo scambio stesso e non il mercato più. Lo scambio ha un vantaggio informativo in quel punto ed è quindi più probabile che profitto che i commercianti. Per fortuna, questo è durato solo per circa 10 minuti dopo che il controllo è stato restituito al mercato. Altri scambi che offrono anche il commercio di margine, come BTC-e e OKcoin sono ora in una posizione favorevole e possono imparare da eventi di oggi. L'implementazione di un sistema più molto somiglianti gli interruttori di grandi scambi, come il Nasdaq potrebbe essere una prima mossa intelligente. Recentemente sto lavorando per ottenere la mia nuova piattaforma di trading in corso. Questa nuova versione è basata su Python, utilizza MySQL per mantenere un database di tutte le serie temporali di diverse valute virtuali con riempimento automatico da BitcoinCharts e integra le 3 principali borse MtGox, BTC-E e Bitstamp. La piattaforma sarà utilizzata come modo per backtest alcune strategie e impegnarsi in trading automatico. Durante la fase di preparazione a questo ho deciso di tirare alcuni dati di BTC contro USD da BitcoinCharts e sulla base delle idee di una carta di Hashem e Timmermann (1995) messo in atto una semplice strategia di trading. L'idea è quella di prevedere il segno del ritorno periodo t1 basata su una regressione, stimata su una selezione automatica degli indicatori tecnici durante l'ultimo periodo n fino t. Poi, dopo t1 è accaduto, ci aggiorniamo il modello e cercare di prevedere t2 utilizzando tutti i dati disponibili degli ultimi n periodi fino t1 e così via. Per la mia tesi di laurea ho esaminato quattro differenti regole di negoziazione tecniche in mercati Forex. Esso utilizza la MCS e Test SpA per la ricerca di validi modelli tra i diversi parametri che non sono soggetti ai dati snooping. Tenendo conto di transazione realistico costa troviamo alcuna evidenza di rendimenti in eccesso, che è coerente con l'efficienza del mercato. Con questo codice si dovrebbe essere in grado di cercare opportunità di arbitraggio Bitcoin all'interno BTC-e. Esso utilizza l'idea di un prezzo e si applica l'arbitraggio triangolare, tenendo conto dei costi e la diffusione. Il motivo per cui questo post qui nonostante che funziona, è probabile che sarà troppo lento per competere con altri investitori a fare lo stesso. Possibili miglioramenti potrebbe essere quella di prendere in considerazione la profondità dell'ordine libro e dividere i mestieri in modo dinamico, cercando di minare gli altri operatori che fanno lo stesso. Anche l'impostazione tutto su un server dedicato vicino alla posizione fisica della partita motore di BTC-e dovrebbe ridurre drasticamente il ritardo e vi darò un potenziale vantaggio. Messaggio navigationWhile mi piace dove questa domanda sta andando, vorrei suggerire di rendere un po 'più concreto. Quali parti del processo di backtesting Vorresti imparare Questo può variare da solo stimare un rendimento normale, dove i rendimenti di portafoglio dalla vostra strategia sono già date per l'attuazione di una regola formazione portafoglio completo algoritmicamente. ndash Constantin 30 dicembre 14 a 21:06 A dire il vero don39t so molto di backtesting. Mi è stato detto che dovrò backtest nuove strategie o migliorare quella attuale durante il mio stage. Così mi piacerebbe sapere un po 'di più su questo argomento prima di iniziare. Quali sono le diverse parti di essa. ndash Maxime 30 dicembre 14 al 21:31 L'idea generale per i titoli di capitale, un semplice backtest in genere costituito da due fasi: calcolo del rendimento del portafoglio derivante dal regola la formazione di portafoglio (o strategia di trading) Rischio-regolazione dei rendimenti del portafoglio mediante una asset pricing modello di Fase 2 è semplicemente una regressione e computazionalmente molto semplice in Matlab. Che cosa è più complicato è l'implementazione della fase 1, che richiede di essere molto comodo in Matlab, e ci sono diversi modi per farlo. Se sai come fare una regressione OLS in Matlab, ciò che si dovrebbe concentrarsi su è tutti i tipi di manipolazioni matrice. Implementazione in Matlab portafoglio formazione e ritorna calcolo Per darvi un esempio di come una strategia di trading primitiva potrebbe essere implementato in Matlab, lascia supporre dati di ritorno mensili e un periodo di detenzione uniforme di un mese delle attività n periodi k, dove ho dentro e k in . Assumendo cambiamenti nella composizione del tuo magazzino universo, le dichiarazioni dei matrice X è di dimensioni k volte n. X cominciare x amp punti amp x amp punti amp x vdots amp ddots amp vdots amp ddots amp vdots x amp punti amp x amp punti amp x vdots amp ddots amp vdots amp ddots amp vdots x amp punti amp x amp punti amp x fine, dove i rendimenti sono calcolati come x frac -1. Supponendo che il criterio di selezione è una sorta di magazzino caratteristica che è disponibile con frequenza mensile, si avrà anche una matrice caratteristiche C. È quindi potrebbe scrivere un algoritmo che identifica le voci in C che soddisfano il vostro criterio di selezione (ad esempio, supera una certa soglia ) e sostituire le voci corrispondenti (dove i e t sono gli stessi) di una matrice indicatore i (che è stato inizializzato come una matrice a zero utilizzando la funzione zeri) con quelli. È quindi possibile moltiplicare le voci di I da quelli di matrice ritorna X per ottenere una matrice di R che indica i rendimenti derivanti dalle vostre aziende. È quindi possibile calcolare la media delle voci non-zero per ogni riga di R per ottenere il vettore di rendimenti del portafoglio. Rischio-regolazione e l'identificazione di rendimenti anomali Al punto 2 si confronta questo vettore per i rendimenti normali ottenuti dalla stima di regressione di un asset pricing model, come il modello Fama-Francese. Sottraendo il vettore normale ritorno dalla vostra rendimenti del portafoglio vettore, a determinare se la vostra strategia di trading ha portato ad un rendimento anomalo positivo, che è quello che stai puntando. Raccomandazioni Se siete nuovi a Matlab, io personalmente suggerisco di familiarizzare con esso sufficiente per attuare questa strategia semplicistico prima di rilassarvi alcune delle ipotesi semplificatrici (come periodo e la periodicità uniforme in possesso) e procedere alla implementazioni più sofisticate. Ancora una volta, ciò che vorrei sottolineare è che questo richiede di essere molto confortevole con Matlab e soprattutto i diversi modi per manipolare matrici, che può richiedere un certo tempo. Se non è necessario utilizzare Matlab per il tirocinio e vorrebbe ottenere risultati veloci, si potrebbe fare il passo 1 in Excel, invece, che è noioso, ma pretende molto necessario il (vale la pena) investimento iniziale è necessario fare per Matlab. Per acquisire familiarità con Matlab, sono sicuro che avete già scoperto il estremamente buona documentazione che viene con esso. Questo, per me, è la sola risorsa più preziosa e probabilmente più utile di tutte le risorse in modo più preciso di finanza (con la quale vorrei aspettare fino a quando si ha familiarità con Matlab stesso). Tutti i thats necessari per determinare il rendimento normale è una regressione OLS e una conoscenza rudimentale di modelli di asset pricing. risposto 30 dicembre 14 a 22: 20MatlabTrading Questo post è su come importante è quello di utilizzare diversi tipi di metodi di ottimizzazione, come gli algoritmi genetici e parallelizzazione per ottenere risultati più velocemente. Algoritmi Genetici Ottimizzazione Nonostante il fatto che la genetica (evolutiva) principio algoritmo è molto ben spiegato nei webinar MathWorks, negli esempi, tuttavia, viene utilizzato solo per l'ottimizzazione della scelta di un gruppo strategia da un set. Questo è un buon esempio dell'uso di questi algoritmi, tuttavia, accade che vi è la necessità di impostare molte variabili con intervalli significativi per una strategia, non vi ottenere con una iterazione e la parallelizzazione dei processi 8211 calcoli possono richiedere diversi giorni . Certamente, ci sono strategie nella fase finale di ottimizzazione. quando abbiamo quasi sicuramente conosciamo la strategia di trading è successo, possiamo aspettare per diversi giorni come bene o affittare l'intera gruppo - il risultato potrebbe essere la pena. Tuttavia, se abbiamo bisogno di valutare i risultati di una strategia ingombrante e decidere se ne vale la pena spendere il tempo, poi gli algoritmi genetici possono essere perfettamente adatto. Noi forniamo la possibilità di utilizzare tre metodi per ottimizzare la strategia in WFAToolbox: metodo lineare 8211 si tratta di una modalità abituale di smistamento in cui potrete vedere tutti i risultati intermedi (non ottimali). Dà la massima precisione. metodo parallelo 8211 verrà utilizzato tutti i kernel della CPU. Non permette di vedere i risultati intermedi, ma velocizza notevolmente il funzionamento. Dà la massima precisione durante la aumento della velocità di calcolo. metodo genetico 8211 utilizza l'algoritmo di ottimizzazione evolutiva. Permette di vedere i valori non ottimali, ma dà il risultato vicino ai migliori. Il suo non è un metodo molto preciso, ma la sua precisione sufficiente per l'esecuzione iniziale della strategia. Molto veloce. Spesso ci viene chiesto se WFAToolbox - Walk-Forward Analisi Toolbox per MATLAB ha la possibilità di utilizzare la GPU per i calcoli. Sfortunatamente, GPU non è adatto per tutti i compiti e il suo utilizzo è molto specifica. Per usarlo, è necessario regolare la logica e il codice di ogni strategia per il test core grafici. Purtroppo, a causa di tale mancata universalità del metodo non si può usare GPU in WFAToolbox. Continuando Parte 2 della discussione dei problemi e delle soluzioni in test e analisi di strategia di negoziazione algoritmica in MATLAB, vi invito a leggere questo post su problema di indisponibilità di visualizzazione dei processi in soluzioni software per i sistemi moderni test di trading. Visualizzazione di Process Testing Nella mia esperienza di lavoro, spesso mi ha analizzato altre piattaforme popolari per i test strategia di trading. come ad esempio TradeStation. MetaStock. Multicharts ecc e mi ha sempre sorpreso di quanto poco attenzione è stata posta la visualizzazione del processo di test. Il fatto è che, quando noi non vedere i risultati dei valori intermedi, sub-ottimali di parametri ottimizzati, spesso ci buttiamo oro insieme con lo sporco. La questione è a causa di un campionamento eccessivamente ampia, la strategia regola i parametri il modo in cui ci sia vediamo una strategia perfetta che non riesce nella vita reale o vedere uno o due offerte, che sono presumibilmente il migliore perché è stato scelto al momento i dati intervallo in cui il migliore strategia di trading sarebbe buy-and-hold, ma perché sono poi altre strategie necessarie per visualizzazione del trading processo di test di strategia in MATLAB (proposto in webinar) di conseguenza, senza vedere i risultati intermedi, abbiamo bisogno di 171blindly187 modificare i parametri di provare per ottenere i dati migliori o guardarlo in qualche 3D o 4D (il colore è il 4 ° dimensione), come proposto nella webinar. L'analisi dei valori negli spazi N-dimensionali può sicuramente essere un'alternativa, ma ha diverse limitazioni: se ci sono più di 4 dimensioni Quando si vede ciò che i segnali e con quale frequenza vengono visualizzati nella fascia di prezzo, si ha quasi tutto il necessaria rappresentazione visiva della vostra strategia: la frequenza delle operazioni, la loro redditività (curva reddito), la precisione di apertura, la somiglianza con altri valori non ottimali, ecc, che non si può dire per le prestazioni in spazio n-dimensionale in cui tutte le informazioni utili è, infatti, che il valore ottimale è non solo uno, ma vi è una serie di valori subottimali in una o più aree. Mentre l'ottimizzazione di una strategia in WFAToolbox 8211 Cabina Forward Analisi Toolbox per MATLAB174. come viene trovato un nuovo valore ottimale, i segnali di strategia di trading nel periodo di permanenza nel campione e out-of-sample appaiono immediatamente sul grafico, in modo da poter sempre controllare ciò che gamma di opzioni è necessario assegnare, e inoltre è possibile mettere in pausa l'ottimizzazione senza attendere la fine della prova, in quanto è chiaro che qualcosa è andato storto o tutto è fine. Hello, il mio nome è Igor Volkov. Mi è stato lo sviluppo di strategie di trading algoritmico dal 2006 e ho lavorato in diversi hedge fund. In questo articolo, vorrei discutere le difficoltà che derivano dal modo di MATLAB strategie di trading sviluppatore durante il test e analisi, nonché per offrire possibili soluzioni. Sono stato con MATLAB per il test delle strategie algoritmo dal 2007 e sono giunto alla conclusione che questo non è solo lo strumento di ricerca più conveniente, ma anche il più potente perché rende possibile utilizzando di modelli statistici ed econometrici complessi, reti neurali, machine learning, filtri digitali, logica fuzzy, ecc con l'aggiunta di cassetta degli attrezzi. Il linguaggio MATLAB è abbastanza semplice e ben documentata, quindi, anche un non-programmatore (come me) può dominarlo. Come tutto è cominciato. Era 2008 (se non sbaglio) quando il primo webinar sul trading algoritmico in MATLAB con Ali Kazaam è stato rilasciato, che copre l'argomento di ottimizzare strategie semplici sulla base di indicatori tecnici, ecc nonostante un codice piuttosto 8220chaotic8221, strumenti erano interessanti sufficiente utilizzare. Hanno servito come punto di partenza per la ricerca e la valorizzazione di un modello di test e analisi che permetta di utilizzare tutta la potenza di cassette e libertà di azioni MATLAB durante la creazione di quelle proprie strategie commerciali, allo stesso tempo consentirebbe di controllare il processo di test e dati ottenuti e la loro successiva analisi avrebbe scelto efficace portafoglio di sistemi di trading affidabili. Successivamente, MathWorks webinar sono stati aggiornati ogni anno e gradualmente introdotto elementi sempre più interessanti. Così, il primo webinar su coppie di negoziazione (arbitraggio statistico) utilizzando l'Econometric Toolbox si è tenuta nel 2010, anche se la casella degli strumenti di test e analisi è rimasto lo stesso. Nel 2013, Trading Toolbox da Mathworks è apparso che ha permesso di connettersi MATLAB per diversi broker per l'esecuzione delle loro applicazioni. Anche se c'erano soluzioni automatiche per l'esecuzione delle operazioni, da quel punto in MATLAB potrebbe essere considerato un sistema per lo sviluppo di strategie di trading con un ciclo completo: dal caricamento dei dati per l'esecuzione di strategie di trading automatico. Perchè dovrebbe Ogni Algotrader reinventare la ruota Tuttavia, Mathworks non ha offerto una soluzione completa per il test e l'analisi delle strategie 8211 quei codici che si poteva uscire di webinar erano gli unici elementi di un test completo del sistema, ed è stato necessario modificarli , personalizzarli, e aggiungerli alla GUI per facilità d'uso. E 'stato molto tempo, ponendo così una domanda: qualunque sia la strategia era, si deve passare attraverso lo stesso processo di test e analisi, che le consentirebbe di essere classificato come stabile e usabile 8211 e allora perché dovrebbe ogni algotrader reinventare la ruota e scrivere hisher proprio codice per corrette strategie di test in MATLAB Così la decisione è stata presa per creare un prodotto che permettesse di eseguire l'intero processo associato al test e analisi di strategie di trading algoritmico utilizzando un'interfaccia semplice e user-friendly. Prima di tutto, vorrei rispondere alle seguenti domande: Che cosa è successo con il blog 1. Jev Kuznetsov non è il proprietario più Il blog è stato acquistato dal nostro amico, Jev Kuznetsov, che si è trasferito al suo altro blog tradingwithpython. blogspot. Ha concluso che Python è meglio di MATLAB per la negoziazione, che ho considerato di essere falsa. MATLAB rimane uno dei migliori software al mondo per fini di trading algoritmico IMHO (ho alcuni fatti su questo, però per la discussione futura). 2. Abbiamo cambiato il marchio Da questo momento il blog sarà chiamato MatlabTrading, che è molto più comprensibile per quanto riguarda gli argomenti che comprenderà. Inoltre, il nome di dominio è stato cambiato in matlabtrading anziché l'iniziale MATLAB-trading. blogspot. anche se il vecchio dominio sta ancora lavorando reindirizzando dal nome di dominio primario. Cosa accadrà ai blog 1. Altri post e articoli Speriamo di portare la vita a questo blog con la pubblicazione di contenuti rilevanti una o due volte alla settimana. Nei primi mesi, pubblicheremo principalmente quegli articoli e video che già abbiamo per rendere più facile per i nostri cari lettori a cercare informazioni su una risorsa e hanno reticolare su di loro. Poi abbiamo in programma di scrivere post su aspetti pratici di trading algoritmico in MATLAB. Come creare moderne strategie di trading automatico come ad esempio: statistica coppie di arbitraggio di trading significa strategie di trading neutro di mercato inversione basati su filtro bande di Bollinger cointegrazione Kalman ecc per materie prime, azioni e Forex. Trend seguenti strategie con Jurik Moving strategie media e altri sofisticati filtri digitali di previsione con la macchina di apprendimento (Support Vector Machines) e altri metodi di creazione di solide strategie di trading utilizzando Visual gestione test denaro passi in avanti per reinvestire il capitale (la scienza su come ottenere 1M da 10K in un anno con il massimo, ma i premi di rischio e sudore stima). Forse dopo aver letto questo youve pensato che questo sarà un altro articolo muto per quei poveri ragazzi che cercano come diventare ricco attraverso la negoziazione in forex e tutto il resto. Beh, questo è totalmente falso Stiamo lavorando in MATLAB, e la maggioranza di noi sono scienziati ed esperti in questo aspetto quindi tutto è grave. 2. Più interattività sarò felice se tutti noi possiamo raccontare attraverso i commenti a post. Iscriviti alla nostra news per ottenere avvisati sui nuovi messaggi e gli eventi. In seguito, abbiamo in programma di rendere Google Hangouts webinar. Non perdete, cliccare sul pulsante Follow nell'angolo in alto a destra di unirsi alla nostra comunità. Cosa ti piacerebbe leggere nei nostri post sul blog Quali argomenti si può suggerire Si prega di scrivere qui nei commenti. Nel mio post precedente sono arrivato a una conclusione che prossimo al vicino coppie di trading non è così redditizio oggi come ha usato per essere prima del 2010. Un lettore ha sottolineato che potrebbe essere che la natura mean-ritornare degli spread appena spostata verso tempi più brevi . Mi capita di condividere la stessa idea, così ho deciso di testare questa ipotesi. Questa volta una sola coppia è testato: 100 SPY vs -80 IWM. Backtest viene eseguita su 30 secondi di dati bar 11,2011-12,2012. Le regole sono semplici e simili a strategia che ho provato nel post precedente: se bar ritorno della coppia superiore a 1 su z-score, il commercio al bar accanto. Il risultato sembra molto carina: mi considero una prova sufficiente che ci sia ancora un sacco di ritorno alla media, il 30-seconda scala. Se si pensa che questo grafico è troppo bello per essere vero, che è purtroppo davvero il caso. Nessun costi di transazione o di bid-ask spread sono state prese in considerazione. In effetti, vorrei dubito che ci sarebbe stato alcun profitto sinistra dopo aver sottratto tutti i costi di negoziazione. Tuttavia, questo tipo di grafici è la carota penzoloni davanti al mio naso, mantenendo me andare. Cattive notizie a tutti, secondo i miei calcoli, (che spero vivamente non sono corrette) il commercio di coppie classiche è morto. Alcune persone sarebbero fortemente in disaccordo, ma qui è quello che ho trovato: consente di dare una strategia ipotetica che funziona su un paniere di ETF: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA Da questi ETF 90 unici coppie possono essere fatte. Ogni coppia è costruito come uno spread di mercato neutrale. regole Strategia: Ogni giorno, per ogni coppia, calcolare z-score sulla base di deviazione standard di 25 giorni. Se soglia di punteggio z gt, andare short, vicino giorno dopo se Z-score lt soglia dello andare lungo, fine giorno successivo per tenere tutto semplice, il calcolo viene fatto senza alcun gestione del capitale (si può avere un massimo di 90 coppie in portafoglio ogni giorno). I costi di transazione non vengono prese in considerazione sia. Per dirla semplicemente, questa strategia tiene traccia di un giorno significa ritornare natura degli spread neutrali di mercato. Ecco i risultati simulati per diverse soglie: Non importa quale sia la soglia viene utilizzata, la strategia è altamente redditizio nel 2008, piuttosto buona throuh 2009 e completamente privi di valore da inizio 2010. Questo non è la prima volta che mi sono imbattuto in questo cambiamento di mean-reverting comportamento in ETF. Non importa ciò che Ive ha provato, non ho avuto la fortuna di trovare una strategia di trading le coppie che lavorano sugli ETF passato 2010. La mia conclusione è che questi tipi di modelli semplici stat-ARB appena non tagliare qualsiasi Codice more. Backtesting per Algorithmic Trading strategia Autore : Moeti Ncube Questo è un codice che può essere utilizzato per backtest una strategia di trading. La strategia esempio utilizzato veniva utilizzato parzialmente per lo sviluppo di una strategia di negoziazione algoritmica media frequenza è una parte del codice backtesting utilizziamo per analizzare i dati tick. Questo codice può essere utilizzato per backtest una strategia di negoziazione per una serie temporale che ha il vettore dei prezzi nel primo indicatore colonna e negoziazione seconda colonna. Userò contratti future NG per la negoziazione e sarà monitorare pnl in termini di zecche (NG commercia in zecche, così .001 zecche sul ghiaccio sarebbe di circa 70contract, 10contract sul NYMEX) Oltre 17 giorni questa strategia in questo set di dati renderebbe circa 1060 sul NYMEX, o 7427 sul ghiaccio. I dati sono memorizzati nella prima colonna e un indicatore (proprietery), che tiene traccia sostanzialmente la velocità di mercato, è memorizzato nella seconda colonna. Questo codice può essere regolata a includere un'altra datasetindicator fintanto che assume il contorno strategia di base descriveremo qui. Questo è in realtà una semplificazione della mia vera e propria strategia. Ad esempio, i miei indicatori reali aggiornamenti BuySell di essere vtmax (v1. VT-1), mentre qui lo faccio statica. Indicatore BuySell: Ogni volta che l'indicatore è inferiore al valore v1, si acquista un contratto al prezzo corrente di mercato. Ogni volta che indicater è maggiore del valore V1 si vende un contratto al prezzo corrente di mercato. Obiettivo di profitto: Se la posizione longshort media ponderata è pt zecche in the money si chiude la vostra posizione, fare pt e la strategia ricomincia da priceind corrente. Stop Loss: Se la posizione longshort media ponderata è st zecche fuori del denaro, la vostra strategia dipende da voi raddoppiare indicatore dd, se DD0, si prende la perdita la prima volta che ciò accade e la strategia ricomincia. Se DD1, si aggiunge 1 contratto per il vostro postion longshort e ottenere un nuovo prezzo medio ponderato longshort. Ora, se la vostra nuova posizione longshort diventa pt zecche in denaro si raddoppia il vostro profitto per 2Pt, se diventa st zecche out of the money, si raddoppia le perdite al 2 ° A meno DD2, in cui ancora una volta si compra un altro contratto per guadagno potenziale 3pt o la perdita 3st. Val (d, :) (matrice) Qui uso dati intraday da 17 giorni nel mercato, val fornisce output di ogni giorno della pnl, cento redditività, Sharpe ratio, numero di contratti dtrades Qui a monitorare l'utile o la perdita realizzata su ogni commercio in un dato giorno d MATLAB 7.9 (R2009b)

No comments:

Post a Comment