Costruire sistemi di trading algoritmico: 2 approcci principali, test, strumenti

Costruire sistemi di trading algoritmico: 2 approcci principali, test, strumenti

Visualizzazioni: vista 625
Momento della lettura: 6 verbale



I componenti principali di un sistema di negoziazione algoritmica sono strumenti di ricerca, prestazioni, facilità di sviluppo, resilienza e test, separazione delle preoccupazioni, familiarità, manutenzione, disponibilità del codice sorgente, costi di licenza e maturità delle biblioteche. Prima di decidere lo strumento "migliore", con cui scrivere un sistema di trading automatizzato, è necessario definire i requisiti:

  1. Quale sarà la frequenza degli scambi e il probabile volume degli scambi?
  2. Il sistema richiederà? gestione del rischio o modulo di costruzione del portafoglio?
  3. Il sistema richiederà un backtester ad alte prestazioni?

I commercianti, che richiedono sistemi più personalizzati e complessi, potrebbero aver bisogno di guardare usando C #, Matlab o Python, ma direi che per gli altri 95% dei commercianti giornalieri Algorithmic Trading Software sarà sufficiente.

1 - Calcola in Python, Matlab, C #

In questo caso, l'abilità di programmazione è un fattore importante nella creazione di un algoritmo automatizzato strategia di trading. Essere esperti in un linguaggio di programmazione, come Python o R, ti consentirà di creare tu stesso l'archiviazione dei dati end-to-end, il motore di backtest e il sistema di esecuzione. Ti consente di esplorare le strategie a frequenza più elevata in quanto avrai il pieno controllo del tuo "stack tecnologico". Ciò significa che puoi testare il tuo software ed eliminare i bug, ma significa anche più tempo dedicato alla codifica dell'infrastruttura e meno all'implementazione di strategie, almeno nella prima parte della tua carriera di algotrading.

Il flusso di lavoro di base è il seguente:

  • Una strategia di trading algoritmica inserisce i dati di mercato (storici o live) in un programma per computer (backtest o esecuzione automatica).
  • Il programma invia quindi gli ordini a un broker tramite un'API e riceve nuovamente le notifiche sullo stato degli ordini dal broker.

MATLAB e Python sono state le mie piattaforme di backtest preferite. Ha un'interfaccia molto completa e user-friendly per lo sviluppo e il debug di programmi e ha una vasta gamma di toolbox che coprono quasi ogni arcana tecnica matematica o computazionale che probabilmente incontrerai nello sviluppo della strategia di trading.

Importazione di dati storici da Yahoo Finance a Python
Immagine: importazione di dati storici da Yahoo Finance a Python
Il processo di negoziazione algoritmica
Immagine: il processo di negoziazione algoritmica

2 - Software di trading algoritmico. Nessuna abilità di codifica

Il secondo approccio sono strumenti algoritmici, come Multicharts, StrategyQuant o R Trader Strategy Builder (gratuito e facile da usare, basato su cloud) e molti altri.

I giorni in cui il trading algoritmico è stato implementato solo da professionisti sono finiti. Non è necessario dedicare ore all'apprendimento del C # quando è possibile codificare quasi tutti i sistemi e le strategie StrategyQuant, Multicharts o R Trader Strategy Builder. Nella nostra esperienza, alcuni trader / programmatori vogliono intraprendere la lunga strada verso l'obiettivo spesso con il pretesto di superiorità tecnica, fidati di noi, la maggior parte della codifica avanzata non è richiesta per la strategia di trading algoritmica media. Creare le tue API o personalizzare tutto con MetaTrader può essere molto dispendioso soprattutto se ti impantanare con dettagli tecnici invece di creare valore.

Tutte le piattaforme hanno i loro aspetti positivi e negativi, per noi R Trader Strategy Builder è un modulo interno di facile utilizzo basato su proprietà, che consente agli operatori al dettaglio di progettare, testare e implementare strategie di trading algoritmico senza alcuna conoscenza dei linguaggi di programmazione.

Piattaforma di trading R Trader ha un modo più semplice per abbandonare il tradizionale trading point-and-click. Progettata per i trader esperti e per i nuovi arrivati, la nostra interfaccia di semplice utilizzo ti consente di automatizzare le tue strategie di trading in pochi minuti. Nessuna codifica e nessun problema: sarai subito operativo.

Backtesting. Wizard di strategia in R Trader Strategy Builder.
Immagine: Backtesting. Wizard di strategia in R Trader Strategy Builder.

Test e valutazione dei sistemi di trading

La ricerca si occupa della valutazione delle prestazioni della strategia rispetto ai dati storici. Il processo di valutazione di una strategia di trading rispetto ai dati di mercato precedenti è noto come backtesting.

Il trading algoritmico si distingue da altri tipi di classi di investimento perché possiamo fornire in modo più affidabile aspettative sulle performance future rispetto alle performance passate. In termini semplici, il backtesting viene eseguito esponendo il tuo particolare algoritmo di strategia a un flusso di dati storici sui prezzi, che porta a una serie di segnali di trading. Ogni operazione avrà un utile o una perdita associati. L'accumulo di questo utile / perdita durante il backtest della strategia porterà a profitti e perdite totali.

Quali sono i motivi principali per il backtesting di una strategia algoritmica?

Filtrazione

il nostro obiettivo nella fase iniziale della ricerca è filtrare qualsiasi strategia che non soddisfi determinati criteri. Il backtest ci fornisce un altro meccanismo di filtraggio, in quanto possiamo eliminare le strategie che non soddisfano le nostre esigenze in termini di prestazioni.

