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

 
Renat Akhtyamov:

não há necessidade de perguntar

calculamos através de fórmulas

A fórmula que utilizo para calcular a margem para um pedido individual é a seguinte:

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

Na grande maioria dos casos, a soma desses valores em todas as ordens abertas é igual aAccountInfoDouble(ACCOUNT_MARGIN).

Entretanto, no caso que descrevi acima, esta fórmula dá um valor incorreto. A razão é que o cálculo usa um valor constante (para todos os pedidos) de AccountInfoInteger(ACCOUNT_LEVERAGE). Mas na realidade (no meu caso) não é constante. Meu corretor, de acordo com os regulamentos, pode diminuir o valor de alavancagem em dezenas de vezes para pedidos individuais.

Em outras palavras, usando esta fórmula, obteremos o valor correto de margem para 9 ordens no terminal (elas têm a alavancagem padrão), enquanto para a 10ª e 11ª ordens- a incorreta (o corretor estabeleceu uma alavancagem maior para elas cinco minutos após a abertura).

Talvez você, Renat, possa nos dar outra fórmula para calcular corretamente a alavancagem para um único pedido?
Favor observar que ela pode ser trocada pelo corretor a qualquer momento após a abertura de uma posição.

Só para prevenir, esta situação nãoé minha fantasia. Isto é o que estava acontecendo em minha conta esta noite.

 
Janis Ozols:

A fórmula que utilizo para calcular a margem individual é a seguinte:

Na grande maioria dos casos, a soma desses valores em todas as ordens abertas é igual aAccountInfoDouble(ACCOUNT_MARGIN).

Entretanto, no caso que descrevi acima, esta fórmula dá um valor incorreto. A razão é que este cálculo utiliza um valor constante (para todos os pedidos) de AccountInfoInteger(ACCOUNT_LEVERAGE). Mas na realidade (no meu caso) não é constante. Meu corretor, de acordo com os regulamentos, pode diminuir o valor de alavancagem dezenas de vezes para pedidos individuais.

Em outras palavras, usando esta fórmula, obteremos o valor correto de margem para 9 ordens no terminal (elas têm a alavancagem padrão), enquanto para a 10ª e 11ª ordens- a incorreta (o corretor estabeleceu uma alavancagem maior para elas cinco minutos após a abertura).

Talvez você, Renat, possa nos dar outra fórmula para calcular corretamente a alavancagem para um único pedido?
Favor observar que ela pode ser alterada pelo corretor a qualquer momento após a abertura de uma posição.

Só para prevenir, esta situação nãoé minha fantasia. Isto foi o que aconteceu na minha conta esta noite.

É natural que fosse diferente.

Qual foi a verdadeira vantagem no momento da abertura?

eu lhe disse em preto e branco - note a real alavancagem nos comentários ou no magik ao abrir um negócio.

você precisa calcular a alavancagem em vez de pedir por ela.

ps

A alavancagem no momento da abertura de um negócio será a mesma que é.

após a abertura, nada mudará e isso não importa

VOL=MarketInfo("EURUSD",MODE_LOTSIZE);

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

na revisão do mercado presença obrigatória do euro e do franco

código para MQL4

Se a alavanca flutua de forma diferente em instrumentos diferentes e não ao mesmo tempo, então calculamos de acordo com o mesmo princípio
 
Renat Akhtyamov:

qual foi a verdadeira vantagem no momento da abertura?

No momento da abertura, a alavancagem real era de 1:1000. Logo após abrir a posição de VENDA com um volume de 0,10 EUR/USD em Bid=1,1800, a margem foi de 11,80 USD. Naquela época, havia 9 outros negócios na conta, cuja margem era de 86,20 USD. Após a abertura da posição, a margem foi igual a 98,00 USD. Dois minutos depois, o corretor mudou a alavancagem da última posição aberta para 1:33. Sua margem agora era de 357,58 (ao invés de 11,80 quando foi aberta), e a margem total da contaera de 443,78 USD.

Estou tentando encontrar uma maneira (ou fórmula) que me ajudará, passando pelas posições abertas no terminal, a detectar no tempo aquelas para as quais o valor real da margem excede repetidamente o calculado (que era real no momento da abertura da posição).

Renat Akhtyamov:

Eu escrevi em preto e branco - note a real alavancagem nos comentários ou na magia ao abrir um negócio.

Por favor, desculpe-me por ser chato, mas não consigo entender como a alavancagem economizada no momento da abertura de uma posição pode me ajudar nesta situação?

 
Janis Ozols:

No momento da abertura, a alavancagem real era de 1:1000. A margem para aabertura da posição SELL com um volume de 0,10 em EUR/USD na Bid = 1,1800 imediatamente após a abertura foi de 11,80 USD. Naquela época, havia 9 outros negócios na conta, cuja margem era de 86,20 USD. Após a abertura da posição, a margem foi igual a 98,00 USD. Dois minutos depois, o corretor mudou a alavancagem da última posição aberta para 1:33. Sua margem agora era de 357,58 (ao invés de 11,80 quando foi aberta), e a margem total da conta era de 443,78 USD.

Estou tentando encontrar uma maneira (ou fórmula) que me ajudará, passando pelas posições abertas no terminal, a detectar no tempo aquelas para as quais o valor real da margem excede repetidamente o calculado (o que era real no momento da abertura da posição).

Por favor, perdoe-me por ser irritante, mas não consigo entender, como a alavanca, que foi mantida no momento da abertura da posição, pode me ajudar nesta situação?

Você só pode fechar parte de uma posição, porque quase todas as empresas de corretagem agora têm rede.

neste caso. a margem da posição aberta irá mudar

Você já fechou suas posições em 2 minutos?

 
Renat Akhtyamov:

