Como obter a "Porcentagem de Margem" de forma programática - página 6

 
ir0407:
A porcentagem da margem não é a garantia calculada. É apenas um dos componentes para calcular a margem. E o resultado deste cálculo (usando fórmulas da tabela) é devolvido em moeda margem, que então (se for diferente da moeda de depósito) precisa ser convertida na moeda de depósito.
Todos entendidos, exceto um, qual é a essência deste componente)
 
K-2SO:

Você pode sugerir um corretor, por favor? Para meus testes...
Robo.
 

Vou compartilhar os testes, e finalmente estou confuso com estas fórmulas, que até agora falharam em somar uma única fórmula. Três corretores diferentes - três porcentagens diferentes de margem - três fórmulas diferentes, que quase se poderia dizer que se encaixam no resultado. Este é o cálculo da margem em um pedido já colocado(!) (COMPRAR) em ouro.

Como você pode ver, a porcentagem de margem ainda é importante às vezes, mas as metaquotas realmente não precisam dela.

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

 margin=OrderLots()*contract*OrderOpenPrice()*Percentage/100; // инста - процент маржи 1%
            
 margin=(OrderLots()*contract*OrderOpenPrice()*Percentage)/leverage/100;// робо - процент маржи 200%
 
Acho que entendi como a fórmula geral deve funcionar (quando finalmente percebi que há realmente uma porcentagem de margem) - os testes não foram em vão. E sim... O valor percentual da margem deve ser definitivamente utilizado (mesmo para um pedido já feito). Assim que eu entender como calcular e obter esse valor, compartilharei minhas conclusões sobre a fórmula geral para calcular uma margem para um único pedido de CFD colocado, se alguém estiver interessado... Embora, em princípio, tudo esteja à vista (a dependência que estamos procurando), no código da mensagem acima.
 
K-2SO:
Acho que entendi como a fórmula geral deve funcionar (quando finalmente percebi qual é realmente a porcentagem da margem) - os testes não foram em vão. E sim... O valor percentual da margem deve ser definitivamente utilizado (mesmo para um pedido já feito). Quando eu entender como calcular e obter este valor, compartilharei minhas conclusões sobre a fórmula geral para calcular uma margem para um único pedido de CFD colocado, se alguém estiver interessado... Embora, em princípio, tudo esteja à vista (a dependência que estamos procurando) no código da mensagem acima.

Tudo está na primeira página

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Como obter "Porcentagem de margem" programática

Alexey Viktorov, 2017.06.02 09:42

Certo... Eu não sei por que as pessoas que tentam ajudá-lo devem fantasiar sobre o que você fantasiava? De qualquer forma, não é essa a questão.

Como você obtém o que precisa com essa fórmula?

A fórmula em si é Margem = Lotes *Tamanho do contrato*Preço de mercado*Percentagem/100.

Portanto, Porcentagem = Margem/(Lotes *Tamanho do contrato*Preço de mercado/100)

Ela ainda não está na lista de funções obsoletas. Assim, ele produz o valor em falta para determinar a porcentagem da margem.

MarketInfo(_Symbol, MODE_MARGINREQUIRED);

Tendo obtido todos os dados para o momento atual e ao preço atual, é muito fácil recalcular a margem que foi retida ao preço de abertura do pedido.

Se você precisar dele para mql5, você deve usar

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

Ao abrir um pedido, o preço atual e a mesma porcentagem de margem são levados em consideração que só podem ser obtidos a partir da fórmula. Assim, devemos primeiro definir a margem necessária para o lote completo ao preço atual, utilizando a seguinte função

MarketInfo(symbol, MODE_MARGINREQUIRED);

A partir desta margem calculamos o percentual de margem e depois calculamos a margem para uma ordem específica. Mas novamente, a margem nem sempre é calculada na moeda do depósito e é convertida a ela à taxa de câmbio atual no momento da abertura do pedido, e não há como obtê-la (taxa de câmbio) mais tarde em mql4. Em mql5 é mais fácil, há CopyTicks() e você pode obter a taxa de câmbio no momento da abertura do pedido, mas esta não é a linguagem de que estamos falando aqui.

 
Alexey Viktorov:

Mas novamente, a margem nem sempre é calculada na moeda do depósito e é convertida para ela à taxa de câmbio atual no momento da abertura do pedido, e não há como obtê-la (a taxa de câmbio) mais tarde em mql4.

Ainda fico confuso a esta altura. É evidente que a MARGINREQUIRED retorna o valor na moeda do depósito, mas de que moeda precisamos? Na moeda da citação do símbolo?
 
K-2SO:
Ainda estou confuso neste ponto. É evidente que a MARGINREQUIRED retorna o valor na moeda do depósito. Na moeda da citação do símbolo?

Compare as 2 fotos, no primeiro post e na página 5 no meu post. Ambas são especificações de ouro, mas na primeira a moeda da margem é USD e na segunda XAU. Assim, no primeiro caso, não se pode fazer nada. No segundo, após receber a margem na moeda de depósito, ela deve ser convertida em moeda de margem, multiplicando-se por uma cotação e colocando-a na fórmula com a qual calculamos a porcentagem da margem. Caso contrário, o resultado será incorreto. Assim, devemos novamente acrescentar à fórmula

SÍMBOLO_MOEDA_MARGIN

Moeda na qual a margem é calculada

corda

 

Depois de algumas experiências, devo admitir que aqui

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Como obter "Porcentagem de margem" programática

Alexey Viktorov, 2017.06.02 10:24

A alavancagem geralmente está fora da fórmula básica Margem = (Lotes*Tamanho de contrato*Preço de mercado*Porcentagem)/Alavancagem, portanto não a levei em consideração. Para determinar do que se trata a questão, a alavanca é como a sela de uma vaca. Mas, além disso, pode ser necessário, mas não diz respeito à questão atual...

Eu estava errado. A alavancagem deve ser utilizada porque a margem

MarketInfo(symbol, MODE_MARGINREQUIRED);

conseguimos isso com vantagem.



 
Alexey Viktorov:

Após alguma experimentação, tenho que admitir que aqui

Eu estava errado. A alavancagem deve ser usada porque a margem

é obtido levando em conta a alavancagem.

Testes mostram que quando a porcentagem da margem é igual a 1, a alavancagem não é levada em conta! Mas a partir de 100 e mais, já é levado em conta. Gostaria de poder encontrar um corretor com margem percentual de 2 a 99 inclusive.

 
K-2SO:

Testes mostram que quando a porcentagem da margem é igual a 1, a alavancagem não é levada em conta! Mas, quando é igual ou superior a 100, já é levado em conta. Gostaria de poder encontrar um corretor com uma margem percentual entre 2 e 99 inclusive.

Abra uma conta demo para 5 libras com alavancagem de 100 e veja qual é o percentual de margem, por exemplo, o mesmo para o ouro ou ainda melhor - o rublo ...