UTE/Strategy/SessionInfo.mqh
super.admin bd7e405a90 convert
2025-05-30 16:34:43 +02:00

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);
}