¿Cómo se calcula el margen? - página 5

 
Cómo calcular el apalancamiento programáticamente está escrito en el mismo hilo. En lugar de escribir una nota a pie de página, presta más atención a las respuestas a tus preguntas
 

Seguramente soy muy torpe con mis preguntas y por eso no estoy recibiendo las respuestas que espero. Perdóneme, el ruso es sólo en parte mi lengua materna. Pero lo intentaré de nuevo.

He leído con atención toda la rama. La respuesta a mi pregunta original fue dada - es imposible obtener el valor real de apalancamiento para una sola posición desde el terminal.

Pero también se mencionó que quizás el apalancamiento no cambia para estas posiciones, sino para un instrumento en su conjunto. Y ahora la única pregunta que me queda es cómo conseguir esa palanca del terminal. Siempre que sea diferente del apalancamiento total de la cuenta. No para calcular, sino exactamente para obtener el valor real.

Estaría muy bien que se hiciera ANTES de abrir la siguiente posición.

 
Janis Ozols:

Probablemente soy muy torpe con mis preguntas y por eso no estoy obteniendo las respuestas que espero. Perdóneme, el ruso es sólo en parte mi lengua materna. Pero lo intentaré de nuevo.

He leído con atención toda la rama. La respuesta a mi pregunta original fue dada - es imposible obtener el valor real de apalancamiento para una sola posición desde el terminal.

Pero también se mencionó que quizás el apalancamiento no cambia para estas posiciones, sino para un instrumento en su conjunto. Y ahora la única pregunta que me queda es cómo conseguir esa palanca del terminal. Siempre que sea diferente del apalancamiento total de la cuenta. No para calcular, sino exactamente para obtener el valor real.

Estaría bien que lo hicieras ANTES de abrir la siguiente posición.

El corredor le dijo - puede cambiarlo DESPUÉS

y ANTES - todo está ya escrito arriba, pero hay que calcular

 
Renat Akhtyamov:

Su corredor le dijo - puede cambiarlo DESPUÉS de
y ANTES - está todo escrito arriba, pero hay que calcular

Así que quiero averiguar cómo puedo obtener el apalancamiento real para un símbolo DESPUÉS de que el corredor lo haya cambiado, pero ANTES de que se abra la siguiente posición en ese símbolo. Todavía no soy capaz de calcularlo correctamente. Porque todas las fórmulas de cálculo presentadas anteriormente contienen el apalancamiento de la cuenta (que no cambia) o la cantidad de margen de la configuración del símbolo (que tampoco ha cambiado).

 
Janis Ozols:

Bien, entonces me pregunto cómo puedo obtener el apalancamiento real de un símbolo DESPUÉS de que el broker lo haya cambiado, pero ANTES de que se abra la siguiente posición en ese símbolo. Todavía no soy capaz de calcularlo correctamente. Porque todas las fórmulas de cálculo presentadas anteriormente contienen el apalancamiento de la cuenta (que no ha cambiado) o el importe del margen de la configuración del símbolo (que tampoco ha cambiado).

Vamos

apalancamiento real:

https://www.mql5.com/ru/forum/353040/page2#comment_18675097

apalancamiento en el cálculo del margen

https://www.mql5.com/ru/forum/353040/page4#comment_18728440

y estás de suerte.

;)

Как вычислить маржу?
Как вычислить маржу?
  • 2020.10.09
  • www.mql5.com
Добрый день! Внезапно столкнулся с ситуацией, в которой залог по открытым позициям существенно (в 20 раз) увеличился...
 

Hay una fórmula en el enlace:

LEVERAGE=NormalizeDouble(VOL/MarketInfo("USDCHF",MODE_MARGINREQUIRED),0);

Contiene el valor de MarketInfo("USDCHF",MODE_MARGINREQUIRED), que no cambia después de que el corredor haya cambiado el apalancamiento para este instrumento. La funciónMarketInfo devuelve el margen de la configuración del símbolo, que corresponde al apalancamiento en la configuración de la cuenta. Si no fuera así, no tendría más preguntas. Aquí es exactamente donde radica el problema.

Renat Akhtyamov:

es el apalancamiento resultante el que sustituimos en el cálculo del margen

https://www.mql5.com/ru/forum/353040/page4#comment_18728440

