помогите с организацией расчета прибыли

 

Есть советник. Торгует к примеру по 7ми парам. на каждую пару есть 5 видов настроек одной стратегии, т.е.  каждая стратегия имеет свой магик. 
Нужно посчитать профит по каждому символу и магику. 

алгоритм примерно себе представляю: 

перебираем все сделки OUT, через POSITION_ID получаем магик и символ и высчитываем прибыль как

profit = (Deal.Profit() + Deal.Swap()+Deal.Comission()*2;


Хотелось бы получить что-то типа: 

profit.sym[AUDUSD].mag[1] = 10.25;

profit.sym[EURUSD].mag[4] = 153.05;

ну и т.д. 
Как организовать такую структуру или класс ? 

 
class MAGIC
{
private:
  string Symb;
  datetime From;

  double GetProfit( const ulong &Magic ) const
  {
    // расчет профита по мэджику (Magic) и символу (this.Symb) от определенной даты (this.From).
    return(0);
  }
  
public:
  MAGIC( const datetime dFrom = 0 ) : Symb(NULL), From(dFrom)
  {
  }
  
  void operator =( const string &sSymb )  
  {
    this.Symb = sSymb;
  }

  void operator =( const datetime &dFrom )  
  {
    this.From = dFrom;
  }
  
  double operator []( const ulong Magic ) const
  {
    return(this.GetProfit(Magic));
  }
};

class PROFIT
{
private:
  MAGIC MagicProfit;
  
public:
  PROFIT( const datetime From = 0 ) : MagicProfit(From)
  {
  }
  
  const MAGIC* const operator []( const string Symb )
  {
    this.MagicProfit = Symb;
    
    return(&this.MagicProfit);
  }
  
  void SetTimeFrom( const datetime From )
  {
    this.MagicProfit = From;
  }
};

void OnStart()
{
  PROFIT Profit;  
  Profit.SetTimeFrom(D'2021.09.01');
  
  Print(Profit["EURUSD"][1]);
  
  PROFIT Profit2(D'2021.01.01');
  
  Print(Profit2["AUDUSD"][3]);
}
Причина обращения: