Gestión del dinero: tutorial de tamaño de lote-mql

Gestión del dinero: tutorial de tamaño de lote-mql

[ad_1]

Introducción

mql4 lección-wetalktrade

Es posible que ya haya escuchado esto, pero elegir el tamaño de lote apropiado para su sistema de comercio es un ingrediente clave para desarrollar un buen sistema. Puede especificar un tamaño de lote tan simplemente como declarar uno en una variable interna como un tamaño de lote fijo para cada pedido, pero exploraremos un método simple que calcula el tamaño del lote en función de un porcentaje de su margen libre.

Hay un poco de matemáticas detrás de escena, pero básicamente, si elige una configuración de riesgo personalizada de 1, intercambiará 0.01 micro lotes por cada 1K en tamaño de capital. Por lo tanto, con una configuración de riesgo personalizada de 2 y un tamaño de cuenta de 10K, comenzará con 0.2 lotes y automáticamente sumará / restará 0.01 lote por cada $ 100 en ganancias / pérdidas. Esta técnica de tamaño de lote automático es tan simple como parece, pero muy efectiva para aumentar automáticamente sus ganancias, descomponer sus pérdidas o ajustar automáticamente los depósitos y retiros en la cuenta.

Parámetros

MM

Bool: Si utilizará la administración de dinero o no.

Riesgo

Doble: su configuración de riesgo predefinida.

Lotes

Doble: si MM está desactivado, este es el tamaño de lote manual que utilizará.

LotDigits

Doble: Este es el número de lugares decimales para los lotes proporcionados por su corredor. La mayoría tiene dos lugares decimales, pero algunos tienen uno.

Fragmentos de código MT4

extern bool MM = VERDADERO;
riesgo doble externo = 2;
Lotes dobles externos = 0,1;
Extern double LotDigits = 2;
doble GetLots ()

{
minlot doble = MarketInfo (Symbol (), MODE_MINLOT);
maxlot doble = MarketInfo (Símbolo (), MODE_MAXLOT);
apalancamiento doble = AccountLeverage ();
doble tamaño de lote = MarketInfo (Symbol (), MODE_LOTSIZE);
double stoplevel = MarketInfo (Symbol (), MODE_STOPLEVEL);

double MinLots = 0.01; double MaximalLots = 50.0;

si (MM)
{
lotes dobles = lotes;

lotes dobles = NormalizeDouble (AccountFreeMargin () * Risk / 100 / 1000.0, LotDigits);
if (lotes if (lotes> MaximalLots) lotes = MaximalLots;
if (AccountFreeMargin () Imprimir (“No tenemos dinero. Lotes =”, lotes “, Margen libre =”, AccountFreeMargin ());
Comentario (“No tenemos dinero. Lotes =”, lotes “, Margen libre =”, AccountFreeMargin ());
}}
else lotes = NormalizarDoble (lotes, dígitos);
retorno (lotes);
}

Verá que primero tuvimos que declarar una serie de variables externas para determinar si deberíamos haber activado la gestión (cierto) o fuera (falso), cuál será nuestra configuración de riesgo personalizada si está activada, y si no, cuál será el tamaño de lote predeterminado.

LotDigits es cuántos lugares decimales permite su corredor (por ejemplo, si permite micro lotes, como 0.01, tendría 2 dígitos o lugares decimales).

Obtener muchos() es el nombre que le hemos dado a nuestra función personalizada Así que todo el o (podría haber sido cualquier nombre), y todo lo que está subsumido entre sus paréntesis es un cálculo de esta función. Simplemente colocarás Obtener muchos() en el tercer parámetro de la función OrderSend () para invocarlo, reemplazando la variable de lotes fija que estaba allí antes.

Creamos un minlot variable para hacer referencia al MarketInfo () función. La MarketInfo () La función es la función que necesitamos para recuperar varios datos de mercado de la divisa dada, como el precio Bid o Ask, el valor Swap, la cantidad de dígitos y, para nuestros propósitos, también puede indicarnos el tamaño mínimo de lote para esa divisa. . Queremos asegurarnos de que cualquier cálculo de lote que se realice, sea mayor que el tamaño de lote mínimo del corredor; de lo contrario, será menor que el lote mínimo, será el lote mínimo.

El cálculo principal del lote MM automático ocurre en una línea:

lotes dobles = NormalizeDouble (AccountEquity () * Risk / 100 / 1000.0, LotDigits);

AccountEquity () es una de las muchas funciones de información de cuenta que devuelve el valor patrimonial de la cuenta corriente. Queremos devolver el valor patrimonial de la cuenta, a diferencia del Saldo de la cuenta(), porque la equidad representa una imagen más válida del estado de la cuenta (también conocido como el valor neto de la cuenta). Queremos que el valor patrimonial lleve a cabo nuestras matemáticas sobre el tamaño de lote apropiado. Vamos a multiplicar este valor de capital con nuestro valor de riesgo, luego dividir por 100, y luego dividirlo por 1000, para determinar el tamaño de lote apropiado.

El efecto es el tamaño de lote proporcional, basado en la configuración de riesgo elegida: hace una configuración de riesgo de 1 operación 0.01 lotes por 1K en acciones, una configuración de riesgo de 2 operaciones 0.02 lotes por 1K en acciones, etc. Hay una gran cantidad de posibilidades , dependiendo de la configuración de riesgo elegida. Los lotes se agregan o restan a la cuenta a medida que crece o disminuye de tamaño. Por ejemplo, una configuración de riesgo de 2 negociaría 0,2 lotes en una cuenta de 10K y sumaría / restaría 0,01 lote por cada $ 100 de ganancia o pérdida en capital. El usuario puede ajustar fácilmente una configuración de riesgo que sea adecuada a su tolerancia al riesgo, estilo de negociación de EA y tamaño de cuenta.

Si MM se establece en verdadero, calcularemos el tamaño del lote en función del capital y asignaremos ese valor a la variable lotes. Si MM es falso, simplemente asignamos el valor de los lotes al tamaño de lote fijo de Lotes.

Puede ver que el código anterior es relativamente simple, pero puede marcar una gran diferencia en el tamaño de lote automático basado en un tamaño de capital cambiante. Hay formas más complicadas de determinar el tamaño de un lote, pero a veces los métodos más simples funcionan mejor.



[ad_2]

Source link

Deja una respuesta