Erros, bugs, perguntas - página 2737
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
No MT4, enquanto os indicadores de depuração ficam pendurados permanentemente se se mudar para um gráfico.
Reproduzido, por exemplo, durante o início da depuração do indicador CCI padrão.
1. Estabelecer um ponto de parada;
2. Imprensa F5;
3. Mudar para o gráfico.
Resultado - o gráfico de depuração fica pendurado.
Também pode simplesmente premir F5 várias vezes durante a depuração - o gráfico fica pendurado.
Construir 1260.
Configurações do depurador:
O resultado da pesquisa apaga parte do texto.
Aqui está o original.
Fórum sobre negociação, sistemas de negociação automatizados e testador de estratégias
MetaTrader 5 Strategy Tester: bugs, bugs, sugestões para melhorias
fxsaber, 2020.05.11 20:31
Provavelmente não faz sentido para o Testador criar ficheiros opt-files que tenham Header.passes_passed== 0.Como se verificou, a definição da cor de fundo não é possível para um objecto do tipo OBJ_LABLE, é necessário utilizar OBJ_EDIT.
Ao utilizar OBJ_EDIT, surgiu um novo problema - a necessidade de definir o tamanho de OBJPROP_XSIZE e OBJPROP_YSIZE de modo a que todo o texto caiba nas dimensões dos objectos correspondentes.
Pergunta: como determinar os tamanhos OBJPROP_XSIZE e OBJPROP_YSIZE para caber no texto inteiro?
Considerei duas opções:
1. Criação de objecto OBJ_LABLE, leitura das suas dimensões, eliminação de objecto OBJ_LABLE.
Não adequado porque o dimensionamento só é possível após o objecto ter sido realmente criado e não é possível quando o objecto está na fila ChartRedraw.
2. utilizando TextSetFont seguido de TextGetSize.
Não adequado, porque o resultado é radicalmente diferente dos resultados do método #1, a diferença de 2,5 - 2,9 vezes, dependendo do tamanho da fonte.
Provavelmente a razão é o monitor de 4K e 175% DPI.
Graças aGeess pelasolução.
É necessário multiplicar por -10 o tamanho do embaralhamento quando o passar para TextSetFont.
Raramente trabalho com objectos gráficos, preciso de pintar a cor de fundo para OBJ_LABLE (definir OBJPROP_BGCOLOR).
Como se verificou, a definição da cor de fundo não é possível para um objecto do tipo OBJ_LABLE, é necessário utilizar OBJ_EDIT.
Ao utilizar OBJ_EDIT, surgiu um novo problema - a necessidade de definir o tamanho de OBJPROP_XSIZE e OBJPROP_YSIZE de modo a que todo o texto caiba nas dimensões dos objectos correspondentes.
Pergunta: como determinar os tamanhos OBJPROP_XSIZE e OBJPROP_YSIZE para caber no texto inteiro?
Considerei duas opções:
1. criar objecto OBJ_LABLE, ler as dimensões, apagar objecto OBJ_LABLE.
Não adequado porque o dimensionamento só é possível após o objecto ter sido realmente criado e não é possível quando o objecto está na fila ChartRedraw.
2. utilizando TextSetFont seguido de TextGetSize.
Não adequado, porque o resultado é radicalmente diferente dos resultados do método #1, a diferença de 2,5 - 2,9 vezes, dependendo do tamanho da fonte.
Provavelmente a razão é o monitor de 4K e 175% DPI.
Em primeiro lugar, o tamanho do texto e o tamanho do objecto não são a mesma coisa. No mínimo, tem de haver uma fronteira. E, portanto, estes valores não podem coincidir.
Em segundo lugar, é melhor usar OBJ_BITMAP_LABEL que não tem limitações.
E se o utilizar, é melhor usar a classe CCanvas.
O resultado é o mesmo objecto, só que com mais possibilidades. Por exemplo, ao acrescentar transparência ao rótulo de texto.
Em primeiro lugar, o tamanho do texto e o tamanho do objecto não são a mesma coisa. No mínimo, deve haver uma fronteira. E, por isso, estes valores não podem coincidir.
Muito obrigado pela vossa ajuda.
Está a adaptar uma solução pronta às suas próprias necessidades, por isso não vejo a necessidade de implementar bibliotecas.
A solução que propôs inicialmente pode ser representada como:
Infelizmente, devido a um defeito no MT5 - a solução proposta não pode ser utilizada normalmente.
O tamanho do texto revela-se 3 vezes menor do que o necessário num monitor de 4K com 175% de DPI do Windows.
Tenho de multiplicar o tamanho da fonte por DPI / 100% * [1,6 ... 1,8]
ObrigadoGeesspelasolução.
É necessário multiplicar o tamanho da fonte por -10 quando a passar paraTextSetFont.
Muito obrigado pela vossa ajuda.
Está a adaptar uma solução pronta às suas próprias necessidades, por isso não vejo a necessidade de implementar bibliotecas.
A solução que propôs inicialmente pode ser representada como:
Infelizmente, devido a um defeito no MT5 - a solução proposta não pode ser utilizada normalmente.
O tamanho do texto revela-se 3 vezes menor do que o necessário num monitor de 4K com 175% de DPI do Windows.
Tenho de multiplicar o tamanho da fonte por DPI / 100% * [1,6 ... 1,8].
https://www.mql5.com/ru/docs/objects/textsetfont
tem de o fazer desta forma:
Não percebo porque precisa tanto de OBJ_LABEL? Implementou uma variante sem bibliotecas com OBJ_BITMAP_LABEL. Qual é a sua vantagem? Vejo apenas uma limitação.
https://www.mql5.com/ru/docs/objects/textsetfont
Não percebo porque precisa tanto de OBJ_LABEL? Implementou uma variante sem bibliotecas com OBJ_BITMAP_LABEL. Qual é a sua vantagem? Vejo apenas uma limitação.
Muito obrigado, mais uma vez.
Não sabia, não via, não lia, sobre multiplicação por -10. Problema resolvido.
OBJ_LABEL foi utilizado para ilustrar o problema e ser capaz de o reproduzir.
Por favor, digam-me qual é o problema.
Os diferentes indicadores, que estão a funcionar correctamente e a actualizar, começam a mostrar algo diferente, não baseado na tabela de preços apresentada na janela principal. Acontece ocasionalmente, não todos os dias.
No início culpava os indicadores, mas depois de experimentar indicadores diferentes, incluindo os nativos do MT5, estou desconfiado acerca do terminal. Observo o problema há muito tempo, desde o ano passado, em diferentes versões do terminal. Primeiro foi na versão personalizada da Alpari, agora é a mesma na versão original. Tanto em conta de demonstração como em ecn real.
Corretor Alpari. MT5 construir 2363 a partir de 13.03.2020. Não me lembro de outros períodos, mas acontece definitivamente no M1.
Capturas de ecrã:
Variante "escorregadela". Com excepção do ziguezague, todos os indicadores estão incorporados. O ziguezague com o trabalho correcto com a história. As leituras dos indicadores são convergentes entre si. Não correspondem aos preços.
Após a actualização.
Versão MT5
Tarde.
Tropeçou numa coisa incompreensível e não compreende o que é.
Há duas funções que são utilizadas em estratégias diferentes. Logicamente, o código em controlos como
Não deve ser executado se uma das condições estiver errada. Mas por alguma razão é executado se o número mágico e o número mágico passado para a função NÃO forem IGUAL.
Parece ser uma comparação do tipo inteiro. Não consigo compreender porquê. Pode vê-lo na imagem de ecrã que se segue.