//+------------------------------------------------------------------+ //| 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 | //+------------------------------------------------------------------+ void CSessionInfo::Symbol(string symbol) { m_symbol = symbol; } //+------------------------------------------------------------------+ //| Количество сделок в текущей сессии | //+------------------------------------------------------------------+ long CSessionInfo::DealsTotal(void) { return SymbolInfoInteger(m_symbol, SYMBOL_SESSION_DEALS); } //+------------------------------------------------------------------+ //| Общее число ордеров на покупку в текущий момент | //+------------------------------------------------------------------+ long CSessionInfo::BuyOrdersTotal(void) { return SymbolInfoInteger(m_symbol, SYMBOL_SESSION_BUY_ORDERS); } //+------------------------------------------------------------------+ //| Общее число ордеров на продажу в текущий момент | //+------------------------------------------------------------------+ long CSessionInfo::SellOrdersTotal(void) { return SymbolInfoInteger(m_symbol, SYMBOL_SESSION_SELL_ORDERS); } //+------------------------------------------------------------------+ //| Максимальный объем за текущую торговую сессию | //+------------------------------------------------------------------+ long CSessionInfo::HighVolume(void) { return SymbolInfoInteger(m_symbol, SYMBOL_VOLUMEHIGH); } //+------------------------------------------------------------------+ //| Минимальный объем за текущую торговую сессию | //+------------------------------------------------------------------+ long CSessionInfo::LowVolume(void) { return SymbolInfoInteger(m_symbol, SYMBOL_VOLUMELOW); } //+------------------------------------------------------------------+ //| Максимальный Bid за день | //+------------------------------------------------------------------+ double CSessionInfo::BidHigh(void) { return SymbolInfoDouble(m_symbol, SYMBOL_BIDHIGH); } //+------------------------------------------------------------------+ //| Максимальный Ask за день | //+------------------------------------------------------------------+ double CSessionInfo::AskHigh(void) { return SymbolInfoDouble(m_symbol, SYMBOL_ASKHIGH); } //+------------------------------------------------------------------+ //| Минимальный Bid за день | //+------------------------------------------------------------------+ double CSessionInfo::BidLow(void) { return SymbolInfoDouble(m_symbol, SYMBOL_BIDLOW); } //+------------------------------------------------------------------+ //| Минимальный Ask за день | //+------------------------------------------------------------------+ double CSessionInfo::AskLow(void) { return SymbolInfoDouble(m_symbol, SYMBOL_ASKLOW); } //+------------------------------------------------------------------+ //| Максимальный Last за день | //+------------------------------------------------------------------+ double CSessionInfo::LastHigh(void) { return SymbolInfoDouble(m_symbol, SYMBOL_LASTHIGH); } //+------------------------------------------------------------------+ //| Минимальный Last за день | //+------------------------------------------------------------------+ double CSessionInfo::LastLow(void) { return SymbolInfoDouble(m_symbol, SYMBOL_LASTLOW); } //+------------------------------------------------------------------+ //| Cуммарный объём сделок в текущую сессию | //+------------------------------------------------------------------+ double CSessionInfo::VolumeTotal(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_VOLUME); } //+------------------------------------------------------------------+ //| Cуммарный оборот в текущую сессию | //+------------------------------------------------------------------+ double CSessionInfo::TurnoverTotal(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_TURNOVER); } //+------------------------------------------------------------------+ //| Cуммарный объём открытых позиций | //+------------------------------------------------------------------+ double CSessionInfo::OpenInterestTotal(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_INTEREST); } //+------------------------------------------------------------------+ //| Общий объём ордеров на покупку в текущий момент | //+------------------------------------------------------------------+ double CSessionInfo::BuyOrdersVolume(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_BUY_ORDERS_VOLUME); } //+------------------------------------------------------------------+ //| Общий объём ордеров на продажу в текущий момент | //+------------------------------------------------------------------+ double CSessionInfo::SellOrdersVolume(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_SELL_ORDERS_VOLUME); } //+------------------------------------------------------------------+ //| Цена открытия сессии | //+------------------------------------------------------------------+ double CSessionInfo::PriceSessionOpen(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_OPEN); } //+------------------------------------------------------------------+ //| Цена закрытия сессии | //+------------------------------------------------------------------+ double CSessionInfo::PriceSessionClose(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_CLOSE); } //+------------------------------------------------------------------+ //| Средневзвешенная цена сессии | //+------------------------------------------------------------------+ double CSessionInfo::PriceSessionAverage(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_AW); } //+------------------------------------------------------------------+ //| Цена поставки на текущую сессию | //+------------------------------------------------------------------+ double CSessionInfo::PriceSettlement(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_PRICE_SETTLEMENT); } //+------------------------------------------------------------------+ //| Максимально допустимое значение цены на сессию | //+------------------------------------------------------------------+ double CSessionInfo::PriceLimitMax(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_PRICE_LIMIT_MAX); } //+------------------------------------------------------------------+ //| Минимально допустимое значение цены на сессию | //+------------------------------------------------------------------+ double CSessionInfo::PriceLimitMin(void) { return SymbolInfoDouble(m_symbol, SYMBOL_SESSION_PRICE_LIMIT_MIN); }