Ordini Automatici e Gestione con RSI per MetaTrader 4

Mike 2014.08.12 22:46 20 0 0
Allegato

Introduzione

Se sei un trader che utilizza MetaTrader 4, sai quanto sia importante avere strategie solide per gestire gli ordini. Oggi parleremo dell'utilizzo dell'RSI (Indice di Forza Relativa) per impostare ordini pendenti in modo automatico, riducendo il rischio nel weekend e ripristinando le posizioni la settimana successiva.

Funzionalità Principali

  • Ordini pendenti automatici tramite RSI;
  • Riduzione del rischio durante il weekend e ripristino delle posizioni la settimana successiva;
  • Invio di informazioni utili via email.

Consigli Utili

1. Imposta testmode: usa true per il backtest e false per la modalità reale:

extern bool testmode = false;// true: per backtest

2. Imposta il simbolo di trading: se sei in modalità test, imposta solo uno dei simboli di trading, ad esempio:

extern string tradesymbol1 = "EURUSDm_802_2802_1602_200_860";
extern string tradesymbol2 = "";
extern string tradesymbol3 = "";
extern string tradesymbol4 = "";
extern string tradesymbol5 = "";
extern string tradesymbol6 = "";

In modalità reale, imposta testmode false e configura i simboli di trading come segue (usa "," per separare i simboli e "_" per separare i parametri di un simbolo):

extern string tradesymbol1 = "EURUSDm_802_2802_1602_200_860,USDCHFm_506_2606_1506_120_600";
extern string tradesymbol2 = "USDJPYm_460_2802_1302_100_320";
extern string tradesymbol3 = "";
extern string tradesymbol4 = "";
extern string tradesymbol5 = "";
extern string tradesymbol6 = "";

3. Gestione degli ordini pendenti nel weekend: se desideri eliminare gli ordini pendenti durante il weekend, imposta weekenddelete=true, altrimenti, se vuoi allargare il gap e ripristinarlo la settimana successiva, imposta weekenddelete=false.

extern bool weekenddelete = false;// true: elimina, false: modifica

4. Orari di inizio e fine della modalità weekend: (5 significa venerdì, 7 significa domenica; l'ora è in GMT, potresti doverla adattare al tuo fuso orario locale):

// Orario di fine trading il venerdì
extern int weekendbeginday = 5;
extern string weekendbegintime = "20:30";// venerdì 20:30
extern int weekendendday = 7;
extern string weekendendtime = "23:30";// domenica 20:30

5. Simboli per l'invio di email: tutti i simboli (potrebbero non essere simboli di trading) per i quali desideri ricevere notifiche sul valore dell'RSI (>70 o <30) e report periodici. Ovviamente, dovresti modificare l'AUDJPYm se il tuo account non è un mini account.

string symbolsstr1 = "AUDJPYm,AUDCADm,AUDCHFm,AUDNZDm,AUDSGDm,AUDUSDm,CADCHFm,CADHKDm,CADJPYm,CHFJPYm,CHFPLNm,CHFSGDm,EURAUDm,EURBRLm,EURCADm,EURCHFm,EURDKKm,EURGBPm,EURHKDm,EURHUFm,EURJPYm,EURMXNm";
string symbolsstr2 = "GBPCHFm,GBPJPYm,GBPNZDm,GBPUSDm,HKDJPYm,HUFJPYm,MXNJPYm,NZDCADm,NZDCHFm,NZDJPYm,NZDSGDm,NZDUSDm,SGDJPYm,USDBRLm,USDCADm,USDCHFm,USDCZKm,USDDKKm,USDHKDm,USDHUFm,USDJPYm,USDMXNm";
string symbolsstr3 = "EURNOKm,EURNZDm,EURPLNm,EURRUBm,EURSEKm,EURSGDm,EURTRYm,EURUSDm,EURZARm,GBPAUDm,GBPCADm,USDNOKm,USDPLNm,USDRONm,USDRUBm,USDSEKm,USDSGDm,USDTRYm,USDZARm,XAGUSDm,XAUUSDm,ZARJPYm";
long sendmininterval = 3600;

6. Configurazione RSI:

// RSI
extern int rsitimeframe = PERIOD_H4;
extern int rsiperiod = 14;
extern ENUM_APPLIED_PRICE rsiappliedprice = PRICE_CLOSE;
extern int rsishift = 0;
extern double rsiupperline = 70;
extern double rsilowerline = 30;

7. Identificazione della modalità weekend: utilizza magicweekendexpiration per identificare la modalità weekend. Se qualcuno ha un modo migliore, per favore fammi sapere!

int magicweekendexpiration = 1577836800;// 2020-1-1 0:0:0 intvalue:1577836800

8. Altri Dettagli:

Se la modifica alla modalità weekend non riesce, l'EA invierà un'email e tenterà MAX_MODIFY_TRY_TIME (100 di default) volte fino a quando non avrà successo.

Non è applicato alcuno stop loss, e se un ordine a perdita ridotta (minimo acquisto o massimo vendita) di un simbolo supera il valore di pendingpips, l'EA penderebbe un altro ordine dello stesso simbolo.

In modalità test, se l'equity è inferiore al 95% del bilancio, l'EA scriverà lo stato in un file di avviso.

if(((AccountEquity()/AccountBalance()) < 0.95))
        {
            WriteToWarningFile();
        }

Se hai trovato bug o hai suggerimenti, ti prego di farmelo sapere!

Elenco
Commento 0