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

 
ir0407:
Bem... Parece ser uma pergunta simples e você começa uma polêmica... :) Entendo que todos aqui são inteligentes e um gênio à sua própria maneira. Mas...
Tenho uma captura de tela do MT5 ou criei um tópico na seção que não é para o MT4. Não vim aqui para surpreendê-lo, mas para obter uma resposta simples a uma simples pergunta. Como tirar o valor certo da fórmula, estou bem ciente disso. Somos bons em matemática. A questão não era sobre como calcular, mas como obtê-lo do terminal.

MQL5 novamente...

Deixe-me tentar reformular a pergunta... Não preciso calcular este valor, não preciso de uma fórmula para calculá-lo. O que eu preciso é o nome da constante(ou seu valor numérico), que eu posso usar na consulta SymbolInfoDouble() para obter o valor que eu preciso do terminal. É isso aí! :)

Vamos lá, vamos lá ))))

Sua pergunta foi clara desde o início.

Mas a margem é um tema interessante e, como você pode ver, a questão é controversa.

 
Alexey Viktorov:

Não consigo entender porque não está funcionando para você. Aqui você tem 3 pedidos abertos e a margem é 100% de acordo com os cálculos



Quais cálculos? Talvez eu esteja com mau aspecto, mas não vejo nenhuma comparação em sua captura de tela.

E então, a questão também era como calcular a margem puramente sobre o ouro sem o valor "percentual de margem", levando em conta todas as ordens em aberto sobre ele...

E sim... levando em conta as posições cobertas, é claro.

 
Alexey Viktorov:
Nesse caso, a resposta é inequívoca. NÃO PODE!!!
Bem, então vou responder com uma citação de Stanislavsky: "Eu não acredito!

Alexey Viktorov:

E ninguém vai fazer isso. É uma abordagem estranha, no entanto. Eu preciso disso e vocês, desenvolvedores, o fazem por mim. Simplesmente porque eu quero que o façam.

Bem, o terminal conhece este valor... Ele o conhece e o exibe na "Especificação do Contrato". Você realmente acha que o terminal dentro de si mesmo calcula e exibe este valor na tabela? Este é o valor base! E é utilizado pelo terminal para calcular ainda mais a margem correta para tipos específicos de caracteres.

E por que esta abordagem é estranha para você? Você obtém todos os outros valores da "Especificação do Contrato" também por "cálculo"? Por dados indiretos ou experimentais? :)

Alexey Viktorov: Eu sinceramente tentei ajudar... Mas, infelizmente, sem sorte...

Obrigado, é claro, mas você levou meu tema em uma direção desnecessária.

 
K-2SO:


Quais cálculos? Talvez eu não esteja olhando de perto, mas não vejo nenhuma comparação em sua captura de tela.

E depois houve também a questão de como calcular a margem puramente sobre o ouro sem o valor "percentual de margem", levando em conta todas as ordens em aberto sobre ele...

E sim... incluindo as posições cobertas, é claro.

Como calcular o "percentual de margem" já foi explicado, mastigado e colocado em sua boca. Tudo o que resta para engolir... A decisão é sua.

Você pode usar as posições cobertas.

MarketInfo(_Symbol, MODE_MARGINHEDGED);
É o valor devolvido, não o %% de garantia. Calcular a %% não é nada difícil.
 
Alexey Viktorov:

Como calcular o "percentual de margem" já foi dito, mastigado e colocado em sua boca. Tudo o que resta para engolir... Isso é com você.

Com as posições cobertas levadas em conta, utilizar

o montante devolvido, não a %% da garantia. Calcular a %% não é nada difícil.

Saia do meu caminho. Eu lhe mostrei e tentei provar que ao calcular as garantias em todas as posições em aberto para o ouro MARGINREQUIRED é inútil. Posso não ser capaz de engolir algo, mas você parece não estar disposto a nem mesmo mastigar.
 
