//+------------------------------------------------------------------+ //| 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* TimeSeries(); ITimeSeries* OpenSeries(); ITimeSeries* HighSeries(); ITimeSeries* LowSeries(); ITimeSeries* CloseSeries(); ITimeSeries* VolumeSeries(); ITimeSeries* TickVolumeSeries(); // Returns the total number of bars loaded int Size(); }; //+------------------------------------------------------------------+