200 lines
No EOL
18 KiB
MQL5
200 lines
No EOL
18 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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);
|
|
} |