Trading System a 360 gradi
Un corso di Trading Sistematico veramente completo.
Dalla programmazione alla valutazione dei risultati in un contesto di portafoglio attraverso idee e soluzioni reali
Il corso sui “Trading System a 360 gradi” ha un costo a persona di € 800 + i.v.a. e comprende tutti i moduli sotto elencati, il materiale didattico utilizzato per le presentazioni, i codici dei sistemi che verranno implementati durante il corso, oltre ad alcuni modelli funzionanti su mercato reale.
L’intero percorso sui Trading System è previsto su sei moduli, della durata di due ore e trenta minuti ognuno. Ogni modulo è registrato in alta definizione, immediatamente disponibile al termine di ogni sessione.
Per informazioni o per confermare la propria iscrizione al Corso sui Trading System a 360 gradi, contattare la sede di Ferrara seguendo questa pagina: Quantirica Algorithmic Trading Ferrara
Strumenti, piattaforme e Linguaggi. Dati, Database e fornitori.
- La piattaforma, scelta obbligata anche se non sempre ovvia.
- Guida alla scelta e perchè abbiamo scelto NinjaTrader.
- NinjaTrader in versione gratuita, registrazione e caratteristiche.
- Utilizzo, manutenzione e operazioni con la piattaforma di trading.
- Importazione, esportazione e gestione delle strategie e script.
- Single Broker, Multi Broker, connessione ai dati (RT + EOD).
- Guida alle differenti versioni del software operativo.
- I dati storici e la loro importanza,
- Come gestire le serie storiche (back adjusted, continue e non back adjusted),
- Rollover, date, offset.
- Predisposizione degli storici per il lavoro di BackTest e test delle strategie.
Concetti di base e approfondimenti tecnici
- Il concetto di ordine, parti coinvolte nel trading su diversi strumenti.
- Le diverse tipologie di ordini, ordini nativi e non nativi.
- Criteri di validità degli ordini e parametri degli stessi.
- Ordini di tipo MKT e LMT, implicazioni tra trading reale e backtest.
- Ordini “locali” ed ordini latenti sul mercato.
- Fasi di mercato e fasi degli ordini.
- Inserimento, cancellazione, modifica e gestione degli ordini.
- Aderenza tra ordini su mercato reale e su dati statici.
- Il concetto di slippage, gestione delle anomalie e stima dei costi.
- Introduzione agli algoritmi di execution.
Linguaggi di Programmazione, fondamenti e soluzioni.
- Il concetto di programmazione ed i diversi linguaggi.
- Linguaggio ad oggetti, vantaggi e svantaggi.
- Evoluzione e ricerca della migliore soluzione.
- C#, il linguaggio utilizzato in NinjaTrader,
- Funzioni e strumenti disponibili in NinjaTrader.
- Framework e integrazione con Microsoft e VisualStudio.
- Aiuto alla programmazione, come e dove reperire informazioni.
- L’aspetto mentale e la progettazione “a tavolino”.
- Metodo e semplicità e chiarezza nella fase di progetto.
Programmazione assistita, editor di codice, strumenti di sviluppo e gestione del codice.
- Programmazione assistita ed editor assistito.
- I vantaggi (e gli svantaggi) della programmazione assistita.
- Visualizzazione del listato in modalità “Wizard”.
- La sintassi e la struttura di un trading system.
- La definizione dei parametri, tipi e caratteristiche delle variabili.
- Integrazione di indicatori, utilizzo nel codice e struttura logica.
- Dalle cose semplici a concetti complessi, esempi pratici.
- La compilazione di un codice, gestione di eventuali errori.
- I limiti della programmazione assistita e la necessità di “andare oltre”.
Programmazione e tecniche di scrittura del codice.
- Il processi di passaggio dell’editor assistito al’editor vero e proprio.
- La struttura del codice e la gestione degli errori.
- Intellisense, funzionamento e caratteristiche.
- Strutture di controllo e costrutti “if-then-else”.
- Debug, “Print” e funzioni di controllo del codice.
- Utilizzo delle varie funzioni e strutture disponibili in NinjaTrader.
- Il controllo degli ordini e delle posizioni.
- Il concetto di “CalculateOnBarClose()” e varie implicazioni,
- Gestione degli ordini, modalità “Managed” ed “UnManaged”.
- Preparazione del codice ibrido per il BackTest.
- Differenze tra codice per analisi statica e per trading reale.
- Il “Log” di NinjaTrader, come trovare errori e gestire le eccezioni.
- Il file di “Trace” per identificare eventuali anomalie.
Test, BackTest e analisi dei risultati in un contesto sia di strategia che di portafoglio.
- Test e Backtest,
- Analisi storica dei risultati
- Valutazione dei risultati, cosa è importante e cosa non lo è,
- Tecniche di “fine tuning” e strumenti di ottimizzazione delle strategie,
- Analisi di portafoglio, strumenti e tecniche di valutazione e di fattibilità di un portafoglio di strategie automatiche,
- Gestione del rischio, tecniche e casi pratici alla prova dei fatti.
A termine del percorso è prevista una sessione che mi piace chiamare “tavola rotonda”, durante la quale verranno approfondite le tematiche pratiche ed i concetti più articolati.
La data della “tavola rotonda” verrà definita in concerto con i partecipanti.

