Home Trading Sistematico Post

Guida al Fundamental Trader EA: Trading Automatico con le Notizie Economiche

Allegato
8491.zip (57.77 KB, Scarica 0 volte)

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

Commento (0)