Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani



Documenti analoghi
la formazione finanziaria è il miglior investimento per il tuo domani

Manuale Operativo Risk Manager

la formazione finanziaria è il miglior investimento per il tuo domani

Come inserire Script ed EA nella piattaforma Ava Metatrader 4

MODULO 2 la formazione finanziaria è il miglior investimento per il tuo domani

DEPLOY YOUR BUSINESS

Codifica: dal diagramma a blocchi al linguaggio C++

Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani

Database. Si ringrazia Marco Bertini per le slides

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Fasi di creazione di un programma

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Il sistema C.R.M. / E.R.M.

DIMINUIRE I COSTI CON IL SISTEMA QUALITA

Corso di Informatica

COME SI FORMA E COME SI RICONOSCE UN ROSS HOOK

MetaTrader 4. Guida di

istruzioni per l uso

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

Manuale Expert Advisor

Eclipse - Nozioni Base

! Esempio 1: Future Crude Oil con grafico a 15 minuti!!

Registratori di Cassa

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Metodologie di programmazione in Fortran 90

Descrizione della logica dell applicazione

MODULO 5 Appunti ACCESS - Basi di dati

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

Live Trading Trading in diretta con forzaforex. Il servizio è attivo tutte le settimane, dal lunedì al venerdì.

Webinar e Manuale Operativo Tecnica di Trading

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Inventario di Magazzino Manuale Utente. Inventario di Magazzino Manuale Utente

Come Creare una Strategia di Trading di Successo

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

Linguaggi di programmazione

EXPLOit Content Management Data Base per documenti SGML/XML

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Manuale Utente Albo Pretorio GA

Convertitori numerici in Excel

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Un nuovo modo per fare analisi e generare documenti dinamici

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Esercizi su. Funzioni

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Come Investire e Guadagnare In Borsa ORA

Come orari con Eventi importanti per oggi ricordo:

Introduzione alla programmazione in C

Report di Analisi Tecnica Azioni Italia 8 Giugno 2015

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Progettaz. e sviluppo Data Base

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MAGAZZINO FISCALE (agg. alla rel )

Il Problem-Based Learning dalla pratica alla teoria

Intraday titoli azionari

FIRESHOP.NET. Gestione del taglia e colore.

Gestione delle formazione

TNT IV. Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video)

ISTRUZIONI D USO AREA RISERVATA UTENTE

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Istruzioni per leggere bene. Istruzioni per leggere bene

SPRING SQ COMUNICAZIONE OPERAZIONI IVA NON INFERIORI A 3000 EURO PER L ANNO 2011

Pagina 1 di 10

Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto

Mac Application Manager 1.3 (SOLO PER TIGER)

Mon Ami 3000 Cespiti Gestione cespiti e calcolo degli ammortamenti

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

SOFTWARE. Aprendo il SW la prima schermata che appare è la seguente:

Partenza Mercato Utente Idea Concetto Valutazione. Chi sono gli utenti target del tuo concetto di business?

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Matematica in laboratorio

Capitolo 4.2. Analisi tecnica: Fibonacci

Automazione Industriale (scheduling+mms) scheduling+mms.

RECUPERO DATI LIFO DA ARCHIVI ESTERNI

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

GUIDA ALLA PROMOZIONE SUL SITO

LA GESTIONE DEL FONDO PENSIONE COMPLEMENTARE : alcune risposte a quesiti comuni

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Progetto ittorario Anno scol

COME AVERE SUCCESSO SUL WEB?

CREAZIONE DI UN AZIENDA

Introduzione a Dev-C++

Come ottimizzare il Consigliere Esperto (Expert Advisor) BuyTradeOnly.ex4 in Metatrader (MT4)

I database relazionali (Access)

PowerPoint. Guida introduttiva

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

IL BUSINESS PLANNING COS E E PERCHE SI FA. Ing. Ferdinando Dandini de Sylva

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Raggruppamenti Conti Movimenti

Strutturazione logica dei dati: i file

MANUALE SOFTWARE IRE (INTERVENTI DI RIQUALIFICAZIONE ENERGETICA) ISTRUZIONI PER L UTENTE

Transcript:

www.sapienzafinanziaria.com Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani

Lezione n. 1 Edizione marzo 2015 Traduzione di un'idea in codice www.sapienzafinanziaria.com

Obiettivi di questa lezione Comprendere i punti chiave nello sviluppo di una strategia di trading automatico Da dove partire per progettare un EA Capire come si deve strutturare il codice di un EA

Osservazione dei mercati e idea di trading Su che tipo di mercato voglio basare la strategia? Trend Following Contro Trend Congestione Alta volatilità Mercato ciclico

