-Alexey-: 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 :).
Provavelmente, estudarei C++ num futuro próximo. Durante os últimos seis meses a minha cabeça já está cheia: MQL4, MQL5, HTML, CSS, XML. E agora também estou a estudar JavaScript. Ainda não tenho espaço e tempo suficiente para C++, embora queira mesmo))).
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 assim por diante até que tudo seja contado correctamente.
Lizar: 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 não houver dados e estes não aparecerem, então não há muito a fazer. Se quiser, pode esperar e calcular os amortecedores por temporizador.
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).
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.
Quis dizer deOnCalculate return 0, depois prev_calculated=0;
Eu estabeleço um contador de reinicializações. Ao transbordar, descarrego o indicador.
Não tive problemas com SoruXXX. Se houver uma história local, tudo é contado desde a segunda ou terceira vez, se não desde a primeira. No Campeonato, o "espião" utilizado pelo Conselheiro Especialista conta apenas com a história de um minuto, trabalha no H1. E assim por diante 9 pares. Se não houver qualquer história local, o ponto 2 irá funcionar. Mas, tanto quanto me lembro, a história foi descarregada a partir do servidor.
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.
Estamos a falar apenas de Expert Advisors e roteiros. Isto não se aplica aos indicadores?
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.