Nozioni di base di Algorithmic Trading: Concetti ed esempi Un algoritmo è un insieme specifico di istruzioni ben definite finalizzate a svolgere un compito o processo. trading algoritmico (trading automatico, black-box di trading, o semplicemente algo-trading) è il processo di utilizzo di computer programmati per seguire una serie definita di istruzioni per l'immissione un mestiere al fine di generare profitti a una velocità e frequenza che è impossibile per un operatore umano. I set definito di regole si basano sui tempi, prezzo, quantità o qualsiasi modello matematico. A parte le opportunità di profitto per il commerciante, algo-trading rende i mercati più liquidi e rende di trading più sistematico escludendo gli impatti umani emozionali dell'attività di negoziazione. Supponiamo che un trader segue questi criteri commerciali semplici: Acquisto 50 azioni di una società quando la sua media mobile a 50 giorni passa sopra il mobile a 200 giorni vendere le azioni medio del titolo quando la sua media mobile a 50 giorni scende al di sotto della media mobile a 200 giorni l'utilizzo di questo set di due semplici istruzioni, è facile scrivere un programma per computer che seguirà automaticamente il prezzo delle azioni (e gli indicatori in movimento medi) e posizionare il acquisto e in vendita quando sono soddisfatte le condizioni definite. Il commerciante non ha più bisogno di tenere sotto controllo per i prezzi in tempo reale e grafici, o mettere negli ordini manualmente. Il sistema di trading algoritmico lo fa automaticamente per lui, identificando correttamente l'opportunità di trading. (Per ulteriori informazioni su medie mobili, vedere: semplici medie mobili Fai Trends distinguersi.) Algo-trading offre i seguenti vantaggi: negoziazioni eseguite ai migliori prezzi possibili dell'ordine commercio istantanea e precisa (quindi alte probabilità di esecuzione a livelli desiderati) Trades cronometrato correttamente e immediatamente, per evitare variazioni significative dei prezzi ridotti costi di transazione (si veda il deficit esempio di implementazione di seguito) controlli automatici simultanei su più le condizioni di mercato ridotto rischio di errori manuali nella disposizione dei mestieri backtest l'algoritmo, sulla base dei dati storici e in tempo reale disponibili ridotti possibilità di errori da parte dei commercianti umani in base a fattori emotivi e psicologici La maggior parte dei nostri giorni algo-trading è alto il commercio frequenza (HFT), che tenta di capitalizzare mettendo un gran numero di ordini a velocità molto veloci su più mercati e decisione multipla parametri, sulla base di istruzioni pre-programmate. (Per maggiori informazioni sul trading ad alta frequenza, vedere: strategie e segreti di High Trading frequenza () Aziende HFT) Algo-trading è utilizzato in molte forme di attività di trading e di investimento, tra cui: Metà di investitori a lungo termine o comprare aziende laterali (fondi pensione , fondi comuni di investimento, assicurazioni) che acquistano in azioni in grandi quantità, ma non vogliono influenzare i prezzi delle scorte con discreti, gli investimenti di grande volume. commercianti di breve termine e vendono partecipanti laterali (market maker. speculatori. e arbitraggisti) beneficiano di esecuzione delle negoziazioni automatizzate in aggiunta, gli aiuti algo-negoziazione nella creazione di liquidità sufficiente per i venditori sul mercato. commercianti sistematiche (trend followers. coppie commercianti. hedge funds ecc.) trovano molto più efficiente di programmare le loro regole di negoziazione e lasciare che automaticamente il commercio programma. trading algoritmico fornisce un approccio più sistematico alla negoziazione attiva rispetto ai metodi basati su un commercianti intuizione o istinto umano. Strategie di trading algoritmico Qualsiasi strategia per il trading algoritmico richiede una opportunità identificate che è redditizio in termini di guadagni miglioramento o la riduzione dei costi. Di seguito sono le strategie di trading comuni utilizzati in algo-trading: Le strategie più comuni di trading algoritmico seguono le tendenze medie mobili. sblocchi canale. movimenti livello dei prezzi e relativi indicatori tecnici. Queste sono le strategie più facili e più semplici per attuare attraverso il trading algoritmico, perché queste strategie non comportano fare pronostici o previsioni di prezzo. Ordini vengono avviate in base al verificarsi di tendenze desiderabili. che sono facile e semplice da implementare attraverso algoritmi senza entrare nella complessità di analisi predittiva. L'esempio di cui sopra di 50 e 200 giorni di media mobile è una tendenza popolare seguente strategia. (Per ulteriori informazioni su strategie di trading di tendenza, vedi: strategie semplici per Capitalizzando sulle tendenze.) L'acquisto di un magazzino a doppia quotata ad un prezzo inferiore a quello di mercato e contemporaneamente vendere a un prezzo più elevato in un altro mercato offre il differenziale di prezzo come profitto privo di rischio o di arbitraggio. La stessa operazione può essere replicato per gli stock rispetto a strumenti a termine, come le differenze di prezzo fanno esiste di volta in volta. Implementazione di un algoritmo per individuare tali differenze di prezzo e l'immissione degli ordini consente opportunità redditizie in modo efficiente. fondi indicizzati hanno definito i periodi di riequilibrio per portare le loro partecipazioni a pari con i loro rispettivi indici di riferimento. Questo crea opportunità di profitto per i commercianti algoritmico, che capitalizzano sulle compravendite che ci si attende che offrono 20-80 punti base profitti a seconda del numero di titoli nel fondo indice, appena prima di riequilibrio fondo indicizzato. Tali operazioni sono avviate tramite i sistemi di trading algoritmico per l'esecuzione tempestiva e migliori prezzi. Un sacco di modelli matematici collaudati, come la strategia di trading delta-neutral, che consentono di negoziazione in combinazione di opzioni e il suo titolo sottostante. dove i commerci sono posti per compensare delta positivi e negativi in modo che il delta del portafoglio è mantenuta a zero. Media strategia di reversione si basa sull'idea che i prezzi alti e bassi di un bene sono un fenomeno temporaneo che ritornano alle loro valore medio periodicamente. L'identificazione e la definizione di una fascia di prezzo e l'attuazione di algoritmo basato su che consente di traffici di essere inseriti automaticamente quando il prezzo delle interruzioni di attività dentro e fuori del suo campo definito. Volume ponderata strategia di prezzo medio rompe un grande ordine e rilascia determinato dinamicamente blocchi più piccoli della fine di mercato utilizzando azionari specifici profili storici del volume. L'obiettivo è quello di eseguire l'ordine nei pressi del Volume Weighted Average Price (VWAP), beneficiando in tal modo il prezzo medio. Tempo strategia di prezzo medio ponderato rompe un grande ordine e rilascia determinate dinamicamente blocchi più piccoli dell'ordine al mercato utilizzando gli intervalli di tempo divisi tra un tempo di inizio e di fine. L'obiettivo è quello di eseguire l'ordine vicino al prezzo medio tra i tempi di inizio e di fine, riducendo al minimo l'impatto sul mercato. Fino dell'ordine commerciale è completamente riempito, questo algoritmo continua invio ordini parziali, in base al rapporto di partecipazione definito e in base al volume degli scambi nei mercati. La strategia di passaggi legati invia ordini ad una percentuale definita dall'utente dei volumi di mercato e aumenta o diminuisce questo tasso di partecipazione quando il prezzo raggiunge livelli definiti dall'utente. La strategia di attuazione deficit mira a ridurre al minimo il costo di esecuzione di un ordine da negoziazione fuori dal mercato in tempo reale, risparmiando così sul costo dell 'ordine e che beneficiano di il costo opportunità di esecuzione ritardata. La strategia aumenterà il tasso di partecipazione mirato quando il prezzo del titolo si muove con favore e diminuire quando il prezzo delle azioni si muove negativamente. Ci sono alcuni particolari classi di algoritmi che tentano di identificare eventi sull'altro lato. Questi algoritmi sniffing, utilizzati, per esempio, da parte di un market maker lato delle vendite hanno l'intelligenza in-built di identificare l'esistenza di eventuali algoritmi sul lato degli acquisti di un grande ordine. Tale rilevazione tramite algoritmi aiuterà il market maker di identificare grandi opportunità di ordine e gli permettono di beneficiare riempiendo gli ordini ad un prezzo superiore. Questo a volte è identificato come high-tech front-running. (Per maggiori informazioni sul trading ad alta frequenza e le pratiche fraudolente, vedi: se si acquistano azioni online, si è coinvolti in HFTs.) Requisiti tecnici per Algorithmic Trading Implementare l'algoritmo utilizzando un programma per computer è l'ultima parte, bastonato con backtesting. La sfida è trasformare la strategia individuata in un processo computerizzato integrato che ha accesso a un conto di trading per l'immissione degli ordini. I seguenti sono necessarie: conoscenza di programmazione informatica per programmare la strategia di trading richiesto, ingaggiato programmatori o pre-fatto di connettività software di rete di scambio e l'accesso a piattaforme di trading per l'immissione degli ordini L'accesso ai dati di mercato feed che saranno monitorati dall'algoritmo di opportunità per collocare ordini la capacità e infrastrutture di backtest il sistema, una volta costruito, prima che va in diretta su mercati reali dati storici disponibili per il test a ritroso, a seconda della complessità delle regole implementate in algoritmo Ecco un esempio completo: Royal Dutch Shell (RDS) è quotata Amsterdam Borsa (AEX) e London Stock Exchange (LSE). Consente di costruire un algoritmo per individuare le opportunità di arbitraggio. Qui ci sono alcune interessanti osservazioni: compravendite AEX in Euro, mentre LSE commercia in Sterline a causa della differenza di tempo di un'ora, AEX apre un'ora prima del LSE, seguito da due scambi di negoziazione simultaneamente per il prossimo paio d'ore e poi negoziazione solo in LSE durante l'ultima ora come si chiude AEX possiamo esplorare la possibilità di arbitraggio di negoziazione sul titolo Royal Dutch Shell quotata su questi due mercati in due diverse valute un programma per computer in grado di leggere i prezzi correnti di mercato Prezzo feed sia da LSE e AEX Un feed tasso forex GBP-EUR tasso di cambio di ordinare capacità che può instradare l'ordine al corretto scambio Back-testing capacità sul prezzo storico alimenta il programma per computer deve eseguire le seguenti operazioni: Leggere il feed prezzo in ingresso di RDS magazzino da entrambi gli scambi utilizzando i tassi di cambio disponibili . convertire il prezzo di una valuta ad altri Se esiste una grande differenza di prezzo abbastanza (attualizzando i costi di intermediazione) che porta ad una opportunità di proficua, quindi inserire l'ordine di acquisto in cambio di prezzo inferiore e ordine di vendita in borsa a prezzi più elevato Se gli ordini vengono eseguiti come lo si desidera, il profitto di arbitraggio seguirà semplice e facile Tuttavia, la pratica di trading algoritmico non è così semplice da mantenere ed eseguire. Ricordate, se è possibile effettuare un commercio algo-generated, così può gli altri partecipanti al mercato. Di conseguenza, i prezzi fluttuano in millisecondi e anche microsecondi. Nel precedente esempio, cosa succede se il buy commercio viene eseguito, ma vendere il commercio doesnt come i prezzi cambiano vendita per il momento l'ordine colpisce il mercato Vi ritroverete seduti con una posizione aperta. rendendo la vostra strategia di arbitraggio inutile. Ci sono rischi e sfide aggiuntive: per esempio, i rischi di guasto del sistema, errori di connettività di rete, ritardi temporali tra ordini commerciali e di esecuzione, e, cosa più importante di tutte, algoritmi imperfetti. Il più complesso un algoritmo, è necessario il backtesting più severi prima di essere messo in atto. Analisi quantitativa di una performance algoritmi gioca un ruolo importante e dovrebbe essere esaminato criticamente. La sua emozionante di andare per l'automazione aiutato da computer con un concetto di fare soldi senza fatica. Ma si deve fare in modo che il sistema è accuratamente testato e sono impostati limiti richiesti. commercianti di analisi dovrebbero prendere in considerazione l'apprendimento dei sistemi di programmazione e di costruzione per conto proprio, per essere sicuri di attuare le giuste strategie in maniera infallibile. uso cauto e test approfonditi di algo-trading possono creare opportunità di profitto. Un tipo di struttura di compensazione che i gestori di hedge fund tipicamente impiegano in cui una parte del compenso è basato sulle prestazioni. Una protezione contro la perdita di reddito che risulterebbe se l'assicurato è deceduto. Il beneficiario di nome riceve il. Una misura del rapporto tra un cambiamento nella quantità richiesta a un particolare buona e una variazione del suo prezzo. Prezzo. Il valore di mercato totale in dollari di tutto ad un company039s azioni in circolazione. La capitalizzazione di mercato è calcolato moltiplicando. Frexit abbreviazione di quotFrench exitquot è uno spin-off francese del termine Brexit, che è emerso quando il Regno Unito ha votato per. Un ordine con un broker che unisce le caratteristiche di ordine di stop con quelli di un ordine limite. Uno stop-limite will. Heres ordine come si impostare il proprio High-Frequency Trading Operazione La settimana scorsa, abbiamo avuto il privilegio di sedersi con Mike Felix e il dottor Lawrence Hansen da Lime Brokerage. un'agenzia di broker di New York City-based che è specializzata in alta frequenza. commercio di bassa latenza. L'asporto principale. Quelli che pensano che le velocità sono inaccettabili meglio abituarsi ad esso perché theyre qui per rimanere e la sua unica intenzione di ottenere più velocemente da qui. Abbiamo chiesto loro come si potrebbe fare per creare una propria attività di trading ad alta frequenza a livello amateurretail. Dopo inchiodare esattamente ciò che la definizione di trading ad alta frequenza è. siamo andati oltre i passi che dovete fare per farlo accadere. Vedi come: Una pagina SlidesThis dettaglio post sarà quello che ho fatto a fare circa. 500K da negoziazione ad alta frequenza dal 2009 al 2010. Dal momento che é scambiata completamente indipendente e non sono più in funzione il mio programma Irsquom felice di dire a tutti. Il mio commercio era per lo più in Russel 2000 e contratti futures DAX. La chiave del mio successo, credo, non era in un sofisticato equazione finanziaria, ma piuttosto nel disegno complessivo algoritmo che legati insieme molti componenti semplici e di apprendimento macchina utilizzata per ottimizzare la massima redditività. È wonrsquot necessario conoscere ogni terminologia sofisticato qui perché quando ho installato il mio programma è tutto basato sull'intuizione. (Andrew Ngrsquos stupefacente corso di formazione a macchina non era ancora disponibile - btw, se si fa clic su quel link yoursquoll essere presa per il mio progetto in corso: CourseTalk, un sito di recensioni per MOOCs) In primo luogo, voglio solo dimostrare che il mio successo non è semplicemente il risultato di fortuna. Il mio programma ha fatto 1000-4000 operazioni al giorno (mezza lunghezza, mezza corto) e non ha mai avuto in posizioni di più di alcuni contratti alla volta. Ciò ha significato la fortuna casuale da un qualsiasi particolare commercio in media fuori piuttosto veloce. Il risultato è stato che non ho mai perso più di 2000 in un giorno e non ha mai avuto un mese di perdere: (. EDIT Queste cifre sono dopo aver pagato commissioni) E herersquos un grafico per dare un senso della variazione quotidiana. Nota: questo esclude gli ultimi 7 mesi, perché - come le figure smesso di andare fino - Ho perso la motivazione per entrare loro. Il mio background di mercato aperto precedente la creazione di mio programma di trading automatico Irsquod aveva 2 anni di esperienza come commerciante di giorno ldquomanualrdquo. Questo è stato nel 2001 - sono stati i primi giorni di commercio elettronico e c'erano opportunità per ldquoscalpersrdquo per fare un buon prezzo. Posso solo descrivere quello che stavo facendo come simile a riproduzione di un video gioco di gioco con un bordo supposto. Avere successo significava essere veloce, essere disciplinato, e avendo una buona capacità di riconoscimento di forme intuitive. Sono stato in grado di fare in giro 250k, pagare i miei prestiti agli studenti e hanno soldi rimasti. Vinci Nel corso dei prossimi cinque anni, vorrei lanciare due start-up, raccogliendo alcune abilità di programmazione lungo la strada. Si wouldnrsquot essere fino alla fine del 2008 che vorrei tornare in commercio. Con i soldi esaurendo dalla vendita del mio primo avvio, il commercio ha offerto la speranza di denaro facile, mentre ho capito la mia prossima mossa. Nel 2008 sono stato ldquomanuallyrdquo futures giorno usando un software chiamato T4. Irsquod stato volendo alcuni tasti di scelta rapida immissione ordine su misura, così dopo aver scoperto T4 ha avuto un API, ho assunto la sfida di imparare C (il linguaggio di programmazione necessaria per utilizzare l'API) e andato avanti e mi sono costruito alcuni tasti di scelta rapida. Dopo aver ottenuto i piedi bagnati con l'API presto ho avuto aspirazioni più grandi: ho voluto insegnare al computer per scambiare per me. L'API fornito sia un flusso di dati di mercato e un modo semplice per inviare gli ordini per lo scambio - tutto quello che dovevo fare era creare la logica nel mezzo. Qui di seguito è uno screenshot di una finestra T4 trading. Che cosa era interessante è che quando ho ottenuto il mio lavoro programma sono stato in grado di guardare il commercio computer su questa stessa identica interfaccia. Guardando gli ordini reali che appaiono dentro e fuori (da loro stessi con il mio denaro reale) era sia eccitante e spaventoso. Il design del mio algoritmo Fin dall'inizio il mio obiettivo era quello di impostare un sistema tale che avrei potuto essere ragionevolmente sicuri Irsquod fare i soldi prima ancora di effettuare qualsiasi mestieri dal vivo. Per fare questo ho bisogno di costruire un quadro di simulazione trading che sarebbe - il più accuratamente possibile - simulare trading dal vivo. Mentre la negoziazione di aggiornamenti di mercato elaborazione in modalità richieste dal vivo in streaming tramite l'API, modalità di simulazione necessario leggere gli aggiornamenti di mercato da un file di dati. Per raccogliere questa configurazione dati che la prima versione del mio programma per la connessione solo per gli aggiornamenti API e di mercato record con timestamp. Ho finito per usare 4 settimane vale la pena di dati di mercato recenti per allenarsi e testare il mio sistema. Con una struttura di base in luogo ho ancora avuto il compito di capire come fare un sistema di scambio proficuo. Come si è visto il mio algoritmo si spezzerebbe in due componenti distinti, che esplorano Irsquoll a sua volta: previsione dei movimenti dei prezzi e fare mestieri redditizi previsione dei movimenti di prezzo Forse una componente evidente di qualsiasi sistema di trading è in grado di prevedere dove i prezzi si muoveranno. E il mio non ha fatto eccezione. Ho definito il prezzo corrente come media dell'offerta dentro e offerta all'interno e ho impostato l'obiettivo di predire dove il prezzo sarebbe nei prossimi 10 secondi. Il mio algoritmo avrebbe bisogno di venire con questa previsione momento per momento per tutta la giornata di trading. Creazione di indicatori amp ottimizzare ho creato una manciata di indicatori che hanno dimostrato di avere una capacità significativa di prevedere i movimenti dei prezzi a breve termine. Ogni indicatore ha prodotto un numero che era positivo o negativo. Un indicatore è utile se più spesso un numero positivo corrispondeva con il mercato salendo e un numero negativo corrispondeva con il mercato scendendo. Il mio sistema mi ha permesso di determinare rapidamente la quantità di capacità predittiva un indicatore aveva così ho potuto sperimentare un sacco di diversi indicatori per vedere cosa ha funzionato. Molti degli indicatori avevano variabili nelle formule che li hanno prodotti e sono stato in grado di trovare i valori ottimali per le variabili facendo confronto fianco a fianco dei risultati conseguiti con valori variabili. Gli indicatori che sono stati più utili erano tutti relativamente semplici e si basano su recenti avvenimenti nel mercato che é scambiata così come i mercati dei titoli correlati. Rendere prezzo esatto previsioni mossa Avere indicatori che semplicemente predetto un alto o il basso prezzo di movimento wasnrsquot abbastanza. Ho bisogno di sapere esattamente quanto il movimento dei prezzi era stato previsto da ogni possibile valore di ciascun indicatore. Avevo bisogno di una formula che convertire un valore dell'indicatore di una previsione di prezzo. Per fare questo ho rintracciato predetto prezzo si muove in 50 secchi che dipendevano sulla gamma che il valore dell'indicatore è caduto in. Ciò ha prodotto previsioni univoche per ogni secchio che sono stato poi in grado di rappresentare graficamente in Excel. Come si può vedere la variazione di prezzo attesi aumenta proporzionalmente all'aumento del valore dell'indicatore. Sulla base di un grafico come questo sono stato in grado di fare una formula per adattarsi alla curva. All'inizio ho fatto questo ldquocurve fittingrdquo manualmente ma presto ho scritto un po 'di codice per automatizzare questo processo. Si noti che non tutte le curve indicatore avevano la stessa forma. Si noti inoltre i secchi sono stati distribuiti in modo logaritmico, in modo da diffondere sottolinea i dati in modo uniforme. Infine ricordiamo che i valori degli indicatori negativi (e le loro previsioni di prezzi al ribasso corrispondenti) sono state capovolte e combinati con i valori positivi. (Mio algoritmo trattata su e giù esattamente lo stesso.) La combinazione di indicatori per un singolo pronostico Una cosa importante da considerare è che ogni indicatore non era completamente indipendente. Ho couldnrsquot semplicemente sommare tutti le previsioni che ogni indicatore ha fatto individualmente. La chiave è stato quello di capire il valore predittivo aggiuntivo che ogni indicatore aveva al di là di ciò che era già previsto. Questo wasnrsquot di difficile da implementare, ma voleva dire che se ero ldquocurve fittingrdquo indicatori multipli allo stesso tempo ho dovuto fare attenzione cambiamento si potrebbe effettuare le previsioni di un altro. Al fine di ldquocurve fitrdquo tutti gli indicatori, allo stesso tempo ho configurato l'ottimizzatore di passaggio solo 30 della strada verso le nuove curve di previsione ad ogni passaggio. Con questo 30 salto ho trovato che le curve di previsione potrebbero stabilizzarsi nel giro di pochi passaggi. Con ogni indicatore ora dandoci itrsquos ulteriore previsione prezzo che ho potuto semplicemente aggiungere fino a produrre una singola previsione di dove il mercato sarebbe in 10 secondi. Perché la previsione dei prezzi non è sufficiente Si potrebbe pensare che con questo bordo sul mercato ero d'oro. Ma è necessario tenere a mente che il mercato è costituito da offerte e offerte - itrsquos non solo un prezzo di mercato. Il successo nel trading ad alta frequenza si riduce a ottenere buoni prezzi e itrsquos non è così facile. I seguenti fattori rendere la creazione di un sistema redditizio difficile: con ogni commercio che ho dovuto pagare commissioni sia il mio broker e lo scambio. Lo spread (differenza tra offerta più alta e l'offerta più bassa) ha fatto sì che, se dovessi comprare e vendere semplicemente casuale Irsquod essere perdendo un sacco di soldi. La maggior parte del volume del mercato era altri bot che eseguire solo uno scambio con me se pensavano di avere qualche vantaggio statistico. Vedendo un'offerta che non ha garantito che avrei potuto acquistarlo. Per il momento il mio ordine di acquisto avuto modo lo scambio era molto probabile che tale offerta sarebbe stato annullato. Come un piccolo operatore del mercato non c'era modo ho potuto competere sulla velocità da solo. Costruire una simulazione di trading completa così ho avuto un quadro che mi ha permesso di backtest e ottimizzare gli indicatori. Ma ho dovuto andare al di là di questo - avevo bisogno di un quadro che mi permettesse di backtest e ottimizzare un sistema di scambio completo quella in cui mi è stato l'invio di ordini e sempre in posizioni. In questo caso Irsquod essere l'ottimizzazione per totale PampL e in una certa misura PampL media per il commercio. Questo sarebbe più complicato e per certi versi impossibili per modellare esattamente, ma ho fatto come meglio ho potuto. Qui ci sono alcuni dei problemi che ho avuto a che fare con: Quando un ordine è stato inviato al mercato nella simulazione ho dovuto modellare il tempo di ritardo. Il fatto che il mio sistema ha visto un'offerta non significa che si potrebbe acquistare subito. Il sistema avrebbe mandato l'ordine, attendere circa 20 millisecondi e quindi solo se l'offerta è stata ancora era considerato come un commercio eseguito. Questo è stato inesatto, perché il tempo di ritardo reale era incoerente e non dichiarata. Quando ho messo le offerte o le offerte che ho dovuto guardare il flusso di esecuzione delle negoziazioni (previsto dalle API) e usare quelli per valutare quando il mio ordine avrebbe ottenuto eseguito contro. Per fare questo diritto ho dovuto tracciare la posizione del mio ordine nella coda. (Itrsquos un first-in first-out del sistema.) Ancora una volta, ho couldnrsquot fare questo perfettamente, ma ho fatto una migliore approssimazione. Per perfezionare la mia simulazione esecuzione degli ordini quello che ho fatto è stato portare i miei file di registro dal trading dal vivo attraverso l'API e confrontarli ai file di log prodotti dal commercio simulato dal esattamente lo stesso periodo di tempo. Sono stato in grado di ottenere la mia simulazione, al punto che era abbastanza preciso e per le parti che erano impossibili da modellare esattamente ho fatto in modo di almeno produrre risultati che erano statisticamente simile (nelle metriche ho pensato fosse importante). Fare fruttuosi scambi commerciali con un modello di simulazione ordine nel posto che potrebbe ora inviare gli ordini in modalità di simulazione e vedere un PampL simulato. Ma come sarebbe il mio sistema sapere quando e dove acquistare e vendere i previsioni prezzo mossa sono stati un punto di partenza, ma non tutta la storia. Quello che ho fatto è stato creare un sistema di punteggio per ognuno dei 5 livelli di prezzo sul l'offerta e offerta. Tra questi, un livello sopra l'offerta all'interno (per un ordine di acquisto) e un livello sotto l'offerta all'interno (per un ordine di vendita). Se il punteggio in un determinato livello di prezzo era al di sopra di una certa soglia, che significherebbe il mio sistema dovrebbe avere una bidoffer attiva lì - al di sotto della soglia, allora tutti gli ordini attivi devono essere annullati. Sulla base di questo non era raro che il mio sistema sarebbe flash un'offerta sul mercato immediatamente annullarlo. (Anche se ho cercato di ridurre al minimo questo come itrsquos fastidioso come diamine a chiunque guardando lo schermo con occhi umani - me compreso.) Il prezzo punteggi livello sono stati calcolati sulla base dei seguenti fattori: Il prezzo mossa previsione (che abbiamo discusso in precedenza). Il livello dei prezzi in questione. (Livelli interni pensati erano necessari maggiori previsioni di prezzo mossa.) Il numero di contratti di fronte al mio ordine nella coda. (Meno è meglio.) Il numero di contratti dietro mio ordine nella coda. (Più è stato meglio.) In sostanza questi fattori servivano per identificare luoghi ldquosaferdquo a bidoffer. La sola previsione prezzo mossa non era adeguata perché non tiene conto del fatto che quando collocazione dell'offerta che non ha riempito automaticamente - Ho solo ottenuto riempito se qualcuno ha venduto a me lì. La realtà è che il solo fatto di qualcuno che vende a me ad un certo prezzo ha cambiato le probabilità statistiche del commercio. Le variabili utilizzate in questa fase sono soggetti a ottimizzazione. Ciò è stato fatto esattamente allo stesso modo in cui ho ottimizzato variabili degli indicatori di prezzo spostarsi se non restando in questo caso mi è stato l'ottimizzazione per la linea di fondo PampL. Ciò che il mio programma ignorato Quando si fa trading come esseri umani abbiamo spesso forti emozioni e pregiudizi che possono portare a meno di decisioni ottimali. Chiaramente non ho voglia di codificare questi pregiudizi. Qui ci sono alcuni fattori che il mio sistema ignorato: Il prezzo che una posizione è stato inserito - in un ufficio commerciale itrsquos abbastanza comune sentire conversazione sul prezzo al quale qualcuno è lungo o corto, come se questo dovrebbe effettuare loro processo decisionale futuro. Anche se questo ha qualche validità come parte di una strategia di riduzione del rischio ha in realtà alcuna attinenza con il corso futuro degli eventi nel mercato. Quindi il mio programma completamente ignorato queste informazioni. Itrsquos lo stesso concetto ignorando costi sommersi. Andare a breve termine contro uscire da una posizione lunga - In genere un commerciante avrebbe diversi criteri che determina dove vendere una posizione lunga rispetto a dove andare short. Tuttavia dal mio punto di vista algoritmi non vi era alcuna ragione per fare una distinzione. Se il mio algoritmo prevede una vendita movimento al ribasso è stata una buona idea a prescindere se fosse attualmente lungo, corto, o appartamento. Una strategia uprdquo ldquodoubling - Si tratta di una strategia comune in cui gli operatori dovranno comprare più magazzino nel caso in cui non vi originale del commercio va contro di loro. Ciò si traduce in tuo prezzo medio di acquisto di essere inferiore e significa quando (o se) lo stock si gira yoursquoll essere impostato per rendere il vostro denaro in poco tempo. A mio parere questo è davvero una strategia orribile a meno yoursquore Warren Buffet. Yoursquore indotti a pensare che si sta facendo bene perché la maggior parte dei vostri commerci saranno vincitori. Il problema è quando si perde si perde grande. L'altro effetto è che rende difficile giudicare se effettivamente ha un vantaggio sul mercato o sono solo ottenere fortunato. Essere in grado di controllare e confermare che il mio programma ha infatti avere un vantaggio era un obiettivo importante. Dal momento che il mio algoritmo decisioni prese nello stesso modo indipendentemente da dove è entrato un mestiere o se era attualmente lungo o breve lo ha fatto occasionalmente sedersi in (e prendere) alcune grandi operazioni perdenti (oltre ad alcune grandi operazioni vincenti). Ma, si shouldnrsquot che ci wasnrsquot qualsiasi gestione del rischio. Per gestire il rischio ho forzato una dimensione massima carica di 2 contratti alla volta, di tanto in tanto urtato fino a giorni ad alto volume. Ho anche avuto un limite massimo di perdita giornaliera di salvaguardia contro eventuali condizioni di mercato imprevisti o un bug nel mio software. Questi limiti sono stati applicati nel mio codice, ma anche nel backend attraverso il mio broker. Come è successo non ho mai incontrato problemi significativi. L'esecuzione dell'algoritmo Dal momento in cui ho iniziato a lavorare sul mio programma mi ci sono voluti circa 6 mesi prima di arrivare al punto di redditività e iniziato l'esecuzione dal vivo. Anche se ad essere onesti una notevole quantità di tempo stava imparando un nuovo linguaggio di programmazione. Come ho lavorato per migliorare il programma che ho visto un aumento dei profitti per ciascuno dei prossimi quattro mesi. Ogni settimana mi avrebbe riqualificare il sistema basato sui precedenti 4 settimane di dati. Ho trovato questo ha colpito il giusto equilibrio tra l'acquisizione di tendenze comportamentali recente del mercato e assicurare il mio algoritmo aveva dati sufficienti per stabilire modelli significativi. Come la formazione ha cominciato a prendere sempre più tempo ho diviso fuori in modo che potesse essere eseguito da 8 macchine virtuali utilizzando Amazon EC2. I risultati sono stati poi si fusero sulla mia macchina locale. Il punto più alto del mio trading Era l'ottobre del 2009, quando ho fatto quasi 100k. Dopo questo ho continuato a trascorrere i prossimi quattro mesi cercando di migliorare il mio programma, nonostante una diminuzione profitto ogni mese. Purtroppo da questo punto immagino Irsquod realizzato tutti i miei migliori idee perché nulla ho provato sembrava aiutare molto. Con la frustrazione di non essere in grado di apportare miglioramenti e non avendo un senso di crescita ho iniziato a pensare a una nuova direzione. Ho mandato 6 diverse imprese commerciali ad alta frequenza per vedere se theyrsquod è interessato ad acquistare il mio software e mi assunzione a lavorare per loro. Nessuno ha risposto. Ho avuto alcune nuove idee di avvio volevo lavorare su così non ho mai seguito fino. UPDATE - Ho pubblicato questo su Hacker News e ha ottenuto un sacco di attenzione. Voglio solo dire che io non sostengo chiunque tenti di fare qualcosa di simile se stessi ora. Si avrebbe bisogno di un team di persone veramente intelligenti con una gamma di esperienze per avere qualche speranza di competere. Anche quando stavo facendo questo credo che sia stato molto raro per le persone a raggiungere il successo (anche se avevo sentito parlare di altri.) C'è un commento nella parte superiore della pagina che cita statistiche manipolati e si riferisce a me come un investorrdquo ldquoretail che quants sarebbe ldquogleefully scegliere offrdquo. Questo è un commento piuttosto sfortunato thatrsquos semplicemente non basate nella realtà. Impostazione che parte therersquos alcuni commenti interessanti: news. ycombinatoritemid4748624 UPDATE 2 - Irsquove pubblicato una FAQ di follow-up che risponde ad alcune domande comuni Irsquove ricevuto dai commercianti su questo post.
No comments:
Post a Comment