ir0407:
Bem, então vou citar Stanislavsky: "Eu não acredito!"

Bem, o terminal conhece este valor... Ele o conhece e o exibe na Especificação do Contrato... E você realmente acha que o terminal está torcendo em seus cálculos apenas para obter este valor e mostrá-lo para nós na planilha? Este é o valor base! E é utilizado pelo terminal para calcular ainda mais a margem correta para tipos específicos de caracteres.

E por que esta abordagem é estranha para você? Você obtém todos os outros valores da "Especificação do Contrato" também por "cálculo"? Por dados indiretos ou experimentais? :)

Obrigado, é claro, mas você levou meu tópico numa direção desnecessária.

O terminal sabe muitas coisas e não diz a ninguém. Por exemplo, uma vez tentei determinar qual ordem foi fechada por qual contador. Cabe no comentário, mas só pode ser obtido a partir daí... Onde está a lógica? Bem, nós não temos o que precisamos e não o teremos. Temos que escrever nossos próprios cálculos. Felizmente, não são tão complicados assim. E a propósito, a moeda da margem também deve ser calculada e corrigida de acordo com a taxa de câmbio no momento da abertura do pedido. E não há CopyTicks em mql4. Portanto, concluímos que, independentemente de como você calcula a porcentagem da margem, ainda haverá mais um desconhecido, e de qualquer forma haverá imprecisão nos cálculos.
 
Alexey Viktorov:
O terminal sabe muitas coisas e não conta a ninguém sobre isso. Por exemplo, tentei determinar qual ordem foi fechada por qual contador. Tudo se encaixa no comentário, mas é a única maneira de obtê-lo... Onde está a lógica? Não o tenho e não será.

Os deuses não queimam panelas. Os codificadores de metaquotas também são humanos e podem cometer erros ou esquecer de fazer algo. Por exemplo, para introduzir alguns valores na ajuda. Portanto, agora vou tentar entrar pela "porta dos fundos" e relatarei os resultados um pouco mais tarde.

Alexey Viktorov:
Daí a conclusão: independentemente de como se obtém a porcentagem de margem, haverá mais um desconhecido e haverá imprecisão nos cálculos.

Eu quero evitar estas imprecisões. E com o mínimo de sangue possível. :)

 
K-2SO:

Fique impune. Eu lhe mostrei e tentei provar que, ao calcular as garantias para todas as posições em aberto para o ouro MARGINREQUIRED é inútil. Posso não ser capaz de engolir algo, mas você parece não estar disposto a nem mesmo mastigar.
Caro amigo, tente ler este conhecimento. Acho que isso pode ajudá-lo. :)
 
K-2SO:

Fique impune. Eu lhe mostrei e tentei provar que o MARGINREQUIRED é inútil ao calcular as garantias para todas as posições em aberto para o ouro. Posso não ser capaz de engolir algo, mas você parece não estar disposto a nem mesmo mastigar.

Olha, fico espantado com declarações como essa.

Aqui está o código.

  Comment("", MarketInfo(_Symbol, MODE_MARGINREQUIRED), "\n"
        , "", MarketInfo(_Symbol, MODE_MARGINHEDGED), "\n"
         );

aqui estão as leituras. 842,13 para as posições atuais e 50 para as posições cobertas.


Aqui está a tabela Excel com as fórmulas e preços do instantâneo do post anterior. Explore...


A diferença de 3 kopecks devido à falta da taxa de câmbio EURUSD no momento da abertura da posição para o ouro e essa besteira na segunda linha... O que mais há para explicar?

 
ir0407:
Caro Senhor, tente ler este conhecimento. Acho que isso o ajudará. :)


Eu tenho, isso não ajuda, eu preciso de mais detalhes!

Primeiro calcule a margem percentual da MARGINREQUIRED e depois a aplique ao calcular a margem de um pedido já feito?

Até agora, só vejo as coisas dessa maneira... Com todas as imprecisões, é claro.

Razão: