Ejemplo de cálculo del tamaño del lote con un nivel fijo de margen. Es decir, si establecemos un 10%, se abrirá un tamaño del margen que será el 10% del margen libre.
Parámetros de entrada:
Para la simulación comercial se ha organizado el siguiente ciclo:
El valor inicial count=-21 se establece únicamente para el "calentamiento" del simulador de estrategias. A continuación, se calcula el resto de la división de la variable count por el número 980 (una cifra tomada al azar). En otras palabras, cada 980 ticks se realiza la pasada en el ciclo de cálculo del lote teniendo en cuenta los riesgos de la transacción.
El propio ciclo de cálculo de lote dependiendo del riesgo de la transacción (cálculo para la posición Buy) representa:
Primer paso
en la variable check_open_long_lot con la ayuda del método CheckOpenLong de la clase CMoneyFixedMargin obtenemos el tamaño calculado del lote para la posición Buy teniendo en cuenta el StopLoss:
En el diario de expertos se imprimen estos parámetros: el StopLoss, el tamaño calculado del lote dependiendo del riesgo de la transacción, el balance de la cuenta comercial en el momento del cálculo, la cantidad de recursos en la cuenta en el momento del cálculo, el tamaño de los recursos reservados como fianza en el momento del cálculo.
Si el cálculo ha retornado el valor "0.0", salimos:
Segundo paso
En la variable chek_volime_lot con la ayuda del método CheckVolume de la clase CTrade obtenemos el tamaño del lote para la posición Buy, para la que nos bastarán los recursos. Aquí rehacemos estos parámetros: m_symbol.Name() nombre del símbolo, check_open_long_lot volumen de la posición que queremos abrir (este parámetro lo hemos calculado con anterioridad):
Tercer paso
Si el método CheckVolume ha retornado algo diferente a "0.0", tenemos que comprobar la condición: no tenemos suficientes recursos para abrir una posición del lote calculado teniendo en cuenta el riesgo.
Si hay recursos suficientes, abrimos las posiciones, si no los hay, en el diario de expertos se registrará el tamaño del lote calculado teniendo en cuenta el riesgo de la transacción (DoubleToString(check_open_long_lot,2)) y el tamaño de lote para el que hay recursos suficientes (DoubleToString(chek_volime_lot,2)).
Ejemplo de apertura de posición Buy, con un 10% de riesgo en el margen libre:

En este caso, se registrará en el diario:
Preste atención a que al calcular el lote dependiendo del riesgo de margen libre, el StopLoss no importa.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/17282
Buy sell volume
Volúmenes Buy y sell.
Corr velocity
Indicador Velocity "corregido" (Momentum suavizado).
RSI EA
RSI EA - comercio con los niveles de sobrecompra/sobreventa según el indicador iRSI (Relative Strength Index, RSI).
MA Reverse
Comercio con Moving Average. Comprobando si hay fondos suficientes.