Y el problema será que el apalancamiento obtenido en el paso anterior no se corresponderá con el apalancamiento real. Será igual al apalancamiento de la configuración de la cuenta, que es devuelto por la función AccountLeverage(). En consecuencia, el margen, calculado de esta manera, será mucho menor que el real, si el apalancamiento de este instrumento no se corresponde con el apalancamiento de la cuenta.

Si quieres, puedes comprobarlo tú mismo fácilmente:

  1. Abra una cuenta demo en el servidor Alpari-Demo. Al abrir la cuenta, seleccione una cantidad de 10000 USD y un apalancamiento de 1:500.
  2. Abrir una posición para comprar 1 lote de USDRUB (UZDZAR, UZDTRY)
  3. Calcula el apalancamiento y luego el margen con la fórmula que propones.
  4. Compárelo con el que ve en su terminal
 
Janis Ozols:

Hay una fórmula en el enlace:

Contiene el valor de MarketInfo("USDCHF",MODE_MARGINREQUIRED), que no cambia después de que el corredor haya cambiado el apalancamiento para este instrumento. La funciónMarketInfo devuelve el margen de la configuración del símbolo, que corresponde al apalancamiento en la configuración de la cuenta. Si no fuera así, no tendría más preguntas. Ahí es exactamente donde radica el problema.

Y el problema aquí será que el apalancamiento obtenido en el paso anterior no coincidirá con el apalancamiento real. Será igual al apalancamiento de la configuración de la cuenta, que es devuelto por AccountLeverage(). En consecuencia, el margen, calculado de esta manera, será mucho menor que el real, si el apalancamiento de este instrumento no se corresponde con el apalancamiento de la cuenta.

Si quieres, puedes comprobarlo tú mismo fácilmente:

  1. Abra una cuenta demo en el servidor Alpari-Demo. Al abrir la cuenta, seleccione una cantidad de 10000 USD y un apalancamiento de 1:500.
  2. Abrir una posición para comprar 1 lote de USDRUB (UZDZAR, UZDTRY)
  3. Calcula el apalancamiento y luego el margen con la fórmula que propones.
  4. Compárelo con lo que ve en el terminal

Deberías probarlo primero antes de predecir el resultado.

He estado trabajando con esta fórmula en la palanca flotante, reacciona en el tiempo

y no es lo que se ve con los ojos.

y ciertamente no es lo que viste con tus ojos.

y no en demo, sino en real

 
Renat Akhtyamov:

Deberías haberlo probado primero antes de predecir el resultado

No predije el resultado. Por supuesto, intenté hacerlo antes de sugerírselo.

Este es el guión:

void OnStart()
{
   double VOL = MarketInfo("USDRUB",MODE_LOTSIZE);
   double LEVERAGE = NormalizeDouble(VOL/MarketInfo("USDRUB",MODE_MARGINREQUIRED),0);
   double M = VOL / LEVERAGE; // M=CC/КП
   Print("М = ",M);
   Print("LEVERAGE = ",LEVERAGE);
   Print("VOL = ",VOL);
}


Aquí está el resultado de su ejecución:


Este es el valor real:


La razón de la discrepancia es que el apalancamiento del símbolo USDRUB es diferente del apalancamiento de la cuenta. Y mi pregunta es cómo obtener el valor de este apalancamiento mediante MQL4 antes de abrir una posición.

 

ok

Pruébalo así ahora

void OnStart()

{

   double LEVERAGE = NormalizeDouble( MarketInfo("EURUSD",MODE_LOTSIZE)/MarketInfo("USDCHF",MODE_MARGINREQUIRED),0);

   double M = MarketInfo( "USDRUB" ,MODE_LOTSIZE)/ LEVERAGE; // M=CC/ КП

   Print(" М = ",M);

   Print("LEVERAGE = ",LEVERAGE);

   Print("VOL = ",MarketInfo( "USDRUB" ,MODE_LOTSIZE));

}

 
Renat Akhtyamov:

ok

Prueba esto ahora.

Lo hice. Aquí está el resultado:

Sin embargo, no entiendo muy bien por qué esta vez para calcular el apalancamiento del USDRUB sugieres dividir el volumen del contrato del EURUSD por el margen para abrir un lote estándar para el USD/CHF. Pero el resultado es el mismo valor de margen (200). Mientras que el margen real mantenido es de 1000.