Como você calcula a margem? - página 5

 
Como calcular a alavancagem programática está escrito na mesma linha. Em vez de escrever uma nota de rodapé, preste mais atenção às respostas às suas perguntas
 

Sou provavelmente muito desajeitado com minhas perguntas e, portanto, não estou obtendo as respostas que espero. Perdoe-me, o russo é apenas parcialmente minha língua materna. Mas vou tentar novamente.

Eu li cuidadosamente todo o ramo. A resposta à minha pergunta original foi dada - é impossível obter o valor real de alavancagem para uma única posição a partir do terminal.

Mas também foi mencionado que talvez a alavanca mude não para estas posições, mas para um instrumento como um todo. E agora a única pergunta que me resta é como obter essa vantagem do terminal. Desde que seja diferente da alavancagem total da conta. Não para calcular, mas exatamente para obter o valor real.

Seria muito bom se isso pudesse ser feito ANTES de abrir a próxima posição.

 
Janis Ozols:

Provavelmente sou muito desajeitado com minhas perguntas e, portanto, não estou obtendo as respostas que espero. Perdoe-me, o russo é apenas parcialmente minha língua materna. Mas vou tentar novamente.

Eu li cuidadosamente todo o ramo. A resposta à minha pergunta original foi dada - é impossível obter o valor real de alavancagem para uma única posição a partir do terminal.

Mas também foi mencionado que talvez a alavanca mude não para estas posições, mas para um instrumento como um todo. E agora a única pergunta que me resta é como obter essa vantagem do terminal. Desde que seja diferente da alavancagem total da conta. Não para calcular, mas exatamente para obter o valor real.

Seria bom se você pudesse fazê-lo ANTES de abrir a próxima posição.

O corretor lhe disse - pode mudá-lo DEPOIS

e ANTES - tudo já está escrito acima, mas você precisa calcular

 
Renat Akhtyamov:

Você foi informado por seu corretor - ele pode mudá-lo DEPOIS
e ANTES - está tudo escrito acima, mas você precisa calcular

Sim, isso é o que eu quero saber, como obter a real alavancagem de um símbolo DEPOIS que o corretor tenha mudado, mas ANTES de abrir a próxima posição sobre esse símbolo. Ainda não sou capaz de calculá-lo corretamente. Porque todas as fórmulas de cálculos apresentadas anteriormente contêm ou a alavancagem da conta (que permanece inalterada) ou a quantidade de margem das configurações do símbolo (que também não foi alterada).

 
Janis Ozols:

Certo, então estou tentando descobrir como obter a real alavancagem de um símbolo DEPOIS que o corretor o tenha mudado, mas ANTES de abrir a próxima posição sobre esse símbolo. Ainda não sou capaz de calculá-lo corretamente. Porque todas as fórmulas de cálculos apresentadas anteriormente contêm ou a alavancagem da conta (que permaneceu inalterada) ou a quantidade de margem das configurações do símbolo (que também não mudou).

vamos lá

alavancagem real:

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

alavancagem no cálculo da margem

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

e você está com sorte.

;)

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

Há uma fórmula no link:

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

Contém MarketInfo("USDCHF",MODE_MARGINREQUIRED) valor, que não muda após o corretor ter mudado a alavancagem para este instrumento. A funçãoMarketInfo retorna a margem das configurações de símbolo, que corresponde à alavancagem nas configurações da conta. Se não fosse assim, eu não teria mais perguntas. É exatamente aqui que reside o problema.

Renat Akhtyamov:

é a alavanca resultante que substituímos no cálculo da margem

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

E o problema será que a alavancagem obtida na etapa anterior não corresponderá à alavancagem real. Será igual à alavancagem das configurações da conta, que é retornada pela função AccountLeverage(). Assim, a margem, calculada desta forma, será muito menor do que a margem real, se a alavancagem deste instrumento não corresponder à alavancagem da conta.

Se você quiser, você mesmo pode verificá-lo facilmente:

  1. Abra uma conta demo no servidor Alpari-Demo. Ao abrir a conta, selecione uma quantia de 10000 USD e uma alavancagem de 1:500.
  2. Abrir uma posição para comprar 1 lote de USDRUB (UZDZAR, UZDTRY)
  3. Calcule a alavancagem e depois a margem com a fórmula que você propõe.
  4. Compare com o que você vê em seu terminal
 
Janis Ozols:

Há uma fórmula no link:

Contém MarketInfo("USDCHF",MODE_MARGINREQUIRED) valor, que não muda após o corretor ter mudado a alavancagem para este instrumento. A funçãoMarketInfo retorna a margem das configurações de símbolo, que corresponde à alavancagem nas configurações da conta. Se não fosse assim, eu não teria mais perguntas. É exatamente aí que reside o problema.

E o problema aqui será que a alavancagem obtida na etapa anterior não corresponderá à alavancagem real. Será igual à alavancagem das configurações da conta, que é devolvida pela AccountLeverage(). Assim, a margem, calculada desta forma, será muito menor do que a margem real, se a alavancagem deste instrumento não corresponder à alavancagem da conta.

Se você quiser, você mesmo pode verificá-lo facilmente:

  1. Abra uma conta demo no servidor Alpari-Demo. Ao abrir a conta, selecione uma quantia de 10000 USD e uma alavancagem de 1:500.
  2. Abrir uma posição para comprar 1 lote de USDRUB (UZDZAR, UZDTRY)
  3. Calcule a alavancagem e depois a margem com a fórmula que você propõe.
  4. Compare isso com o que você vê no terminal

Você deve tentar primeiro antes de prever o resultado.

Tenho trabalhado com esta fórmula sobre alavancagem flutuante, ela reage no tempo

e não será o mesmo que você viu com seus olhos

e certamente não é o que você viu com seus olhos.

e não em demonstração, mas em real

 
Renat Akhtyamov:

Você deveria ter tentado primeiro antes de prever o resultado

Eu não previ o resultado. É claro, eu tentei fazer isso antes de sugerir a você.

Aqui está o roteiro:

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);
}


Aqui está o resultado de sua execução:


Aqui está o valor real:


A razão para a discrepância é que a alavancagem do símbolo USDRUB é diferente da alavancagem da conta. E minha pergunta é como obter o valor dessa alavancagem por meio da MQL4 antes de abrir uma posição.

 

ok

Experimente assim agora.

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

Tente isto agora.

Eu fiz. Aqui está o resultado:

No entanto, não entendo bem porque desta vez para calcular a alavancagem do USDRUB você sugere dividir o volume do contrato EURUSD pela margem para abrir um lote padrão para USD/CHF. Mas o resultado é o mesmo valor de margem (200). Enquanto que a margem real mantida é de 1000.

Razão: