¿Puede alguien explicarme cómo este EA calcula el tamaño del lote para cada operación porque lo entiendo muy poco en los idiomas mt4?

//| Calcular el tamaño de lote óptimo |
// ----------------------------------------------- -------------------
doble LotsOptimized ()
{
doble lote = Lotes;
int orders = HistoryTotal ();/pedidos de historial en total
pérdidas int = 0;/número de órdenes de pérdidas sin interrupción
//---- seleccionar tamaño del lote
lot = NormalizeDouble (AccountFreeMargin () * MaximumRisk1000.0,1);
//---- calcula el número de órdenes de pérdidas sin un descanso
if (DecreaseFactorlt; 0)
{
para (int i = orders-1; igt; = 0; i--)
{
if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == falso) {Print (¡Error en el historial!); descanso; }
if (OrderSymbol ()! = Symbol () || OrderType () gt; OP_SELL) continue;
//----
if (OrderProfit () gt; 0) break;
if (OrderProfit () lt; 0) pérdidas ;
}
if (lossesgt; 1) lot = NormalizeDouble (lot-lot * lossesDecreaseFactor, 1);
}
//---- tamaño del lote de devolución
if (lotlt; 0.01) lot = 0.01;
regreso (lote);