//+----------------------------------------------------------------------------+ //| TradingDaysFilter.mq4 | //| Copyright © 2010, Robert Hill | //| | //+----------------------------------------------------------------------------+ #property copyright "Copyright © 2010, Robert Hill" #property link "" #include #include extern int MagicNumber = 54321; extern string sd0="--Trading Days Filter--"; extern string sd2="UseTradingDays - Enter 0 for false, 1 for true"; extern int UseTradingDays = 1; extern int TradeSun = 0; extern int TradeMon = 1; extern int TradeTues = 1; extern int TradeWeds = 1; extern int TradeThurs = 1; extern int TradeFri = 1; int init() { return(0); } int deinit() { return(0); } int start() { bool YesStop; int NumOrders; RefreshRates(); NumOrders = CalculateCurrentOrders(Symbol(), MagicNumber); if (NumOrders == 0) { YesStop = CheckTradeFilters(); if (YesStop == false) { OpenNewPositions(); } } else { HandleOpenPositions(); } return(0); } bool CheckTradeFilters() { bool myStop; myStop = false; if (myStop == false) { myStop = CheckTradingDays(); } return(myStop); } bool CheckTradingDays() { if (UseTradingDays == 1) { switch(DayOfWeek()) { case 0 : if (TradeSun == 0) return(true); break; case 1 : if (TradeMon == 0) return(true); break; case 2 : if (TradeTues == 0) return(true); break; case 3 : if (TradeWeds == 0) return(true); break; case 4 : if (TradeThurs == 0) return(true); break; case 5 : if (TradeFri == 0) return(true); } } return(false); } int CalculateCurrentOrders(string mySymbol, int MagicNumber) { int buys = 0, sells = 0, num = 0; for(int i=0;i