Automatische Pending Orders Beheren met RSI in MetaTrader 4

Mike 2014.08.12 22:46 20 0 0
Bijlage

Wat is er mogelijk met Auto Pending Orders via RSI?

  • Automatische pending orders met RSI gebruiken;
  • Lagere risico's tijdens het weekend met herstel van posities in de volgende week;
  • Ontvang nuttige informatie via e-mail.

Aanbevelingen:

1. Zet testmode op true voor backtest, false voor real mode:

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

2. Als je in testmode bent, stel dan slechts één van de tradesymbols in, bijvoorbeeld:

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

Als je in de echte accountmodus bent, zet testmode op false en configureer tradesymbols zoals (gebruik "," om symbolen te scheiden, gebruik "_" om de parameters van een symbool te scheiden):

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 = "";

EURUSDm_802_2802_1602_200_860 betekent:

  • symbool: EURUSDm(m betekent mijn Exness mini-account, mogelijk moet je dit aanpassen naar je eigen symbool)
  • pendingpips: 802(pending gap)
  • weekendpluspips: 2802(vergrote gap tijdens het weekend)
  • cancelpips: 1602(wanneer de gap deze pips overschrijdt, sluit de pending order)
  • trailingsl: 200(trailing stop loss)
  • takeprofit: 860(virtuele take profit)

3. Als je pending orders in het weekend wilt verwijderen, zet weekenddelete=true, anders, als je de pending gap wilt vergroten en deze de volgende week wilt herstellen, zet weekenddelete=false.

extern bool weekenddelete = false;//true: verwijderen false: aanpassen

4. Weekendmodus begin- en eindtijd (5 betekent vrijdag, 7 betekent zondag (de tijd is GMT, mogelijk moet je dit aanpassen aan je lokale tijd, de standaardinstellingen werken goed in Beijing-tijd):

// trading eindtijd op vrijdag
extern int weekendbeginday = 5;
extern string weekendbegintime = "20:30";// vrijdag 20:30
extern int weekendendday = 7;
extern string weekendendtime = "23:30";// zondag 20:30

5. Alle symbolen (misschien niet handelssymbool) waarvan je de RSI-waarde wilt ontvangen (>70 of <30) en regelmatig rapporteren. Uiteraard, je moet AUDJPYm aanpassen als je account geen mini-account is.

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. RSI-configuratie:

//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. Gebruik magicweekendexpiration om de weekendmodus te identificeren, als iemand een betere manier heeft, laat het me graag weten.

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

8. Overige:

Als het aanpassen naar weekendmodus mislukt, zal de EA een e-mail sturen en maximaal MAX_MODIFY_TRY_TIME(100 standaard) keren proberen tot het is gelukt.

Er is geen stop loss toegepast, en als een kleine verliesorder (minimale koop- of maximale verkooporder) van één symbool de pendingpips overschrijdt, zal de EA een andere order van hetzelfde symbool pending maken.

In testmodus, als het eigen vermogen minder dan 95% van het saldo is, schrijft de EA de status naar waarschuwingsbestanden.

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

Als je bugs hebt gevonden of suggesties hebt, laat het me weten!

Lijst
Reactie 0