venerdì 31 dicembre 2010

Renko MultyBox EA versione 4

Sperando che sia la volta buona rilascio ufficialmente la versione 4 del Renko MultyBox EA. Anche in questo caso purtroppo non ho avuto modo di testarla accuratamente in demo ma spero che le modifiche effettuate correggano il problema rilevato nella chiusura degli ordini.

Con questa versione sono stati introdotti 5 nuovi indicatori che vanno a sostituire il Renko MultyBox. Ogni indicatore si occupa esclusivamente del calcolo della propria Box in base al parametro esterno che gli viene fornito dall'expert advisor. In pratica ho suddiviso l'indicatore originale in 5 mini-indicatori ed ho eliminato il Timer che non era di fatto utilizzato.

Gli indicatori vanno ovviamente posizionati nella directory MetaTrader 4\experts\indicators insieme ai relativi eseguibili:
  • RENKO_MultyBox_Buffer1.mq4
  • RENKO_MultyBox_Buffer2.mq4
  • RENKO_MultyBox_Buffer3.mq4
  • RENKO_MultyBox_Buffer4.mq4
  • RENKO_MultyBox_Buffer5.mq4

In seguito a questa modifica anche il backtest dovrebbe risultare nettamente più veloce.
 

domenica 26 dicembre 2010

Renko MultyBox EA versione 3: alcune modifiche per il debug

La versione 3 del Renko MultyBox EA non introduce dei grossi cambiamenti ma è stata rilasciata più che altro per analizzare il comportamento anomalo segnalato da diversi utenti nella fase di chiusura degli ordini.

E' stata introdotta una sola modifica al trading system, l'expert advisor non apre e chiude se si verifica una condizione minima ma solo quando si verifica la condizione esatta.
La versione precedente, con e_min_Boxsize_signal uguale a 4, avrebbe aperto una posizione long anche nel caso in cui ci fossero stati 5 grafici renko ad indicare un segnale long, ora invece apre l'ordine esclusivamente se ci sono 4 grafici verdi. Lo stesso discorso vale per la chiusura delle posizioni.

L'altra modifica riguarda, come dicevo, la fase di debug dell'expert. Sono stati introdotti ulteriori messaggi di stampa per aiutare a comprendere il comportamento in demo. In fase di backtest infatti non sono riuscito a riprodurre il problema che mi era stato segnalato.
La mia ipotesi è che in un contesto di trading in demo/live arrivino più velocemente le quotazioni di quanto in realtà succede con il backtest di metatrader e che il nostro ea non riesca a "stare dietro" a tutti i tick in ingresso.
 

lunedì 20 dicembre 2010

Renko MultyBox EA versione 2

La seconda versione del Renko MultyBox EA prevede due differenti modalità di uscita dai trade, si può passare da una modalità all'altra modificando il valore della variabile esterna stoploss_Enable:

extern   bool     e_StoplossEnable           = false;

  • StoplossEnable = false -> indica che la gestione delle uscite avviene mediante il parametro Boxsize_Close_signal (di default impostato a 4). Se ci sono almeno 4 Box di colore opposto rispetto all'ordine aperto viene chiusa la posizione. In questa modalità stop loss e take profit vengono volutamente impostati a valori molto alti di modo che non vengano colpiti.
  • StoplossEnable = true -> è la gestione delle uscite implementata nella prima versione dell'expert advisor, la chiusura delle posizioni avviene mediante take profit, stop loss e trailing stop.

 

domenica 12 dicembre 2010

Renko MultyBox EA

L'expert advisor realizzato si basa sui segnali forniti dall'indicatore RENKO_MultyBox che permette di visualizzare, su di un unico grafico, la tendenza delle barre Renko da 4, 8, 16, 32 e 64 pips.

I grafici Renko (non presenti di default su metatrader) sono dei grafici che non prendono in considerazione il fattore tempo nell'asse x ma chiudono le candele solo quando hanno effettuato un movimento vero l'alto o verso il basso di un determinato numero di pips.

grafico renko


