mql5/Experts/testRefactor2/ClosedPositions.mqh
2026-02-01 21:39:33 +01:00

51 lines
1.5 KiB
MQL5

//+------------------------------------------------------------------+
//| ClosedPositions.mqh – kolekce zavřených pozic |
//+------------------------------------------------------------------+
#property copyright "TestRefactor"
#property strict
#ifndef __CLOSED_POSITIONS_MQH__
#define __CLOSED_POSITIONS_MQH__
#include "ClosedPosition.mqh"
//+------------------------------------------------------------------+
//| CClosedPositions – kolekce CClosedPosition (historie / dashboard)|
//+------------------------------------------------------------------+
class CClosedPositions {
private:
CClosedPosition m_items[];
int m_count;
int m_maxSize;
public:
CClosedPositions(int maxSize = 100) : m_count(0), m_maxSize(maxSize) {
ArrayResize(m_items, 0);
}
void Add(const CClosedPosition &item) {
if(m_count >= m_maxSize) {
for(int i = 0; i < m_count - 1; i++) m_items[i] = m_items[i + 1];
m_items[m_count - 1] = item;
} else {
ArrayResize(m_items, m_count + 1);
m_items[m_count] = item;
m_count++;
}
}
int Count() const { return m_count; }
CClosedPosition* At(int index) {
if(index < 0 || index >= m_count) return NULL;
return GetPointer(m_items[index]);
}
double GetTotalProfit() const {
double sum = 0;
for(int i = 0; i < m_count; i++)
sum += m_items[i].GetNetProfit();
return sum;
}
};
#endif