Orders Execution
0
Views
0
Downloads
0
Favorites
TradingTimes
//+------------------------------------------------------------------+
//| TradingTimes.mq4 |
//| |
//+------------------------------------------------------------------+
#property copyright "Robert Hill"
extern int MagicID = 12345;
extern string sm0="--Trading Hours Filter--";
extern string sm1=" Times are your chart times";
extern string sm2="UseTradingHours - Enter 0 for false, 1 for true";
extern int UseTradingHours = 0;
extern string sm4="TradeAsian - Enter 0 for false, 1 for true";
extern int TradeAsianMarket = 1;
extern int AsianStart = 2200; // Start trades after time
extern int AsianStop = 100; // Stop trading after time
extern string sm5="Trade Europe - Enter 0 for false, 1 for true";
extern int TradeEuropeanMarket = 1;
extern int EurStart = 700; // Start trades after time
extern int EurStop = 900; // Stop trading after time
extern string sm6="Trade NY - Enter 0 for false, 1 for true";
extern int TradeNewYorkMarket = 0;
extern int NYStart = 1300; // Start trades after time
extern int NYStop = 1500; // Stop trading after time
bool YesStop;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//////////////////////////////////////////////////////////////////////
int start()
{
int NumOrders = 0;
NumOrders = CalculateCurrentOrders();
if(NumOrders == 0)
{
YesStop = false;
if (UseTradingHours == 1)
{
YesStop = CheckTradingTimes();
if (YesStop == true)
{
Comment ("Trading has been stopped - wrong time of day");
}
else
{
Comment ("Trading has resumed - time is OK");
}
}
else
Comment ("Trading Time Filter not in use");
if (YesStop == false)
{
// Add code here to place trades
}
}
else
{
// Add code here to modify or close trades
}
return(0);
}
//+------------------------------------------------------------------+
// Return true if time is not in session for trading
bool CheckOutsideSession( int StartHour, int EndHour, int ct)
{
if(StartHour<=EndHour)
{
if(ct < StartHour || ct > EndHour) return(true) ;
}
else
{
if(ct > EndHour && ct < StartHour) return(true) ;
}
return(false) ;
}
bool CheckTradingTimes()
{
bool StopTrading;
int ct;
ct = Hour() * 100 + Minute();
StopTrading = true;
// Check trading Asian Market
if (TradeAsianMarket == 1)
{
StopTrading = CheckOutsideSession(AsianStart, AsianStop, ct);
}
if (StopTrading == true)
{
// Check trading European Market
if (TradeEuropeanMarket == 1)
{
StopTrading = CheckOutsideSession(EurStart, EurStop, ct);
}
}
if (StopTrading == true)
{
// Check trading New York Market
if (TradeNewYorkMarket == 1)
{
StopTrading = CheckOutsideSession(NYStart, NYStop, ct);
}
}
return(StopTrading);
}
int CalculateCurrentOrders()
{
int buys = 0, sells = 0, num = 0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!= Symbol()) continue;
if (OrderMagicNumber()!= MagicID) continue;
if(OrderType() == OP_BUY) buys++;
if(OrderType() == OP_SELL) sells++;
}
num = buys + sells;
return(num);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---