Erros, bugs, perguntas - página 1805
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
@Slawa, por favor clarifique, existem restrições à escrita dos amortecedores indicadores fora da função OnCalculate()? No caso de buffers de escrita nas funções OnTimer(), OnBookEvent(), OnChartEvent(), será que tudo será sempre escrito correctamente?
Mas pode deparar-se com uma redistribuição de buffers no momento de adicionar uma nova barra (a redistribuição é feita com uma reserva, por isso não em cada nova barra).
PS embora não. Todo o processamento está num só fio, pelo que não deve haver colisões. Experimente
Não há limitações óbvias. Experimente-o.
Mas pode encontrar uma redistribuição tampão no momento de adicionar nova barra (a redistribuição é feita com alguma reserva, por isso não em cada nova barra)
Aqui, mais detalhes, por favor. O que é a atribuição, como lidar com ela?
Apenas escrevi a pergunta porque reparei em "soluços" num novo bar. E estes soluços reiniciam os valores tampão = 0 (com o valor vazio que eu defini explicitamente - EMPTY_VALUE). Até agora, ainda não consegui apanhar este momento. Por vezes o indicador apenas "salta" e restabelece imediatamente o normal, outras vezes apenas "congela". Quando colados, os valores não são escritos no ficheiro e os amortecedores não são desenhados. Os amortecedores são escritos para OnBookEvent().
O mesmo código funciona bem em OnCalculate(), mas OnCalculate() não permite recolher todos os valores de Interesse Aberto e outros parâmetros de troca.
Só pode ser resolvido através de comutação TF. Sim, 5-7 mesmos indicadores funcionando ao mesmo tempo, escrevendo dados diferentes.
Adicionado:
Sim, também notou hoje exactamente a mesma coisa ao ligar o terminal. Tudo apenas pendurado, todos os amortecedores, todos os valores têm zeros, nenhum histórico (escrito para arquivar) foi dado pelo indicador. Por outras palavras, tudo simplesmente desligou. O mercado ainda se encontrava fechado. Eu mudei TF - a história voltou, mas mais uma vez, à questão da necessidade de um carimbo de tempo para os valores da SESSÃO: o último valor conhecido no momento do encerramento do terminal foi registado! A sincronização da história foi bem sucedida, sem erros. Mas o TimeCurrent() devolveu um valor erróneo (cerca de 21:03). O tempo real deste valor é 23:49:59. Em suma, algum tipo de tristeza.
Aqui, mais detalhes, por favor. O que é a atribuição, como deve ser tratada?
Apenas escrevi a pergunta porque reparei em "soluços" num novo bar. E estes soluços valores tampão zero = 0 (com o valor vazio definido explicitamente por mim - EMPTY_VALUE). Até agora, ainda não consegui apanhar este momento. Por vezes o indicador apenas "salta" e restabelece imediatamente o normal, outras vezes apenas "congela". Quando colados, os valores não são escritos no ficheiro e os amortecedores não são desenhados. Os amortecedores são escritos para OnBookEvent().
O mesmo código funciona bem em OnCalculate(), mas OnCalculate() não permite recolher todos os valores de Interesse Aberto e outros parâmetros de troca.
Só pode ser resolvido através de comutação TF. Sim, 5-7 mesmos indicadores estão a funcionar simultaneamente, escrevendo dados diferentes.
Reatribuímos o buffer para 1250 barras e copiamos 1000 barras do buffer anterior para o novo buffer. Colocar o novo tampão no lugar do antigo tampão, apagar o antigo tampão. Acrescentamos a barra 1001.
O que quer dizer com "o que fazer com ele"?
Tenha em mente que todos os indicadores de um símbolo são contados sequencialmente, um após o outro, num só fio. Se um indicador abranda, todo o fio do processamento de símbolos também abranda
Fácil. Chega o primeiro tique do novo bar. O tampão é atribuído para 1000 barras e está completamente cheio.
Realocamos o tampão para 1250 barras e copiamos 1000 barras do tampão antigo para o novo tampão. Colocar o novo tampão no lugar do antigo tampão, apagar o antigo tampão. Acrescentamos a barra 1001.
O que quer dizer com "o que fazer com ele"?
Tenha em mente que todos os indicadores de um símbolo são contados sequencialmente, um após o outro, num só fio. Se um indicador abranda, todo o fio do processamento de símbolos também abranda
Estou ciente da coisa do fio único. E a redistribuição, tal como a entendo, afecta a OnBookEvent() mais do que a OnCalculate()?
Mas, até o indicador (qualquer indicador neste símbolo!) terminar os seus cálculos (OnCalculate, OnTimer, OnChartEvent, OnBookEvent), o novo tick não chegará para ser processado.
A redistribuição é feita com uma nova carraça. Imediatamente após a chegada de um novo tick fora da fila , OnCalculate é chamado. E só depois disso é que o processamento dos eventos, recebidos pelo indicador, continua
Contudo, até que o indicador (qualquer indicador neste símbolo!) termine os seus cálculos (OnCalculate, OnTimer, OnChartEvent, OnBookEvent), um novo tick não chegará para ser processado.
Além disso, tanto quanto sei, os indicadores num símbolo são calculados sequencialmente, ou seja, se eu atirei o indicador i1, i2, i3 numa fila, então serão calculados na mesma ordem?
Adicionei agora um MAKD padrão para testes; é o último da lista. Vou ver se abranda quando uma nova barra é formada.
Além disso, tanto quanto sei, os indicadores num símbolo são calculados sequencialmente, ou seja, se eu atirei o indicador i1, i2, i3 numa fila, então serão calculados na mesma ordem?
Agora adicionei um MAKD padrão para testes, é o último da lista. Vou ver se fica pendurado quando uma nova barra é formada.
Mas se eliminar diferentes indicadores, a sequência de recálculo pode surpreendê-lo. Portanto, não confie na sequência
No início, sim, o cálculo será na mesma sequência.
Mas se eliminar indicadores diferentes, a sequência de recálculo pode surpreendê-lo. Portanto, não confie na sequência.
Era disto que eu estava a falar:
Uma nova barra foi formada em GOLD-3.17, todos os meus indicadores calculados em OnBookEvent() por este símbolo todos os valores actuais foram zerados. De acordo com a lógica do indicador, no momento da formação de uma nova barra, os amortecedores não são zerados, e o valor actual é-lhes imediatamente escrito. MACD não é zerada. O registo está vazio, isto significa que não houve dessincronização, todos os valores devem estar correctos. Neste caso, a falha durou cerca de 5 segundos. Ontem estive a apanhar falhas durante vários minutos de cada vez.
Todas as outras personagens estavam bem. Mais uma vez, a lógica do indicador não reinicia os valores para 0! Assim, a questão é: ao redistribuir novos artigos, em teoria, deve conter lixo. Mas aqui 0,0 e pende...
Sim, mais uma coisa: se um indicador estivesse pendurado, os outros deveriam ter mantido os seus valores! Mas todos eles, todos de uma só vez, zerados. Há alguma situação em que isto possa acontecer?Ocorreu um desligamento semelhante na BR-3.17:
@Slawa alguma ideia de que forma cavar? Talvez haja uma melhor forma de recolher dados de intercâmbio e de os exibir?