Strumenti, piattaforme e linguaggi
Scelte giuste e strumenti adeguati sono il primo e fondamentale passo nel mondo del Trading Sistematico
Argomenti in dettaglio
- Gli strumenti utili e gli strumenti essenziali.
- La piattaforma, scelta obbligata anche se non sempre ovvia.
- Guida alla scelta e perchè abbiamo scelto NinjaTrader.
- NinjaTrader in versione gratuita, registrazione e caratteristiche.
- Utilizzo, manutenzione e operazioni con la piattaforma di trading.
- Importazione, esportazione e gestione delle strategie e script.
- Single Broker, Multi Broker, connessione ai dati (RT + EOD).
- Guida alle differenti versioni del software operativo.

Dati, database e fornitura in tempo reale
L’importanza della qualità dei dati di mercato e della fornitura di un adeguato flusso dati statico ed in tempo reale
Argomenti in dettaglio
- Dati storici, struttura e formato dei dati di mercato.
- Archivio storico Intraday e dati EOD di fine giornata.
- Formati standard basati su time frame.
- Formati non standard basati su range, tick, volume.
- Struttura del database, operazioni di manutenzione.
- Flusso dati in tempo reale, le caratteristiche e quello che serve.

Tipologie di ordini e loro utilizzo con Trading System
L’utilizzo della corretta tipologia di ordini è complementare per avere un risultato adeguato tra backtest e trading reale
Argomenti in dettaglio
- Il concetto di ordine, parti coinvolte nel trading su diversi strumenti.
- Le diverse tipologie di ordini, ordini nativi e non nativi.
- Criteri di validità degli ordini e parametri degli stessi.
- Ordini di tipo MKT e LMT, implicazioni tra trading reale e backtest.
- Ordini “locali” ed ordini latenti sul mercato.
- Fasi di mercato e fasi degli ordini.
- Inserimento, cancellazione, modifica e gestione degli ordini.
- Aderenza tra ordini su mercato reale e su dati statici.
- Il concetto di slippage, gestione delle anomalie e stima dei costi.

Fondamenti di programmazione
Programmazione e sviluppo con linguaggio ad oggetti orientato al trading ed ai trading system
Argomenti in dettaglio
- Il concetto di programmazione ed i diversi linguaggi.
- Linguaggio ad oggetti, vantaggi e svantaggi.
- Evoluzione e ricerca della migliore soluzione.
- C#, il linguaggio utilizzato in NinjaTrader,
- Funzioni e strumenti disponibili in NinjaTrader.
- Framework e integrazione con Microsoft e VisualStudio.
- Aiuto alla programmazione, come e dove reperire informazioni.
- L’aspetto mentale e la progettazione “a tavolino”.
- Metodo e semplicità e chiarezza nella fase di progetto.

Programmazione assistita e strumenti di sviluppo
La programmazione assistita è un utile strumento per imparare la corretta sintassi di un codice
Argomenti in dettaglio
- Programmazione assistita ed editor assistito.
- I vantaggi (e gli svantaggi) della programmazione assistita.
- Visualizzazione del listato in modalità “Wizard”.
- La sintassi e la struttura di un trading system.
- La definizione dei parametri, tipi e caratteristiche delle variabili.
- Integrazione di indicatori, utilizzo nel codice e struttura logica.
- Dalle cose semplici a concetti complessi, esempi pratici.
- La compilazione di un codice, gestione di eventuali errori.
- I limiti della programmazione assistita e la necessità di “andare oltre”.

Dalla programmazione assistita all’editor di codice
Passaggio dalla programmazione assistita alla linea di codice, lo sviluppo diventa una cosa seria
Argomenti in dettaglio
- Il processi di passaggio dell’editor assistito al’editor vero e proprio.
- La struttura del codice e la gestione degli errori.
- Intellisense, funzionamento e caratteristiche.
- Strutture di controllo e costrutti “if-then-else”.
- Debug, “Print” e funzioni di controllo del codice.
- Utilizzo delle varie funzioni e strutture disponibili in NinjaTrader.
- Il controllo degli ordini e delle posizioni.
- Il concetto di “CalculateOnBarClose()” e varie implicazioni,
- Gestione degli ordini, modalità “Managed” ed “UnManaged”.
- Preparazione del codice ibrido per il BackTest.
- Differenze tra codice per analisi statica e per trading reale.
- Il “Log” di NinjaTrader, come trovare errori e gestire le eccezioni.
- Il file di “Trace” per identificare eventuali anomalie.

Applicazione dei codici al mercato
Utilizzo di tecniche di debug e gestione degli errori e scenari nella programmazione
Argomenti in dettaglio
- Preparazione di un codice per il funzionamento in “real time”.
- La gestione degli errori e la visualizzazione di “output” informativo.
- Il modello sta facendo quello per cui è stato progettato?
- Tecniche di “debug” visivo ed identificazione delle criticità.
- L’importanza delle sessioni e la corretta gestione del modello.
- Sessioni custom ed utilizzo di strumenti “sezionati”.

