구직자들에게 큰 관심을 받고 있는 산업은 통화 거래입니다. 소프트웨어 비즈니스는 통화 쌍에 대한 데이터를 빠르고 효율적으로 평가할 수 있는 거래 플랫폼을 제공하기 위해 전 세계 거래자들로부터 요청을 받습니다.
거래 플랫폼은 은행 및 중개업과 같은 특정 금융 기관에서 거래자 및 투자자에게 제공하는 소프트웨어 프로그램입니다.
거래 플랫폼은 본질적으로 투자자와 딜러가 거래를 하고 계정을 주시할 수 있도록 합니다. 투자자가 투자 결정을 내리는 데 도움이 되는 다른 기능은 종종 거래 시스템에 포함됩니다.
실시간 견적, 대화형 차트, 다양한 그래프 도구, 라이브 뉴스 피드 및 프리미엄 리서치가 이러한 기능의 몇 가지 예입니다.
플랫폼은 주식, 통화, 옵션 또는 선물과 같은 특정 시장을 위해 설계될 수도 있습니다.
XNUMX년 이상 동안 알고리즘 거래, 무역 산업의 중심 무대를 차지했습니다.
때때로 "거래 전략"으로 알려진 "거래 시스템"은 매수/매도 진입 및 퇴장 신호를 제공하기 위해 입력 데이터에 적용되는 규칙 모음에 불과합니다. 거래 전략을 만드는 것이 간단해 보일 수 있지만, 그렇지 않습니다!
좋은 거래 전략을 개발하려면 광범위한 양적 연구가 필요하기 때문에 양적 거래 전략 뒤에 있는 마음은 알고리즘 거래 영역에서 "퀀트"라고 합니다.
자동 거래 시스템의 기본 설계는 지난 XNUMX년 동안 상당한 수정을 거쳤으며 여전히 변경되고 있습니다.
알고리즘 거래 산업은 비즈니스, 특히 고주파 거래 시스템을 사용하는 기업이 알고리즘 거래 세계에서 경쟁하기 위해 기술 혁신이 필요하게 되었기 때문에 컴퓨터 및 네트워크 기술 개발의 온상이 되었습니다.
우리는 거래 플랫폼의 시스템 디자인 이 기사에서. 거래 플랫폼의 기본 사양에는 자체 자동화 거래 시스템을 만들기 위한 아키텍처, 프로토콜 및 지침이 포함됩니다.
기본 수준의 자동화된 거래 소프트웨어 요구 사항
최고의 솔루션은 소프트웨어 요구 사항을 완벽하게 충족하는 솔루션입니다. 자동 거래 소프트웨어의 주요 사양은 다음과 같습니다.
- 확장성(증가하는 요청 및 워크로드를 처리할 수 있는 시스템 용량)
- 다중 처리 및 우수한 성능;
- 안전 및 보안(갑작스럽게 발생하는 침해 또는 공격에 대응하고 불법적인 진입을 방지하는 방법)
- 상호 운용성(다른 시스템과 상호 작용하는 시스템의 기능)
- 안정성(실패를 해결하고 문제에도 불구하고 실행하는 방법).
알고리즘 거래 시스템은 고도로 숙련된 노동력과 세심한 주의가 필요합니다. 명확한 비기능적 요구사항이 있을 때 시스템의 기능적 요구사항을 이해하는 것이 더 쉽습니다. 이는 소프트웨어 개발 팀이 제품 품질을 설정하고 정의하기 위한 관리 표준 역할을 합니다.
거래 플랫폼의 기능적 특징은 다음과 같습니다.
다양한 결제 수단의 성공적인 지원, 안전한 클라우드 호스팅 서비스, 강력한 데이터 분석 도구, 위험 관리, 정확한 견적 및 적절한 차트 종류는 모두 중요한 기능적 요구 사항입니다.
다음은 모든 거래자가 세심한 주의를 기울이는 자동화된 거래 플랫폼의 몇 가지 기본적인 속성입니다.
통계 데이터를 표시하는 대시보드
여러 시간대의 환율을 실시간으로 동시에 조사하기 위해서는 플랫폼에서 지속적인 업데이트를 실행하고 여러 차트의 데이터를 운영하며 가격표를 운영해야 합니다.
인증
빠르고 신뢰할 수 있는 검증 방법은 먼저 안전한 플랫폼과 엘리트 엔지니어링 노력의 이미지를 만듭니다.
거래 소프트웨어는 이중 인증(예: SMS 또는 Google Authenticator 사용)이 있는 오픈 소스 거래 플랫폼과 유사하게 여러 계정에서 액세스를 지원할 수 있지만 이메일, 전화 번호 또는 기타를 통해 액세스가 활성화된 시스템을 가질 수도 있습니다. 소규모 거래자 그룹을 위한 방법입니다.
뉴스 피드
재정적 결정을 내리기 전에 조사를 하는 것이 중요합니다. 무지로 인한 실수를 방지하기 위해 거래자는 편리한 뉴스, 관련 개요 및 세계 통화 시장에 대한 통찰력을 얻을 수 있으며 이 모든 정보는 거래 플랫폼에서 즉시 사용할 수 있습니다.
관리자와 사용자를 위한 편리한 기능
이러한 시스템에서는 클릭 한 번으로 모든 것을 신속하게 관리할 수 있는 기능이 필수적입니다. 여기에는 거래 관리, 보류 중 및 제출된 주문, 개인 계정, 주문 진행 표시 및 고객 요청이 포함됩니다.
이를 통해 최단 시간에 의사 결정이 가능하고 중요한 정보에 대한 지속적인 액세스가 보장됩니다.
푸시 알림 사용
사용자는 거래 플랫폼이 XNUMX시간 액세스할 수 있고 보안 문제 또는 가장 최근 변경 사항에 대한 정보를 받을 것으로 예상합니다.
거래 플랫폼이 경제 이벤트, 가격 변동, 시장 개발, 기술 지표 등을 추적하고 주식 위치에 대한 업데이트를 전송하므로 맞춤형 알림으로 계속 정보를 받을 수 있습니다.
현금 인출 및 지불
이 기능은 거래 활동을 수행하고 현금의 움직임을 추적하며 신용 카드, PayPal 또는 간단한 은행 송금을 사용하여 개인 계정에서 빠르고 안전하게 돈을 인출하는 데 필요합니다.
출금 요청 처리가 완료되면 알림이 전송됩니다.
자동 거래 시스템의 아키텍처
'복합 이벤트 처리' 엔진 또는 CEP라고도 하는 자동화된 거래 플랫폼에서 의사 결정 논리를 수행하는 엔진은 서버에 대한 애플리케이션 내에 있습니다.
애플리케이션 계층은 기본적으로 사용자 인터페이스 매개변수를 관찰하고 CEP에 제공하기 위한 것입니다. 응용 프로그램 계층은 주로 보기이지만 일부 위험 검사(규모 문제로 인해 이제 리소스를 많이 사용하는 작업이 됨)는 응용 프로그램 계층, 특히 뚱뚱한 손가락 오류와 같은 사용자 입력의 온전성과 관련된 위험 검사를 오프로드할 수 있습니다.
흥미로운 상황은 자동화된 거래 시스템의 확장성 문제로 인해 발생합니다.
단일 시장 데이터 이벤트가 100개의 개별 로직에 의해 처리되고 있다고 상상해 봅시다(이전 예에서 논의한 바와 같이). 100개 논리 장치의 대부분에 대해 그리스 옵션 계산을 가정해 봅시다. 복잡한 계산의 공통 구성 요소가 수행되어야 할 수 있습니다.
각 논리가 독립적으로 작동하면 처리 리소스가 낭비되는 동일한 정확한 계산이 각 장치에서 수행됩니다.
복잡한 중복 계산은 계산 중복을 최대화하기 위해 자동화된 거래 시스템의 CEP에 대한 입력으로 그리스어를 제공하는 여러 계산 엔진으로 자주 분할됩니다.
현재 주문 관리자(OM) 내의 별도의 위험 관리 시스템(RMS)이 주문을 발표하기 직전에 자동 거래 시스템의 나머지 위험 평가를 수행합니다.
모든 논리 단위/전략 전반에 걸쳐 위험을 관리하는 RMS 시스템이 단 하나뿐이기 때문에 이전에는 100명의 개별 거래자가 위험을 통제했습니다. 이것은 스케일 문제 때문입니다.
그러나 특정 위험 평가는 특정 전략에만 적용되는 반면 다른 위험 평가는 모든 방법에 걸쳐 수행해야 할 수도 있습니다.
따라서 RMS 자체는 GRMS(Global RMS)와 SLRMS(전략 수준 RMS)로 구성됩니다. SLRMS 및 GRMS는 사용자 인터페이스(UI)를 통해 볼 수도 있습니다.
이제 서버의 구성 요소에 대해 자세히 살펴보겠습니다.
마켓 어댑터
거래소 또는 기타 시장 데이터 제공자는 해당 형식으로 데이터를 전송합니다. 해당 언어는 알고리즘 거래 시스템에서 이해할 수도 있고 이해하지 못할 수도 있습니다.
Exchange를 사용하면 데이터 형식을 시스템이 이해할 수 있는 형식으로 변환하기 위해 고유한 어댑터를 프로그래밍하고 구축하는 데 사용할 수 있는 API(응용 프로그램 디자인 인터페이스)에 액세스할 수 있습니다.
복잡한 이벤트 처리 엔진
접근 방식의 핵심은 이 섹션에 있습니다. 데이터가 있으면 다양한 통계 계산을 수행하고 과거 데이터와 비교하고 주문을 생성할 의사 결정을 내리는 계획에 따라 데이터를 사용해야 합니다.
이 블록은 주문 유형과 주문 금액을 사용하여 구성됩니다. 간단히 말해서 복잡한 이벤트는 들어오는 이벤트의 모음입니다. 이는 뉴스, 시장 움직임, 주식 시장 동향 등으로 구성됩니다.
복잡한 이벤트에 대한 컴퓨팅 작업을 빠르게 완료하는 것을 복잡한 이벤트 처리라고 합니다. 자동화된 거래 시스템의 운영에는 복잡한 패턴을 발견하고, 상관 관계를 생성하고, 들어오는 정보 사이의 인과 관계 및 시간과 같은 연결 설정이 포함될 수 있습니다.
주문 라우팅 시스템
거래소에서 제공한 API를 사용하여 거래소가 이해할 수 있는 언어로 주문을 암호화합니다. 거래소는 두 가지 다른 유형의 API인 기본 API와 FIX API를 제공합니다.
네이티브 API는 특정 교환을 위해 특별히 설계되었습니다. FIX(금융 정보 교환) 프로토콜로 알려진 일련의 지침은 보안 시장의 데이터 흐름을 촉진하고 개선하기 위해 여러 교환에서 사용됩니다.
이 다음 부분에서 우리는 FIX에 대해 더 자세히 설명할 것입니다. 경제가 열려 있으면 사람들은 자동 거래 시스템을 통해 거래소 또는 비 거래소에 주문을 제출할 수 있으며 ORP는 여러 방향으로 진행되는 주문을 처리할 수 있어야 합니다.
여기서 주문 신호는 사람이 수동으로 또는 자동으로 수행할 수 있음을 강조하고 싶습니다. 마지막 섹션은 "자동 거래 시스템"이라고 하는 것입니다.
주문 관리자 모듈에는 미리 설정된 논리에 따라 매수/매도 주문을 수행하는 여러 실행 기술이 포함되어 있습니다.
위기 관리
자동화된 거래 시스템은 사람의 개입 없이 작동하기 때문에 거래 시스템이 의도한 대로 작동하도록 하려면 엄격한 위험 분석이 필요합니다.
부실한 위험 관리 또는 양적 회사에 대한 위험 점검의 부족은 상당한 회복 불가능한 손실을 초래할 수 있습니다. 결과적으로 모든 자동 거래 시스템에는 위험 관리 시스템(RMS)이 있어야 합니다.
자동 거래 시스템을 위한 프로토콜 개발
단일 서버에서 여러 대상에 연결하려면 서버당 여러 전략으로 확장할 수 있는 아키텍처의 기능이 필요했습니다.
따라서 주문 관리자는 여러 목적지로 주문을 전송하고 수많은 교환기에서 데이터를 수신하기 위해 여러 어댑터를 보관했습니다.
각 어댑터의 역할은 시스템의 내부 통신 프로토콜과 교환기가 이해하는 프로토콜 간의 인터프리터 역할을 하는 것입니다. 따라서 여러 교환에 대해 여러 어댑터가 필요합니다.
각 거래소에는 제공하는 기능에 맞는 프로토콜이 있으므로 자동화된 거래 시스템에 새 거래소를 추가하려면 새 어댑터를 만들고 아키텍처에 연결해야 합니다.
어댑터 삽입의 이러한 골칫거리를 방지하기 위해 표준 프로토콜이 개발되었습니다. FIX 프로토콜은 그 중 가장 잘 알려진 프로토콜입니다.
새로운 목적지와 연결하기 위한 시장 출시 시간이 크게 단축되어 이동 중에도 여러 목적지에 연결할 수 있을 뿐만 아니라 관리할 수 있습니다.
자동화된 거래 시스템은 공통 프로토콜의 존재 덕분에 분석 또는 시장 데이터 피드를 위해 다른 공급업체와 쉽게 상호 작용할 수 있습니다.
결과적으로 더 이상 새로운 위치 또는 판매자와의 통합에 대한 제한이 없기 때문에 시장은 매우 효율적이 됩니다.
또한 FIX 프로토콜을 사용하여 시뮬레이터에 연결하는 데 필요한 것은 주문을 발행하고 실제 시장에서 데이터를 수신하는 것뿐이므로 시뮬레이션이 매우 간단해집니다.
시뮬레이터 자체는 내부적으로 만들거나 다른 소스에서 구입할 수 있습니다. 라이브 시장 데이터와 마찬가지로 기록된 데이터 세트는 데이터 소스와 독립적인 어댑터 덕분에 재생할 수도 있습니다.
새로운 저지연 아키텍처
이 전략은 이제 자동 거래 시스템의 기본 요소 덕분에 방대한 양의 데이터를 실시간으로 평가하고 신속한 거래 선택을 할 수 있습니다.
FIX와 같은 업계 표준 통신 프로토콜의 개발로 인해 알고리즘 트레이딩 데스크 또는 자동화 트레이딩 시스템 구축이 보다 쉬워져 알고리즘 트레이딩 시장에서 경쟁이 심화되었습니다.
서버가 더 많은 메모리와 더 빠른 클럭 속도를 확보함에 따라 의사 결정을 위한 대기 시간을 줄이는 데 중점을 두었습니다.
다음과 같은 다양한 이유로 시간이 지남에 따라 지연 시간을 줄여야 했습니다.
- 대기 시간이 짧은 환경에서만 이 기술이 의미가 있습니다.
- 적자 게임의 생존에서 충분히 빠르지 않으면 경쟁이 당신을 제거합니다
코로케이션은 단일 목적지를 포함하는 모든 고주파 방법을 위한 자동화된 거래 시스템에서 절대적으로 필요합니다.
그러나 다중 목적지 시스템은 세심한 준비가 필요합니다. 그러한 선택을 하기 전에 대상의 주문 응답 시간 지속 시간 및 두 대상 간의 핑 지속 시간과 비교하는 방법과 같은 변수를 고려해야 합니다.
자동 거래 시스템의 총 대기 시간을 줄이기 위해 일반적으로 네트워크 대기 시간을 가장 먼저 해결해야 합니다. 그러나 아키텍처는 다른 많은 방법으로도 개선될 수 있습니다.
네트워크 처리 지연
네트워크 처리 지연은 라우터, 스위치 등이 도입하는 지연입니다. 패킷이 A 지점에서 B 지점으로 이동하는 데 걸리는 홉 수는 자동화된 거래 시스템 설계에서 다음 수준의 최적화가 될 것입니다.
홉은 라우터나 스위치와 같은 물리적 장치를 통해 전송되지 않는 패킷의 소스와 대상 사이의 경로 섹션으로 설명됩니다.
마이크로버스트라고 하는 것은 네트워크 작업의 대기 시간에도 영향을 미칠 수 있습니다.
평균 데이터 전송 속도에 영향을 미칠 수도 있고 영향을 미치지 않을 수도 있는 데이터 전송 속도의 급격한 급증을 마이크로버스트라고 합니다.
자동 거래 시스템은 규칙 기반이므로 모두 동일한 발생에 균일하게 대응합니다. 참가자와 대상 간의 데이터 전송의 마이크로버스트는 여러 참가 시스템이 한 번에 명령을 보내는 결과로 발생할 수 있습니다.
애플리케이션 지연
자동 거래 시스템의 애플리케이션 대기 시간은 애플리케이션을 처리하는 데 걸리는 시간을 측정한 것입니다. 이는 패킷 수, 애플리케이션 로직에 할당된 처리, 사용된 계산의 복잡성, 프로그래밍 효율성 등에 따라 다릅니다.
시스템은 일반적으로 프로세서 수가 증가함에 따라 응용 프로그램 지연이 줄어듭니다. 더 높은 클럭 주파수에서도 마찬가지입니다.
많은 자동 거래 시스템은 예를 들어 전략 논리와 같은 프로그램의 중요한 부분에 CPU 코어를 할당함으로써 이점을 얻습니다. 이렇게 하면 절차에 코어 전환으로 인한 지연이 추가되지 않습니다.
이와 유사하게, 자동 거래 시스템의 접근 방식이 캐시 크기와 메모리 액세스 근접성을 염두에 두고 프로그래밍된 경우 여러 메모리 캐시 히트가 발생하여 대기 시간이 더욱 단축됩니다.
많은 시스템이 특정 프로세서 아키텍처에 맞게 코드를 최적화하여 이 작업을 수행합니다. 이 작업은 매우 낮은 수준의 프로그래밍 언어를 사용하여 수행됩니다.
완전히 프로그래밍 가능한 게이트 어레이를 사용하여 일부 기업은 복잡한 계산을 하드웨어(FPGA)에 태우기까지 했습니다.
지원
소프트웨어 응용 프로그램의 결함을 식별하는 작업인 테스트는 특히 핀테크에서 과소평가할 수 없습니다. 재정적 손실 가능성으로 인해 금융 기술은 결함이 있을 수 없습니다.
품질 보증 엔지니어가 식별할 수 있는 결함이 많을수록 완제품이 제대로 작동할 가능성이 높아집니다. 거래 플랫폼을 개발하는 회사 또는 고객의 요구에 따라 테스트 프로세스의 구조에는 다음이 포함됩니다.
기능 테스트의 기초는 입력을 생성하고 결과를 분석하는 것입니다. 위조 카드를 사용하여 금융 응용 테스트 케이스를 실행합니다. 이 카드는 지불의 신뢰성, 효율성 및 정확성을 개선하고자 합니다.
시스템의 속도, 확장성, 안정성을 파악하는 것은 성능 테스트를 통해 이루어집니다. 애플리케이션의 속도는 응답 속도를 이해하기 위해 평가되며 확장성은 충돌 없이 동시에 지원할 수 있는 사용자 수를 나타냅니다.
또한 안정성은 애플리케이션이 다양한 부하에서 올바르게 작동하는지 또는 잠재적인 결함이 있는지 여부를 보여줍니다.
완전 자동화된 거래 시스템을 구축하는 것은 단일 소매 상인의 능력을 넘어설 수 있습니다. 시장에서 구독 기반으로 제공되는 자동 거래 시스템은 거래의 알고리즘 기술을 조사하려는 거래자를 위한 옵션입니다.
나만의 자율 거래 시스템 구축
초보자 거래자는 자신의 알고리즘 거래 기술을 개발하고 성공적인 시장 거래에 참여할 수 있습니다. 일반적으로 아래 나열된 단계를 사용하여 알고리즘 거래 전략을 만들 수 있습니다.
- 당신의 상상력이나 방법을 사용하여 활성 시장에서 성공할 것이라고 생각하는 거래 개념을 만드십시오. 이 개념은 자신의 시장 관찰, 거래 서적, 학술 논문, 거래 블로그, 거래 포럼 또는 기타 출처에서 파생될 수 있습니다.
- 필요한 정보 수집 – 가설을 테스트하려면 과거 데이터가 필요합니다. 이 정보는 유료 데이터 공급업체 또는 Google Finance와 같은 웹사이트에서 제공됩니다.
- 계획을 작성하려면 Excel, Python 또는 R 프로그래밍과 같은 도구를 사용해야 합니다. 데이터가 있으면 접근 방식 코딩을 시작할 수 있습니다.
- 코딩된 후 과거 데이터에 대해 거래 개념을 테스트하는 것을 접근 방식을 백테스트라고 합니다. 백테스팅에는 입력 최적화, 이익 목표 및 손절매 주문, 포지션 규모 및 기타 관련 작업 설정이 포함됩니다.
- 당신의 전략을 종이 거래 – 백테스팅 단계에 따라 당신의 전략을 종이 거래가 필요합니다. 여기에는 시장 시뮬레이션 시뮬레이터를 사용한 계획 테스트가 포함됩니다. 종이 거래 방식의 경우 알고리즘 거래 플랫폼을 제공하는 브로커가 있습니다.
- 종이 거래 후 접근 방식이 수익성이 있다면 실제 상황에서 구현할 수 있습니다. 알고리즘 거래를 제공하는 신뢰할 수 있는 중개인과 거래 계정을 만들 수 있습니다.
해가 거듭될수록 전문 거래자와 소매 거래자 모두에게 알고리즘 거래를 허용하는 거래소가 늘어나고 점점 더 많은 거래자가 알고리즘 거래를 사용하고 있습니다.
결론
이것은 자동화된 거래 시스템 아키텍처에 대한 철저한 기사였으며, 관련된 구성 요소와 아키텍처 개발자가 강력한 자동화된 거래 시스템을 설계하기 위해 처리/극복해야 하는 많은 장애물에 대한 매우 통찰력 있는 이해를 제공했다고 확신합니다.
자동 거래 시스템에 대한 개요를 제공하기 위해 최선을 다했지만 내부적으로 더 많은 일이 진행되고 있습니다. 이 자료가 유익하고 잘 활용되기를 바랍니다.
댓글을 남겨주세요.