Vocês já verificaram se os ticks estão sincronizados no tempo na sua solução?
Em testes comuns, se solicitarmos ticks com caracteres diferentes, há um atraso de 1 tick entre um e outro. Para verificar isso, criei scripts personalizados com ticks a cada minuto.
Criei ticks personalizados a partir dos intervalos de um minuto do EUR e do GBP (por conveniência)
Para o EUR está correto; para o GBP, está um tick à frente (observe a hora e o preço)
Os ticks com a mesma hora não chegam simultaneamente. Todos são sequenciais. E se o tick do EURUSD com a hora mais avançada chegar primeiro, nesse momento não se sabe nada sobre o tick com a mesma hora do GBPUSD, que chegará em segundo lugar. Portanto, no momento em que o primeiro tick do EURUSD chega, o segundo tick do GBPUSD simplesmente não existe, mas há os dados do tick anterior do GBPUSD.
fxsaber #: Os ticks com o mesmo tempo não chegam simultaneamente. Todos chegam sequencialmente. E se um tick do EURUSD com um tempo maior chegou primeiro, nesse momento não se sabe nada sobre o tick com o mesmo tempo do GBPUSD, que chegará em segundo lugar. Portanto, no momento em que o primeiro tick do EURUSD chega, o segundo tick do GBPUSD simplesmente não existe, mas há os dados do tick anterior do GBPUSD.
No simulador, isso é uma desvantagem; para a arbitragem, é preciso que haja sincronia.
E não apenas para a arbitragem. Se o sistema se baseia na correlação entre instrumentos, surge a possibilidade de “previsão do futuro”.
fxsaber #: Para esses casos, existe um atraso de execução configurável no Testador.
Ficou um pouco complicado para mim. No Inite, eu fazia a leitura com um testador personalizado e gravava as entradas em um array; depois, no OnTick do testador, lia as entradas e sincronizava
No testador, isso é uma desvantagem; para a arbitragem, é preciso que seja sincronizado.
E não apenas para arbitragem. Se o sistema se baseia na correlação entre instrumentos, surge a previsão do futuro
Não há previsão do futuro, porque, se para o momento X houver ticks em vários símbolos, então, junto com o primeiro evento em um dos instrumentos, nos demais símbolos (para os quais os eventos ainda estão na fila) haverá o tick anterior, e não o tick seguinte (como no exemplo, 00:04 foi antes de 00:05, e não depois).
Para a sincronização, é preciso garantí-la algoritmicamente no código; por exemplo, no manipulador OnTick, consultar a hora dos ticks em todos os símbolos envolvidos antes de iniciar uma operação. Mas, em princípio, se a arbitragem for baseada especificamente em ticks (e não em barras ou minutos), é difícil imaginar uma sincronização confiável, pois os ticks em certos símbolos podem realmente ficar ausentes por alguns segundos.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
fxsaber #:
Para que serve essa linha?
Para que serve essa linha?
Para retornar o valor do saldo desejado.
Vocês já verificaram se os ticks estão sincronizados no tempo na sua solução?
Em testes comuns, se solicitarmos ticks com caracteres diferentes, há um atraso de 1 tick entre um e outro. Para verificar isso, criei scripts personalizados com ticks a cada minuto.
Vocês já verificaram até que ponto os ticks estão sincronizados em sua solução?
Está tudo funcionando corretamente. E no Tester padrão também está certo. Se não estiver, mostre.
No Tester padrão está correto. Se não estiver, mostre.
Criei ticks personalizados a partir dos gráficos de um minuto do EUR e do GBP (por conveniência)
Para o EUR está correto; para o GBP, está um tique à frente (observe a hora e o preço)
Criei ticks personalizados a partir dos intervalos de um minuto do EUR e do GBP (por conveniência)
Para o EUR está correto; para o GBP, está um tick à frente (observe a hora e o preço)
Os ticks com o mesmo tempo não chegam simultaneamente. Todos chegam sequencialmente. E se um tick do EURUSD com um tempo maior chegou primeiro, nesse momento não se sabe nada sobre o tick com o mesmo tempo do GBPUSD, que chegará em segundo lugar. Portanto, no momento em que o primeiro tick do EURUSD chega, o segundo tick do GBPUSD simplesmente não existe, mas há os dados do tick anterior do GBPUSD.
No simulador, isso é uma desvantagem; para a arbitragem, é preciso que haja sincronia.
E não apenas para a arbitragem. Se o sistema se baseia na correlação entre instrumentos, surge a possibilidade de “previsão do futuro”.
No testador, isso é uma desvantagem; para arbitragem, é preciso que seja sincronizado.
E não apenas para a arbitragem. Se o sistema se baseia na correlação entre instrumentos, surge a previsão do futuro
Para esses casos, existe um atraso de execução configurável no Testador.
No testador, isso é uma desvantagem; para a arbitragem, é preciso que seja sincronizado.
E não apenas para arbitragem. Se o sistema se baseia na correlação entre instrumentos, surge a previsão do futuro
Não há previsão do futuro, porque, se para o momento X houver ticks em vários símbolos, então, junto com o primeiro evento em um dos instrumentos, nos demais símbolos (para os quais os eventos ainda estão na fila) haverá o tick anterior, e não o tick seguinte (como no exemplo, 00:04 foi antes de 00:05, e não depois).
Para a sincronização, é preciso garantí-la algoritmicamente no código; por exemplo, no manipulador OnTick, consultar a hora dos ticks em todos os símbolos envolvidos antes de iniciar uma operação. Mas, em princípio, se a arbitragem for baseada especificamente em ticks (e não em barras ou minutos), é difícil imaginar uma sincronização confiável, pois os ticks em certos símbolos podem realmente ficar ausentes por alguns segundos.