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
Sem problemas, angevogeur
O código era originalmente este:
Eu simplesmente o modifiquei para isto:
Como podem ver, eu não mudei a "carne" das funções. Eu simplesmente fiz os mods necessários para se adequar à nova funcionalidade. Uma coisa que ainda estou um pouco enevoado é a mudança de start() para OnStart() ou OnTick(), o que quer que seja(esqueci no momento, mas ainda estou usando start() sem problemas. Devo mencionar que este é um indicador personalizado. Outra coisa sobre a qual tenho uma queixa são as limitações do que você pode usar, dependendo se você está codificando um EA, indicador ou roteiro. Há algumas coisas que fazem sentido (como não permitir que as negociações sejam implementadas a menos que você esteja codificando um EA) e outras que não o fazem (como a proibição de usar uma MessageBox in e um indicador). Outra coisa que realmente me incomoda é não ter eventos disponíveis para coisas como abertura e fechamento de comércios. Isto seria realmente útil para o que estou organizando agora.
Um exemplo do que estou querendo dizer com minha última declaração é este: Quero ser capaz de exibir um sinal de Compra se certos critérios forem atendidos, exibir um sinal de Compra Fechada se certos critérios forem atendidos, mas também quero permitir que meu usuário possa cancelar o sinal de Compra e esperar por outro se desejar e idem para o sinal Fechar. Se eles optarem por fechar a negociação, quero que os sinais de Compra e Fechar Compra desapareçam e que o indicador observe os critérios de entrada para outra negociação. As peças de cancelamento funcionam perfeitamente, mas não consigo detectar eventos de Abertura e Fechamento porque a MQL4 não fornece as mensagens para isso.
Se você tiver olhado meu perfil, terá visto que não sou de forma alguma um programador novato. A linguagem simplesmente não oferece todas as funcionalidades que um profissional espera e precisa de uma plataforma de desenvolvimento moderna. Por outro lado, não consigo que a depuração funcione, o que é uma grande queixa. Segui a documentação, mas quando tentei colocar o depurador em movimento, recebi um gráfico que apareceu no diálogo de propriedades para inicializar meu indicador, mas quando apertei Ok para terminar a configuração do indicador, o gráfico desapareceu e pronto. Talvez as coisas estejam se perdendo na tradução do russo para o inglês e eu esteja apenas perdendo algo ou talvez o "bolo" não esteja bem assado. Como profissional, sei como é monumental a tarefa de criar uma linguagem e um ambiente de desenvolvimento como este. Minhas observações têm mais a ver com a natureza dos FYI's para o pessoal de desenvolvimento do que com reclamações.
Prof
Sem problemas, angevogeur
O código era originalmente este:
Prof
Se você não tiver declarado as variáveis que estou definindo e também não tiver os métodos que estou chamando declarados e preenchidos, ele não será compilado. Não pode. Eu teria esperado que você soubesse disso. Eu postei o que eu pensava que você estava pedindo - a solução que resolveu meu problema. De qualquer forma, se você está com MetaQuotes e está tentando descobrir o que está acontecendo com MetaTrader e consertá-lo, eu postei mais abaixo. Comente o if block init(), declare MA_Display_Time_Frame globalmente como um número inteiro e adicione estes métodos :
Já que se pretende que este seja um produto comercial que não é todo o código indicador por qualquer meio, mas isto deve compilar e potencialmente causar o problema usando os métodos init() e deinit() originais. É suficiente criar alguns rótulos e botões. Como um dos cartazes mencionados, a falha foi intermitente. Estava, no entanto, relacionada a qualquer ação que causasse a desinicialização do indicador, como a mudança das propriedades do indicador, a mudança dos períodos de tempo ou a parada e reinicialização do terminal. Se você quiser testar a mudança das propriedades, adicione estes externs aos globos:
Se você adicionar os externs, não há necessidade de comentar o se bloco que os referencia. Isso deve ser suficiente para que você possa compilá-lo e tentar reproduzir o problema. O problema não ocorreu desde que mudei as antigas funções de inicialização e desinicialização e fui para as novas versões. Se você precisar de mais alguma coisa, me avise. Ficarei de olho no fio da meada.
Eu tinha uma situação semelhante, o índio trabalhou bem quando caiu na tabela.
Funcionou bem após a mudança de parâmetros, funcionou bem após o turno Tf.
Depois de fechar o MT4 e reiniciá-lo, o índio não apareceu.
Estava na lista de indicadores no gráfico, mas não funcionou.
Depois de abrir a janela de parâmetros e clicar no botão OK, o indi desapareceu imediatamente da lista.
Tentei todos os truques, incluindo os descritos nos posts acima, nada funcionou.
Acabou sendo a divisão por edição 0!
A condição simples: se(x!=0) resolveu o problema.
Sim, acabo de ter o mesmo problema com outro índio.
Sem o "se" toda vez que a plataforma é iniciada, o índio tem a divisão por 0 questão,
o novo MT4 parece não ter nenhuma informação armazenada até que seja assinalado.
A outra solução seria usar o OnCalculate() em vez de start() ou OnStart(), eu acho que?
Mas, isso é algo a reclamar da MetaQuotes.
Você tem que usar o truque do retorno (0 ).
Alguém vai elaborar um pouco, se houver interesse.
Você tem que usar o truque do retorno (0 ).
Alguém vai elaborar um pouco, se houver interesse.
Bem, os indicadores antigos que você pode encontrar em qualquer lugar na Internet não têm seu código modificado automaticamente.
Se alguém pode ajustar códigos e entender o problema, pode fazê-lo por conta própria.
Todo o resto é obrigado a sentir o desconforto de não ver seus índios toda vez que eles abrem o MT4.
Se eles tiverem um modelo, podem usá-lo para restaurar o índio, mas isso significa fazer isso todas as vezes.
Os gabaritos são outra história, no novo Construído 625.
Gente,
Vocês estão todos fora da marca. O que vocês estão descrevendo é uma questão de tempo que sempre foi um problema. Você pode tratar disso de forma muito simples com isto:
Qualquer divisão por erro zero que você possa estar recebendo é devido a você tentar fazer cálculos antes que o servidor tenha se estabelecido. Se você estiver fazendo cálculos na função de inicialização - NÃO! Coloque o código acima em seu start() ou OnStart() e ENTÃO faça o que você precisa fazer. Dadas, tentando torná-lo tão simples quanto você vai te morder muito. Você está tendo sorte em seu índio.
Quando um índio desaparece, você tem um fracasso na inicialização. Se você olhar para seus registros, você verá "falha na inicialização global". Você precisa descobrir por que está conseguindo isso e endireitar as coisas. Se não o fizer, tudo o que você fez foi colocar uma BandAid num corte que precisava de pontos e ele voltará para cima de você.
Parece-me que este erro não tem nada a ver com o OnInit() e a descrição do erro é enganosa.
Com apenas uma única linha de código
Ele dará à matriz um erro fora de alcance.
Mudar o cronograma e obter a inicialização Global falhou e o indicador é removido do gráfico.