developer tip

고주파 거래

optionbox 2020. 12. 12. 10:38
반응형

고주파 거래


지난 몇 주 동안 나는 고주파 거래에 관한 많은 기사를 보았습니다. 그들은 모두 컴퓨터와 소프트웨어가 이것에 얼마나 중요한지에 대해 이야기하지만 모두 재정적 관점에서 작성 되었기 때문에 소프트웨어가하는 일에 대한 세부 사항이 없습니까?

프로그래머의 관점에서 누구나 고주파 거래가 무엇인지 설명 할 수 있습니까? 이 분야에서 컴퓨터 / 소프트웨어가 왜 그렇게 중요한가요?


바울이 말한 내용을 확장하려면 :

HFT 또는 UHFT를 실행하는 서버는 거의 항상 거래소의 데이터 센터에 배치됩니다. 이를 통해 지연 시간을 최소화하고 알고가 플래시 주문 (곧 금지 될 수 있음)을 사용하여 주문이 시장에 방송되기 전에 주문 흐름을 먼저 살펴볼 수 있습니다. 많은 algo가 단 몇 밀리 초 만에 순서를 평가할 것이며 이것은 밀리 초가 중요한 게임입니다. 거래 그룹은 주문이 NIC에 도달 한 시점과 그에 따른 조치가 취해지는 시점 사이의 시간을 더 잘 최적화하기 위해 커널 개발자를 고용하여 맞춤형 OS 구성 요소를 구축하는 등 모든 조치를 취하는 것으로 알려져 있습니다.

오늘날 일반적으로 사용되는 몇 가지 큰 전략 버킷이 있습니다.

첫 번째는 대량 주문 앞에서 거래하는 것입니다. IBM의 백만 주를 매입하는 Paul의 예를 사용하기 위해 HFT algo는 매수 압력을 모색 할 것입니다. 서로 다른 거래소와 다크 풀에있는 회사 컴퓨터는 주문이 분할되고 일반적으로 여러 거래소와 다크 풀에서 실행되기 때문에 정보를 공유해야합니다. HFT 알고리즘은 통계적 / 기계 학습 모델을 사용하여 구매 압력의 크기를 예측하고 충분하다고 판단되면 여러 시장에서 주식을 축적하고 약간 더 높은 가격에 판매하려고 시도합니다.

두 번째는 유동성 리베이트 거래로 거래소가 유동성을 추가하기 위해 시장 참가자에게 지불합니다. ( Direct Edge 가격 책정 참조 ) 매수 또는 매도 한 주식은 매우 짧은 기간 동안 만 보유 할 수 있습니다. 목표는 그저 리베이트를 모으고 다른 모든 것을 중단하는 것입니다.

이 두 가지 전략 유형에서 아이디어는 거래에서 동전 (또는 분수)을 만들고 하루에 여러 번 수행하는 것입니다.

당신이 알아 차렸 듯이 많은 HFT 작업이 가능하고 따라서 거래가 더 복잡해지고 있습니다. 나는 이것이 2000 년대 초의 일종의 통계 arb라고 생각하며 결국 많은 플레이어들이 그것을 만들려고 노력하고 있기 때문에 결국 거래는 그다지 수익성이 없을 것입니다.

소프트웨어가 중요한 이유는 밀리 초가 중요합니다. 대기 시간은 매우 중요하며 코드는 단단하고 빠르며 견고하고 안정적이어야합니다. 알고 크래시를 겪고 시장이 당신에게 불리하게 움직일 때 주식에 잡히는 것은 그다지 수익성이 없습니다. 이러한 요구 사항에 대한 엔지니어링은 필연적으로 다르며 다른 기술이 필요합니다. 전체 주문서를 실시간으로 처리하려면 약간의 마력과 좋은 알고리즘이 필요합니다. 그래도 재미 있고 흥미 롭습니다.


HFT 시스템에는 두 부분이 있습니다.

  1. 실시간 초저 지연 거래-다양한 소스의 실시간 주문 장 및 가격 정보를 구독하고, 최소한의 미끄러짐으로 대량 주문을 수행하도록 설계된 보정 된 알고리즘을 실행합니다 (즉, 끝까지 IBM 주식 100 만 주를 구매하려는 경우) 시장을 너무 많이 움직이지 않고) 또는 단기 차익 거래를 기반으로 통계적으로 수익을 창출하려고합니다. 이 시스템은 또한 한 명 이상의 작업자가 시스템이 수행하는 작업을 효과적으로 모니터링하고 제어 할 수 있도록 좋은 위험 및 위치 관리 도구를 제공해야합니다.

  2. 대량의 "틱 데이터"(가격, 시간 및 주문 장 정보, 시스템 이전 거래 활동에 대한 기록 데이터)에 대한 야간 / 주간 등 분석, 실제 실행되는 최상의 알고리즘을 최적화하고 "검색"합니다. 파트 # 1의 시간. 즉, # 1에서 실행할 알고리즘을 "보정"하고 테스트합니다.

첫 번째 방법은 짧은 지연 시간과 시장에 대한 매우 우수한 액세스를 필요로합니다 (즉, 최소 홉으로 거래소에 직접 네트워크 연결). 이 부분은 일반적으로 C 또는 C ++와 같은 비 GC 언어로 작성해야합니다 (가비지 수집기가 세계를 중지하는 동안 0.5 초 지연은 매우 비용이 많이들 수 있음). 두 번째는 일반적으로 그리드와 좋은 시뮬레이션 및 통계 분석 소프트웨어, AI 알고리즘 등이 많이 필요합니다.


이러한 종류의 거래에서 가장 널리 사용되는 응용 프로그램은 CEP (복잡한 이벤트 처리) 인 경향이 있다고 덧붙이고 싶습니다. 몇 가지 예는 Streambase, Apama 및 Aleri입니다. 반면에 사람들은 방대한 양의 데이터를 처리하기 위해 KDB, OneTick 및 Vhayu와 같은 고속 데이터베이스를 사용합니다.

기술적 문제의 종류를 이해하려면 먼저 이러한 공급 업체를 살펴 보는 것이 좋습니다. 그들의 마케팅 자료는 비즈니스 응용 프로그램과 기술적 과제에 대한 좋은 감각을 제공합니다.


특정 시간 (예 : 선물 만기일)에 분당 수천 번의 거래를해야합니다. 분명히 인간은 도움 없이는 이것을 할 수 없습니다. 이 BTW는 프로그래머에게 매우 스트레스가 많은 시간입니다. 문제가 발생하면 복구의 기회가 거의 없습니다. 프로그래머는 로그 파일이 입에 마음을 담아 스트리밍되는 것을 보는 경향이 있습니다.


가격을 추적하고, 무엇이 오르고 내리는 지 빠르게 결정하고 그에 따라 사고 팔아야합니다. 다양한 포지션이 거래되기 때문에 해당 분석에 더 나은 소프트웨어를 사용하고 거래를 수행할수록 잠재적으로 더 많은 돈을 벌 수 있습니다.

Better 는 자주 데이터를 업데이트하고, 빠르게 대응할 수있는 방식으로 흥미로운 경향을 찾아 내고, 자주 필요한 작업을 수행 할 때 쉽게 사용할 수 있음을 의미합니다.


이 분야에서 컴퓨터 / 소프트웨어가 왜 그렇게 중요한가요?

가장 높은 성능과 가장 낮은 지연 시간이 바람직합니다. 일에 반응하는 속도가 빠를수록 잠재적으로 더 많은 돈을 벌 수 있기 때문입니다.

참고 URL : https://stackoverflow.com/questions/1176986/high-frequency-trading

반응형