Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 885
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
Sim, é isso que quero dizer. Certo, sentimos falta disso. O principal é que ele entenda o que é o que...
Ele quem? Foi onde eu comecei.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Qualquer pergunta de iniciantes sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos
Alexey Viktorov, 2019.06.11 09:06
Você não pode usar o SymbolInfoInteger para obter o Point())).
E em geral, é necessário lembrar esse Ponto() ou _Ponto somente para o símbolo atual. Para outros símbolos além daquele em que a EA trabalha, você deve usar esta função.
A função SymbolInfoInteger retorna não apenas valores int, mas também valores longos, bool e enumerações.
Может вам очень не повезло, но я не люблю колупаться в чужом коде. Тем более править его...
Alexey Viktorov:
Próxima pergunta: Com que freqüência você acha que o valor do indicador será exatamente 50?
Como entendi o problema, deveria ser uma cor >50 e outra <50, mas ainda não vi ==50 em nenhum lugar. É claro, para não perder no caso ===50, devemos acrescentar >=50 a um deles e <=50 a outro. Pode parecer melhor.
E a segunda pergunta: qual foi a necessidade de mudar toda a indexação do buffer? Depois de reindexar, você consertou tudo em seu código? Talvez fosse mais fácil fazer o índice de tampão de cor 4, e os tampões auxiliares 5 e 6 de acordo. Você teria menos a editar e menos chances de cometer mais alguns erros.
Você deve ter mexido no cérebro quando estava mudando a indexação do buffer.
Volte e pegue o código antigo da Mensagem 8806 e mude apenas a seqüência tampão.
Em seguida, trace as condições quando é necessário colocar 0 e quando é necessário colocar 1Você não deve ter pensado muito quando mudou a indexação do buffer.
Volte e pegue o código antigo do correio 8806 e mude ali apenas a seqüência tampão.
Em seguida, trace as condições quando colocar 0 no buffer de cor e quando colocar 1Eu fiz isso, não ajudei, admiti que estava cometendo erros, depois de seu posto eu o fiz novamente. Aqui estão os lugares de código que eu mudei. O antigo é descomentado.
Assim era antes de eu fazer as mudanças. O histograma está lá, a cor certa não está.
É assim que as coisas são agora. O histograma desapareceu, ele não é exibido.
Acho que não estou pensando direito novamente.
Eu fiz isso, não funcionou, cometi erros, depois de seu posto eu o fiz novamente. Aqui estão os lugares no código que eu mudei. O antigo é descomentado.
Assim era antes de eu fazer as mudanças. O histograma está lá, a cor certa não está.
É assim que as coisas são agora. O histograma desapareceu, ele não é exibido.
Devo estar de novo a racionar meus miolos.
Aqui não há lógica alguma. A seqüência deve ser a seguinte: O valor do histograma é determinado e o i-ésimo índice do buffer indicador é preenchido. Em seguida, uma verificação separada, se este valor >=50 o buffer de cores é preenchido com 0, caso contrário 1. isto é determinado pela seqüência de cores na diretiva
Se 0, a cor clrGreen é tomada e se 1, clrRed
E esta linha é completamente desnecessária, e a seqüência é a oposta da primeira.
E isto
int cl;
adicionado para que propósito? É mais fácil de preencher diretamente.
Para preencher o buffer de cores, eu usaria esta construção
O ?: operador é equivalente a se, mas aplicado mais facilmenteA lógica aqui é quebrada em geral. A seqüência deve ser a seguinte: Definir o valor do histograma, preencher o i-ésimo índice do buffer de indicadores. Em seguida, uma verificação separada, se este valor >=50 o buffer de cor é preenchido com 0, caso contrário 1. isto é determinado pela seqüência de cores na diretiva
Se 0, a cor clrGreen é tomada e se 1, clrRed
E esta linha é absolutamente desnecessária, e a seqüência é a oposta da primeira.
E isto
adicionado para que propósito? É mais fácil de preencher diretamente.
Para preencher o buffer de cores, eu usaria esta construção
O ?: operador é equivalente a se, mas mais fácil de usarWURRAA, e minha alma cantou. Alexey, muito obrigado !!!!!
Tudo funcionou, não entendo bem como é possível prescindir da matriz
porque sua descrição foi apagada. Então, você pode prescindir de uma matriz extra aqui?
Meu Squeaky é apenas um milagre, ele o leva para todos os lugares e em todos os lugares.
p.s Eu ainda não aprendi como anexar uma imagem corretamente, por favor me desculpem, vou postar screenshots.
Para preencher o tampão colorido, eu usaria esta construção
O ?: operador é equivalente a se, mas mais fácil de usarUm grande conselho e uma grande ciência para o futuro!!! Foi ainda um pouco mais longe. Abaixo está o resultado.
Assim foi:
Assim se tornou, a eficácia da abordagem é óbvia!!! Obrigado.
Um grande conselho e uma grande ciência para o futuro!!! Foi ainda um pouco mais longe do que isso. Abaixo está o resultado.
Assim foi:
Assim se tornou, a eficácia da abordagem é óbvia!!! Obrigado.
Aqui não há eficiência - três condições if-else em vez de uma. Aqui, é pior do jeito que é...
Aqui não há eficiência: há três condições de "if-else" em vez de uma. Aqui é pior...
Sim, de fato, eu não tinha notado isso. Parece melhor, há menos cartas.
E não há como colocar três execuções (não sei como dizer corretamente) sob um único operador?: de uma só vez?