Erros, bugs, perguntas - página 2020
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A função OrderCalcMargin não tem em conta o preço de abertura ao calcular a margem
Isto é um Bug ou deveria ser?
É claro que é um insecto. Escreva para o SD.
Esta linha funciona como deveria, mas tive de verificar como tenho de adivinhar a ordem de execução. Discussão sobre este ponto aqui.
Um insecto, é claro. Escreva para o SD.
Esta linha funciona como deveria, mas tive de verificar como tenho de adivinhar a ordem de execução. Discussão sobre este ponto aqui.
A ordem de cálculo das expressões em Print() é da direita para a esquerda. Tipo de... Até agora... Também foi verificado de antemão :)
É difícil ter a certeza quando existe umacontradição directa na referência MQL4/5:
Referência MQL5Fundamentos da LínguaFunçõesPassagem de Parâmetros
Nota
Lembre-se que os parâmetros são passados para a função ao contrário, ou seja, o último parâmetro é calculado e passado primeiro, depois o penúltimo, e assim por diante. O parâmetro que é o primeiro após o parêntese de abertura é calculado e passado para a última função.
Referência MQL5Fundamentos da LínguaOperações e ExpressõesOutras Operações
Função chamada com argumentos x1, x2,..., xn
Cada argumento pode ser uma constante, uma variável ou uma expressão de um tipo correspondente. Os argumentos aprovados são separados por vírgulas e devem ser colocados entre parênteses, o parêntese de abertura deve seguir o nome da função.
O valor da expressão é o valor devolvido pela função. Se o tipo de valor de retorno de uma função for nulo, a chamada de função não pode ser colocada à direita da operação de atribuição. Note-se que a ordem das expressões x1,..., xn é garantida.
Até agora, estou a concentrar-me em passar parâmetros em ordem inversa.
Uma pergunta sobre a OrderCalcMargin surgiu numa linha vizinhahttps://www.mql5.com/ru/forum/216697/page3
Teste: vamos verificar 2 formas diferentes de calcular o depósito através da substituição de preços de abertura diferentes.
Aqui está o LOG
A função OrderCalcMargin não considera o preço de abertura ao calcular a margem
Isto parece estar relacionado com a taxa de câmbio da moeda cotada, que tem de ser recalculada para o tempo e preço de abertura.
Se a moeda cotada for USD (e a moeda da conta também for USD), então a margem calculada será alterada de acordo com o preço de abertura.
Log para GBPUSD
É ou deveria ser um Bug?
Provavelmente deveria ser, porque AUDUSD e USDJPY em particular estão envolvidos no cálculo, e as suas cotações são constantes no momento do cálculo.
Agora, este pensamento dá-me vontade de verificar... Na conta MetaQuotes-Demo na visão geral do mercado GBPUSD está presente, mas não na conta robotizada...
Isto deve ser o caso porque AUDUSD e USDJPY em particular estão envolvidos no cálculo e as suas cotações não foram alteradas no momento do cálculo.
Agora, este pensamento dá-me vontade de verificar... GBPUSD está presente na conta MetaQuotes-Demo, mas não na Robo-account...
Só lhe queria dizer - que existe um insecto.
Já reproduzi a sua situação com Margem=0 no cálculo da OrderCalcMargin.
Apenas ainda não o publicou.
Na conta MetaQuotes-Demo GBPUSD está presente na Market Watch, mas não na conta Robo...
Muito provavelmente presentes no Market Watch (não confundir com a lista geral de símbolos), mas não mostrados.
Isto deve ser o caso porque AUDUSD e USDJPY em particular estão envolvidos no cálculo e as suas cotações não foram alteradas no momento do cálculo.
Agora, este pensamento dá-me vontade de verificar... Na conta MetaQuotes-Demo na visão geral do mercado GBPUSD está presente mas não na conta robotizada...
Aqui está o teste:
1. Seleccione cruzes em MarketWatch, esconda tudo com USD
2) Adicionar o símbolo DSHBTC e abrir a sua tabela.
3. Fechar terminal
4) Abrir o terminal
5. Vamos começar o teste para DSHBTC
Aqui está o LOG:
Todas as cruzes mostram margem=0 e NÃO foram seleccionadas CRUZES MAIORES.
Mais uma vez, executar o guião no DSHBTC
LOG
Não há componentes principais, mas o USDJPY é o único.
Todos os testes foram feitos em MetaQuotes
Muito provavelmente presentes no Market Watch (não confundir com a lista geral de símbolos), mas não mostrados.
Estamos de alguma forma a falar da mesma coisa de maneiras diferentes
Estamos de alguma forma a falar da mesma coisa de maneiras diferentes
Exactamente. O Market Watch não o mostra, mas ele está lá.
Conserte-o.
Feito!
P.S. Esqueci-me de retirar a reserva :)