44 行
2 KiB
MQL5
44 行
2 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| Bar.mqh |
|
|
//| |
|
|
//| KnitPkg for MetaTrader |
|
|
//| |
|
|
//| MIT License |
|
|
//| Copyright (c) 2025 Douglas Rechia |
|
|
//| |
|
|
//| Generic interface for unified bar data access (OHLCV). |
|
|
//| Defines contracts for accessing individual bar values and |
|
|
//| typed series objects. |
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
|
|
#include "TimeSeries.mqh"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| IBar — interface for bar data providers
|
|
//+------------------------------------------------------------------+
|
|
interface IBar
|
|
{
|
|
public:
|
|
// Individual bar accessors (shift = 0 is the most recent bar)
|
|
datetime Time(int shift = 0);
|
|
double Open(int shift = 0);
|
|
double High(int shift = 0);
|
|
double Low(int shift = 0);
|
|
double Close(int shift = 0);
|
|
long Volume(int shift = 0);
|
|
long TickVolume(int shift = 0);
|
|
|
|
// Typed series accessors
|
|
ITimeSeries<datetime>* TimeSeries();
|
|
ITimeSeries<double>* OpenSeries();
|
|
ITimeSeries<double>* HighSeries();
|
|
ITimeSeries<double>* LowSeries();
|
|
ITimeSeries<double>* CloseSeries();
|
|
ITimeSeries<long>* VolumeSeries();
|
|
ITimeSeries<long>* TickVolumeSeries();
|
|
|
|
// Returns the total number of bars loaded
|
|
int Size();
|
|
};
|
|
//+------------------------------------------------------------------+
|