Mercato simulato, statico e market replay
Utilizzo dei dati nei diversi contesti, dalla validazione del codice all’analisi visiva su un grafico
Argomenti in dettaglio
- L’importanza della simulazione dinamica.
- Il concetto di mercato simulato, vantaggi e caratteristiche.
- Utilizzo del “Simulatore di mercato” ed applicazione dei modelli.
- Il Market Replay e la gestione dei modelli in simulazione.
- I punti critici del tempo reale, soluzioni ai problemi più comuni.
- Sincronizzazione di ordini e posizioni.
- OnMarketData() ed OnPositionUpdate().
- Differenze tra applicazione statica e mercato dinamico.
- Come capire se un modello ha passato il test di simulazione.

Correzione degli errori e manutenzione del codice
Tecniche di isolamento dei punti critici e valutazione degli scenari operativi
Argomenti in dettaglio
- Come si corregge e modifica un codice.
- Tecniche di “commit” e gestione delle versioni.
- L’importanza di un codice commentato e l’utilizzo dei log.
- Verifica delle modifiche e test su mercato dinamico.
- Compilazione e gestione delle dipendenze.

Analisi storica e backtest dei trading system
Analisi e backtest su dati storici, applicazione del modello e comparativa tra live trading e storico
Argomenti in dettaglio
- L’importanza dell’archivio storico (ripresa degli argomenti).
- Applicazione del modello e tecniche di Backtest.
- Il concetto di “In-Sample” e di “Out of Sample”.
- Utilizzo degli archivi storici, tecniche di segmentazione.
- Overfitting e gli errori da evitare assolutamente.
- Introduzione alle tecniche di “Fine tuning”.
- Gestione dei file di risultato e salvataggio dei parametri.
- Preparazione ed esportazione dei risultati.

Analisi statistica e valutazione dei risultati
Processo di valutazione dei risultati di backtest sulla base delle metriche statistiche
Argomenti in dettaglio
- Metrica valutativa e concetti di statistica applicata.
- Metriche standard e metriche derivate.
- Come capire se un risultato è attendibile o meno.
- “Stress testing” del modello e valutazione del risultato,
- Tecniche di “Shuffle” dei trades.
- Utilizzo di MSA come strumento di analisi dei risultati.
- Concetti di “Position Sizing” e tecniche funzionanti.
- Introduzione al concetto di “Portafoglio e di gestione del rischio”.

Adattamento dei parametri e tecniche di “fine tuning”
Tecniche di adattamento dei parametri e valutazione degli effetti. Parametrizzazione ed ottimizzazione
Argomenti in dettaglio
- Ottimizzazione dei modelli e dei paramenti.
- Ottimizzazione delle serie temporali.
- Ottimizzatore automatico VS ottimizzazione “umana”
- Tecniche di ottimizzazione “per intorni”.
- Come evitare gli errori più comuni.
- Come gestire i risultati ed evitare l’emotività.
- Valutazione critica.

Analisi di portafoglio e gestione del rischio
Tecniche di valutazione dei trading system in ottica di portafoglio e gestione del rischio sia intraday che overnight
Argomenti in dettaglio
- Il concetto di rischio, definizione e realtà dei fatti.
- Adattamento dei modelli e struttura di portafoglio.
- Applicazione del modello ad un paniere di strumenti.
- Manipolazione dei risultati storici ed adeguamento alle valute.
- Bilanciamento tra classi di Trading System intraday ed overnight.
- Preparazione del trading plan e definizione del portafoglio.
- Tecniche di intervento in situazioni critiche.
- Come gestire un trading system che sotto-performa.
- Quando è il caso di interrompere il trading.

Confronto ed esempi di trading reale
Chiusura lavori e tavola rotonda finale con spazio a domande e risposte e confronto tra i partecipanti.
Note ed informazioni di carattere tecnico e generale.
Il percorso di formazione si svolge attraverso webinar della durata di due ore e trenta minuti ognuno. Ogni sessione è registrata.
Gli argomenti trattati sono specifici e non comprendono una “formazione di base” sulla meccanica e funzionamento dei mercati (che si da per conosciuta).
L’intero percorso è di tipo intensivo, e di conseguenza è fortemente suggerita una partecipazione attiva alle lezioni.
Per partecipare al corso non è necessario disporre di una versione con licenza di NinjaTrader (la versione SIM101 va bene).
Gli obiettivi del corso sono:
Trasmettere competenza prima di tutto (e non solo conoscenza).
Creare una reale competenza nel mondo della progettazione e programmazione di Trading System.
Mettere ogni partecipante nella situazione di poter lavorare in modo quanto più autonomo possibile.
Creare un’esperienza formativa unica nel suo genere, fatta di esperienze reali e di vita vissuta nel mondo del trading sistematico e degli algoritmi.