Mercado de ações. Estoques. Rapidez na execução de ordens comerciais. - página 16

 
prostotrader #:

Andrey Miguzov Afinal, você está entrando na cozinha...

não há ordens de mercado no mercado de ações

Eu também pensei assim no início... Mas eles colocam os negócios no mercado (no MOEX) - é fácil de verificar a partir da alimentação dos negócios.

Há um problema com o tempo de execução, vou tentar resolvê-lo através do suporte técnico, mas um pouco mais tarde. Se eles não consertarem. Muito provavelmente irei embora. voltar. Se você se lembra, também nem sempre foi assim na Otkritie. E, graças a você, tornou-se o que é agora.


Mas é preciso entender a grande diferença - o MT5 em Otkritie é apenas MOEX - é muito mais fácil para eles montar o terminal para trabalhar em várias seções em uma única troca. E para colocar o equipamento mais perto da troca. E isto porque eles ainda não fizeram um SPE.

E a Finam está oferecendo agora o EBS:

E até tudo que você precisa de um pequeno atraso, e isto é impossível mesmo teoricamente. Você entende quais oportunidades surgem com tal número de instrumentos, não é mesmo? Em geral, há + e -'s em todos os lugares

SZS: Não realmente sobre este tema, mas ainda assim. Dadas as atuais sanções contra o setor bancário, não tenho certeza onde é mais seguro manter os fundos agora: com um corretor russo (sob sanções) ou na "cozinha". Não estou escrevendo isto por causa de um grito político, simplesmente não o entendo no momento. Eu não quero ofender ninguém com isto.

 
prostotrader #:

Hoje, os dois terminais reais

Futuros

13 ms

Existências

26ms e 28ms respectivamente

Adicionado

O comércio inverso
Futuros

7 ms

Existências

26 ms e 27 ms respectivamente

Quando olho para seus registros e depois para os meus - meus olhos começam a "sangrar". Vou postar os logs um pouco mais tarde - também no VTB por volta da mesma hora. Levando em conta a análise que escrevi acima.

 
Andrey Miguzov #:

Quando olho para seus troncos e depois para os meus, meus olhos começam a sangrar. Um pouco mais tarde postarei os logs - também em VTB por volta da mesma hora, levando em conta a análise que escrevi acima.

Eu tenho cerca de 20-30ms em futuros em Otkritie, ping para servidores de 10-12ms.

 
Andrey Miguzov #:

ZS: Não realmente sobre este tema, mas ainda assim. Dadas as atuais sanções contra o setor bancário, não tenho certeza se é mais seguro manter fundos com um corretor russo (sob sanções) ou na "cozinha". Não estou escrevendo isto por causa de brigas políticas, é que realmente não o entendo no momento. Eu não quero ofender ninguém.

Há um provérbio russo muito sábio:

"Onde você nasceu, onde você nasceu" ....

Adicionado

Consegui um par de contratos a um preço saboroso


 
Andrey Miguzov #:

Conclusões:

1) O tempo nos troncos e os tempos nos carrapatos não são os mesmos, o que é lógico, mas eu nunca tinha pensado nisso antes. IMHO, não é muito correto medir o tempo de execução por logs de terminal.

2) Sabendo o tempo do tick com a precisão de milissegundos (ao preço do qual o pedido é enviado do terminal), você pode então (usando o histórico de símbolos de baixa liquidez) saber o "tempo de execução" real.

"time_execution_time" = "time_in_in_market_that_called_transaction_in_terminal" - "time_the_market_time_of_your_transaction".

Este tempo incluirá todos os atrasos da rede desde a troca até o terminal e vice-versa (via corretor) + tempo de processamento da execução da transação na troca +tempo de processamento do tick por especialista

Escreverei sobre os resultados mais tarde.

Os resultados reais (neste caso, entrada por espiga - saída por tempo). Lamento que haja muitos textos e imagens. Você pode ler imediatamente as conclusões, tudo o mais é apenas para confirmá-las.

Tab Expert Advisors (o tempo do tique que causa a entrada/saída na/para a posição é destacado em amarelo):

2022.04.11 10:45:19.471 Цена входа bid: 755.8 EMA_ask = 519.7 Цена фьючерса: 2309.0 Цена акции: 0.022570 Время тика: 10:45:18.444 по символу VTBR
2022.04.11 12:45:21.670 Цена выхода ask: 549.0 Цена фьючерса: 2252.0 Цена акции: 0.022170 Время тика: 12:45:20.489 по символу VTBR

Registro de entrada de log:

