Files
2018-06-20 15:35:55 +02:00

200 lines
17 KiB
Plaintext

//+------------------------------------------------------------------+
//| SessionInfo.mqh |
//| Copyright 2016, Vasiliy Sokolov. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Vasiliy Sokolov."
#property link "http://www.mql5.com"
//+------------------------------------------------------------------+
//| Session info |
//+------------------------------------------------------------------+
class CSessionInfo
{
private:
string m_symbol;
public:
void Symbol(string symbol);
long DealsTotal(void);
long BuyOrdersTotal(void);
long SellOrdersTotal(void);
long HighVolume(void);
long LowVolume(void);
double BidHigh(void);
double AskHigh(void);
double BidLow(void);
double AskLow(void);
double LastHigh(void);
double LastLow(void);
double VolumeTotal(void);
double TurnoverTotal(void);
double OpenInterestTotal(void);
double BuyOrdersVolume(void);
double SellOrdersVolume(void);
double PriceSessionOpen(void);
double PriceSessionClose(void);
double PriceSessionAverage(void);
double PriceSettlement(void);
double PriceLimitMax(void);
double PriceLimitMin(void);
};
//+------------------------------------------------------------------+
//| Set symbol |
//+------------------------------------------------------------------+
CSessionInfo::Symbol(string symbol)
{
m_symbol = symbol;
}
//+------------------------------------------------------------------+
//| The number of deals in the current session |
//+------------------------------------------------------------------+
long CSessionInfo::DealsTotal(void)
{
return SymbolInfoInteger(m_symbol, SYMBOL_SESSION_DEALS);
}
//+------------------------------------------------------------------+
//| The total number of Buy orders at the moment |
//+------------------------------------------------------------------+
long CSessionInfo::BuyOrdersTotal(void)
{
return SymbolInfoInteger(m_symbol, SYMBOL_SESSION_BUY_ORDERS);
}
//+------------------------------------------------------------------+
//| The total number of Sell orders at the moment |
//+------------------------------------------------------------------+
long CSessionInfo::SellOrdersTotal(void)
{
return SymbolInfoInteger(m_symbol, SYMBOL_SESSION_SELL_ORDERS);
}
//+------------------------------------------------------------------+
//| The highest volume during the current trading session |
//+------------------------------------------------------------------+
long CSessionInfo::HighVolume(void)
{
return SymbolInfoInteger(m_symbol, SYMBOL_VOLUMEHIGH);
}
//+------------------------------------------------------------------+
//| The lowest volume during the current trading session |
//+------------------------------------------------------------------+
long CSessionInfo::LowVolume(void)
{
return SymbolInfoInteger(m_symbol, SYMBOL_VOLUMELOW);
}
//+------------------------------------------------------------------+
//| The highest Bid price of the day |
//+------------------------------------------------------------------+
double CSessionInfo::BidHigh(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_BIDHIGH);
}
//+------------------------------------------------------------------+
//| The highest Ask price of the day |
//+------------------------------------------------------------------+
double CSessionInfo::AskHigh(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_ASKHIGH);
}
//+------------------------------------------------------------------+
//| The lowest Bid price of the day |
//+------------------------------------------------------------------+
double CSessionInfo::BidLow(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_BIDLOW);
}
//+------------------------------------------------------------------+
//| The lowest Ask price of the day |
//+------------------------------------------------------------------+
double CSessionInfo::AskLow(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_ASKLOW);
}
//+------------------------------------------------------------------+
//| The highest Last price of the day |
//+------------------------------------------------------------------+
double CSessionInfo::LastHigh(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_LASTHIGH);
}
//+------------------------------------------------------------------+
//| The lowest Last price of the day |
//+------------------------------------------------------------------+
double CSessionInfo::LastLow(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_LASTLOW);
}
//+------------------------------------------------------------------+
//| The total volume of deals in the current session |
//+------------------------------------------------------------------+
double CSessionInfo::VolumeTotal(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_VOLUME);
}
//+------------------------------------------------------------------+
//| The total turnover in the current session |
//+------------------------------------------------------------------+
double CSessionInfo::TurnoverTotal(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_TURNOVER);
}
//+------------------------------------------------------------------+
//| The total volume of open positions |
//+------------------------------------------------------------------+
double CSessionInfo::OpenInterestTotal(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_INTEREST);
}
//+------------------------------------------------------------------+
//| The total volume of Buy orders at the moment |
//+------------------------------------------------------------------+
double CSessionInfo::BuyOrdersVolume(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_BUY_ORDERS_VOLUME);
}
//+------------------------------------------------------------------+
//| The total volume of Sell orders at the moment |
//+------------------------------------------------------------------+
double CSessionInfo::SellOrdersVolume(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_SELL_ORDERS_VOLUME);
}
//+------------------------------------------------------------------+
//| The open price of the session |
//+------------------------------------------------------------------+
double CSessionInfo::PriceSessionOpen(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_OPEN);
}
//+------------------------------------------------------------------+
//| The close price of the session |
//+------------------------------------------------------------------+
double CSessionInfo::PriceSessionClose(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_CLOSE);
}
//+------------------------------------------------------------------+
//| The average weighted price of the session |
//+------------------------------------------------------------------+
double CSessionInfo::PriceSessionAverage(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_AW);
}
//+------------------------------------------------------------------+
//| The settlement price of the current session |
//+------------------------------------------------------------------+
double CSessionInfo::PriceSettlement(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_PRICE_SETTLEMENT);
}
//+------------------------------------------------------------------+
//| The maximum allowable price value for the session |
//+------------------------------------------------------------------+
double CSessionInfo::PriceLimitMax(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_PRICE_LIMIT_MAX);
}
//+------------------------------------------------------------------+
//| The minimum allowable price value for the session |
//+------------------------------------------------------------------+
double CSessionInfo::PriceLimitMin(void)
{
return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_PRICE_LIMIT_MIN);
}