Erros, bugs, perguntas - página 2220
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
Na minha opinião, isto é um bug quando uma encomenda está no servidor de comércio, mas após o OrderSend síncrono no terminal não há sinal dele.
Decidi verificar quanto tempo duram essas ordens fantasma quando a ordem está presente no sistema mas não no terminal.
O resultado é
Uma ordem está presente no sistema mas não no Terminal durante 32 milissegundos! Imaginem as consequências se a lógica comercial fosse executada neste intervalo ...
É interessante que as ordens fantasma estão mais frequentemente presentes apenas emTRADE_TRANSACTION_ORDER_DELETE e em TRADE_TRANSACTION_DEAL_ADD (muito mais raras) tipos de transacção.
Muito mau matiz de plataforma.
ZZY A velocidade das transacções comerciais em 5 é, infelizmente, questionável.
Decidi verificar quanto tempo duram tais situações de ordem fantasma, quando uma ordem está no sistema mas não no terminal.
O resultado é
Durante 32 milissegundos, há uma encomenda mas não está no Terminal! Basta imaginar as consequências se a lógica de negociação fosse executada durante este intervalo.
Sim, isso não é bom. Como podem ver, estes resultados de transacção são enviados em pacotes diferentes. Devem ser num só.
Como pode ver, estes resultados de transacção são enviados em pacotes diferentes, enquanto que deveriam ser num só.
Acontece que a encomenda pode ser fantasma logo após a OrderSend e o Expert Advisor paralelo com a OnTradeTransaction nem sempre consegue apanhar este estado. Isto é, a própria OnTradeTransaction por vezes abranda.
De um modo geral, existem atrasos arquitectónicos no MT5 em diferentes locais que dificilmente são eliminados. Estes são desfasamentos de chegadas de carraças e agora de transacções comerciais. Tem de ser claro sobre o que a plataforma é capaz de fazer se estiver a contar com a velocidade de execução. Por exemplo, carraças que chegam com um atraso decente, depois transacções... e eventualmente outra pessoa no MT5 ou noutra plataforma podem ultrapassar, mesmo que você mesmo esteja sentado mesmo ao lado da troca.
As transacções comerciais vão em pacotes prioritários, ultrapassando os outros. Isto reduz seriamente a latência.
Como é possível que o guião detecte uma situação de ordem fantasma após a OrderSend, mas a OnTradeTransaction numa EA paralela não o faz (nem sempre, mas acontece)?
As transacções comerciais vêm em pacotes prioritários, ultrapassando os outros. Isto reduz seriamente a latência.
O problema é que as transacçõesTRADE_TRANSACTION_ORDER_DELETE eTRADE_TRANSACTION_HISTORY_ADD vêm em pacotes diferentes e é por isso que não importa qual a prioridade que têm, a latência da rede será de qualquer forma.E estas transacções devem ser executadas de forma sincronizada, uma após outra, sem qualquer estado intermédio. Ou seja, é uma operação atómica em essência, porque colocar uma ordem eliminada na lista histórica não tem nada a ver com uma troca.
Ou seja, há aqui duas opções: ou estas duas transacções se juntam num pacote, ou a primeira transacção não é executada no terminal até que a segunda chegue.
Isto é, existem duas opções: ou ambas as transacções se juntam num pacote, ou a primeira transacção não é executada no terminal até que a segunda chegue.
Há situações em que TRADE_TRANSACTION_DEAL_ADD vem ANTES da transacção TRADE_TRANSACTION_ORDER_DELETE. Neste caso, mesmo antes de TRADE_TRANSACTION_ORDER_DELETE, a encomenda ainda é fantasma.
Os agentes remotos deixaram de optimizar
Presumo que seja por causa do novo compilador, como podem ser actualizados para o fazer funcionar?
Além disso, apenas uma parte do optimista passa 13 de 28 por causa deste erro.Olhando através do código do pacote Alglib. Está cheio destas construções, o que torna o código mais difícil de ler:
Não é mais simples assim?
Parece-me que a velocidade de execução seria ainda mais rápida.
Porque é que tornaram o código tão complicado? Ou apenas portado de outra língua, sem quaisquer ajustes? Mas ainda me pergunto porquê uma tal complicação no original?