주식 시장. 재고. 거래 주문 실행 속도. - 페이지 17

 
Andrey Miguzov # :

우리가 "주방"을 다루고 있다고 상상해보십시오. 그들은 실행 시간이 1ms라는 로그를 보낼 수 있습니다. 그것을 확인하는 방법? 증권 거래소에 가서 시간을 확인하십시오. 이것은 통나무가 우리에게 거짓말을 하는지 여부를 대략적으로 이해하는 유일한 방법입니다.

나는 몇 년 동안 이것을 해왔고, 지연이 최대 1초였을 때 지연에 문제가 있다는 것을 MQ에 증명했습니다.

대화가 있었지만 지연이 14-20초로 "감소"했을 때 MQ가 대화를 중단했습니다.

따라서 주문이 실제로 어떻게 실행되었는지 알기 위해서는 거래소의 전체 주문 로그가 필요합니다.

그것 없이는 아무것도 증명할 수 없습니다.

여기를 읽으십시오 (증권 거래소에서 데이터를 제공했습니다. 이것은 2015년입니다)

https://www.mql5.com/ru/forum/38456/page23#comment_1445099

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • 2015.03.18
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,.
 
prostotrader # :

나는 몇 년 동안 이것을 해왔고, 지연이 최대 1초였을 때 지연에 문제가 있다는 것을 MQ에 증명했습니다.

대화가 있었지만 지연이 14-20초로 "감소"했을 때 MQ가 대화를 중단했습니다.

따라서 주문이 실제로 어떻게 실행되었는지 알기 위해서는 거래소의 전체 주문 로그가 필요합니다.

그것 없이는 아무것도 증명할 수 없습니다.

여기를 읽으십시오 (증권 거래소에서 데이터를 제공했습니다. 이것은 2015년입니다)

https://www.mql5.com/en/forum/38456/page23#comment_1445099

나는 이 스레드를 매우 주의 깊게 따라갔고 심지어 여러 번 다시 읽었습니다.

아무도 (아직) 전체 로그를 제공하지 않습니다.

그러나 내가 조금 더 높게 설명한 알고리즘 (T2-T1인 경우)에 따르면 우리 TS의 매우 중요한 특성인 거래소에 신호가 나타난 후 거래가 체결되기까지 걸리는 시간을 이해할 수 있습니다. 이 신호의 교환에서. 그리고 모두 교환 시기에 따른 것입니다(테이프는 누구에게나 동일합니다).

 
Andrey Miguzov # :

위 글에 추가했습니다.

알고리즘은 다음과 같습니다.

거래소로부터 틱을 받습니다(거래소 시간 - T1에 따른 틱 시간)

우리는 그것을 분석하고 기호에 대한 매수/매도 주문을 보내기로 결정합니다.

주문 보내기

거래소가 실행하고 거래 테이프에 실행시간을 고정(교환시간 - T2)

나는 시간에 관심이 있다 = T2-T1

T2 시간은 교환 시간에 따라 정확하게 유지됩니다. 그렇지 않으면 다른 출처와 불일치가 있을 수 있습니다. 확인했습니다. 모든 곳에서 동일합니다.

하지만 주문을 하는 틱타임 T1은 어디서 왔는지 알 수 없기 때문에(교환시간이 아님) 답변이 불가능합니다(T2-T1).

여기에서 따옴표 누락 문제를 연구했습니다.

https://www.mql5.com/en/forum/381623#comment_25821280

Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.10
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
prostotrader # :

T2 시간은 교환 시간에 따라 정확히 유지됩니다. 그렇지 않으면 다른 출처와 불일치가있을 것입니다. 확인했습니다. 그들은 어디에서나 동일합니다.

하지만 주문을 하는 틱타임 T1은 어디서 왔는지 알 수 없기 때문에(교환시간이 아님) 답변이 불가능합니다(T2-T1).

여기에서 따옴표 누락 문제를 연구했습니다.

https://www.mql5.com/en/forum/381623#comment_25821280

그것이 바로 요점입니다. T1은 또한 교환의 시간입니다. 나는 확인했다. 위의 스크린샷에서도 확인할 수 있습니다.

거래 테이프는 브로커를 통해 거래소에서 단말기로 방송됩니다. 틱(틱 그룹)이 도착하면 이벤트가 나타납니다 - OnTick. 틱 시간은 테이프(및 교환)의 시간과 일치합니다. 틱 시간은 모든 사람에게 동일합니다.


여기에 작은 문제가 있습니다. 나는 유리로 가격을 생각하고 유리를 교체한다고 항상 OnTick이 제공되는 것은 아닙니다. 그러나 오류가 있다면 큰 의미가 있습니다.

 
Andrey Miguzov # :

그것이 바로 요점입니다. T1은 또한 교환의 시간입니다. 나는 확인했다. 위의 스크린샷에서도 확인할 수 있습니다.

거래 테이프는 브로커를 통해 거래소에서 단말기로 방송됩니다. 틱(틱 그룹)이 도착하면 이벤트가 나타납니다 - OnTick. 틱 시간은 테이프(및 교환)의 시간과 일치합니다. 틱 시간은 모든 사람에게 동일합니다.


여기에 작은 문제가 있습니다. 나는 유리로 가격을 생각하고 유리를 교체한다고 항상 OnTick이 제공되는 것은 아닙니다. 그러나 오류가 있다면 큰 의미가 있습니다.

틱 시간이 재고 시간인지 확실하지 않습니다.

 struct MqlTick 
  { 
   datetime      time;           // Время последнего обновления цен 
   double        bid;           // Текущая цена Bid 
   double        ask;           // Текущая цена Ask 
   double        last;           // Текущая цена последней сделки (Last) 
   ulong         volume;         // Объем для текущей цены Last 
   long          time_msc;       // Время последнего обновления цен в миллисекундах 
   uint          flags;         // Флаги тиков 
   double        volume_real;   // Объем для текущей цены Last c повышенной точностью 
  };

