200 lines
17 KiB
Plaintext
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);
|
|
} |