2022.04.11 10:45:19.476 '': exchange buy 150 VTBR at market
2022.04.11 10:45:19.476 '': exchange sell 15 VBM2 at market
2022.04.11 10:45:19.486 '': accepted exchange buy 150 VTBR at market
2022.04.11 10:45:19.491 '': exchange buy 150 VTBR at market placed for execution in 15.925 ms
2022.04.11 10:45:19.491 '': accepted exchange sell 15 VBM2 at market
2022.04.11 10:45:19.491 '': exchange sell 15 VBM2 at market placed for execution in 13.994 ms
2022.04.11 10:45:19.621 '': deal #2305398 buy 150 VTBR at 0.022570 done (based on order #204678572)
2022.04.11 10:45:19.636 '': deal #2305399 sell 1 VBM2 at 2304 done (based on order #204678573)
2022.04.11 10:45:19.641 '': deal #2305400 sell 14 VBM2 at 2303 done (based on order #204678573)

Fita de comércio - entrada em ações:


Fita de acordos - entrada em futuros


Resumo das entradas:

Para o estoque:

1) A partir de registros terminais: 10:45:19.621 - 10:45:19.471 = 150ms

2) Horário de carrapato na alimentação dos ofícios: 10:45:18.540 - 10:45:18.444 = 96 ms. E eu não entendo como isso é possível!!!

Para os futuros:

1) A partir de registros terminais: 10:45:19.641 - 10:45:19.471 = 170ms.

2) Horário de carrapato na alimentação dos ofícios:10:45:18.573 - 10:45:18.444= 129 ms. Também aqui eu não entendo como isso é possível!!!


Agora para as estatísticas, é o mesmo para a saída:

2022.04.11 12:45:21.685 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.685 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': accepted exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.701 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570 placed for execution in 19.305 ms
2022.04.11 12:45:21.701 '': accepted exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067 placed for execution in 18.989 ms
2022.04.11 12:45:21.841 '': deal #2307117 sell 150 VTBR at 0.022170 done (based on order #204986103)
2022.04.11 12:45:21.857 '': deal #2307118 buy 6 VBM2 at 2252 done (based on order #204986104)
2022.04.11 12:45:21.857 '': deal #2307119 buy 9 VBM2 at 2252 done (based on order #204986104)

Fita de comércio - saída de estoque:


Fita adesiva de negócios - saída em futuros:

Saída de saída:

Para o estoque:

1) A partir de registros terminais: 12:45:21.841 - 12:45:21.670 = 171 ms.

2) Horário de carrapato na alimentação dos ofícios:12:45:20.556 - 12:45:20.489= 67 ms. Novamente!!! E quão grande é a diferença!!!!

Para os futuros:

1) De acordo com os registros terminais: 12:45:21.857 - 12:45:21.670 = 187 ms

2) Horário de carrapato na alimentação comercial: 12:45:20.585- 12:45:20.489= 96 ms ...


Conclusões:

Ao medir os atrasos reais de execução - você não pode usar os logs do terminal ! Ou devo usá-los de alguma outra forma, se alguém o explicar - ficarei grato :)

Tempo de "execução" em toras - 150, 170, 171, 187 ms. Tempo de execução dos negócios - 96, 129, 67, 96 ms respectivamente. A diferença média é de 72,5 ms . O momento correto está naturalmente na troca. E isto a um ping de 12 ms.


***A "execução" se refere ao intervalo de tempo entre o envio de um "tick base" da troca através de um corretor e a conclusão da minha negociação com esse "tick" na troca. Tudo de acordo com o momento da troca.

Neste tempo está supostamente incluído 2 (???? agora dúvidas) latência de rede de ~ 12 ms (ping) para corretor, tempo de processamento tick por terminal, EA (eu vou medir e adicionar quantos ~ ms no meu caso), corretor de servidor, troca + 2 latências de rede de corretor.


ZS: quanto de "execução" na Otkritie então? :) Frio em geral, eu temia que fosse o contrário e muito pior...

 
Andrey Miguzov #:

Conclusões:

Ao medir os atrasos reais de execução - os logs dos terminais não podem ser usados ! Ou deve ser usado de outra forma, se alguém me explicar - eu ficarei grato :)

Tempo de "execução" em toras - 150, 170, 171, 187 ms. Tempo de execução dos negócios - 96, 129, 67, 96 ms respectivamente. Diferença média - 72,5 ms . O momento correto está naturalmente na troca. E isto a um ping de 12 ms.


