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
Tente transferir-se para C - o erro vai encontrar-se a si mesmo. E em geral - com tais projectos é a única forma de escrever, se não quiser problemas no futuro. Infelizmente, eu próprio o compreendi demasiado tarde e agora reescrevo-o :).
Temos um indicador a correr na TF M15, no código o indicador pede a série cronológica MqlRates à TF M1.
O indicador não começa de imediato porque os dados M1 não estão prontos e não é possível carregá-los durante a primeira corrida.
Como resultado temos um passe falso e o indicador já não tem acesso aos dados, pensando que já está calculado e não há necessidade de o recalcular.
Agora estou a correr o indicador de duas maneiras:
Daí a questão: como automatizar o correcto controlo e carregamento dos dados necessários para outra TF?
Daí a questão: como automatizar a verificação e o carregamento dos dados necessários da outra TF?
Numa situação semelhante, eu controlo o processo de inicialização na OnCalculate. Se houver um erro durante a inicialização, então eu devolvo prev_calculado=0 e continuo a fazê-lo até que tudo seja calculado correctamente.
A ideia é boa, embora não se possa atribuir nada a pré_calculado, a variável é declarada como const, mas entendo que se pode ter outra variável semelhante.
Há ainda uma questão - se não há dados, o que devo fazer?
Compreendo que o pedido de dados em si não leva a descarregar ou carregar a partir de uma base de dados local, e este é exactamente o problema.
A ideia é boa, embora não se possa atribuir nada a pré_calculado, a variável é declarada como const, mas eu compreendi-o, pode ter outra variável semelhante.
Não se trata de atribuição, trata-se do número devolvido pela OnCalculated. Se os seus dados não estiverem prontos, devolverá 0 da OnCalculated.
Veja os exemplos do BarsCalculated. É assim que deve verificar.
Resta uma questão - se não houver dados, o que deve fazer?
Se quiser, pode esperar e calcular os amortecedores por temporizador.
Se os seus dados não estiverem prontos, devolverá 0 da OnCalculated.
Se não os tiver e eles não aparecerem, então não há muito a fazer.Veja os exemplos de BarsCalculated.
Se quiser, pode chamar os amortecedores de espera e de cálculo por temporizador.
Não ajuda, apenas descarrega o indicador e reinicia-o, neste caso os dados já estão lá por alguma razão.
Ou em alternativa, abrir um gráfico com a M1 TF requerida, então os dados no gráfico M15 adjacente no pedido M1 estão prontos imediatamente.
Não ajuda, apenas descarrega o indicador e reinicia-o, neste caso os dados já estão lá por alguma razão.
Ou em alternativa, abrir um gráfico com a TF necessária, então os dados no gráfico adjacente estão prontos de imediato.
Hoje passei meio dia com índices. Havia várias divisas/multitime.
O problema de não exibir é que está a tentar tirar um valor de um bar que simplesmente não existe nesta TF.
Portanto, tem de verificar antes de tomar um bar - SeriesInfoInteger.Não é necessário descarregar. Não se pode descarregar a parte de cálculo de qualquer maneira (acabei de levantar o assunto hoje).
Tenho estado hoje a trabalhar com os índices há meio dia. Havia várias divisas/multitime.
O problema com a não exibição é que ela tenta tirar o valor da barra, o que não existe nesta TF.
Portanto, tem de verificar antes de tomar um bar - SeriesInfoInteger.Não é necessário descarregar. Não se pode descarregar a parte de cálculo de qualquer maneira (acabei de trazer à baila um tópico sobre isto hoje).
Mimeo, tenho um cheque, encontro a primeira data na TF M1 e o cálculo das barras M15 começa a partir desta data. TF é definido como PERÍODO_M1
1. a ideia é boa, embora não se possa atribuir nada a pré_calculado, a variável é declarada como const, mas entendo que se pode ter outra variável semelhante.
2. Resta uma questão, e se não houver dados, o que devemos fazer?
3. compreendo que a consulta em si não carrega ou descarrega dados da base de dados local, e este é exactamente o problema.
Compreendo que o pedido de dados em si não provoca o descarregamento ou carregamento de dados a partir de bases de dados locais, e é exactamente este o problema.
A partir da ajuda do CopyXXXX:
Ao solicitar dados a um Expert Advisor ou um script, iniciará o descarregamento a partir do servidor, se o terminal não tiver esses dados localmente, ou começará a construir as séries de tempos necessárias, se os dados puderem ser construídos a partir do histórico local, mas ainda não estiverem prontos. A função devolverá a quantidade de dados que estará pronta quando o tempo limite expirar, mas o histórico continuará a ser descarregado e o próximo pedido semelhante devolverá mais dados.