Modeling

Il backtesting ci consente di testare (in sicurezza!) Nuovi modelli di determinate condizioni di mercato.

Nel campione e fuori campione

Quando si testa un'idea su dati storici, è bene riservare un periodo di dati storici a scopo di test. I dati storici iniziali, su cui l'idea viene testata e ottimizzata, vengono definiti dati nel campione. Il set di dati che è stato prenotato è noto come dati fuori campione. Questa configurazione è una parte importante del processo di valutazione perché fornisce un modo per testare l'idea su dati che non sono stati un componente nel modello di ottimizzazione. Di conseguenza, l'idea non sarà stata influenzata in alcun modo dai dati fuori campione e i trader saranno in grado di determinare in che modo il sistema potrebbe funzionare su nuovi dati, vale a dire nel trading nella vita reale.

Ottimizzazione di una strategia di trading algoritmica

Sebbene l'ottimizzazione della strategia sia irta di pregiudizi, il backtesting ci consente di aumentare le prestazioni di una strategia modificando i valori dei parametri associati a tale strategia e ricalcolandone le prestazioni. Il sovra-adattamento (adattamento alla curva) è un problema serio in tutte le aree relative al data mining e si deve fare attenzione a utilizzare validazione e set di test adeguati. Per tale motivo, potrebbero essere implementati una varietà di metodi, ad esempio test con impostazioni diverse, simulazioni Monte-Carlo, matrice Walk-Forward-Matrix, ottimizzazione Walk-Forward-Forward, più periodi fuori campione.

Test delle prestazioni in avanti

Il trading demo o il trading cartaceo fornisce agli operatori un'altra serie di dati fuori campione, sui quali valutare un sistema. Il testing delle prestazioni a termine è una simulazione del trading reale e prevede di seguire la logica del sistema in un mercato live. Un aspetto importante dei test delle prestazioni in avanti è seguire esattamente la logica del sistema; in caso contrario, diventa difficile, se non impossibile, valutare accuratamente questa fase del processo. Molti broker, oltre a RoboMarkets, offrono un conto di trading simulato in cui è possibile collocare le negoziazioni e calcolare i relativi profitti e perdite. L'utilizzo di un conto di trading demo può creare un ambiente semi-realistico, su cui praticare il trading e valutare ulteriormente il sistema.

Immagine: backtesting. Un grafico in Python.
Immagine: backtesting. Un grafico in Python.
Backtesting. Commerci storici in R Trader Strategy Builder.
Immagine: backtesting. Commerci storici in R Trader Strategy Builder.

Ultimo ma non meno importante, vorrei discutere gli strumenti che saranno utili in questo ambito.

Strumenti

Software di ricerca e trading automatico

Excel, R Trader Strategy Builder (https://rtrader.umstel.com - software gratuito), StrategyQuant (canone di licenza), MultiCharts (canone di licenza), TradeStation (canone di licenza), Wealth-lab (canone di licenza).

Codice

Matlab, Python, R, C #

dati

  1. Dati sui sentimenti sociali (da Twitter e altri social media, vedi ISentium, TickerTags)
  2. Dati di crowdfunding (vedi Stima)
  3. Dati comportamentali (vedi Cabot Research)
  4. Immagini satellitari e aeree (vedi Orbital Insight)
  5. Dati comportamentali del consumatore (vedi Fedeltà al marchio)
  6. Risorse online non tradizionali (vedi Knowsis)
  7. OTAS (dati tecnici)

Altri fornitori

Gruppo TIM, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr.

Libri (in inglese)

  1. Trading quantitativo: come costruire la propria attività di trading algoritmico - Ernest Chan
  2. Trading algoritmico: strategie vincenti e la loro logica - Ernest Chan
  3. Machine trading: schierare algoritmi informatici per conquistare i mercati - Ernest Chan
  4. Algorithmic Trading e DMA: un'introduzione alle strategie di trading ad accesso diretto - Barry Johnson
  5. Scambi e scambi: microstruttura di mercato per professionisti - Larry Harris

1. arXiv http://arxiv.org/archive/q-fin
2. SSRN https://www.ssrn.com/en/
3. Giornale delle strategie di investimento https://www.risk.net/journal-of-investment-strategies
4. Journal of Computational Finance https://www.risk.net/journal-of-computational-finance
5. Finanza matematica https://onlinelibrary.wiley.com/journal/14679965

sommario

Come possiamo vedere, esistono diversi approcci alla creazione di strategie di negoziazione algoritmica. Puoi scegliere quello che si adatta al tuo livello di conoscenza e opportunità. Inoltre, backtest e ulteriore sviluppo, dopo di che solo noi possiamo passare alla pratica.

Se avete domande, sarò felice di rispondervi nei commenti qui sotto.

Apri un conto di trading




Commenti

Articolo precedente

Una settimana sul mercato (01/13 - 01/19): statistiche e decisioni delle banche centrali

La nuova settimana di gennaio sembra abbastanza normale. Abbiamo statistiche, politica e anche alcune decisioni monetarie. Sembra che le economie globali e i mercati dei capitali stiano funzionando su larga scala dopo le vacanze di Natale e Capodanno.

Prossimo articolo

3 azioni da acquistare nel 2020: Delta Air Lines, HP, Morgan Stanley

Il ciclo di 12 anni della crescita dell'economia americana è in corso. Questo è il periodo più lungo senza crisi. L'inizio del 2020 continua a incoraggiare gli investitori, i titoli continuano a rinnovare i massimi storici. Quelli che li hanno acquistati in precedenza diventano più felici.