Cómo obtener el "Porcentaje de margen" mediante programación - página 6

 
ir0407:
El porcentaje de margen no es la garantía calculada. Es sólo uno de los componentes para calcular el margen. Y el resultado de este cálculo (utilizando las fórmulas de la tabla) se devuelve en la moneda del margen, que luego (si difiere de la moneda del depósito) hay que convertir en la moneda del depósito.
Todos entendidos excepto uno, cuál es la esencia de este componente)
 
K-2SO:

¿Puede sugerir un corredor, por favor? Para mis pruebas...
Robo.
 

Voy a compartir las pruebas, y finalmente estoy confundido por estas fórmulas, que hasta ahora no han logrado sumar una sola fórmula. Tres corredores diferentes - tres porcentajes diferentes de margen - tres fórmulas diferentes, que casi se podría decir que se ajustan al resultado. Este es el cálculo del margen de una orden ya colocada (de compra) sobre el oro.

Como puede ver, el porcentaje de margen sigue siendo importante a veces, pero las metacomillas realmente no lo necesitan.

 margin=OrderLots()*contract*OrderOpenPrice()/leverage/100; // метаквоты - процент маржи 100%

 margin=OrderLots()*contract*OrderOpenPrice()*Percentage/100; // инста - процент маржи 1%
            
 margin=(OrderLots()*contract*OrderOpenPrice()*Percentage)/leverage/100;// робо - процент маржи 200%
 
Creo que he entendido cómo se supone que funciona la fórmula general (cuando por fin me he dado cuenta de que en realidad hay un porcentaje de margen): las pruebas no han sido en vano. Y sí... El valor del porcentaje de margen debe utilizarse definitivamente (incluso para un pedido ya realizado). Una vez que entienda cómo calcular y obtener ese valor, compartiré mis conclusiones sobre la fórmula general para calcular un margen para una sola orden de CFD colocada, si alguien está interesado... Aunque, en principio, todo está a la vista (la dependencia que buscamos), en el código del mensaje anterior.
 
K-2SO:
Creo que he entendido cómo debe funcionar la fórmula general (cuando por fin me he dado cuenta de lo que es el porcentaje de margen): las pruebas no han sido en vano. Y sí... El valor del porcentaje de margen debe utilizarse definitivamente (incluso para un pedido ya realizado). Cuando entienda cómo calcular y obtener este valor, compartiré mis conclusiones sobre la fórmula general para calcular un margen para una sola orden de CFD colocada, si alguien está interesado... Aunque, en principio, todo está a la vista (la dependencia que buscamos) en el código del mensaje anterior.

Todo está en la primera página

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Cómo obtener el "porcentaje de margen" mediante programación

Alexey Viktorov, 2017.06.02 09:42

Bien... No sé por qué las personas que intentan ayudarte deben fantasear con lo que tú fantaseas. De todos modos, esa no es la cuestión.

¿Cómo se obtiene lo que se necesita de esa fórmula?

La fórmula en sí es Margen = Lotes *Tamaño del contrato*Precio de mercado*Porcentaje/100.

Por lo tanto, el porcentaje = Margen/(Lotes *Tamaño del contrato*Precio del mercado/100)

Todavía no está en la lista de funciones obsoletas. Así que produce el valor que falta para determinar el porcentaje de margen.

MarketInfo(_Symbol, MODE_MARGINREQUIRED);

Una vez obtenidos todos los datos para el momento actual y al precio actual, es muy fácil recalcular el margen que se ha retenido al precio de apertura de la orden.

Si lo necesitas para mql5, debes usar

bool  SymbolInfoMarginRate( 
   string             name,                     // символ 
   ENUM_ORDER_TYPE    order_type,               // тип ордера 
   double&            initial_margin_rate,      // коэффициент взимания начальной маржи 
   double&            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );

Al abrir una orden, se tiene en cuenta el precio actual y el mismo porcentaje de margen que sólo se puede obtener de la fórmula. En consecuencia, debemos definir primero el margen esperado para el lote completo al precio actual utilizando la siguiente función

MarketInfo(symbol, MODE_MARGINREQUIRED);

A partir de este margen calculamos el porcentaje de margen y luego calculamos el margen para un pedido específico. Pero, de nuevo, el margen no siempre se calcula en la moneda del depósito y se convierte a ella al tipo de cambio vigente en el momento de abrir la orden, y no hay forma de obtenerlo (tipo de cambio) más tarde en mql4. En mql5 es más fácil, existe CopyTicks() y puedes obtener el tipo de cambio en el momento de abrir la orden, pero no es el lenguaje del que estamos hablando aquí.

 
Alexey Viktorov:

Pero, de nuevo, el margen no siempre se calcula en la moneda del depósito y se convierte a ella al tipo de cambio vigente en el momento de abrir la orden, y no hay forma de obtenerlo (el tipo de cambio) más tarde en mql4.

Todavía me confundo en este punto. Está claro que MARGINREQUIRED devuelve el valor en la moneda del depósito, pero ¿qué moneda necesitamos? ¿En la moneda de la cotización del símbolo?
 
K-2SO:
Todavía estoy confundido en este punto. Está claro que MARGINREQUIRED devuelve el valor en la moneda del depósito. ¿En la moneda de la cotización del símbolo?

Compara las 2 fotos, en el primer post y en la página 5 en mi post. Ambas son especificaciones de oro, pero en la primera la moneda del margen es el USD y en la segunda el XAU. Por lo tanto, en el primer caso, no se puede hacer nada. En el segundo, después de recibir el margen en la moneda del depósito se debe convertir a la moneda del margen multiplicando a una cotización y ponerla en la fórmula con la que calculamos el porcentaje del margen. De lo contrario, el resultado será incorrecto. En consecuencia, debemos añadir de nuevo a la fórmula

SÍMBOLO_MARGEN_DIVISA

Moneda en la que se calcula el margen

cadena

 

Después de algunos experimentos, debo admitir que aquí

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Cómo obtener el "porcentaje de margen" mediante programación

Alexey Viktorov, 2017.06.02 10:24

El apalancamiento está generalmente fuera de la fórmula básica Margen = (Lotes*Tamaño del contrato*Precio de mercado*Porcentaje)/Apalancamiento, por lo que no lo he tenido en cuenta. Para determinar de qué se trata la pregunta, la palanca es como la montura de una vaca. Pero más allá puede ser necesario, pero no concierne a la pregunta actual...

Me equivoqué. El apalancamiento debe utilizarse porque el margen

MarketInfo(symbol, MODE_MARGINREQUIRED);

lo conseguimos con la palanca.



 
Alexey Viktorov:

Después de algunos experimentos, tengo que admitir que aquí

Me equivoqué. El apalancamiento debe utilizarse porque el margen

se obtiene teniendo en cuenta el apalancamiento.

Las pruebas demuestran que cuando el porcentaje de margen es igual a 1, ¡el apalancamiento no se tiene en cuenta! Pero a partir de 100 ya se tiene en cuenta. Me gustaría encontrar un corredor con un porcentaje de margen de 2 a 99 inclusive.

 
K-2SO:

Las pruebas muestran que cuando el porcentaje de margen es igual a 1, ¡el apalancamiento no se tiene en cuenta! Pero cuando es de 100 y más, ya se tiene en cuenta. Me gustaría encontrar un corredor con un porcentaje de margen entre 2 y 99 inclusive.

Abra una cuenta de demostración por 5 libras con 100 de apalancamiento y vea cuál es el porcentaje de margen, por ejemplo, el mismo para el oro o incluso mejor - el rublo ...