Dopo queste premesse andiamo a vedere i requisiti del trading system da automatizzare:
  • apertura long o short quando ci sono n grafici renko con lo stesso segnale (verde = buy, rosso = sell);
  • gestione chiusura con take profit, stop loss e trailing stop;
  • orario di trading in cui aprire le posizioni impostabile.
 

domenica 5 dicembre 2010

Scrivere su file con Metatrader, quotazioni storiche e reali in excel

Molti trader sono spesso interessati ad analizzare i dati in modalità differenti rispetto alla classica visualizzazione di metatrader e hanno quindi bisogno di trasportare i dati su di altri strumenti quali excel, file di testo, database ecc.

Il centro storia di metatrader (lo potete trovare all'interno del menu strumenti) permette di esportare i dati storici in formato csv con le seguenti informazioni relative alle candele del timeframe selezionato:
  • Data e orario
  • Prezzo di apertura
  • Prezzo massimo
  • Prezzo minimo
  • Prezzo di chiusura
  • Volume
Centro storia metatrader


 

lunedì 29 novembre 2010

Moving Candle EA versione 2: nuova gestione delle uscite e correzioni varie

La seconda versione del Moving Candle EA corregge alcuni errori riscontrati da alberto nella prima release (articolo: Moving Candle EA) ed introduce delle modifiche alla strategia.

errori prima versione moving candle EA

Le novità sono:

  • L'apertura degli ordini viene eseguita solo vicino all'incrocio del prezzo con la media mobile, l'ordine viene aperto esclusivamente nella candela successiva all'incrocio.
  • Aggiunta una nuova modalità di uscita dalle posizioni, ora è possibile scegliere se chiudere l'ordine quando il prezzo torna a toccare la media mobile.
  • Apertura delle posizioni solo quando il prezzo si trova ad una minima distanza dalla media.
  • Aggiunta dell'ADX per impedire l'ingresso durante le fasi laterali del mercato

 

Aprire un solo ordine per candela: funzione isLastOrderCandle

A seconda del trading system che si intende sviluppare il metodo di gestione delle uscite da un trade può essere differente:

  • chiusura dell'ordine per raggiungimento di take profit o stop loss; 
  • chiusura dell'ordine in seguito a determinati eventi, ad esempio l'incorcio di due medie mobili o altre condizioni.

Nel secondo caso in particolare si possono verificare dei casi per cui il segnale di ingresso è ancora valido e l'ordine viene quindi chiuso ripetutamente ogni volta che se ne apre uno nuovo.

A seconda della strategia adottata una possibile soluzione può essere quella di non aprire nuovi ordini su di una candela se esiste già un ordine chiuso nella stessa barra.

 

martedì 23 novembre 2010

Iona Buy & Sell EA

Questo expert advisor è stato realizzato sulle specifiche di iona nella discussione Iona Buy & Sell EA, di seguito un riassunto del trading system:

  1. Apertura posizioni long quando il prezzo è maggiore di EMA 5 HIGH e si trova sopra ad EMA 90 da almeno 7 candele.
  2. Apertura posizioni short quando il prezzo è minore di EMA 5 LOW e si trova sotto ad EMA 90 da almeno 7 candele.
  3. Chisura posizione long quando RSI a 14 è minore uguale a 30
  4. Chisura posizione short quando RSI a 14 è maggiore uguale a 70
  5. Take profit stretto, stop loss assente (le posizioni vengono chiuse in base al valore dell'RSI come specificato nei punti 3 e 4)


iona buy sell trading system


E' possibile personalizzare il comportamento andando a modificare i seguenti valori di input:
 

domenica 21 novembre 2010

Come usare il Magic Number negli expert advisor di metatrader

Il magic number o magic id è un numero che viene utilizzato all'interno di un expert advisor in fase di apertura, chiusura e ricerca degli ordini.

Lo scopo principale di questo numero magico è quello di permettere l'esecuzione di più expert advisor contemporaneamente (o di operazioni manuali) sulla stessa piattaforma senza che gli ordini aperti manualmente, o da un expert, vadano ad interferire con il funzionamento dell'altro.

Provate ad immaginare che cosa succederebbe se le operazioni che aprite venissero chiuse dall'ea in funzione su di un altro grafico di metatrader, sicuramente un disastro incontrollabile.

Non tutti i programmatori però utilizzano il magic number all'interno del loro codice. Quando non si è sicuri,  o non si conosce il funzionamento di un consigliere esperto, l'unica soluzione è quella di farlo girare in modalità stand-alone. Solo in questo caso si è certi che l'ea non interferisca con gli altri ordini.

Andiamo ora a vedere i passi necessari per utilizzare correttamente il magic number:
 

domenica 14 novembre 2010

Kumo Breakout EA: Ichimoku più medie mobili

Il Kumo Breakout EA è un expert advisor realizzato sul seguente trading system:

Condizioni per aprire posizione Long:
  • il prezzo attraversa la nuvola di kumo (ichimoku) dal basso verso l'alto
  • la media mobile veloce è sopra la media mobile lenta
Condizioni per aprire poszione Short:
  • il prezzo attraversa la nuvola di kumo (ichimoku) dall'alto verso il basso
  • la media mobile veloce è sotto la media mobile lenta


kumo breakout trading system


La gestione delle uscite viene al momento effettuata da take profit, stop loss o trailing stop i cui valori vengono impostati tramite variabili esterne:

 

venerdì 12 novembre 2010

Individuare una nuova candela in metatrader: funzione isNewCandle()

Chi programma in mql conosce sicuramente la convenzione per cui la candela attualmente in costruzione è la candela numero 0, la penultima è la candela numero 1, la terzultima la numero 2 e così via.

Se da un lato questo riferimento ci semplifica la vita, dall'altro ci complica un pò le cose. Come possiamo capire quando una nuova barra si è formata? Con il codice ci riferiamo alla candela numero 0 e siamo quindi sempre posizionati sulla barra attualmente in formazione che cambia ogni tot tempo a seconda del timeframe selezionato.

Può sorgere quindi la necessità di individuare una candela non tramite id, ma tramite l'orario di apertura. A questo proposito possiamo sfruttare la funzione built-in di metatrader iBarShift() che ci restituisce l'id della candela in base all'orario passato come parametro.

La funzione isNewCandle(), che riporto in seguito, ha lo scopo di informarci se la candela attualmente in formazione è sempre la stessa rispetto alla quotazione precedente oppure se si è formata una nuova candela nel grafico:

 

Alternate Buy and Sell EA

Questo expert advisor è stato realizzato secondo le seguenti specifiche:
  • una volta lanciato l'EA, si aspetta la nuova candela del time frame su cui viene applicato (esempio: se TF = H1 ed MT4 aperto alle 08.30, aprirà la prima posizione alle 09.00)
  • chiusura della posizione in caso di: stop loss, take profit o all'apertura del nuovo time frame (alle 10.00 in questo caso) 
  • allo stesso tempo, con la nuova candela apre anche una posizione in sell
  • alterna quindi operazioni long ed operazioni short
  • parametri da settare: lotto di partenza, stop loss, take profit
alternate buy and sell trading system

 

mercoledì 10 novembre 2010

Gestire il Trailing Stop con MQL

Il Trailing Stop è una delle tecniche maggiormente utilizzate nel trading perchè permette di spostare lo stop loss in profitto quando una posizione inizia a guadagnare. In poche parole rappresenta la distanza, in pips, a cui deve essere impostato lo stop rispetto all'attuale prezzo del cross.

La piattaforma metatrader permette di attivare rapidamente il trailing stop semplicemente andando a selezionare, con il tasto destro del mouse, un ordine aperto:

Trailing Stop in Metatrader

E se volessimo inserire questa funzionalità all'interno di un expert advisor? Esiste già una funzione built-in di metatrader che si occupa di modificare lo stop loss a nostro piacere?

 

martedì 9 novembre 2010

Moving Candle EA

Il Moving Candle EA è un expert advisor realizzato sul seguente trading system:
  • Media mobile 50, Time Frame 5min 
  • Se il prezzo è sopra la media, alla prima candela chiusa positiva LONG 
  • Se il prezzo è sotto la media, alla prima candela chiusa negativa SHORT 
  • Stop Loss 15, Take Profit 45 
  • Quando si è in guadagno di un certo numero di pips, spostare lo stop loss al Break Even
  • Orario di apertura ordini: dalle 9 o 9 e 30 alle 11 
L'ea utilizza Time Frame e cross del grafico su cui viene applicato ed apre apre una sola posizione alla volta, è possibile personalizzarlo con le seguenti variabili esterne:

 

lunedì 8 novembre 2010

Gestione del BreakEven Stop in metatrader: portare lo stop a BE

Durante lo sviluppo di un expert advisor capita spesso di dover modificare i valori degli ordini aperti in metatrader ed in particolare di dover spostare lo StopLoss.

Le richieste più frequenti nel forex e nel trading in generale riguardano la gestione di:
- trailing stop: spostare lo stop loss in gain man mano che il profitto della posizione aumenta;
- breakeven stop: spostare lo stop allo stesso valore del prezzo di apertura quando si è in profitto di un certo numero di pips. In questo modo si elimina completamente il rischio di chiudere l'operazione in negativo.

Lo scopo di questo articolo non è quello di analizzare vantaggi e svantaggi delle due tecniche di money management ma è quello di mostrare una possibile realizzazione del breakeven stop in mql.
 

sabato 6 novembre 2010

Confrontare le ore in MQL: funzione isTradingTime()

Quando si sviluppa un expert advisor per il forex trading può capitare di avere l'esigenza di aprire ordini solo in determinati momenti della giornata, o nel mio caso, in un intervallo di tempo compreso tra due orari definiti dall'esterno.

Questa richiesta non è complessa da gestire ma se pensate di cavarvela con un semplice confronto tra date in mql probabilmente andrete incontro a qualche grattacapo, nel metaeditor troviamo infatti il seguente esempio:

D'12:30:27' //equal to D'[compilation date] 12:30:27'
 

mercoledì 3 novembre 2010

Indicatore metatrader che visualizza il prezzo di chiusura delle candele

Questo indicatore di metatrader permette di visualizzare, nel grafico su cui viene applicato, il prezzo di chiusura di ogni singola candela:

prezzo chiusura candele

E' possibile possibile personalizzare l'aspetto dell'indicatore andando a modificare i valori di input:
 

sabato 30 ottobre 2010

Linea del cuore versione 0.4b: disattivazione degli indicatori più fix sull'ADX

Questa versione dell'expert advisor è stata rilasciata grazie al contributo dell'utente morganizzo che ha apportato le seguenti modifiche al codice:
  • possibilità di attivare e disattivare uno o più indicatori
  • modifica del comportamento dell'ADX con la logica sotto descritta (indicata da paolobardamu e fpg87).
Aprendo metatrader vi accorgerete che l'adx ha tre variabili:
  • ADX (valore principale che indica solo la forza del trend, indipendentemente se al rialzo o al ribasso) 
  • DI+ 
  • DI-

 

Script metatrader per chiudere tutte le posizioni di un singolo cross

Chi utilizza la piattaforma di trading "metatrader" sa che uno degli svantaggi è la lentezza nella chiusura ed apertura degli ordini tramite utilizzo di mouse e tastiera.

Se, per chiudere una singola posizione, i tempi non sono poi così lunghi, provate ad immaginare quanto tempo costerebbe chiudere 4/5 ordini. Dovete inoltre tenere presente che durante questa attesa il prezzo delle valute potrebbe subire delle variazioni inattese. Un forex trader sa quanto importante è poter entrare ed uscire dal mercato velocemente.

Su metatrader trovate disponibili diversi script che si occupano di chiudere ed aprire una o più posizioni, ma nessuno di questi permette di chiudere tutte le posizioni aperte o pendenti di un solo cross.

 

mercoledì 27 ottobre 2010

Attivare e disattivare gli indicatori

Nella prossima release dell'expert advisor verrà inserita la possibilità di abilitare o disabilitare gli indicatori che consentono l'apertura o meno degli ordini.

L'idea è quella di inserire delle variabili esterne in cui sarà possibile specificare se si vuole attivare o disattivare uno specifico indicatore.

Sarà possibile quindi verificare il comportamento del trading system anche per un singolo indicatore.

 

martedì 26 ottobre 2010

Linea del cuore versione 0.3b: trailing stop!

Al seguente link è possibile scaricare la versione 0.3b della linea del cuore.

Linea_del_Cuore_0_3_b.ex4

Sorgente:

Linea_del_Cuore_0_3_b.mq4

L'unica modifica introdotta in questa versione dell'expert advisor riguarda l'inserimento del trailing stop, sono state infatti aggiunte le seguenti variabili esterne:

 

domenica 24 ottobre 2010

Risultati backtest della linea del cuore versione 0.2b

Si è da poco concluso l'ultimo backtest della linea del cuore con risultati non proprio soddisfacenti, al seguente link potete visualizzare il rapporto dettagliato del tester strategia di metatrader:

Backtest linea del cuore versione 0.2b

backtest metatrader linea del cuore ea

 

Come impostare le variabili mode, method, applied price e shift

Già dalla prima release ho voluto rendere modificabili tutte le variaibili utilizzate dal nostro expert advisor in modo da permettere il massimo grado di personalizzazione senza dover modificare il codice per richieste specifiche.

So che queste variabili non sono facilmente interpretabili da chi non ha mai programmato nel linguaggio di metatrader (MetaQuotes Language) e quindi vi vado a spiegare quali valori possono assumere.

 

sabato 23 ottobre 2010

Modifiche per la prossima release? Trailing Stop ...

Sto effettuando una sessione di backtest sugli ultimi 2 mesi con le tolleranze impostate a 5. In attesa di pubblicare i risultati (che al momento non sono un granchè) e verificare la correttezza delle posizioni aperte dall'expert advisor mi sono già saltate all'occhio un paio di operazioni ed in particolare la seguente:

grafico backtest linea del cuore ea

Quanti pips si sarebbero potuti fare senza impostare il take profit a questo ingresso long?

Per la prossima versione della linea del cuore quindi spero di riuscire ad inserire il trailing stop con stoploss a breakeven.

 

giovedì 21 ottobre 2010

Discussione sul forex forum dell'expert advisor

Dato che questo blog non si presta al caricamento di immagini nei commenti e manca di altre funzionalità fondamentali per gli "ospiti" è stata aperta una discussione dedicata all'expert advisor sul forum in modo da non sporcare il topic aperto da Peruch53 che deve continuare ad andare avanti senza essere influenzato da discorsi su backtest o problemi di codice:

expert advisor La linea del cuore

Attendo i vostri test per capire i nuovi problemi (che sicuramente ci saranno) della versione 0.2b.

 

mercoledì 20 ottobre 2010

Linea del cuore versione 0.2b

Ecco la nuova versione da testare del nostro expert advisor:

Linea_del_Cuore_0_2_b.ex4

E come sempre il sorgente:

Linea_del_Cuore_0_2_b.mq4

Cos'è cambiato?

 

Problemi della versione 0.1b

I preziosi backtest che avete effettuato sulla prima versione beta hanno evidenziato numerosi problemi relativi soprattutto alle tolleranze che al momento sono completamente sballate.

Devo rilasciare una nuova versione con le correzioni prima che possiate effettuare dei nuovi test, riepilogo dei problemi:

- verifica del comportamento delle tolleranze;
- inserimento di un nuovo RSI, il segnale viene generato quando questo RSI veloce incrocia quello lento (ed entrabi superano la linea del coure?). Non ho chiaro questo passaggio e chiedo a qualcuno di dettagliarlo maggiormente.
- ottimizzazione velocità backtest;
- varie ed eventuali....

 

martedì 19 ottobre 2010

Spiegazione delle variabili tollerance della linea del cuore

Nel precedente post relativo ai valori di input dell'expert advisor ho sorvolato un pò troppo velocemente la descrizione delle variabili tollerance (tolleranza) che giocano un ruolo chiave nell'apertura delle posizioni.

Queste variabili sono la vera e propria parte discrezionale dell'ea e significano in poche parole: fino a quanto posso considerare valido il segnale di questo indicatore?

In pratica con il valore impostato ad 1 lo stocastico darà segnale long per valori dello stocastico che vanno da 60 a 61, short per valori che vanno da 60 a 59.

Ovviamente aumentando la tolleranza l'expert aprirà posizioni più frequentemente ma allo stesso tempo il segnale sarà meno "pulito".
 

domenica 17 ottobre 2010

Secondo backtest linea del cuore versione 0.1b

A causa degli errori di codice che avevano condizionato pesantemente il primo backtest si è resa necessaria una nuova sessione di test sui dati storici.

Le impostazioni utilizzate sono sempre quelle di default, timeframe 1H su EURUSD, periodo di test dal primo al 15 di Ottobre.

Per quanto può valere i risultati questa volta sono stati positivi, potete consultare il report dettagliato al seguente link:

Secondo backtest linea del cuore versione 0.1b

grafico backtest linea del cuore ea
 

Primo backtest dell'ea sulla versione beta

Di certo non mi aspetto che l'expert advisor funzioni già da subito, ora ho bisogno di un pò del vostro aiuto per capire gli errori di codice o quelli di interpretazione della strategia (il mio tempo libero è purtroppo molto limitato).

Per ora ho fatto girare il backtest dal primo ottobre al 15 EURUSD timeframe 1H, vi incollo il risultato leggermente in negativo con sole 3 posizioni aperte:

backtest di metatrader parte 1
backtest di metatrader parte 2

 

Guida ai settaggi della linea del cuore

Durante la creazione dell'expert advisor "Linea del Cuore" ho deciso di rendere completamente customizzabile il sistema dall'esterno inserendo tutte le possibili variabili utilizzate all'interno del codice.

Se da un lato questo permette all'utente di avere il pieno controllo del trading system dall'altro introduce una complessità e può spaventare chi non conosce tanto bene gli indicatori di metatrader e su come sia possibile personalizzarli.

Un topic di guida sulle variabili esterne di questo consigliere esperto si rende quindi necessario, se provate ad aprire il sorgente troverete questo pezzo di codice (ho omesso le righe con gli asterischi che vengono utilizzate solo per una miglior presentazione nell'interfaccia di metatrader, nei valori di input dell'expert):

 

sabato 16 ottobre 2010

Expert Advisor Linea_del_Cuore.mq4, release beta v 0.1b

E' possibile scaricare il sorgente della prima release beta (v 0.1b) dell'expert advisor Linea_del_Cuore.mq4 da questo link:

Linea_del_Cuore_01b.mq4

Mentre l'eseguibile è scaricabile da questo link:

Linea_del_Cuore_01b.ex4

In caso il vostro antivirus dia problemi nel download dell'eseguibile o se non avete molta confidenza con la piattaforma Metatrader vi segnalo un link utile per capire come installare l'expert advisor e come come compilarlo:

 

La linea del cuore di Peruch53

L'idea di questo expert advisor è nata all'interno del Forex Forum partendo da una strategia ideata e divulgata dal buon Peruch53 all'interno del seguente topic:

La linea del cuore di Peruch53

Il sistema è piuttosto meccanico e si basa sul superamento di una soglia critica (denominata appunto linea del cuore) per i seguenti indicatori.

- Stochastic Oscillator
- Relative Strength Index (RSI)
- Williams Percent Range (WPR)

 

sabato 2 ottobre 2010

Creazione di un expert advisor per il forex

In questo blog troverete degli esperimenti personali di creazione di expert advisor ovvero trading system automatizzati per il mercato del Forex.