mql4-bar/knitpkg/include/douglasrechia/bar/Bar.mqh
2026-02-03 10:27:54 -03:00

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();
};
//+------------------------------------------------------------------+