Ao negociar o EUR/USD esta construção funcionou bem e eu estava certo de que sua lógica estava correta.
Mas agora eu quero obter o mesmo resultado para EUR/JPY (ou EUR/CHF). Obviamente, ao invés deOrderOpenPrice() eu preciso multiplicar o valor de um lote padrão pela taxa da moeda base para a moeda de depósito (no meu caso, por EUR/USD). Mas qual é essa taxa? Aquela que estava no momento da abertura da posição ou aquela que está agora (no momento em que queremos saber o valor do depósito para esta posição)?
Ao negociar o EUR/USD esta construção funcionou bem e eu estava certo de que sua lógica estava correta.
Mas agora eu quero obter o mesmo resultado para EUR/JPY (ou EUR/CHF). Obviamente, ao invés deOrderOpenPrice() eu preciso multiplicar o valor de um lote padrão pela taxa da moeda base para a moeda de depósito (no meu caso, por EUR/USD). Mas qual é essa taxa? Aquela que existia no momento da abertura da posição, ou aquela que existe agora (no momento em que queremos saber o valor do depósito para esta posição)?
Ou, você pode encontrar a taxa do par de moedas necessário no gráfico até o momento da abertura da ordem, levar em conta o spread (bid/ask) se necessário e calcular o valor mais preciso da margem no momento da abertura da ordem usando a seguinte fórmula
A armadilha pode ser o cálculo da margem em um momento em que a alavancagem era diferente
int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime()); double price_X=iClose(Symbol_X,Period(),bs);
Se negociarmos em, digamos, gráficos diários, obteremos o preço de abertura do dia, em algum lugar no meio do qual a ordem em que estamos interessados foi aberta, não? E pode ser significativamente diferente do preço que era no momento da abertura.
Então, se negociarmos, digamos, gráficos diários, obteremos o preço de abertura do dia, em algum lugar no meio do qual a ordem em que estamos interessados foi aberta, não? E pode ser significativamente diferente do preço pelo qual foi aberto.
Ninguém está insistindo em usar o Period()
Especificar expressamente PERÍODO_M15, por exemplo, ou outro
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
veremos o código.
Agita tudo.
então, boa sorte.
O código não é importante nesta pergunta? Você poderia ter acabado de escrever "Não sei", mas parece funcionar.
A questão é sobre o código, então você não pode fazer isso sem o código.
Você está perguntando sobre modificadores ou processamento de pedidos?
Eu não sei do que você precisa. Mas o erro está no código - 100%.
Favor aconselhar como usar a MQL4 para obter um valor de margem para cada posição aberta no terminal?
Eu costumava fazer isso desta maneira:
Ao negociar o EUR/USD esta construção funcionou bem e eu estava certo de que sua lógica estava correta.
Mas agora eu quero obter o mesmo resultado para EUR/JPY (ou EUR/CHF). Obviamente, ao invés deOrderOpenPrice() eu preciso multiplicar o valor de um lote padrão pela taxa da moeda base para a moeda de depósito (no meu caso, por EUR/USD). Mas qual é essa taxa? Aquela que estava no momento da abertura da posição ou aquela que está agora (no momento em que queremos saber o valor do depósito para esta posição)?
Favor aconselhar como usar a MQL4 para obter um valor de margem para cada posição aberta no terminal?
Eu costumava fazer isso desta maneira:
Ao negociar o EUR/USD esta construção funcionou bem e eu estava certo de que sua lógica estava correta.
Mas agora eu quero obter o mesmo resultado para EUR/JPY (ou EUR/CHF). Obviamente, ao invés deOrderOpenPrice() eu preciso multiplicar o valor de um lote padrão pela taxa da moeda base para a moeda de depósito (no meu caso, por EUR/USD). Mas qual é essa taxa? Aquela que existia no momento da abertura da posição, ou aquela que existe agora (no momento em que queremos saber o valor do depósito para esta posição)?
O resultado não será exato.
Ou, você pode encontrar a taxa do par de moedas necessário no gráfico até o momento da abertura da ordem, levar em conta o spread (bid/ask) se necessário e calcular o valor mais preciso da margem no momento da abertura da ordem usando a seguinte fórmula
A armadilha pode ser o cálculo da margem em um momento em que a alavancagem era diferente
E se a taxa de câmbio EUR/USD estiver escrita no campo de comentários quando o pedido for aberto e depois lida a partir daí?
Comentário para outros fins.
É assim que se pode saber o preço:
int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime());
double bid_X=iClose(Symbol_X,Period(),bs);
Comentário para outros fins.
É assim que se pode saber o preço:
int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime());
double price_X=iClose(Symbol_X,Period(),bs);
Se negociarmos em, digamos, gráficos diários, obteremos o preço de abertura do dia, em algum lugar no meio do qual a ordem em que estamos interessados foi aberta, não? E pode ser significativamente diferente do preço que era no momento da abertura.
Então, se negociarmos, digamos, gráficos diários, obteremos o preço de abertura do dia, em algum lugar no meio do qual a ordem em que estamos interessados foi aberta, não? E pode ser significativamente diferente do preço pelo qual foi aberto.
Ninguém está insistindo em usar o Period()
Especificar expressamente PERÍODO_M15, por exemplo, ou outro