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

 
Renat Akhtyamov:

no es necesario preguntar

calculamos mediante fórmulas

La fórmula que utilizo para calcular el margen de una orden individual es la siguiente:

OrderMargin = (OrderLots()*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE)*OrderOpenPrice())/AccountInfoInteger(ACCOUNT_LEVERAGE);

En la gran mayoría de los casos, la suma de estos valores en todas las órdenes abiertas es igual aAccountInfoDouble(ACCOUNT_MARGIN).

Sin embargo, en el caso que he descrito anteriormente, esta fórmula da un valor incorrecto. La razón es que este cálculo utiliza un valor constante (para todas las órdenes) de AccountInfoInteger(ACCOUNT_LEVERAGE). Pero en realidad (en mi caso) no es constante. Mi broker, según la normativa, puede disminuir el valor del apalancamiento decenas de veces para órdenes individuales.

En otras palabras, utilizando esta fórmula obtendremos el valor correcto del margen para 9 órdenes en el terminal (tienen el apalancamiento estándar), mientras que para las órdenes 10ª y 11ª- el incorrecto (el broker estableció un apalancamiento mayor para ellas cinco minutos después de la apertura).

¿Quizás tú, Renat, puedas darnos otra fórmula para calcular correctamente el apalancamiento de una sola orden?
Tenga en cuenta que puede ser modificado por el corredor en cualquier momento después de abrir una posición.

Por si acaso, esta situación noes mi fantasía. Esto es lo que ocurría en mi cuenta esta noche.

 
Janis Ozols:

La fórmula que utilizo para calcular el margen individual es la siguiente:

En la gran mayoría de los casos, la suma de estos valores en todas las órdenes abiertas es igual aAccountInfoDouble(ACCOUNT_MARGIN).

Sin embargo, en el caso que he descrito anteriormente, esta fórmula da un valor incorrecto. La razón es que este cálculo utiliza un valor constante (para todas las órdenes) de AccountInfoInteger(ACCOUNT_LEVERAGE). Pero en realidad (en mi caso) no es constante. Mi broker, según la normativa, puede disminuir el valor del apalancamiento en varias decenas de veces para órdenes individuales.

En otras palabras, utilizando esta fórmula obtendremos el valor correcto del margen para 9 órdenes en el terminal (tienen el apalancamiento estándar), mientras que para las órdenes 10ª y 11ª- el incorrecto (el broker estableció un apalancamiento mayor para ellas cinco minutos después de la apertura).

¿Quizás tú, Renat, puedas darnos otra fórmula para calcular correctamente el apalancamiento de una sola orden?
Tenga en cuenta que puede ser modificado por el corredor en cualquier momento después de abrir una posición.

Por si acaso, esta situación noes mi fantasía. Esto es lo que ha ocurrido en mi cuenta esta noche.

Es natural que sea diferente.

¿Cuál era el apalancamiento real en el momento de la apertura?

te lo dije en blanco y negro - anota el apalancamiento real en los comentarios o en magik al abrir un trato.

hay que calcular el apalancamiento en lugar de pedirlo.

ps

El apalancamiento en el momento de abrir una operación será el mismo.

después de la apertura, nada cambiará y no importa

VOL=MarketInfo("EURUSD",MODE_LOTSIZE);

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

en la revisión del mercado presencia obligatoria del euro y el franco

código para MQL4

Si el apalancamiento flota de forma diferente en los distintos instrumentos y no al mismo tiempo, entonces calculamos según el mismo principio
 
Renat Akhtyamov:

¿cuál era el apalancamiento real en el momento de la apertura?

En el momento de la apertura, el apalancamiento real era de 1:1000. Justo después de abrir la posición de VENTA con un volumen de 0,10 EUR/USD a Bid=1,1800, el margen era de 11,80 USD. En ese momento había otras 9 operaciones en la cuenta, cuyo margen era de 86,20 USD. Después de abrir la posición, el margen era igual a 98,00 USD. Dos minutos después, el corredor cambió el apalancamiento de la última posición abierta a 1:33. Su margen era ahora de 357,58 (en lugar de 11,80 cuando se abrió), y el margen total de la cuentaera de 443,78 USD.