터미널이나 거래소에 업데이트가 어디에 있기 때문에 쓰지 않습니다.

 
prostotrader # :

틱 시간이 재고 시간인지 확실하지 않습니다.

터미널이나 거래소에 업데이트가 어디에 있기 때문에 쓰지 않습니다.

서버에서.

 
prostotrader # :

틱 시간이 재고 시간인지 확실하지 않습니다.

터미널이나 거래소에 업데이트가 어디에 있기 때문에 쓰지 않습니다.

나는 당신의 자신의 인용문으로 당신에게 대답할 것입니다(링크 주셔서 감사합니다 - 주제가 저를 지나쳤습니다):

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MT5의 파생상품 시장 시세

2021.11.20 17:05

이벤트 핸들러에 관한 것이 아닙니다.

최적가 데이터가 전송되는 두 가지 방법이 있습니다.

1. 유리 컷

2. 공통 테이블은 최적의 가격과 함께 악기에 대한 정보를 방송합니다.

이벤트가 오더북에 의해 생성되는지 또는 기기에 대한 정보에 의해 생성되는지 여부는 전혀 중요하지 않습니다.

정보가 모든 터미널에 동일하게 제공되는 것이 중요하며 다른 브로커의 역사에서

그것은 다르고 거래는 모든 곳에서 동일 하지만 요청과 입찰은 종종 다릅니다.

두 MT5 터미널에서 매도호가와 매수호가를 얻는 알고리즘은 다른 브로커에 대해 동일하므로 다음과 같이 결론을 내립니다.

이 알고리즘은 제대로 작동하지 않습니다. 견적 공백이 있습니다.


다르게 해봅시다.

나는 무역 테이프에서 T1과 T2 시간을 가져옵니다. 정확한 시간은 알 수 없지만 참조 소스는 그곳에서 동일하므로(그렇지 않으면 혼돈이 있을 것입니다) 따라서 T1과 T2의 차이를 추정할 수 있습니다.

추가됨:

T1이 교환의 시간이라는 더 큰 확신이 있었습니다. 틱의 모든 정보는 거래소에서 가져온 것입니다. 모든 정보(시간에 대한 정보 포함)가 거래소에서 제공되는 경우 어떤 종류의 남은 시간을 생성하는 데 신경을 써야 합니까?

또한 거래 테이프의 로그와 사진으로 확인했습니다.

그러나 지금이 교환 시간이 아닌 경우 다른 브로커의 거래 테이프를 비교하는 것은 작동하지 않습니다. 그리고 그것은 높은 정확도와 비교됩니다 (잼이 있지만 이것은 사소한 일입니다). 다른 시간 소스가 있는 경우 비교할 수 없습니다.

 
Andrey Miguzov # :

나는 당신의 자신의 인용문으로 당신에게 대답할 것입니다(링크 주셔서 감사합니다 - 주제가 저를 지나쳤습니다):


다르게 해봅시다.

나는 무역 테이프에서 T1과 T2 시간을 가져옵니다. 정확한 시간은 알 수 없지만 참조 소스는 그곳에서 동일하므로(그렇지 않으면 혼돈이 있을 것입니다) 따라서 T1과 T2의 차이를 추정할 수 있습니다.

추가됨:

T1이 교환의 시간이라는 더 큰 확신이 있었습니다. 틱의 모든 정보는 거래소에서 가져온 것입니다. 모든 정보(시간에 대한 정보 포함)가 거래소에서 제공되는 경우 어떤 종류의 남은 시간을 생성하는 데 신경을 써야 합니까?

또한 나는 썼습니다- 거래 테이프의 로그와 사진으로 확인됩니다

그것이 무엇이든간에, 2 MT5는 당신의 것보다 빠르게 작동합니다.

문제는 다른 섹션의 모든 데이터를 결합하려면 브로드캐스트할 고유한 특수 서버가 필요하다는 것입니다.

ASTS(Stock Section) 및 Spectra(Forts)에 대한 정보는 물론 섹션을 가져와 하나의 터미널로 전송합니다.

중간 연결이 있으면 불가피한 지연이 발생합니다.

 

실제로 전체 질문은 주문을 보내기 전에 줄을 삽입하는 것입니다.

 Print ( " Время тика: " , 
       TimeToString (last_tick.time, TIME_SECONDS ), 
       "." , 
       (last_tick.time_msc)% 1000 , //добавляет мс в строку
       " по символу " , 
       name); //имя инструмента

그런 다음 포럼에 전문가 탭과 이 거래에 대한 로그 탭을 놓습니다.

다음 - 거래 피드에서 거래를 찾으려고 합니다. 불행히도 이것이 항상 가능한 것은 아닙니다.

이상적으로는 단일 볼륨이 아닙니다. 그리고 다른 가격으로 채우십시오.

 
prostotrader # :

그것이 무엇이든간에, 2 MT5는 당신의 것보다 빠르게 작동합니다.

문제는 다른 섹션의 모든 데이터를 결합하려면 브로드캐스트할 고유한 특수 서버가 필요하다는 것입니다.

ASTS(Stock Section) 및 Spectra(Forts)에 대한 정보는 물론 섹션을 가져와 하나의 터미널로 전송합니다.

중간 연결이 있으면 불가피한 지연이 발생합니다.

동의한다. 그냥 너무 슬프다 :(

100-200ms의 실행 시간이 중요하지 않은 전략에 대해서만 EBS가 나타납니다.

그러나 철저히 살펴보면 그러한 전략이 없습니다. 이익은 항상 실행 시간에 반비례합니다.