¿Cómo se calcula el tamaño del lote? - página 3

 
chaffinsjc:

Digamos que mi mini cuenta tiene un margen de 10.000 dólares, y quiero arriesgar un 2% en la próxima operación (es decir, simplemente usar 200 dólares para comprar <alguna cantidad> de contratos).

[Me doy cuenta de que esta es una visión limitada del "riesgo". No me interesan los pips de stopLoss, ni los objetivos de beneficios, ni nada por el estilo].

Usando MetaTrader, obtengo la siguiente información de la mini cuenta de mi corredor:

accountLeverage = AccountLeverage(); // valor = 200
modeLotSize = MarketInfo("EURUSDm", MODE_LOTSIZE); // valor = 10000
modeLotStep = MarketInfo("EURUSDm", MODE_LOTSTEP); // valor = .01
modeMinLot = MarketInfo("EURUSDm", MODE_MINLOT) ); // valor = .01

PREGUNTA: ¿Cómo puedo calcular el tamaño del lote para 200 dólares? (Sería útil saber el coste de un lote de tamaño mínimo. En este caso, el lote de tamaño mínimo es de 0,01).

PREGUNTA: ¿La fórmula de cálculo del tamaño del lote es la misma para todos los pares de divisas?

Muchas gracias de antemano.


Te envío una buena calculadora de tamaño de lote basada en la equidad y no en el balance. Es mejor si usted tiene más de un comercio.

 
Te envío mi cálculo del tamaño del lote. Se basa en la equidad y no en el balance. Es mejor si usted utiliza más de 1 comercio juntos.
Archivos adjuntos:
 

En la documentación :

MODE_TICKVALUE

16

Valor del tick en la moneda del depósito

MODE_TICKSIZE

17

Tamaño del tick en puntos


Para mi broker de cinco dígitos : mode_tickvalue = 1; mode_ticksize = 0.00001

Entonces, ¿por qué todo el mundo da esta línea :

   double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

¿No es un error?

 

Esto es incorrecto, mal escrito (?)

double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

Debería ser : si Dígitos == 5 Y si trabaja en Pips, entonces ....

if (Digits==3 || Digits==5) pipValue *= 10;

si alguien trabaja en Point, alguien no se preocupa por Pips.

 
ffoorr:

En la documentación :

MODE_TICKVALUE

16

Valor del tick en la moneda del depósito

MODE_TICKSIZE

17

Tamaño del tick en puntos


Para mi broker de cinco dígitos : mode_tickvalue = 1; mode_ticksize = 0.00001

Entonces, ¿por qué todo el mundo da esta línea :

¿No es un error?

   double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

Esto es sólo para cuando la gente introduce valores como pips. El punto no suele ser igual a 1 pip.
 
ffoorr:¿No es un error?

Hay Tick, PIP y Point. Todos ellos son diferentes en general. Un tick es el cambio más pequeño del precio. Un Punto es el dígito menos significativo cotizado. En las divisas un pip se define como 0,0001 (o para el JPY 0,01)

En un broker de 4 dígitos un punto (0,0001) = pip (0,0001). [En un corredor de 5 dígitos, un punto (0,00001) = 1/10 de pip (0,00010/10). El hecho de citar un dígito más no cambia el valor de un pip. (0.0001 == 0.00010) Los EA's deben ajustar los pips a puntos (para mq4.) En divisas un tick es un punto. El precio puede cambiar por el dígito menos significativo (1.23456 -> 1.23457)

En los metales un Tick sigue siendo el cambio más pequeño pero es mayor que un punto. Si el precio puede cambiar de 123,25 a 123,50, tiene un TickSize de 0,25 y un punto de 0,01. El pip no tiene ningún significado.

Esta es la razón por la que no se utiliza TickValue por sí mismo. Sólo como una relación con TickSize. Ver DeltaValuePerLot()

 
Roman Kramar:

El problema no está totalmente definido. Si dices que quieres arriesgar un 2% entonces tienes que fijar una de las variables: el nivel de stop loss o el volumen de la operación. Como estás preguntando por el cálculo del tamaño del lote, eso significa que no lo quieres fijo, pero eso requiere que te intereses por los pips de stop loss aunque digas que no lo haces. Si no tienes un stop loss entonces arriesgar el 2% significa tomar un tamaño de lote fijo, por ejemplo 1.0, y esperar hasta que tus pérdidas actuales alcancen el 2% del margen inicial. No es necesario calcular el tamaño del lote aquí como ves.


Una vez que el nivel de stop loss entra en la vista, el cálculo es simple:


double tradeVolume = AccountFreeMargin() * Risk/100 / ( StopLossPoints * MarketInfo( Symbol(), MODE_TICKVALUE ) );


Es decir, dado un nivel de stop loss para cualquier operación en particular, siempre tendrá el porcentaje especificado de su margen inicial perdido si se toma el stop loss.


También querrá normalizar el valor resultante mediante MODE_LOTSTEP y limitarlo con MODE_MINLOT y MODE_MAXLOT.

¿Cómo puedo calcular el tamaño de todas mis órdenes abiertas en USD?

 
magonicolas: ¿Cómo puedo calcular el tamaño de todas mis órdenes abiertas en USD?
  1. ¡No hagas un doble post! Ya tenías este hilo abierto.
    Normas generales y buenas prácticas del Foro. - General- Foro de programación MQL5

  2. No tiene ningún sentido. Cómo puedo calcular mi cuarto de galón en USD?

    Nunca arriesgues más que un pequeño porcentaje de tu cuenta, ciertamente menos del 2% por operación, 6% en total a la cuenta. El riesgo depende de su stop loss inicial, del tamaño del lote y del valor del par. No depende del margen ni del apalancamiento.
    1. Usted coloca el stop donde debe estar - donde la razón de la operación ya no es válida. Por ejemplo, al operar en un rebote de un soporte, el stop se sitúa por debajo del soporte.
    2. AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Tenga en cuenta que OOP-OSL incluye el spread, y DeltaPerLot suele ser de unos 10$/pip pero tiene en cuenta los tipos de cambio del par frente a la moneda de su cuenta).
    3. NO use TickValue por sí mismo - DeltaPerLot y verifique que MODE_TICKVALUE está devolviendo un valor en su moneda de depósito, como promete la documentación, o si está devolviendo un valor en la moneda base del instrumento.
      MODE_TICKVALUEno es fiable en los instrumentos que no son de divisas con muchos corredores - Foro de programación MQL4 2017.10.10
      Existeuna solución universal para el Tick value? -Pares de divisas - General - MQL5 foro de programación 2018.02.11
      Elcálculo del valor del lote se desvía por un factor de 100 - MQL5 programming forum 2019.07.19
    4. Debe normalizar los lotes adecuadamente y comprobar los mínimos y máximos.
    5. También debes comprobar el FreeMargin para evitar el stop out

    La mayoría de los pares valen alrededor de $10 por PIP. Un riesgo de $5 con un SL (muy pequeño) de 5 PIP es $5/$10/5 o 0.1 Lotes como máximo.

 
William Roeder:
  1. ¡No hagas un doble post! Ya tenías este hilo abierto.
    Normas generales y buenas prácticas del Foro. - General- Foro de programación MQL5

  2. No tiene ningún sentido. Cómo puedo calcular mi cuarto de galón en USD?

    Nunca arriesgues más que un pequeño porcentaje de tu cuenta, ciertamente menos del 2% por operación, 6% en total a la cuenta. El riesgo depende de su stop loss inicial, del tamaño del lote y del valor del par. No depende del margen ni del apalancamiento.
    1. Usted coloca el stop donde debe estar - donde la razón de la operación ya no es válida. Por ejemplo, al operar en un rebote de un soporte, el stop se sitúa por debajo del soporte.
    2. AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Tenga en cuenta que OOP-OSL incluye el spread, y DeltaPerLot suele ser de unos 10$/pip pero tiene en cuenta los tipos de cambio del par frente a la moneda de su cuenta).
    3. NO use TickValue por sí mismo - DeltaPerLot y verifique que MODE_TICKVALUE está devolviendo un valor en su moneda de depósito, como promete la documentación, o si está devolviendo un valor en la moneda base del instrumento.
      MODE_TICKVALUEno es fiable en los instrumentos que no son de divisas con muchos corredores - Foro de programación MQL4 2017.10.10
      Existeuna solución universal para el Tick value?-Pares de divisas - General - MQL5 foro de programación 2018.02.11
      Elcálculo del valor del lote se desvía por un factor de 100 - MQL5 programming forum 2019.07.19
    4. Debe normalizar los lotes adecuadamente y comprobar los mínimos y máximos.
    5. También debes comprobar el FreeMargin para evitar el stop out

    La mayoría de los pares valen alrededor de $10 por PIP. Un riesgo de $5 con un SL (muy pequeño) de 5 PIP es $5/$10/5 o 0.1 Lotes como máximo.

No estoy hablando de riesgo, sólo quiero saber la cantidad en USD de las órdenes abiertas.

 
magonicolas:

No estoy hablando de riesgo, sólo quiero saber la cantidad en USD de las órdenes abiertas.

Por favor, deje de publicar dos veces.