nada vai mudar após a abertura.

Essa é a parte complicada! A alavanca para uma única ordem no meu caso foi alteradaAPÓSa posição ter sido aberta. E não imediatamente, mas depois de algum tempo. O funcionário de suporte do meu corretor confirmou e eu pude reproduzir a situação por minha conta.

Renat Akhtyamov:

a maneira como você descreve é bem possível somente quando você fecha uma parte do loco, porque quase todas as corretoras agora em rede.

Você não fechou seu pedido em 2 minutos?

Não, eu não fechei negócios e não usei muito. No terminal, houve negócios de uma única direção. Depois de abrir outra posição de venda com volume 0,1 vi Margem = 98,00 no terminal por algum tempo. Após cerca de 2 minutos, este valor era igual a 443,78, bem na frente dos meus olhos. Ao mesmo tempo, não foi acrescentada uma única linha à revista, nenhum consultor especializado foi acrescentado. Apenas um gráfico está aberto e há apenas um símbolo na análise do mercado.

Depois de fechar o negócio malfadado com uma pequena perda, a margem de conta tornou-se novamente 86,20.

 
Janis Ozols:

Essa é a parte complicada! A alavanca para uma única ordem no meu caso foi alteradaAPÓS aposição ter sido aberta. E não imediatamente, mas depois de algum tempo. O especialista de suporte do corretor confirmou e eu pude reproduzir esta situação em minha conta.

Não, eu não fechei negócios e não usei muito. Havia apenas ofícios de uma direção no terminal. Depois de abrir outra posição de venda com o volume 0,1 vi Margem = 98,00 no terminal. Após cerca de 2 minutos, este valor era igual a 443,78, bem na frente dos meus olhos. Ao mesmo tempo, não foi acrescentada uma única linha à revista, nenhum consultor especializado foi acrescentado. Um gráfico está aberto, um símbolo na visão geral do mercado.

Alavancagem de impressão, tempo aberto e margem

fórmula e código acima

e lidar com o CD, de acordo com o diário

Pessoalmente, não acredito nesses contos de fadas infundados.
 
Renat Akhtyamov:

E lidar com o CD, de acordo com o diário

Eu já lidei com DC. A resposta deles é muito simples- leia as regras, tudo diz aí. E está escrito aí que a empresa se reserva o direito de mudar a alavancagem para certas posições abertas sob certas condições. Depois disso, fiz uma pergunta esclarecedora- posso obter a vantagem real para a próxima posição ANTES de abri-la? Usando consultas MarketInfo(_Symbol,MODE_MARGINREQUIRED), AccountFreeMarginCheck() ou outros? A respostaé NÃO , a alavancagem reduzida será definida APÓS a abertura de uma posição, correspondente às condições do regulamento, com base na situação atual do mercado.

Renat Akhtyamov:
Eu não acredito nestes contos de fadas sem suporte.

Eu não estou de forma alguma tentando convencê-lo de nada! Além disso, estou feliz que você não tenha encontrado uma situação semelhante. Eu mesmo o enfrentei pela primeira vez em vários anos de trabalho com este corretor.

Resumindo tudo o que você disse, estou certo em entender que não existe uma forma nativa de obter pela MQL4 significa uma margem real (não calculada) para uma posição aberta no terminal em qualquer momento, desde que esse valor não tenha sido salvo em algum lugar antes?

 
Janis Ozols:

Eu já lidei com os CDs. A resposta deles é muito simples- leia as regras, tudo diz aí. Ela diz que a empresa se reserva o direito de alterar a alavancagem para certas posições abertas sob certas condições. Depois disso, fiz uma pergunta esclarecedora- posso obter a vantagem real para a próxima posição ANTES de abri-la? Usando consultas MarketInfo(_Symbol,MODE_MARGINREQUIRED), AccountFreeMarginCheck() ou outros? A resposta- NÃO , a alavancagem reduzida será definida APÓS a abertura de uma posição, correspondente às condições do regulamento, com base na situação atual do mercado.

De forma alguma estou tentando convencê-lo de nada! Além disso, estou muito feliz que você não tenha encontrado uma situação semelhante. Eu mesmo o enfrentei pela primeira vez em vários anos de trabalho com este corretor.

Resumindo tudo o que você disse, estou certo em entender que não existe uma maneira nativa de obter pela MQL4 significa uma margem real (não calculada) para uma posição aberta no terminal em qualquer momento, desde que esse valor não tenha sido salvo em algum lugar antes?

porque eu li as regras ANTES e não DEPOIS

e se algo não me convém, eu não trabalho em tal lugar

 
Janis Ozols:

Resumindo, estou certo em entender que não há uma forma nativa de obter pela MQL4 significa um depósito real (não calculado) para uma posição aberta no terminal em qualquer momento, desde que este valor não tenha sido salvo em algum lugar antes?

Sim, isso mesmo.

Apenas a alavanca mais provável muda não para um único negócio, mas para um instrumento como um todo, mas isso não muda a questão.

Vou acrescentar um alerta ao meu informante para este caso...

 

A função AccountLeverage() indica que a alavancagem da conta muda. Os símbolos individuais podem ter alavancagem diferente da conta, dependendo da exótica do símbolo (Fx Minors, Fx Exotics, Fx Rub) e do volume da posição. Em qualquer caso, você precisa ler o regulamento e as especificações do contrato.

Em momentos interessantes, qualquer operação comercial muda a alavancagem da conta. Para que a alavanca possa mudar, é preciso fazer uma troca. Uma vez eliminei uma ordem pendente que era esquecida e pouco prometedora. Por assim dizer, eu limpei. Como resultado, a alavancagem da conta foi reduzida de 500 para 100.

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