Identificare le regole sul grafico

Cosa utilizzo nella strategia Individuerò particolari movimenti del prezzo? Userò degli di indicatori? Se si in che modo li utilizzerò? Utilizzerò dei pattern candlestick? Se utilizzo dei livelli di prezzo in che modo posso individuarli? Utilizzerò dei filtri? Quale timeframe? Devo ricercare la simmetria della strategia

Regole di entrata chiare e semplici Devo definire con chiarezza le regole di ingresso a mercato ed individuare con precisione i parametri che mi serviranno per codificare tali regole. Meglio scrivere le regole su un foglio di carta

Alcuni Esempi

Alcuni Esempi

Regole di uscita chiare e semplici Sono in un certo senso più importanti di quelle di entrata. Devo capire quando una posizione aperta dalle regole della strategia non ha più senso di rimanere a mercato. Devo capire le regole che invalidano la strategia sia long che short. Ad esempio la regola che mi fa entrare a mercato long potrebbe chiudere l eventuale ordine short aperto (stop and reverse).

Relazione dei segnali di Trading

Descrivere la logica operativa

Implementare la strategia

Implementare la strategia 3 C3 O2 2 O3 C2 C3>O3 O2>C2 C3<O2 O3>C2 C1<C2 C1 1

Stabilire stoploss e take profit Come posso stabilire lo stoploss? Posso inserire un valore fisso? Posso legarlo a dei parametri variabili? Portero lo stoploss a breakeaven? Come posso stabilire il take profit? Posso stabilire un valore fisso? Posso legarlo a dei parametri variabili? Posso usare il TrailingStop? Posso effettuare una chiusura parziale della posizione?

Il size dell operazione Per il nostro esempio utilizzeremo un size fisso dell operazione quindi per semplicità non implementeremo in questa fase nessuna particolare regola di money management. Considerata la complessità dell argomento tratteremo il money management in una lezione dedicata.

Long e Short Una volta verificata la correttezza del codice SHORT sarà semplice convertire le istruzioni per generare le regole di entrata LONG.

Stabilire le variabili esterne ed interne In questa fase è necessario stabilire quali saranno le variabili che potranno essere specificate dall'operatore. Queste variabili sono chiamate detti parametri esterni (external parameters) Maggiori sono le funzioni parametrizzate migliore sarà il controllo della strategia perché avrò più spazio di modifica.

La Programmazione Di solito un programmatore prima di iniziare il suo lavoro deve porsi alcune domande : A cosa serve scrivere un programma? Cosa rende un programma utile o inutile? Quali sono gli obiettivi della programmazione? Quali sono i problemi coinvolti? Quali soluzioni può fornire una corretta programmazione? In un certo senso sono le stesse domande che deve porsi un trader che si accinge ad automatizzare la propria strategia

Regole basilari della programmazione Vediamo qualche regola basilare utile prima di iniziare a programmare. Quando si scrive un codice dobbiamo tenere presente che : - il sistema automatico dovrà essere semplice e facile da usare - il sistema automatico dovrà essere facile da capire, correggere e migliorare senza troppi interventi - il risultato finale dovrà corrispondere a quello che ci siamo prefissati di ottenere

Criteri di programmazione Pianificare ciò che si vuole realizzare prima di iniziare a scrivere il codice. Svolgere delle indagini su sistemi automatici già esistenti simili a quello che si vuole sviluppare per capire come migliorare tali programmi. Realizzare solo codice scritto correttamente ed utilizzabile. Realizzare il massimo della funzionalità con la minima complessità possibile.

Cos è MQL MQL (MetaQuotesLanguage) è il linguaggio di programmazione con cui sono scritti gli Expert Advisor. MQL4 è praticamente molto simile al linguaggio di programmazione C. Il codice scritto in MQL, per essere «compreso» dalla piattaforma deve essere sempre tradotto in linguaggio macchina, e a tale scopo deve quindi essere «compilato» prima di poter essere eseguito. La COMPILAZIONE è un operazione che viene eseguita da un programma apposito (detto compilatore) già presente nella piattaforma Metatrader.

I tipi di programma Quando si inizia a scrivere un programma in MQL4 è necessario, prima di tutto sapere che tipo di programmi sarà. In MQL4, ci sono tre tipi di programmi con contenuti e funzionalità diverse : EA Script Indicatori personalizzati Proprietà del programma EA Script Indicatore Durata esecuzione dopo averlo attivato Fino a disattivazione Una sola volta Fino a disattivazione Trading SI SI NO Funzioni grafiche NO NO SI Uso simultaneo sul grafico dello stesso cross NO NO SI

Cos è un EA Gli EA (Expert Advisor) sono dei software che una volta installati nella piattaforma di trading (Metatrader) lavoreranno per te aprendo degli ordini a mercato in modo del tutto automatizzato. In altre parole sono programmi sviluppati con un linguaggio che con determinate istruzioni, permette alla tua piattaforma di potere compiere una serie di azioni in particolari momenti del mercato. Questi EA ti permettono di applicare una o più strategie di trading utilizzando il capitale a disposizione sul tuo conto.

Implementare il codice POSSO USARE DEI TOOL? Certamente ce ne sono diversi sia gratuiti che a pagamento http://sufx.core.t3-ism.net/expertadvisorbuilder/ Il problema dei tool è che non si entra mai del tutto nel vivo del codice. Un trader sistematico dovrebbe gradualmente avvicinarsi alla comprensione del codice.

Il MetaEditor File > Nuovo > Consigliere Esperto

Le funzioni speciali

Dichiarazione e inizializzazione variabili esterne Funzioni create dall utente e inclusioni Inizializzazione del Expert Advisor De-inizializzazione del Expert Advisor Dichiarazione delle variabili locali e statiche Collezione dei dati per i calcoli (prezzo-indicatori) Controllo dei segnali di trading Esecuzione del trade (Apertura/Chiusura)

Rispettare la struttura

Il Tick L evento che caratterizza ogni minima variazione dei prezzi sulla piattaforma è chiamato Tick. Un Expert Advisor ( EA) non funziona per tutto il tempo ma viene riavviato nel momento in cui arriva un nuovo Tick. Per questo motivo il Tick non rappresenta solo l arrivo di un nuovo prezzo ma anche un evento che deve essere elaborato dal terminale.

Il flusso del programma START ELABORAZIONE VARIABILI ACQUISIZIONE DATI CONTO E MERCATO DEFINIZIONE CRITERI STRATEGIA CONTROLLO ORDINI EVENTUALE CHIUSURA CALCOLO DEL SIZE GESTIONE DEGLI ERRORI APERTURA ORDINI END

Fondamenti di programmazione I più importanti elementi di un programma sono questi : LE VARIABILI (<tipo di dato> <nome variabile>;) int SLOW_EMA_PERIOD; SLOW_EMA_PERIOD = 50; double SLOW_EMA1 = ima(null, 0, SLOW_EMA_PERIOD, 0, MODE_EMA, PRICE_CLOSE, 1); I COMMENTI ( // commento oppure /* commento */ ) // DEFINISCO IL SEGNALE PER APRIRE UN OPERAZIONE LONG GLI STATEMENTS manipolano i dati per trarne risultati che possono essere convertiti in azioni a = b+c; LE FUNZIONI sono semplicemente delle collezioni di statements correlati che possono essere utilizzate per eseguire un compito specifico

Tipologie di dati Prima di approfondire il concetto di variabili dobbiamo parlare dei tipi di dati. Come i normali oggetti della vita quotidiana sono caratterizzati ad esempio dal loro colore (rosso, blu, giallo, verde) o dal loro sapore (amaro, acido, dolce), anche i dati nei linguaggi di programmazione sono definiti in base a delle caratteristiche. int (numeri interi) 1, 5, 100 ecc double (numeri reali) 1.545 ecc bool (valori Booleani, valori logici) 0, 1, true, false string (stringhe di testo) MARIO, LINGUAGGIO color (valori che identificano il colore) Red, Yellow, 0x008000; datetime (valori di data e ora) '12.05.2013 16:30:45'

Le variabili In genere, durante l esecuzione del programma, servono o si generano nuove informazioni. Possono essere dati inseriti dall utente oppure il risultato di calcoli, che devono essere via via memorizzate. Dal momento che le informazioni in questione possono variare nel tempo, esse vengono definite con il termine variabili; Le variabili sono dei contenitori che possono racchiudere diverse tipologie di dati. <tipo di dato> <nome variabile>; int n; <nome variabile> = <valore>; n = 5;

I commenti Molti trascurano l utilità di commentare il codice. Commentare il codice permette di facilitare le successive modifiche e di individuare più facilmente le parti di codice che potrebbero generare inefficienze durante l esecuzione del programma.

Conclusioni Il processo per tradurre bene la strategia in codice è piuttosto lungo. Come visto bisogna procedere per gradi in modo da non incorrere in errori che poi sarebbero difficili da individuare. Una volta certi che una regola è stata tradotta bene solo allora si potrà passare ad implementare la successiva. Il tutto va condotto con pazienza, attenzione ai particolari e conoscenza di tutti i passaggi.