***A "execução" se refere ao intervalo de tempo entre o envio de um "tick base" da troca através de um corretor e a conclusão da minha negociação com esse "tick" na troca. Tudo de acordo com o momento da troca.

Neste tempo supostamente inclui 2 (???? agora dúvidas) latência de rede por ~12 ms (ping) para corretor, tempo de processamento tick por terminal, EA (eu medo e adiciono quantos são ~ ms no meu caso), corretor de servidor, troca + 2 latências de rede de corretor.


ZS: quanto de "execução" na Otkritie então? :) Geralmente legal, eu temia que fosse o contrário e muito pior.

Você só quer ligar duas vezes diferentes :)

Na verdade, é muito simples.

Tempo de execução, este é o tempo de envio da ordem pelo terminal e está escrito no log

2022.04.11 11:25:41.599 Trades  'ххххх': sell limit 1 VTBR-6.22 at 2273

antes do momento da transação, que também está escrito no diário de bordo.

2022.04.11 11:25:41.612 Trades  'ххххх': deal #111208977 sell 1 VTBR-6.22 at 2273 done (based on order #199905491)

O tempo registrado (é o mesmo) será o tempo de execução da ordem de comércio (13 ms) mais/menos o erro de tempo em que o registro é mantido.

Toda confusão surge porque o MT5 não funciona de acordo com a hora exata da troca, mas de acordo com seu próprio tempo.

 
JRandomTrader #:

Tenho cerca de 20-30ms em Abertura em futuros, ping para servidores 10-12ms.

Favor testar a todos não indiferentes, se possível.

Naquele lugar do código, onde você recebe um tique para formar o pedido:

 Print(" Время тика: ", 
       TimeToString((datetime)MathMax(last_tick_stocks.time,last_tick_futures.time),TIME_SECONDS), //в моём случае вход сразу по 2-м инструментам, у Вас возможно 1 символ
       ".", 
       MathMax(last_tick_stocks.time_msc,last_tick_futures.time_msc)%1000, //добавляет мс в строку
       " по символу ", 
       stocks_name); //имя инструмента

E depois publicar o que a EA mostrará e o que estará nos logs do terminal para esta encomenda.

Eu mesmo tentarei encontrá-lo no canal de comércio. No entanto, nem sempre é possível fazê-lo - precisamos de volumes que não são típicos + idealmente, precisamos preenchê-los a preços diferentes.

 
prostotrader #:

Você só quer ligar duas vezes diferentes :)

Na verdade, é muito simples.

Tempo de execução, este é o momento do envio do pedido pelo terminal e está escrito no log

ao tempo de comércio, que também está escrito no arquivo de registro.

O tempo registrado (é o mesmo) será o tempo de execução da ordem de comércio (13 ms) mais/menos o erro de tempo em que o registro é mantido.

Toda essa confusão surge porque o MT5 não funciona exatamente pelo tempo de troca, mas por seu próprio tempo.

Eu não os misturo. Eu tiro duas vezes dos registros terminais em um caso e duas vezes da lasca de acordos no outro caso. E é muito menos com a fita (deveria ser vice-versa em teoria). E a fita está certa de qualquer forma.

Adicionado:

O que você dá como exemplo são os logs dos terminais. Podemos ver quanto tempo se passou nos registros dos terminais. E como sabemos quanto tempo se passou na troca? Somente a fita de acordos.


Um exemplo rudimentar e breve:

Imaginemos que estamos lidando com uma "cozinha". Eles podem nos enviar em logs que o tempo de execução é de 1 ms. Como verificá-lo? Vá até a troca e veja o tempo lá - esta é a única maneira de entender de forma aproximada se os troncos estão mentindo ou não.

 
Andrey Miguzov #:

Eu não os misturo. Eu tiro duas vezes dos logs do terminal em um caso e duas vezes da fita adesiva dos comércios no outro caso. E é muito menos para a fita (embora deva ser o contrário). E a fita é correta em qualquer caso.

Então eu não entendo o que você quer descobrir?

A diferença de tempo entre operações à vista e futuras?

 
prostotrader #:

Então eu não entendo o que você quer descobrir?

A diferença de tempo entre operações à vista e futuras?

Adicionado ao posto acima.

O algoritmo é o seguinte:

Recebemos um tick da troca (o tempo do tick é T1).

Analisamos e decidimos enviar um pedido de compra/venda sobre o símbolo

Enviamos um pedido

A troca o executa e fixa o tempo de execução na caixa de tick-box (hora da troca - T2)

Estou interessado no tempo = T2-T1