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.