//+------------------------------------------------------------------+ //| Calculate total profit of all positions | //+------------------------------------------------------------------+ double CalculateBasketProfit() { double total_profit = 0; int total_positions = PositionsTotal(); for(int i = total_positions - 1; i >= 0; i--) { if(PositionGetSymbol(i) == _Symbol && PositionGetInteger(POSITION_MAGIC) == 123456) { total_profit += PositionGetDouble(POSITION_PROFIT) + PositionGetDouble(POSITION_SWAP); } } return total_profit; } //+------------------------------------------------------------------+ //| Calculate total profit as percentage of account equity | //+------------------------------------------------------------------+ double CalculateBasketProfitPercent() { double account_equity = AccountInfoDouble(ACCOUNT_EQUITY); double basket_profit = CalculateBasketProfit(); if(account_equity <= 0) return 0; return (basket_profit / account_equity) * 100.0; }