Descrizione:
- Il Fundamental Trader EA è un sistema di trading automatico progettato per prendere decisioni finanziarie basate su eventi di notizie. Non può essere testato retrospettivamente su dati storici, ma solo in forward testing, poiché è configurato per attendere il prossimo evento di notizie e prendere decisioni di trading in base alla differenza tra i dati (reale vs. previsione) o (reale vs. precedente).
- Questo EA è molto semplice: dopo aver scaricato il calendario, determina quale evento di notizie del calendario DailyFX è programmato per essere il prossimo. Poi attende il rilascio di quell'evento e, una volta che i dati sono disponibili, ilEA prende una decisione di trading. Può essere applicato a qualsiasi grafico e a qualsiasi timeframe, poiché utilizza il grafico solo per eseguire ordini.
Il Fundamental Trader EA è configurato per supportare ogni Paese presente nel calendario DailyFX, vedi sotto per i dettagli.
NOTA:
- Per far funzionare questo EA, devi seguire le istruzioni per configurare i file principali dal seguente sito:
- https://www.mql5.com/en/articles/1502
- Questo EA è costruito su codice di un indicatore specificato nel link sopra. Devi PRIMA seguire le istruzioni nel link sopra e configurare i seguenti file:
- getright_setup.zip
- Time.mq4
- Time.mqh
- Assicurati di cambiare la directory di download predefinita "get right" in quella in cui verrà scaricato il calendario, altrimenti questo EA non funzionerà.
- Leggi quell'articolo molto lentamente e segui ogni istruzione.
- Puoi leggere tutto su cosa sono quei (3) file e qual è la loro funzione. Quell'articolo spiega molto bene cosa fa l'indicatore per visualizzare gli eventi di notizie nella finestra del grafico.
- È una buona idea configurare prima quell'indicatore e avere le notizie visualizzate sul tuo grafico, dopo di che questo EA funzionerà senza problemi.
- Il codice sorgente di quell'indicatore è stato modificato per diventare un EA, per tradare le notizie e non solo per visualizzarle.
- Quando configuri i file elencati sopra, dal link sopra, puoi scaricare questo EA insieme a "str2double.dll" e questo EA tradarà le notizie rilasciate su DAILYFX. Il file "str2double.dll" deve andare nella directory principale, ad esempio C:\Program Files\Interbank FX Trader 4\
Logica di Trading:
- La logica dietro il trading è la seguente: ci sono due tipi di eventi che si verificano quando si tradano notizie.
- 1°: ci sono dati economici reali che vengono confrontati con i dati economici previsionali.
- 2°: ci sono dati economici reali che vengono confrontati con i dati economici precedenti.
- La differenza tra i dati economici può influenzare la direzione del prezzo della valuta, e la percentuale di differenza tra i dati economici fornisce una probabilità maggiore che l'evento di notizie avrà una reazione di mercato in una direzione specifica.
- Per maggiori informazioni sul Trading Fondamentale visita www.pfxglobal.com
- Quando c'è una differenza percentuale alta tra i dati economici, l'EA esegue ordini con lotti più grandi.
- Quando la differenza percentuale tra i dati economici è piccola, l'EA esegue ordini con lotti minimi.
- Queste dimensioni di lotto sono specificate quando l'EA è applicato al grafico con le seguenti variabili:
- lot1, lot2, lot3, lot4, lot5, lot6......lot18
- La dimensione del lotto specifico sarà scelta dall'EA, in base alla percentuale di differenza tra i dati economici.
Rapporto Rischio/Rendimento:
- Il Fundamental Trader EA è configurato con un rapporto rischio/rendimento di 1:3, i valori predefiniti sono rischio=20, rendimento=3.
- Il rischio è rappresentato dai valori di StopLoss in PIP, e il rendimento è il moltiplicatore, quindi se l'EA rischia 20 PIP, si aspetta di guadagnare 60 PIP.
- Questi valori possono essere modificati quando si applica l'EA al grafico.
Tempo di Attesa per il Rilascio delle Notizie:
- I dati delle notizie non vengono rilasciati esattamente nel momento in cui sono programmati, è necessario impostare un intervallo di tempo affinché l'EA attenda il rilascio degli eventi di notizie.
- Il seguente frammento di codice determina il tempo che l'EA attenderà per il rilascio delle notizie; quando il tempo di attesa è trascorso, l'EA passa al prossimo evento di notizie.
- xTime è una variabile, che può essere modificata, quando si applica per la prima volta l'EA a un grafico. Il valore predefinito è di 27 minuti.
if(Date>(TimeCurrent()-(xTime*60)))
Tempo di Attesa per la Chiusura degli Ordini:
- Puoi anche impostare un intervallo di tempo per l'EA per attendere un certo periodo di tempo prima di chiudere un ordine aperto.
- Ad esempio, dopo il rilascio di un evento di notizie e l'esecuzione di una posizione, attendi 30 minuti per chiudere l'ordine attuale, con profitto o perdita. Questo è un suggerimento dell'utente MQL4 "ebenv".
- Ci sono (3) variabili che controllano questa funzione:
- MagicNumber | numero utilizzato per tracciare gli ordini aperti
- enable_close_time | impostato su true per abilitare l'EA a monitorare il tempo trascorso dalla sua esecuzione
- wait_time | tempo da attendere prima di chiudere l'ordine
Supporto ai Paesi per il Fundamental Trader:
Il Fundamental Trader EA tradà ogni singola valuta supportata su dailyfx.com/calendar.
Di seguito è riportato il frammento di codice che specifica la valuta da tradare in base al Paese in cui viene rilasciato l'evento di notizie. La lista delle valute è la seguente: EUR, USD, JPY, GBP, CHF, AUD, CAD, NZD
if(stCurrency=="EUR") {ordercurrency="EURUSD";} //trading eurusd
if(stCurrency=="USD") {ordercurrency="EURUSD";} //trading eurusd
if(stCurrency=="JPY") {ordercurrency="USDJPY";} //trading usdjpy
if(stCurrency=="GBP") {ordercurrency="GBPUSD";} //trading usdgbp
if(stCurrency=="CHF") {ordercurrency="USDCHF";} //trading usdchf
if(stCurrency=="AUD") {ordercurrency="AUDUSD";} //trading audusd
if(stCurrency=="CAD") {ordercurrency="USDCAD";} //trading usdcad
if(stCurrency=="NZD") {ordercurrency="NZDUSD";} //trading nzdusd
Decisione di Trading:
Il seguente frammento di codice descrive come l'EA prende una decisione di trading, quando l'EA sta aspettando dati economici reali, quando i dati economici previsionali sono disponibili.
Quando i dati previsionali non sono disponibili, l'EA utilizza i dati precedenti per fare un trade.
Il seguente frammento di codice spiega come il trade viene eseguito in base ai dati previsionali e ai dati reali. Lo stesso algoritmo viene utilizzato quando l'EA prende una decisione di trading basata sui dati precedenti e reali.
if(StringToDouble(stActual)>StringToDouble(stForecast))
{
Aert("Stronger(actual vs forecast): " + stCurrency + " " + "Time: " + stTime);
int total=OrdersTotal();
for(int cnt=0;cntLive Trade Open" + OrderTicket());
return(0);
}
}
int historytotal=OrdersHistoryTotal();
for(cnt=0;cntTrade Executed" + OrderTicket());
return(0);
}
}
}
if(stCurrency=="EUR" || stCurrency=="GBP" || stCurrency=="AUD")
{
double ask=MarketInfo(ordercurrency,MODE_ASK);
double point1=MarketInfo(ordercurrency,MODE_POINT);
OrderSend(ordercurrency,OP_BUY,lot_p,ask,3,ask-(risk*point1),ask+reward*risk*point1,stCurrency + stActual + stForecast + "BUY");
}
if(stCurrency=="CHF" || stCurrency=="CAD" || stCurrency=="NZD" || stCurrency=="JPY" || stCurrency=="USD")
{
double bid=MarketInfo(ordercurrency,MODE_BID);
double point2=MarketInfo(ordercurrency,MODE_POINT);
OrderSend(ordercurrency,OP_SELL,lot_p,bid,3,bid+(risk*point2),bid-(reward*risk*point2),stCurrency + stActual + stForecast + "SELL");
}
1°: l'EA può eseguire solo un ordine per evento di notizie, quindi prima controlla se un ordine è stato eseguito; se l'ordine è attualmente aperto, l'EA esce.
2°: l'EA determina se questo ordine è già stato eseguito e chiuso; se l'ordine è stato eseguito e chiuso con profitto o perdita, l'EA esce.
Questi (2) controlli per gli ordini assicurano che non ci sia duplicazione di ordini, permettendo all'EA di effettuare solo un singolo trade per evento di notizie.
Successivamente, determina per quale Paese i dati vengono rilasciati e apre un trade con le specifiche nella funzione ordersend quando i dati economici vengono rilasciati.
Il codice sopra è per: quando i dati reali sono maggiori dei dati previsionali; il codice è lo stesso quando i dati reali sono inferiori ai dati previsionali; l'unica differenza è la direzione del trade.
Lo stesso algoritmo viene applicato quando i dati precedenti vengono confrontati con i dati reali quando i dati previsionali non sono presenti.
Dimensionamento dei Lotti:
L'EA confronta i (dati reali con i dati previsionali) o (dati reali con i dati precedenti); la percentuale di differenza tra i dati delle notizie determina l'importo del lotto che l'EA traderà.
Il seguente frammento di codice mostra come l'EA determina la percentuale di differenza e specifica la dimensione del lotto; la dimensione del lotto è un numero esterno che può essere modificato per supportare qualsiasi broker EA.
L'utente può modificare i lotti quando applica l'EA al grafico. I valori predefiniti delle dimensioni dei lotti sono (0.01, 0.02, 0.03...0.17).
double percent_d_AF=MathAbs((MathAbs(StringToDouble(stActual)-StringToDouble(stForecast))/StringToDouble(stForecast))*100);
double lot_p=0;
if((percent_d_AF>0 && percent_d_AF<=3)) {lot_p=lot1;} //0.1 lot
if((percent_d_AF>3 && percent_d_AF<=6)) {lot_p=lot2;} //0.2 lots
if((percent_d_AF>6 && percent_d_AF<=9)) {lot_p=lot3;} //0.3 lots
if((percent_d_AF>9 && percent_d_AF<=12)) {lot_p=lot4;} //0.4 lots
if((percent_d_AF>12 && percent_d_AF<=15)) {lot_p=lot5;} //0.5 lots
if((percent_d_AF>15 && percent_d_AF<=18)) {lot_p=lot6;} //0.6 lots
if((percent_d_AF>18 && percent_d_AF<=21)) {lot_p=lot7;} //0.7 lots
if((percent_d_AF>21 && percent_d_AF<=24)) {lot_p=lot8;} //0.8 lots
if((percent_d_AF>24 && percent_d_AF<=27)) {lot_p=lot9;} //0.9 lots
if((percent_d_AF>27 && percent_d_AF<=30)) {lot_p=lot10;} //1 lots
if((percent_d_AF>30 && percent_d_AF<=40)) {lot_p=lot11;} //2 lots
if((percent_d_AF>40 && percent_d_AF<=50)) {lot_p=lot12;} //3 lots
if((percent_d_AF>50 && percent_d_AF<=60)) {lot_p=lot13;} //4 lots
if((percent_d_AF>60 && percent_d_AF<=70)) {lot_p=lot14;} //5 lots
if((percent_d_AF>70 && percent_d_AF<=80)) {lot_p=lot15;} //6 lots
if((percent_d_AF>80 && percent_d_AF<=90)) {lot_p=lot16;} //7 lots
if((percent_d_AF>90 && percent_d_AF<=100)) {lot_p=lot17;} //8 lots
if((percent_d_AF>100)) {lot_p=lot18;} //8 lots
Informazioni sul Grafico:

Screenshot dei Dati Fondamentali
Quando l'EA è applicato per la prima volta al grafico, specifica "xTime", "rischio", "rendimento", "MagicNumber", "enable_close_time", "wait_time" e specifica le tue dimensioni minime e massime dei lotti, assicurati di mantenere la posizione predefinita in cui "get right" è installato.
L'EA scaricherà il calendario dailyfx e determinerà quale evento di notizie è il prossimo. Visualizzerà i seguenti dati: Data, Ora, Fuso Orario, Valuta, Descrizione, Importanza, Reale, Previsione e Dati dell'evento di notizie precedenti come commento sul grafico, come mostrato nell'immagine sopra.
Nell'immagine sopra, l'EA sta aspettando l'evento di notizie che sarà rilasciato alle 2:00AM e come puoi vedere, i dati economici precedenti sono noti (73,5%), quindi l'EA sta aspettando che i dati reali vengano rilasciati. Quando i dati economici saranno rilasciati, l'EA confronterà i dati e prenderà una decisione di trading basata sui dati economici precedenti e reali.
Infine, l'EA scarica i dati del calendario su base minuto, a partire dal momento in cui l'evento di notizie è programmato per essere rilasciato.
Panoramica del Fundamental Trader:
Questo EA tradà ogni evento economico rilasciato su dailyfx.com/calendar, in formato CSV.
Il calendario è scaricato tramite il programma "get right".
L'EA scarica il calendario ogni minuto quando i dati delle notizie sono programmati per essere rilasciati.
L'EA analizza il calendario e determina quale evento di notizie è il prossimo, poi attende 27 minuti per il rilascio delle notizie.
Una volta che i dati economici sono rilasciati, determina se si tratta di (reale vs. previsione) o (reale vs. precedente).
L'EA determina la dimensione del lotto, la valuta da tradare e la direzione in base all'evento del calendario economico; tutti questi dati possono essere trovati sul grafico quando l'EA è in esecuzione.
L'ordine viene eseguito con un rapporto rischio/rendimento di 1:3.
L'EA è configurato per eseguire solo un singolo ordine per evento di notizie. Se "enable_close_time" è attivato con un valore "true", l'EA attenderà il numero di minuti specificato da "wait_time" prima di chiudere l'ordine aperto.
Ricorda di seguire tutte le istruzioni nel seguente link https://www.mql5.com/en/articles/1502, affinché il calendario venga scaricato correttamente e il tuo orario broker sia impostato correttamente, poiché i dati di dailyfx.com/calendar sono GMT.
Se hai domande, commenti o critiche, lascia un commento.Post correlati
- Dematus: Il Sistema di Trading per MetaTrader 5
- Rilevare il Venerdì della Prima Settimana del Mese: La Guida per il Giorno NFP
- EA Efficiente: Come Aggiungere la Chiusura del Venerdì per Migliorare le Performance
- MQL5 Wizard: Creare Trading Signals con Morning/Evening Stars e MFI per MetaTrader 5
- Creazione di Frattali in MQL5 con Sistemi di Funzioni Iterati (IFS) per MetaTrader 5