Estoy tratando de encontrar una forma (o fórmula) que me ayude, recorriendo las posiciones abiertas en el terminal, a detectar a tiempo aquellas para las que el valor real del margen supera repetidamente el calculado (que era el real en el momento de la apertura de la posición).

Renat Akhtyamov:

Te escribí en blanco y negro - anota el apalancamiento real en los comentarios o en la magia al abrir un trato.

Por favor, disculpen que sea molesto, pero no puedo entender cómo el apalancamiento guardado en el momento de abrir una posición puede ayudarme en esta situación?

 
Janis Ozols:

En el momento de la apertura, el apalancamiento real era de 1:1000. El margen para laapertura de la posición de VENTA con un volumen de 0,10 en EUR/USD a Bid = 1,1800 inmediatamente después de la apertura fue de 11,80 USD. En ese momento había otras 9 operaciones en la cuenta, cuyo margen era de 86,20 USD. Después de abrir la posición, el margen era igual a 98,00 USD. Dos minutos después, el corredor cambió el apalancamiento de la última posición abierta a 1:33. Su margen era ahora de 357,58 (en lugar de 11,80 cuando se abrió), y el margen total de la cuenta era de 443,78 USD.

Estoy tratando de encontrar una forma (o fórmula) que me ayude, recorriendo las posiciones abiertas en el terminal, a detectar a tiempo aquellas para las que el valor real del margen supera repetidamente el calculado (el que era real en el momento de la apertura de la posición).

Por favor, perdóneme por ser molesto, pero no puedo entender cómo el apalancamiento, que se mantuvo en el momento de la apertura de la posición, puede ayudarme en esta situación?

Puede cerrar sólo una parte de una posición, porque casi todas las empresas de corretaje tienen ahora una compensación.

en este caso. el margen de la posición abierta cambiará

¿Ya han cerrado sus posiciones en 2 minutos?

 
Renat Akhtyamov:

nada cambiará después de la apertura.

Esa es la parte complicada. El apalancamiento para una sola orden en mi caso se cambióDESPUÉS deabrir la posición. Y no inmediatamente, sino después de un tiempo. El trabajador de apoyo de mi corredor lo confirmó y pude reproducir la situación en mi cuenta.

Renat Akhtyamov:

la forma en que usted describe es muy posible sólo cuando se cierra una parte del loco, porque casi todas las empresas de corretaje ahora netting.

¿No cerró su pedido en 2 minutos?

No, no cerré operaciones y no usé lotes. Sólo había ofertas de una dirección en la terminal. Después de abrir otra posición de VENTA con un volumen de 0,1 he visto en el terminal Margen = 98,00 durante algún tiempo. Después de unos 2 minutos, este valor era igual a 443,78, justo delante de mis ojos. Al mismo tiempo, no se ha añadido ni una sola línea al diario, ni se han añadido Asesores Expertos. Sólo hay un gráfico abierto y sólo hay un símbolo en la revisión del mercado.

Después de cerrar la desafortunada operación con una pequeña pérdida, el margen de la cuenta volvió a ser de 86,20.

 
Janis Ozols:

Esa es la parte complicada. El apalancamiento para una sola orden en mi caso se cambióDESPUÉS deabrir la posición. Y no inmediatamente, sino después de un tiempo. El empleado de soporte del broker me lo confirmó y pude reproducir esta situación en mi cuenta.

No, no cerré operaciones y no utilicé lotes. Sólo había operaciones de una dirección en la terminal. Después de abrir otra posición de VENTA con el volumen 0,1 vi Margen = 98,00 en el terminal. Después de unos 2 minutos, este valor era igual a 443,78, justo delante de mis ojos. Al mismo tiempo, no se ha añadido ni una sola línea al diario, ni se han añadido Asesores Expertos. Un gráfico está abierto, un símbolo en la visión general del mercado.

Apalancamiento de la impresión, tiempo de apertura y margen

fórmula y código anteriores

y tratar con el DC, según el registro

Personalmente no creo en estos cuentos de hadas sin fundamento.
 
Renat Akhtyamov:

Y tratar con el DC, de acuerdo con el registro

He tratado con DC. Su respuesta es muy sencilla: lea el reglamento, ahí dice todo. Y efectivamente allí está escrito que la empresa se reserva el derecho de cambiar el apalancamiento para ciertas posiciones abiertas bajo ciertas condiciones. Después hice una pregunta aclaratoria: ¿puedo obtener el apalancamiento real para la siguiente posición ANTES de abrirla? ¿Utilizando las consultas MarketInfo(_Symbol,MODE_MARGINREQUIRED), AccountFreeMarginCheck() u otras? La respuestaes NO , el apalancamiento reducido se establecerá DESPUÉS de la apertura de una posición, correspondiendo a las condiciones de la normativa, en función de la situación actual del mercado.

Renat Akhtyamov:
No creo en estos cuentos de hadas sin fundamento.

No estoy tratando de convencerte de nada. Además, me alegro de que no se haya encontrado con una situación similar. Yo mismo me he enfrentado a ello por primera vez en varios años de trabajo con este corredor.

Resumiendo todo lo que has contado, ¿estoy en lo cierto al entender que no hay forma nativa de obtener por MQL4 un margen real (no calculado) para una posición abierta en el terminal en cualquier momento, siempre que este valor no se haya guardado antes en algún sitio?

 
Janis Ozols:

He tratado con los DCs. Su respuesta es muy sencilla: lea el reglamento, ahí dice todo. Sí que dice que la empresa se reserva el derecho a cambiar el apalancamiento de ciertas posiciones abiertas en determinadas condiciones. Después hice una pregunta aclaratoria: ¿puedo obtener el apalancamiento real para la siguiente posición ANTES de abrirla? ¿Utilizando las consultas MarketInfo(_Symbol,MODE_MARGINREQUIRED), AccountFreeMarginCheck() u otras? La respuesta- NO , el apalancamiento reducido se establecerá DESPUÉS de la apertura de una posición, correspondiendo a las condiciones de las regulaciones, basadas en la situación actual del mercado.

De ninguna manera estoy tratando de convencerte de nada. Además, me alegro mucho de que no se haya encontrado con una situación similar. Yo mismo me he enfrentado a ello por primera vez en varios años de trabajo con este corredor.

Resumiendo todo lo que has dicho, ¿estoy en lo cierto al entender que no hay forma nativa de obtener por MQL4 significa un margen real (no calculado) para una posición abierta en el terminal en cualquier momento, siempre que este valor no se haya guardado en algún lugar antes?

porque leí las normas ANTES y no DESPUÉS

y si algo no me conviene no trabajo en tal lugar

 
Janis Ozols:

Resumiendo, ¿estoy en lo cierto al entender que no hay una forma nativa de obtener por medio de MQL4 un depósito real (no calculado) para una posición abierta en el terminal en cualquier momento, siempre que este valor no se haya guardado en algún lugar antes?

Sí, así es.

Lo único que cambia es el apalancamiento, no para una sola operación, sino para un instrumento en su conjunto, pero no cambia el asunto.

Añadiré una alerta a mi informador para este caso...

 

La función AccountLeverage() indica que el apalancamiento de la cuenta cambia. Los símbolos individuales pueden tener un apalancamiento diferente al de la cuenta, dependiendo de la exótica del símbolo (Fx Minors, Fx Exotics, Fx Rub) y del volumen de la posición. En cualquier caso, hay que leer la normativa y los pliegos de condiciones del contrato.

En los momentos interesantes cualquier operación de comercio cambia el apalancamiento de la cuenta. Para que el apalancamiento cambie, hay que hacer una operación. Una vez borré un pedido pendiente que estaba olvidado y era poco prometedor. Por así decirlo, he limpiado. Como resultado, el apalancamiento de la cuenta se redujo de 500 a 100.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Торговля осуществляется посредством отправки с помощью функции OrderSend() приказов на открытие позиций, а также приказов на установку, модификацию и удаление отложенных ордеров. Каждый торговый приказ содержит указание на тип запрашиваемой торговой операции. Торговые операции описаны в перечислении ENUM_TRADE_REQUEST_ACTIONS...