알고리즘 트레이딩의 이점

마지막 업데이트: 2022년 4월 3일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
Bot, Detector, Strategy 가 데이터를 주고받는 모습을 보여준다.

암호화폐 트레이딩 봇을 만들었다 (feat. 업비트)

최근 블로그 포스팅이 한 동안 뜸했던 이유는, 어느 날 트레이딩 봇을 만들고 싶은 욕구가 생겨서 여기에 지속적으로 힘을 쓰고 있었기 때문이다. 개발자라면 누구나 한 번쯤은 만들어본다는 이것을, 아직 나는 만들어본 적이 없으니 괜찮은 기회라 여겨 해보기로 했다. 설계를 여러번 수정하다가 이제서야 어느정도 완성도를 보이고 있어 블로그에 적기로 했다. 참고로 개발 언어는 파이썬이 아닌 Go 다. 그 이유는 아래에서하자.

트레이딩 봇을 구동한다. CLI 기반이기 때문에 GUI 같은건 없다.

봇 같은 경우 주식 트레이딩은 봇은 아니고, 암호화폐 거래소 중 하나인 업비트에 암호화폐를 주문하고, 조건에 맞는 코인을 감지, 이후 감지된 마켓을 대상으로 전략을 실행할 수 있는 봇을 개발했다. 이미 서문만으로도 봇의 구조가 이미 노출되었지만, 이는 그저 프레임워크를 만들어낸 것 뿐이며 가장 중요한 것은 전략인데, 이는 기업 비밀이라 비공개다. 애초에 수익을 제대로 내고 있지도 않지만.

업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요.

파이썬이 아닌 Go 언어로 개발한 이유

이 프로젝트는 내가 Go 로 작성한 첫 번째 사이드 프로젝트다. 일반적으로 트레이딩 봇은 파이썬으로 개발된 경우가 많은데, 나같은 경우에는 Go 를 선택했다. Go 를 사용한 이유는 물론 현재 내 주력 언어가 Go 인 것이 가장 큰 이유이기도 하지만, Go 를 봇 개발에 사용했을때 가지는 간편하고 채널을 통한 동시성 제어에서의 이점이 크다고 여겼기 때문이다. 트레이딩 봇에서 여러 마켓의 감시를 위해 고루틴을 사용하여 동시성을 사용할 일은 많은데, 그 예는 설계에서 살펴보도록 하자.

내가 개발한 트레이딩 봇은 오픈소스다. 따라서 봇의 사용법이나 코어 소스코드가 궁금하다면 아래의 깃허브 레포지토리를 확인하자. 이 포스트에서는 봇에 대한 전반적인 설계를 살펴본다.

GitHub - pronist/PachinCo: 암호화폐 트레이딩 봇 (feat. 업비트)

암호화폐 트레이딩 봇 (feat. 업비트). Contribute to pronist/PachinCo development by creating an account on GitHub.

프로젝트 이름이 upbit-trading-bot 에서 PachinCo 로 바뀌었다! 요즘 잘 나가는 파친코 코인을 타보자. 참고로 파친코의 철자는 본래 PachinKo 인데, 코인(Coin, Crypto) 트레이딩 봇이어서 C 로 바꾸었다.

봇은 가장 큰 관점에서 보자면, 봇은 업비트 서버의 관점에서 클라이언트라는 점이다. 어떤 서버에 요청을 보내는 클라이언트냐 하면 업비트 API 서버에 보내는 클라이언트라고 볼 수 있다. 어떠한 형태로든 트레이딩 봇은 업비트 서버에 요청을 보내게 된다. 그게 조회가 될 수도 있고 주문을 요청을 하는 것일 수도 있다.

트레이딩 봇은 업비트 Open API 서버로 요청을 보낸다.

또한 시세를 주기적으로 감시하여 조건에 도달했는지를 판단하는 Detector , 각 마켓을 대상으로 개별적인 매수/매도 전략을 실행할 수 있는 Strategy 가 고루틴의 주요 사용처다. 이는 서로 독립적으로 돌아간다. Strategy 에서는 조건에 도달하면 업비트 API 서버에 주문을 보내기 때문에 다른 문맥에서 독립적으로 동작해도 아무런 영향이 없다. 봇의 전반적인 구조는 다음과 같다.

Detector 에서 시작하여 전략을 실행하는 트레이딩 봇의 전반적인 구조를 보여준다.

다이어그램을 보면 알겠지만, 봇은 중간에서 중개인의 역할을 수행하게 되며 Detector 가 특정 조건에 해당하는 종목을 찾아서 봇에게 보고를 하면, 봇은 코인을 추상화한 Coin 객체를 생성하고 매수/매도를 위한 Strategy 에 생성한 Coin 객체를 전달하여 실행하게 될 것이다. 여기서 Detector 는 별개의 고루틴에서 동작, 봇이 실행하는 전략들도 모두 별개의 고루틴에서 실행되며 독립적으로 조건을 검증하여 매수/매도를 진행한다. 거의 동시에 여러 개의 마켓에 대해 전략을 실행할 수 있다.

예를 들어 Detector 가 특정 조건을 만족한 종목인 KRW-BTC 를 발견하여 봇에 보고하면, 봇은 BTC 코인에 해당하는 Coin 객체를 생성하고 KRW-BTC 마켓이 Strategy 에 따라 매수/매도 될 수 있도록 하게하는 것이다. 그래서 주목해볼만한 부분은 결론적으로 트레이딩 봇이라는 것이 의도대로 동작하기 위해서는 종목 선정(Detecting)매수/매도 전략(Strategy)이라는 두 가지의 주요 핵심 알고리즘이 있다는 것이며 이에따라 적절한 종목선정과 전략에 따라 봇의 성과가 결정된다는 것이다.

업비트 API 클라이언트

봇은 위에서 언급했듯 업비트의 API 서버에 요청을 보내는 클라이언트다. 따라서 업비트 API 에 요청을 보낼 수 있는 클라이언트 래핑 객체가 필요하게 된다. 물론 이 부분은 업비트 API 문서에 따라 작성된 것이기 때문에 그렇게 중요하지는 않지만, 실제로 업비트 API 서버에 요청을 보내는 역할을 하므로 짤막하게나마 이야기해본다.

자산 조회나 주문 요청의 경우 Jwt 가 필요하고, 그렇지 않은 일반적인 정보는 그냥 보내도 상관없다.

업비트 API 서버는 두 종류로 나눌 수 있는데, Jwt 를 포함하여 요청을 보내야 하는 일반적인 Client 와 그저 Get 요청만 보내도 정보를 얻을 수 있는 QuotationClient 로 분리된다.

type Client

자산, 주문 요청을 업비트 서버에 보내기 위해 사용하는 클라이언트다. 당연하겠지만 여기에는 AccessKey, SecretKey 가 포함되어야 한다.

type QuotationClient

QuotationClient 는 단순한 Get 요청을 위해 사용한다. 이를 통해 종목에 대한 Tick, Trades 를 얻어오는 등 인증이 필요하지 않은 단순한 정보들을 얻어올 수 있다. 따라서 http.Client 만을 가진다.

이렇게 선언된 두 개의 클라이언트는 Bot 을 통해 접근할 수 있도록 하였다. 따라서 Client, QuotationClient 를 통해 업비트 서버에 요청을 보낼 수 있게된다.

트레이딩 봇

type Bot

Bot 은 main 고루틴에서 사용되며 Bot.Run() 이라는 메서드를 main() 함수에서 호출할 것이다. 먼저 Bot 구조체는 다음과 같이 생겼다. 위에서 언급한 것처럼 클라이언트의 역할도 한다는 것을 잊어서는 안 된다.

Accounts, Strategy 타입은 모두 인터페이스다. 특히 Accounts 의 경우, 업비트는 기본적으로 모의투자를 지원하지 않는다. 따라서 안전하게 전략이 동작하는지 실험을 할 수 있어야 하는데, 그럴때 필요한 것이 프로그램에서 임의로 만든 테스트용 계정이다. 이는 실제 업비트 계정이 아니며 비슷한 동작을 하도록 구현이 된 것 뿐이다. 따라서 미묘한 차이가 발생한다.

또한 Bot 에서는 미리 마켓에 사용할 전략을 가지고 있다. Detector 가 조건에 도달한 마켓을 발견하게 되면 해당 마켓에 Strategies 에 있는 전략들을 실행하게 된다.

Bot 을 호출하는 main() 함수는 아래와 같이 작성된다. 계정을 임의로 생성하여 전략을 테스트할 수 있다.

.Run() 메서드는 main 고루틴이 실행하는 메서드이며, Detector 의 보고를 받고, 전략을 실행하는 핵심 메서드다. Detector 에게 보고를 받을 때는 자연스럽게 채널을 사용한다. 참고로 아래의 코드가 실제 돌아가고 있는 봇의 코드랑 동일한 것이 아니다. 핵심적인 코드만을 가져와 포스트하기 편하도록 짜집기했다.

추가적으로 Detector.run() 의 파라매터에 predicate 가 사용된 것이 있는데, 저것은 함수이며 디텍터가 찾을 종목에 대한 조건을 명시한다. 해당 함수가 true 를 반환하면 조건에 맞는 종목으로 판단하며 Detector.d 채널에 신호를 보낸다. Detector.run() 에서는 내부적으로 업비트 웹소켓 서버에 요청을 보내 가격을 얻어오고 조건을 처리한다.

Bot, Detector, Strategy 가 데이터를 주고받는 모습을 보여준다.알고리즘 트레이딩의 이점

Bot.tick() 메서드는 coin 구조체에 정의되어 있는 t 채널에 가격 정보를 보내고 이를 Strategy 에서 소모한다. Strategy 에서 직접 가격정보를 얻어와도 되지만, 요청의 수가 너무 많아지면 업비트 서버의 제약에 따라 요청이 거절된다. 업비트 서버의 제한은 초당 10번의 요청으로 파악되었다.

위의 다이어그램은 Bot 이 Detector.run() 를 실행하면 해당 메서드가 Detector.d 채널로 틱을 보내고 그것을 Bot 이 소비하는 모습을 보인다. 또한 Bot.tick() 이 실행되면 Coin.t 채널에 틱을 보내고 Strategy 가 이를 소비하게 된다. Strategy 가 소비를 하는 모습은 다음과 같다.

.strategy(*coin, Strategy)

type Accounts

Accounts 는 인터페이스다. Accounts 는 업비트 계정을 포함한 테스트용 계정이 구현해야 할 메서드를 가진다. Accounts 가 가져야 하는 메서드 중 중요한 것이 바로 .order() 다. 주문은 봇, 또는 사람이 하지만 논리적으로 계정을 사람, 또는 봇과 동일시하여 Accounts 가 특정 코인에 대해 매수/매도 주문을 낼 수 있다.

.order(*Bot, *Coin, string, float64, float64) (bool, error)

오더에서는 실제로 업비트 계정에서는 주문을 요청하고, 테스트 계정에서는 내부의 자산 현황을 갱신하게 된다. 여기서 살펴볼 것은 실사용 계정에서 주문을 넣었으나 체결되지 않고 계속 기다리기만 하면 트래킹 중인 해당 마켓의 전략 고루틴이 락이 되어버릴 수도 있다는 점이다. 따라서 타이머를 두고 체결을 기다렸다가 체결이 되지 않으면 주문을 캔슬한다.

여기서 log.Logger 는 로그를 보내기 위한 채널이다. 이전에 적지는 않았지만, 로그 채널은 봇을 실행하기 이전에 초기화를 별도로 진행한다. 별도로 아래에서 언급하지는 않겠지만 알고리즘 트레이딩의 이점 나온김에 이야기했다. 또한 static.Config 객체는 글로벌 객체이며 config.yml 로 부터 Timeout 설정을 얻어와서 매핑한다.

type Strategy

Strategy 또한 인터페이스다. 해당 인터페이스를 만족하는 모든 전략은 봇에서 사용할 수 있도록 구성되었다. 여기서 .register() 는 전략을 실행하기 전에 준비해야 할 것을, .run() 메서드는 전략을 진행한다.

트레이딩 봇을 만드는 과정은 흥미롭다. 프레임워크에 해당하는 틀은 어느정도 구성되었기에 이제 전략을 재미나게 생각하는 일만 남았다. 봇은 사실 전략이 제일 중요하다. 전략에 따라 수익이 날 수도 있고 안 날수도 있기 때문이다.

그러나 내가 이렇게 까지 구조적으로 봇을 작성한 이유는 이것을 단순 경험만으로 끝낼게 아니라 무언가 결과를 도출해볼 것이기 때문이다. 또한 이 프로젝트는 나의 첫번째 Go 언어 사이드 프로젝트라는 점에서 의미가 있으며 부가적인 써드파티 라이브러리들을 사용해볼 기회또한 있어서 나름 괜찮은 프로젝트라고 생각한다.

자일링스, 최신 데이터센터 혁신을 위한 새로운 '컴포저블' 제품과 솔루션들 선보여

자일링스(Xilinx)는 3월 3일 온라인 미디어 브리핑을 통해, 최신 데이터센터의 혁신을 위한 다양한 요구사항들에 대응하는 새로운 알베오(Alveo) SmartNIC 제품군과 스마트 월드(Smart World) AI 분석 애플리케이션, 마이크로초 미만의 트레이딩을 위한 가속 알고리즘 트레이딩 레퍼런스 디자인, 그리고 알베오 카드와 가속 애플리케이션을 쉽게 평가, 구매 및 구축할 수 있는 자일링스 앱스토어(Xilinx App Store) 등을 소개했다.

이제 데이터센터는 획일화된 기술적 성격의 워크로드가 집약되는 것이 아니라, 다양한 성격을 가진 여러 가지 애플리케이션이 동시에 운영되고, 그 추이도 빠르게 바뀌고 있는 환경이 되었다. 자일링스는 이런 데이터센터 환경에서 효율적인 고성능을 구현할 수 있는 방법으로 ‘컴포저블(Composable)’ 데이터센터 모델을 제시하는데, 이는 단순히 컴퓨팅, 네트워크, 스토리지 리소스를 애플리케이션에 맞게 할당하는 수준을 넘어, 디바이스 단에서부터 애플리케이션을 위해 리소스를 독립적으로 구성할 수 있는 수준을 구현한다. 그리고, FPGA가 제공할 수 있는 유연성과 성능은 이러한 ‘컴포저블’ 환경의 구현에 있어 반드시 필요한 부분이다.

자일링스의 알베오 SN1000 SmartNIC은 자일링스의 울트라스케일+ 아키텍처 기반 FPGA, 멀티코어 Arm 프로세서, 바이티스(Vitis) 네트워킹 플랫폼이 결합되어, 소프트웨어 정의 하드웨어 가속 기능을 통해, 모든 기능을 오프로드할 수 있다. 또한 자일링스의 알베오 가속기 카드에서 사용할 수 있는 ‘가속 알고리즘 트레이딩(AAT: Accelerated Algorithmic Trading)’ 레퍼런스 디자인은 소프트웨어 개발자가 마이크로초 미만의 트레이딩 성능을 빠르고 효율적으로 개발할 수 있게 지원한다. 그리고 자일링스의 비디오 머신러닝 스트리밍 서버로 구동되는 스마트 월드 플랫폼은 전체 애플리케이션을 가속화하고, 100ms 미만의 결정론적 파이프라인 지연시간으로 단일 알베오 가속기 카드 상에서 다중 신경망을 지원할 수 있다.

▲ 자일링스 데이터센터 그룹의 이번 발표는 크게 세 가지로 요약된다 (자료제공: Xilinx)

▲ 마이크로초 미만의 거래 지연시간을 구현하는 자일링스 ‘가속 알고리즘 트레이딩’ (자료제공: Xilinx)

자일링스의 알베오 가속기 카드에서 구현할 수 있는 ‘가속 알고리즘 트레이딩(AAT: Accelerated Algorithmic Trading)’ 레퍼런스 디자인은 오늘날의 알고리즘 트레이딩 환경에서 요구되는 마이크로초 이하의 초저지연 환경을 커스텀 하드웨어를 개발하지 않고도 빠르고, 비용 효과적으로 구현할 수 있는 기반을 제공한다. 현재 알고리즘 기반 트레이딩 거래는 소프트웨어 기반과 하드웨어 기반의 환경으로 나뉘는데, 하드웨어 기반 환경이 제공하는 높은 성능은 큰 장점을 제공한다. 특히 고빈도매매(HFT) 환경에서는 마이크로초 수준의 지연시간이 요구되며, 이를 넘어서면 트레이더 측면에서는 손실을 최소화하는 등 상당한 이점을 얻을 수 있고, 반면 지연시간 경쟁에서 실패하면 전략이 노출되고, 비용 측면에 바로 반영될 수밖에 없다.

이에, 극도로 짧은 거래 지연시간을 구현하기 위해서는 하드웨어 기반의 가속기 활용이 필수적인 것으로 여겨지고 있다. 특히 프로세서 기반의 소프트웨어 환경에서는 성능 향상의 어려움 이외에도, 프로세서에서 네트워크 인터페이스까지 도달하는 경로에서의 지연시간까지도 제거해야 할 부분으로 꼽힌다. 이 때, FPGA 기반 하드웨어 가속기는 FPGA 내부에서 네트워크로 바로 접근할 수 있어, 이러한 미세한 지연시간까지 제거할 수 있다. 하지만 기존에는 이러한 가속기를 구현하기 위해 별도의 하드웨어 개발자가 필요하고, 디바이스 비용도 높으며, 개발 또한 시간이 오래 걸리고, 알고리즘의 유출이나 하드웨어 개발 이후 시장의 변화에 대응하는 부분 등에서 몇 가지 어려움이 존재했다.

자일링스의 ‘가속 알고리즘 트레이딩(AAT)’ 레퍼런스 디자인은 트레이더가 마이크로초 미만의 지연시간으로 정교한 전략을 구현할 수 있도록 해 주는, 구성 가능한 오픈소스 트레이딩 시스템을 제공한다. 이 디자인은 자일링스의 알베오 플랫폼 위에 즉시 구현 가능하며, 모듈식, 오픈소스 기반의 자일링스 바이티스(Vitis) 라이브러리, 짧은 지연시간의 프레임워크와 IP를 포함한 자일링스의 가속 알고리즘 트레이딩 디자인 등으로 구성되는 풀 스택 솔루션이다. 특히, 이 디자인에는 시카고 상업거래소(CME)의 T2T(Tick to Trade)를 위한 예제 설계가 포함되어 있어, 이를 기반으로 다양한 거래소 환경에 빠르게 적용할 수 있으며, 유연한 개발 환경과 라이브러리 모음 등으로, 사내 또는 협력업체 앱과 유연하고 손쉽게 통합 가능하고, 시장 출시까지의 기간을 크게 줄일 수 있다.

한편, 자일링스는 트레이딩의 지연시간을 줄이는 가속화 솔루션에서, 전통적인 프로세서 기반의 솔루션 ‘솔라플레어(Solarflare)’에서부터 커스텀 보드의 영역까지 모두 다루고 있으며, 이번에 소개한 ‘가속 알고리즘 트레이드’는 이 양 솔루션의 중간 단계로, 프로세서와 하드웨어의 하이브리드 구성, 혹은 전체 하드웨어 기반 구현 등을 선택할 수 있고, 이를 통해 소프트웨어 기반 솔루션의 유연성, 하드웨어 기반 솔루션의 성능을 양립할 수 있으며, 소프트웨어 기반에서 하드웨어 기반으로의 점진적인 이행도 가능하게 한다고 설명했다. 그리고 이 솔루션은 증권사의 거래 전 리스크 평가, 스마트 오더 라우팅, 시장 데이터 공급업체나 매도부분 벤더, 자기자본 트레이더들도 게이트웨이, T2T, 마켓 데이터 게이트웨이 등에 활용할 수 있다고 덧붙였다.

▲ ‘소프트웨어 정의’에 FPGA의 적응성이 결합된 알베오 SN1000 SmartNIC (자료제공: Xilinx)

▲ 데이터 플레인의 FPGA 영역에는 필요에 따라 기능을 유연하게 구성할 수 있다 (자료제공: Xilinx)

최근 대규모 데이터센터 환경 등에서 주목받고 있는 ‘SmartNIC’은, 기존의 ASIC 기반 오프로드 NIC이 제공하는 일부 기능의 하드웨어 가속과 부하 오프로드 기능을 필요에 따라 직접 구현함으로써, 시스템에서 프로세서의 부하를 줄이고 네트워크 처리 성능을 극대화할 수 있게 한다. 특히 성능과 적응성이 모두 요구되는 클라우드 서비스 제공자들의 소프트웨어 정의 인프라에서, SmartNIC의 성능과 유연성은 기존 ASIC 기반 오프로드 NIC의 성능과 프로세서 기반 구현에서의 유연성을 양립할 수 있게 해, 높은 성능과 다양한 기능은 물론, 빠른 기술적 변화에도 유연하게 대응할 수 있게 한다.

자일링스의 알베오 SN1000 SmartNIC은 소프트웨어 정의 하드웨어 가속 기능을 통해 모든 기능을 오프로드할 수 있는 컴포저블 SmartNIC 제품군으로, 광범위한 네트워크 기능을 라인속도로 가속화할 수 있는 개방형 아키텍처를 통해 프로세서 집약적 작업을 직업 오프로드해 네트워킹 성능을 최적화할 수 있다. 이 알베오 SN1000 SmartNIC은 1M LUT 규모의 자일링스 XCU26 FPGA와 16코어의 ARM 프로세서, 바이티스 네트워킹 플랫폼이 결합되어, 제어와 데이터 플레인의 분리와 함께 FPGA를 통한 하드웨어 가속 기능 구현, 고수준 프로그래밍 언어를 통한 애플리케이션 개발 가능 등의 특징을 제공한다. NIC 측면에서는 100Gbps 인터페이스 두 개와 100Mpps 급 처리 성능을 갖췄다.

이 알베오 SN1000 SmartNIC의 차별점은 ‘소프트웨어 정의 하드웨어 가속’이 꼽힌다. SN1000은 FPGA가 데이터 플레인 영역에, Arm 코어 프로세서가 컨트롤 플레인 영역에 있고, DRAM은 양 쪽에 공유되는 형태다. 그리고 데이터 플레인의 FPGA에는 자일링스가 제공하는 사전 프로그래밍된 블록을 결합해 기능을 구현할 수도 있고, 사용자가 직접 필요한 기능을 구현할 수도 있다. 소프트웨어 개발자는 ‘바이티스 네트워킹 플랫폼’과 P4, C/C++ 등의 표준 고수준 언어를 사용해 SmartNIC을 위한 기능과 프로토콜 및 애플리케이션을 개발, 성능 저하없이 손쉽게 커스터마이즈 할 수 있으며, 자일링스 앱스토어를 통해서도 이러한 기능이나 애플리케이션들을 찾고 설치, 배포할 수 있다.

▲ ‘스마트 월드’ 비디오 분석은 복잡한 AI 비디오 분석을 높은 효율로 구현할 수 있게 돕는다 (자료제공: Xilinx)

▲ ‘자일링스 앱스토어’는 알베오 가속기 카드의 활용성을 극대화한다 (자료제공: Xilinx)

AI 기반 비디오 분석 애플리케이션은 이제 인간의 생명과 건강 및 재산을 보호하는 데 있어서도 중요하게 활용되고 있다. 그리고 이러한 비디오 분석 애플리케이션의 중요성이 높아지는 만큼 복잡성도 높아지고, 이는 결정론적 짧은 지연시간 달성을 더 어렵게 하며, 목표 성능을 달성하기 위해 더 많은 하드웨어 리소스를 투입하면서 비용을 높이는 원인이 되고 있다. 이에, 자일링스는 알베오 가속기를 기반으로 복잡한 AI 비디오 분석 애플리케이션을 최소한의 하드웨어와 비용에서 최적화된 성능으로 구현할 수 있게 하는 ‘스마트 월드’ AI 비디오 분석 플랫폼을 소개했다. 이를 활용하면, 100ms 미만의 결정론적 파이프라인 지연시간으로 단일 알베오 가속기 카드 상에서 다중 신경망을 지원할 수 있다.

자일링스의 스마트 월드 비디오 분석 플랫폼은 복잡한 AI 비디오를 위해 성능을 최적화할 수 있도록 설계되었으며, 최소한의 하드웨어에서 여러 모델을 원활하게 처리할 수 있는 대규모 병렬처리 구성을 지원한다. 이를 통해 100ms 미만의 결정론적 파이프라인 지연시간과 함께, 단일 알베오 가속기 카드 상에서 다중 신경망 모델을 활용할 수 있으며, 그 결과 까다로운 AI 비디오 분석 애플리케이션에서 낮은 TCO를 달성할 수 있게 한다. 또한 이 플랫폼은 개발자를 위한 툴킷과 프레임워크 등 뿐 아니라, 고객과 파트너들이 스마트 시티, 헬스케어, 리테일, 빌딩 등의 분야에서 중요한 비디오 AI 분석 애플리케이션을 즉시 구축할 수 있도록 돕는 턴키 방식 솔루션 생태계 형태로도 제공되고 있다.

저지연 추론 시장의 주요 성장 동인으로는 제조업 현장의 안전관리나 글로벌 사고 및 비상상황 관리 시장, 리테일 분야에서의 분실 관리, 헬스케어의 중환자 관리 등에서의 빠른 시장 성장이 꼽힌다. 이러한 저지연 추론 환경에서, 자일링스의 알베오 가속기 카드를 기반으로 하는 스마트 월드 플랫폼은 32대의 카메라 구성에서 GPU 기반 경쟁 솔루션 대비, 필요한 카드와 서버 수는 절반으로 줄어 29% 더 낮은 TCO를 제공하며, 지연시간 또한 71% 낮은 수준을 달성할 수 있다고 소개했다. 한편, 이 플랫폼은 파이프라인 전반을 알베오 가속기 카드 기반으로 구현할 수 있도록 해 애플리케이션 전체를 가속화하고 저지연 환경을 구현할 수 있게 한다고 덧붙였다.

현재 자일링스의 스마트 월드 에코시스템 솔루션에서, 오페라(Aupera)는 오페라의 지능형 비디오 프로세싱과 알베오 가속기를 결합한 턴키 스마트 시티 및 스마트 리테일 솔루션을 제공하며, 밉솔로지(Mipsology)는 기존 AI 애플리케이션을 GPU 기반 아키텍처에서 알베오 플랫폼으로 손쉽게 이행할 수 알고리즘 트레이딩의 이점 있는 툴 세트와 플러그&플레이 방식의 고성능 AI 추론 가속화를 제공한다. 또한 디파이(DeepAI)는 알베오 가속기 카드를 통해 GPU 기반 솔루션 대비 비용당 최대 10배 향상된 성능의 엣지 AI 트레이닝을 제공한다. 스마트 빌딩의 적용 사례 측면에서도, ‘텐센트 위링크’가 오페라의 솔루션을 기반으로 5천대 이상의 카메라 규모로 구축되고 있으며, 90% 이상의 대역폭 절감 효과와 함께 추가 기능 구현을 위한 여유도 확보할 수 있었다고 덧붙였다.

또한, 자일링스는 스마트 월드 AI 비디오 분석을 비롯해 자금세탁방지 및 라이브 비디오 트랜스코딩에 이르기까지 즉시 구축 가능한 가속 애플리케이션을 제공하는 앱스토어를 출시했다고 밝혔다. 자일링스 에코시스템 파트너가 개발한 컨테이너 방식의 사전 구현된 이 애플리케이션은 몇 분 만에 가속 애플리케이션을 손쉽게 평가하고, 구매 및 구축할 수 있도록 해준다. 또한 파트너 등 앱 판매자에게도 고객에 좀 더 손쉽게 다가갈 수 있는 경로를 제공하며, DRM IP를 통합해 보안성이 검증된 플랫폼이자, 셀프서비스 플랫폼을 통해 글로벌 영업 및 마케팅 지원, 비즈니스 인텔리전스 극대화를 위한 실시간 분석 및 잠재고객 발굴 등의 특징을 제공한다.

트레이딩 룸을 회고해본다 6 (기법)

가끔 한 사람이 익힌 기예가 그의 정신이 되기도 하고 때론 그의 혼이 되기도 한다. 흡사 내림 받은 신에 따라 무당의 삶이 바뀌듯 말이다. 예술가가 손끝을 통해 표현하려 애써온 감성이 세월을 타 그의 얼굴에도 각인되듯, 자신이 혼을 담은 타이밍이 온몸과 온 생활에 각인되기 때문이 아닐까. 그런 의미에서 얼마나 격렬하게 싸우고 물러서고 치열하고 겸허하기를 반복하느냐에 따라 트레이더들도 특유의 성품이 빚어지는 것 같다. 스캘퍼들은 격노를 안고 살지만, 자기에겐 자비롭기도 하고, 포지션 트레이더들은 관망에 익숙하지만, 후회가 깊다.

이런 이야기를 풀어 보려면 매매 기법이 무엇이 있는지부터 한번 살펴봐야 할 것 같다.

대한민국에서 선물옵션 트레이딩을 한다면 크게 스캘핑, 양매도, 포지션 매매, 세 가지가 있다. 서로 간의 영역이 상당폭 뒤죽박죽 섞여 있지만.

스캘핑은 초단타 매매부터 단타 매매까지를 일컫는다. 평균 포지션 보유 기간이 짧게는 0.01 초인 사람도 있을 것이고, 길게는 30초 혹은 그 이상도 될 것이다. 진입의 이유는 시장의 방향을 읽어서일 수도 있지만 아닐 수도 있다. 시장의 방향과 상관없이 해당 투자 상품이 갖는 특성상 발생하는 가격 움직임을 활용하였을 수도 있다. 예컨대 어떤 선물 혹은 옵션 종목이 이상하게 한 달에 한 번 경기를 일으켜 위아래로 다섯 번 흔들린다고 해보자. 그걸 포착해서 매매한다면 그것도 스캘핑이며, 실제로 이 정도로 어처구니없는 패턴도 존재한다. 단기적 시장 현상을 이용한다면 그것이 기계를 활용하는 매매건 아니건 간에 스캘핑이라 할 수 있지 않나 생각한다. 어떤 분은 스캘핑 포지션을 진입해 2~3시간에 걸쳐 청산하는 경우도 있는데, 다만 그런 포지션이 진입할 기회는 2~3초밖에 안 되는 경우도 있다. 이런 것도 찰나의 승부이니 스캘핑이 아닐까 한다.

양매도는 시간의 길고 짧음으로 구분한 매매는 아니다. 옵션 상품이 시간이 흐름에 따라 가격이 저렴해지는 성질을 이용해서 포지션을 운용하는 방법이다. 장중 매매인 경우가 많다. 보험사와 비슷하다고 생각해도 될 것 같다. 특별한 일이 발생하지 않을 가능성이 높을 때 그런 일이 발생할 가능성에 대한 ‘보험’을 발행하는 행위와 원론적으로 같으니까. 달리 얘기하면, 특별한 일이 발생하기 전에 낌새를 느끼는 능력이나, 발생한 이후에 대응하는 능력이 중요하다. 단순한 보험 발행 따위는 누구나 할 수 있지만, 돈을 버는 보험사를 경영하기는 힘든 법이다. 나는 오늘 얘기하는 세 가지 매매를 결국엔 다 섞어서 사용하게 되었지만, 커리어의 큰 줄기는 양매도에 있었다. 양매도가 무슨 매매인지 가끔 답을 잃었을 때는 200년 전에 런던 어느 커피집에서 보험을 발행했을 갈색 정장의 남자를 생각해 보았다. 내가 아는 모든 정황상 이 보험을 발행해도 되는 것일까, 혹시 아무도 눈치채지 못한 어떤 실패의 징조가 눈앞에 스친 것은 아닐까, 내 옆자리에서 남들이 정신없이 보험을 발행해준다고 나까지 휩쓸리는 것은 아닌가, 같은 고민을 할 때 말이다. 보험 발행의 묘는, 한순간의 큰 사고를 피하는 것이다. 지나치게 주의 깊은 사람이 용맹한 사람을 이기는 게임이다.

국내 증권사에 유달리 양매도 팀이 많아 트레이딩 룸의 주 수익원이 될 수 있었던 이유는 제도적인 이유 덕분이다. 증권사는 옵션 매도 포지션에 대해 장이 끝난 후에 증거금을 정산한다. 개인은 옵션을 거래할 때 실시간으로 증거금을 정산해야 하니까 큰 차이가 있다. 달리 말하면 장중에 100억 원의 증거금이 필요한 포지션을 구축했다가 장이 끝나기 전에 청산하면 실제 증거금을 마련하지 않아도 된다는 얘기다. 부러울 만하다. 물론 증거금이 무제한인 것은 아니다. 그러나 이런 몇 가지 제도적 이점으로 인해 증권사 트레이더들은 개인으로서는 기대하기 어려운 이득을 볼 수 있었다. 물론 아무나 데려다 놓는다고 돈을 벌 것이란 얘기는 아니다. 진짜 타짜들을 모아 놓는다면, 승률이 50%냐 50.5%냐에 따라 아주 큰 결과의 차이가 발생하기에 이 정도만 해도 큰 차이라는 것이다. 또한, 증권사 주문 시스템이 자기자본 전용과 개인 고객 전용으로 구분되어 있어서 결국 자기자본 트레이더들의 주문이 더 빠르고 안정적으로 체결된다. 수수료가 저렴한 것은 물론이다. 양매도 매매만으로 개인 매매에서 성공하기가 그만큼 어려운 이유이기도 하다. 물론 이런 제도적 이점들은 스캘퍼에게도 동일하게 작용하지만, 양매도가 스캘핑보다 다소 더 전수가 쉬웠던 이유는 이 점 때문이다.

때론 양매도나 양매도의 구조적 이점에 대해 허황된 해석들을 인터넷에서 읽기도 하였다. 대부분 어디서 잘못 줏어들은 얘기를 택도 없이 부풀려서 써놨다. 심지어 그런 정보들을 접한 스캘퍼 마저 양매도를 혐오하는 경우도 봤다. 증권사가 매도 포지션을 가져가는 것은 너무 쉬워서 차라리 비윤리적이라는 시선인 것이다. 어떤 분은 양매도가 뭔지조차 잘 몰라서 옵션을 ‘매도’하는 행위는 다 허접떼기들의 전략이라고 역설하기도 했다. 주식을 매수 해서 돈 버는 사람은 하수라고 얘기하는 것과 비슷하게, 무식하고 오만한 얘기다. 고수는 매수만 해도 돈을 벌고, 하수는 매도만 해도 돈을 잃는다. 매수건 매도건 유리할 건 하나도 없다. 어차피 모든 승부는 내기 당구처럼, 당구장 주인에게 수수료 떼고 나면 전체로선 손해다. 고수들은 수수료를 만회할 눈꼽만한 확률을 확보했을 뿐이다. 그리고 그 눈꼽만한 확률은 저 넓은 우주 수천억 개의 은하계 속에 먼지 한 톨처럼 미묘한 곳에 구체적으로 숨겨져 있다. ‘근처에 있는 것은 다 탐색 당했기 때문’이라는 문병로 교수님의 말씀을 빌려본다.

포지션 매매는 며칠에 걸쳐 포지션을 가져가는 매매로 통칭할 수 있다. 엄밀히 말해 시장의 방향성을 보는 매매와 그렇지 않은 매매로 구분할 수도 있다. 시장 예측을 귀신처럼 해내는 분들이 아예 없는 것은 아니지만, 99%는 시장 예측을 할 수 있다는 환상에 빠지다가 파멸하고 만다. 방향성 예측 매매를 ‘스펙 매매’ (speculative trading, 투기성 매매)라고 부르는데, 야구로 치면 투수만큼이나 귀한 재능의 소유자들이며 또 한편으로는 투수만큼이나 압박감에 많이 시달리는 매매다. 대체로 이런 분들은 트레이딩 룸에서 잘 안 뽑는다. 이 악마의 매매로 안정적인 수익을 낼 가능성이 너무나 희박하기 때문이다. 대신 스펙 매매를 깨친 알고리즘 트레이딩의 이점 분들은 개인으로서 투자하더라도 재벌이 될 정도로 성장한다. 선경래라는 트레이더가 있었는데 미래에셋을 나와 개인 투자를 시작하셨다가 2008년 하락장에서 1조 원을 벌었다는 전설이 있었다. 당연한 얘기지만 시장 방향성에 대한 감각이 계발된다면 최고의 부자가 될 수 있다. 대다수의 1세대 헤지펀드 트레이더들은 이 감각으로 성공했다고 할 수 있겠다. 그러나 제발 독자들은 시도조차 하지 말기를 권한다. 인류가 겪는 재무적 고통의 절반 이상은 시장 예측을 할 수 있을 것이란 환상 때문이다. 그래도 당신만은 특별하다고 믿지 말아달라. 스펙 트레이딩 마저도 대부분은 예측이 아니라 대응의 영역이다.

양매도나 스캘핑과 마찬가지로, 시장과 상관없이 규칙적으로 발생하는 특정 이점을 노리는 포지션 매매 유형이 있다. 개인적으로 가장 아름다운 매매로 생각하는 것은 일전에 언급한 레이시오 매매다. 헤지에 헤지를 거듭해 아주 구체적인 시장 현상만을 취하기 때문이다. 대다수의 시장 상황에서 옵션들이 행사가별로 순차적으로 움직이는 경향이 바로 그것이다. 이는 여러 가지 이유로 강력히 반복하는 현상이지만 이것을 취해 이득을 보기는 매우 어려웠다. 레이시오라는 독특한 방법론만이 이 현상에 낚싯바늘을 알고리즘 트레이딩의 이점 내릴 수 있었는데 참으로 기이하고 훌륭한 전략이다. 이런 것을 차익거래라 부르기는 어렵고, 일종의 헤지 매매라고 생각하면 될 것 같다. 헤지 트레이더들은 ‘무엇을 추구하기 위해 어떤 상품들을 서로 헤지시키느냐’에 대한 답을 정확히 갖고 있지 않으면 쓸데없는 헤지만 하다가 날밤 샌다. 주식도 잘 못 하는 사람이 주식을 롱숏으로 서로 헤지시킨다고 수익이 안정적이 될 리가 없다. 오히려 꾸준히 패착이 쌓여서 손실을 볼 가능성이 더 높다. ‘헤지’라는 단어 자체가 지나치게 미화되어 있는 셈이다. 포지션 매매에는 이외에도 ‘순수 차익거래’를 표방하는 유형들도 있다. 내가 레이시오를 정통으로 배웠다고 레이시오에 매우 치우친 평을 쓰는 점은 이해하시라. 이보다 더 세련된 류의 매매도 책을 통해 파편적으로 여러 번 접했는데, 비대칭적 수익 기회가 발생할 수 있는 원리와 환경을 정확히 이해하면 어떤 방식으로든 응용 가능하다. 여하간에 포지션 매매는 단타의 반댓말이 아닌가 한다. 단순히 매매시간이 길어지기만 해도 때론 포지션 트레이딩이라고 일컫기도 한다.

일반적으로 시간 단위가 길어질수록 실력과 운의 역할을 구분하기 어려워진다. 하루에 100번 스캘핑을 하는 사람은 100일 동안 1만 번 매매를 해볼 수 있고, 그 정도면 스스로의 실력이 비교적 정확히 검증이 될 것이다. 하지만 예컨대 주식을 들고 1년간 홀딩하는 사람들은 그 결과가 실력에 의해서였는지 장세에 의한 우연이었는지 판단하는데 수십 년이 걸린다. 한 매매를 최소한 수십번은 반복해야 하나의 사이클이 완성된다. 그럼에도 장기투자를 하는 이가 한해 수익률이나 월간 수익률을 자랑하는 것은, 스캘퍼가 1회의 매매를 이겼다고 자랑하고 다니는 것과 다를 바 없다. 매매의 사이클을 여러 번 거쳐봐야만 장세에 의한 효과가 평가 가능하다는 당연한 이야기이다. 그러니 대여섯 번의 매매에서 승리를 거뒀다고 우쭐해 있는 사람을 보면 하수의 조기경보라 생각하고 피하라. 딱 그때가 가장 우쭐하기 좋은 때라 스스로 감추기 어려울 정도의 오만방자에 휩싸인다. 사이클이 지나간 후, 그런 이들이 생존해있는 경우를 본 적이 없다. 헤지펀드 트레이더라 하더라도 주식이나 장기월물을 이용한 매매를 하는 사람들은 2~3년간 별다른 실력 없이도 큰 실적을 올릴 수 있다. 사이클을 많이 경험하지 않은 사람들의 눈에는 어디까지가 운이었는지 판단이 매우 어렵다. 국내뿐만이 아니라 특히 국외 금융업에서 초대형 사고들이 자주 일어나는 매우 본질적이고 고질적인 이유이다. 개인적으론 투자 사이클에 대한 이해가 뛰어나기만 해도 좋은 본부장이 될 수 있다고 생각해왔다.

국내 선물옵션 트레이딩 룸에서 이뤄지는 트레이딩을 크게 세 가지로 분류를 해봤다. 알고리즘 트레이딩이나 시스템 트레이딩도 있지 않느냐고 할 수 있는데, 사실 모든 트레이딩은 일종의 시스템에 의해 거래된다고 생각한다. 그 시스템이 트레이더 개인의 머릿속에 있을 수도 있고, 여러 트레이더의 회의를 거쳐 결정될 수도 있고, 여러 개발자와 함께 컴퓨터 시스템으로 구성되어 있을 수도 있다. 그러니 시스템이 무엇이든 간에 크게 보았을 때는 전략의 성향을 구분 점으로 삼으면 괜찮지 않을까 생각해봤다.

그렇다면 이들의 성품은 어떻게 다르다는 걸까?

스캘퍼들은 시장에서 초단타의 싸움을 계속한다. 하지만 한 번의 매매가 대세에 지장을 줄 정도로 중요한 경우는 거의 없다. 다만 목숨이 걸린 듯이 스스로 긴장감을 형성할 뿐이다. 스캘퍼들이야 말로 장중에 욕설이 가장 난무하는 분들이다. 체결 자체에서 수익이 발생하는 경우가 많기 때문에, 찰나의 망설임이나 불량체결로 수익을 놓치거나 손실을 보는 경우가 많기 때문이다. 그리고 이 순간의 고통이 매매 중 가장 큰 고통이다. 그러니 감정을 자주 표현한다. 한 분은 장중에 욕설이 너무 심했는데, 어떤 때는 자기 얼굴을 때리며 자학까지 해서 주위 사람들이 힘들었다고 한다. 재미난 것은, 하도 시끄럽게 분통을 터뜨리길래 당일 손익을 보면 +300만 원을 버는 중인데 순간의 실수로 -10만 원을 잃었거나 하는 식이었다는 것이다. 손실이 커져서 자학하는 것이 아니라 대개는 이기는 게임 중에 자신의 집중력 저하를 꾸짖는 것이다. 실제 손실 중인 트레이더들은 남들이 눈치챌까 봐 묘하게 조용해진다.

스캘퍼들은 시스템이나 체결 등의 영향을 많이 받다 보니 장비를 중시하기도 하지만, 역으로 미신이나 리츄얼을 진지하게 시행하기도 한다. 미역국을 먹고 출근하면 체결이 미끄러진다고 생일날에도 미역국을 안 먹거나 하는 식이다. 이런 분들은 사실 매일의 트레이딩이 매우 단순한 영업의 반복이다. 그러다 보니 거시적인 시장에도 관심 없고 업계의 규율에는 더욱 관심 없어서 아무 때나 출퇴근하기도 하고 회사 문화에 섞이지 않곤 한다. 대체로 팀원들 알고리즘 트레이딩의 이점 간에도 공동책임은 거의 없고, 각개 손익을 가지고 각개 계약을 하는 편이었다. 내가 번 만큼만 칼 같이 가져간다는 뜻이다. 실제 같은 스캘핑 팀에 앉아 있어도 기법이나 타이밍이 모두 완전히 다를 수 있다. 팀원의 수익이 함께 움직이는 근본적인 인과관계가 없다. 여러 시스템을 모아둔, 하나의 집합이라고 생각하면 되겠다. 그러니 각 개인에겐 외로운 매매일 수밖에.

양매도 선수는 조금 다르다. 양매도가 벌리는 날은 팀원들이 대체로 다 같이 버는 편이고, 양매도가 힘든 날은 팀원들이 다 같이 힘들다. 물론 힘들다고 해서 수익이 다 같이 난다는 보장은 없다. 전 팀원이 손실 한도가 걸려도, 혼자 살아남아 큰돈을 버는 선수들도 가끔 있고, 반대의 경우도 나온다. 양매도 시장 내의 모든 이들이 정어리 떼처럼, 때로는 동지이고, 때로는 포식자 앞에서 생존 경쟁을 펼치는 경쟁자다. 매수를 하는 개인들이 거래 상대방이기도 하지만, 그 안에 섞여 있는 진짜 큰 손이 우리를 다 잡아먹을 수도 있다. 가장 무서운 것은 위기의 순간 양매도 선수들끼리의 손절매 매매가 서로의 손실을 폭발시키는 기폭제 역할을 한다는 것이다. 모든 매도자가 매수자로 변하는 그 순간 우리는 각자도생의 아비규환에 빠지곤 한다. 역발상보다는 무리 안에서 눈치껏 생존하는 사바나의 물소 같은 눈치가 필요하다. 그러나 무엇보다 양매도는 한 매매 사이클을 겪고 나면 찰나에 몇 달의 손익이 증발하는 고통을 겪게 된다. 이러한 집중적인 두려움을 떠안고 얼마나 냉정하게 매매할 수 있느냐 하는 강철의 심장을 요한다. 양매도는 오늘 장중에 북한이 도발을 하면 몇 달 치 손익이 날아가진 않을까 하는 두려움과 각오로 출근해야 한다. 이런 환경들이 트레이더의 성격에 영향을 미치기도 하는 것이다.

그러나 그런 불안감에 잠을 잊는 것은 뭐니뭐니해도 포지션 트레이더다. 야간에 생기는 이벤트들이 내일의 손익이나 심지어 커리어를 통째로 날려버릴 수 있으니 밤늦게까지 시장을 보는 경우가 많다. 옛말에 ‘포지션은 잠이 오는 수준까지 줄이라’고 했다. 잠이 안 온다는 것은 과도한 위험성을 취해서 몸이 버티지 못한다는 얘기다. 몸이 버티지 못하면 정신이 버티지 못한다. 용맹해 보여서 우쭐하겠지만 허망하게 전 재산을 날릴 체질이다. 그래서 포지션 트레이더는 생각이 많다. 또한 팀원, 팀장, 심지어 회사에 많이 의존해야 한다. 해외 트레이딩 룸들은 포지션 트레이더가 다수이며, 선물옵션 외에도 어마어마하게 다양한 포지션들을 운용한다. 포지션 트레이더들은 회사가 제공하는 자원과 한도에 영향을 많이 받기 때문에 회사와의 관계에 신경을 많이 쓰기도 하며, 대고객 매매로 전환이 가능한 확장성이 있다. 운용 사이클이 길다 보니 검증 시간이 오래 걸리기도 하는 편이다. 포지션이 절대적인 위험에 처하는 사이클은 약 3년이다. 그러니 3년 이하의 기간을 운용한 사람은 위기 대응 능력을 갖추지 못했을 가능성이 있는 셈이다. 또한, 포지션에 덕지덕지 꼼수를 부려둘 여지도 많은 편이라 관리 감독이 쉽지 않다.

매매나 투자에서 극심한 위기는 주기적으로 온다. 주식은 10년, 옵션 포지션은 3년, 양매도는 1년, 스캘핑은 시시때때로 온다. 그 위기를 어떻게 맞이하고 어떻게 대응하느냐가 대다수 매매기법의 핵심이다. 물 들어오는 구간에서 노 젓는 것은 젊기만 하면 가능하니까, 강세장에선 무모하고 혈기 넘치는 청춘이 최강자다. 그러나 태풍이 오고 나면 누가 생존해있는지를 확인해야 한다. 아마 로보어드바이저에 사람들이 느끼는 불안감도 이런 면 때문에 아닌가 한다. 시장의 사이클을 이해하지 못한 사람들이 일시적인 장세를 흉내 내는 것이라면 고객들은 처참한 결과를 맞이할 것이다. 이미 다른 이름으로 수없이 반복되었던 일이다.

알고리즘 트레이딩의 이점


안녕하세요 CoinBeri 입니다.

트레이딩 스마트를 이용하면 좋은 장점을 소개 해드리려고 합니다.

AI 알고리즘

Trading SMRT는 플랫폼용으로 개발된 AI 알고리즘에 따른 솔루션을 제시하고 프로젝트의 주요 이점을 기반으로 합니다.

BOT이 수행하는 모든 작업

다른 거래소와 작업할 때 지갑이 오프라인이거나 충전 문제가 있는 경우 시스템은 자동으로 다른 거래소로 이동하여 다른 가격 변수를 찾고 작동 가능해질 때까지 조치를 취하지 않습니다.

위험 감소

차익 거래 중 손실 위험을 줄입니다. 이렇게 하면 실제 방식으로 TIMINING을 활용할 수 있습니다. 플랫폼에서 규정한 시간 후. BOT는 운영하는 모든 거래소에서 자금을 회수하여 풀로 보냅니다.

가격차이 계산 혜택

SMART BOT이 수행할 각 작업은 이미 가격 차이 계산, 거래에 대한 네트워크 수수료 및 출금 비용의 %를 고려합니다. 이러한 방식으로 거래가 수행될 때 가격 차액에 운영 비용을 더한 금액이 이미 충당됩니다.

보안

당사 플랫폼의 차별화된 핵심은 간단하고 안전한 사용자 경험을 제공하는 혁신적인 모델에 기술과 지식을 통합하는 데 있습니다. 몇 번의 클릭만으로 사용자는 플랫폼 내에서 SMRT 토큰을 사용하여 다양한 작업을 수행하고 모니터링하고 위치와 볼륨, 얻은 결과를 알고 프로세스의 다른 많은 데이터를 사용할 수 있습니다.

이진 옵션 거제시

나만의 무역 로봇을 코딩하는 법.
적 자신의 트레이딩 로봇을 코딩 할 수있는 알고리즘 트레이더가되고 싶었던 적이 있습니까? 그럼에도 불구하고 혼란스럽고 오해의 소지가있는 정보의 양과 하룻밤 사이의 번영에 대한 그릇된 약속에 좌절합니까? 글쎄, 온라인 알고리즘 트레이딩 코스 AlgoTrading101의 창시자 인 Lucas Liew가 해결책을 제시 할 것입니다. 2014 년 10 월 첫 출시 이후 우수 리뷰를 받고 8,000 명 이상의 학생을 확보 한 Liew는 체계적인 방식으로 알고리즘 거래의 기본 원리를 제시하는 과정을 거쳐 매우 인기가 있음을 입증합니다. 그는 알고리즘 트레이딩이 "부자가 아닌 빠른 스킴"이 아니라는 사실에 확고합니다. Liew와 그의 과정에서 얻은 통찰력을 바탕으로 알고리즘 트레이닝 로봇을 설계, 구축 및 유지 관리하는 데 필요한 기본 사항을 간략하게 설명합니다 .
알고리즘 트레이딩 로봇의 역할
가장 기본적인 수준에서 알고리즘 거래 로봇은 금융 시장에서 매매 신호를 생성하고 실행하는 능력을 갖춘 컴퓨터 코드입니다. 이러한 로봇의 주요 구성 요소에는 구매 또는 판매시기를 알리는 진입 규칙, 현재 위치를 종료 할시기를 나타내는 퇴장 규칙 및 구매 또는 판매 할 수량을 정의하는 위치 결정 규칙이 포함됩니다. (자세한 내용은 : 알고리즘 트레이딩의 기초 : 개념과 예제를 참조하십시오.)
주요 도구.
분명히 컴퓨터와 인터넷 연결이 필요합니다. 그 후 MetaTrader 4 (MT4) - MetaQuotes 언어 4 (MQL4)를 사용하여 거래 전략을 코딩하는 전자 거래 플랫폼을 실행하려면 Windows 또는 Mac 운영 체제가 필요합니다. MT4가 로봇을 만드는 데 사용할 수있는 유일한 소프트웨어는 아니지만 많은 이점이 있습니다.
MT4의 주요 자산 클래스는 외환 (FX)이지만, 플랫폼은 CFD를 사용하여 주식, 주식 지수, 상품 및 Bitcoin을 거래하는 데 사용될 수 있습니다. 다른 플랫폼과 달리 MT4를 사용하는 다른 이점으로는 배우기 쉽고 수많은 FX 데이터 소스가 있으며 무료입니다. 불행히도 MT4는 주식 및 선물 시장에서 직접 거래를 허용하지 않으며 통계 분석을 수행하는 것이 부담이 될 수 있습니다. 그러나 MS Excel은 보충 통계 도구로 사용할 수 있습니다.
알고리즘 트레이딩 전략.
모든 알고리즘 트레이딩 전략이 가져야하는 몇 가지 핵심 특성을 먼저 반영하는 것이 중요합니다. 전략은 근본적으로 시장 및 경제적 관점에서 건전하다는 점에서 시장 신중해야합니다. 또한 전략 개발에 사용 된 수학적 모델은 건전한 통계 방법을 기반으로해야합니다.
다음으로, 귀하의 로봇이 수집하고자하는 정보를 결정하는 것이 중요합니다. 자동화 된 전략을 가지려면 로봇이 식별 가능하고 지속적인 시장 비 효율성을 포착 할 수 있어야합니다. 알고리즘 거래 전략은 시장 행동을 활용하는 엄격한 규칙을 따르므로 일회성 시장 비 효율성의 발생으로 인해 전략을 세우는 데 충분하지 않습니다. 또한, 시장 비 효율성의 원인이 확인되지 않는 경우, 전략의 성공 또는 실패 여부가 우연에 의한 것인지 아닌지를 알 수있는 방법이 없습니다.
위의 내용을 염두에두고 알고리즘 거래 로봇의 설계를 알고리즘 트레이딩의 이점 알려주는 몇 가지 전략 유형이 있습니다. 여기에는 (i) 거시 경제 뉴스 (예 : 비농업 임금 또는 금리 변경)을 활용하는 전략; (ii) 기본 분석 (예 : 수익 데이터 또는 수익 발표 노트 사용); (iii) 통계 분석 (예 : 상관 관계 또는 공적분); (iv) 기술적 분석 (예 : 이동 평균); (v) 시장 미세 구조 (예 : 재정 거래 또는 무역 기반 시설) 또는 (vi) 상기의 임의의 조합. (관련 독서는 시장 효율성이란? 참조)
로봇 설계 및 테스트.
거래 로봇을 구축하고 관리하는 데는 기본적으로 네 단계가 필요합니다.
예비 연구 :이 단계는 자신의 개인적 특성에 맞는 전략을 개발하는 데 중점을 둡니다. 개인 위험 프로필, 시간 약속 및 거래 자본과 같은 요소는 전략 개발시 모두 중요합니다. 그런 다음 위에서 언급 한 영구적 인 시장 비 효율성을 파악할 수 있습니다. 시장 비 효율성을 확인하면 자신의 개인적인 특성에 적합한 거래 로봇을 코딩 할 수 있습니다.
Backtesting :이 단계는 거래 로봇의 유효성 검사에 중점을 둡니다. 여기에는 코드를 점검하여 원하는 것을 수행하고 다른 기간, 자산 클래스 또는 다른 시장 조건, 특히 2008 년 세계 금융 위기와 같은 검은 백조 유형의 이벤트에서 수행 방법을 이해하는 것을 포함합니다.
최적화 : 이제는 작동하는 로봇을 코딩했습니다. 이 단계에서는 지나치게 맞추기 편향을 최소화하면서 성능을 극대화하려고합니다. 성능을 극대화하려면 먼저 위험 요소 및 보상 요소를 캡처하고 일관성 (예 : Sharpe ratio)과 같은 우수한 성능 측정 방법을 선택해야합니다. 지나친 편향은 로봇이 과거 데이터에 너무 근접해있을 때 발생합니다. 그러한 로봇은 고성능의 환영을 제공 할 것이지만 미래가 과거와 완전히 닮은 적이 없기 때문에 실제로 실패 할 수 있습니다.
실시간 실행 : 이제 실제 돈을 사용할 준비가되었습니다. 그러나 경험할 수있는 정서적 기복을 준비하는 것 외에도 해결해야 할 몇 가지 기술적 인 문제가 있습니다. 이러한 문제에는 적절한 브로커를 선택하고 시장 위험과 잠재 해커 및 기술 중단 시간과 같은 운영 위험을 관리하는 메커니즘을 구현하는 것이 포함됩니다. 또한이 단계에서 로봇의 성능이 테스트 단계에서 경험 한 것과 유사한 지 확인하는 것이 중요합니다. 마지막으로, 로봇이 설계된 시장 효율성이 여전히 존재하도록 보장하기 위해 지속적인 모니터링이 필요합니다. (더 많은 것을 위해, 보십시오 : 무역 알고리즘이 어떻게 창조되는지.)
결론.
전설적인 상품 거래자 인 리차드 데니스 (Richard Dennis)가 5 년 만에 1 억 7500 만 달러 이상을 벌어 들인 개인 트레이딩 전략을 학생들에게 가르친 것을 고려할 때, 경험이없는 트레이더에게는 엄격한 지침을 배우고 성공적인 거래자. 그러나 이것은 하나의 특별한 알고리즘 트레이딩의 이점 예이며 초보자는 겸손한 기대를 확실히 기억해야합니다.
성공하기 위해서는 일련의 지침을 따르는 것이 아니라 해당 지침이 어떻게 작동하는지 이해하는 것이 중요합니다. Liew는 알고리즘 트레이딩의 가장 중요한 부분은 "로봇이 어떤 종류의 시장 상황에서 작동하고 언제 작동 할 것인가에 대한 이해"와 "언제 개입해야하는지 이해"라고 강조합니다. 알고리즘 트레이딩은 보람을 줄 수 있지만 성공의 열쇠는 이해. 최소한의 이해로 높은 보상을 약속하는 모든 코스 또는 선생님은 주요 경고 표지가되어야합니다.

자동 거래 시스템 소스 코드
이 페이지는 Wisdom Trading, 선물 거래 시스템 및 글로벌 시장 브로커가 후원합니다. 이들은 거래 시스템을 모두 고객에게 코딩하고 Trading Blox를 실행합니다. 이 시스템은이 사이트에서 많은 코드를 나타냅니다.
코드 라이브러리.
시스템 거래 코드는 여러 게시물에 분산되어 있습니다. 모든 거래가 너무 복잡해지기 전에 한 곳에서 통합하는 것이 좋습니다.
또한 Trader & Tips 섹션 (주로 Trading Blox 코드)에 Stock and Commodities (TASC) 잡지의 기술 분석을 위해 매월 씁니다.
귀하의 열람을 위해 아래 사항을 모두 찾으십시오.
& # 8212; TASC 잡지 Traders & # 8217; 팁 & # 8212;
TASC 트레이더 팁 (2010 년 4 월) : 수정 된 대량 가격 동향 표시기 (Excel).
이번 호의 "수정 된 대량 가격 동향 지표"기사에서 David Hawkins는 원래 Joseph Granville이 개발 한 온 밸런스 볼륨 지표를 기반으로 볼륨 가격 추세 지표 (VPT)의 수정에 대해 논의합니다.
& # 8220; 볼링 선수를 부드럽게하기 % b & # 8221; 저자 인 Sylvain Vervoort는 기존의 % b 표시기에서 노이즈를 제거하는 방법을 설명합니다. 이 표시기는 명확한 전환점과 발산을 식별하는 데 사용됩니다.
그 문제에서 "선체 이동 평균을 이용한 거래 지수"에서 저자 인 Max Gardner는 장기 시장 타이밍을 위해 선체 이동 평균을 사용하는 방법을 설명합니다.
테스트 통계 통계 계산을위한 부트 스트랩 테스트.
David Aronson의 책 : 증거 기반 기술 분석 (아마존 링크)에서 설명한 부트 스트랩 테스트 구현
& # 8212; CSI Unfair Advantage API & # 8212;
RetrieveBackAdjustedContract2 API 함수 설명서.
이 필수 기능에 대한 참조 가이드는 CSI API 문서에서 가져온 것입니다.
다시 조정 된 선물 계약을 검색하십시오.
C #의 일부 샘플 코드는 API를 사용하여 CSI가 제공 한 모든 후위 조정 유형의 선물 계약을 검색하는 가장 중요한 기능 중 하나에 액세스합니다.
CSI 개별 계약 추출기.
CSI의 Unfair Advantage Database에서 일반 텍스트 파일로 개별 계약을 추출하는 유틸리티입니다.
& # 8212; Trading Blox & # 8212;
빠른 평균에 대한 표준 이동 평균 대신 이동 평균 지표를 사용하는 클래식 MACD 포트폴리오 필터의 변형입니다.
원본 소용돌이 표시기.
소용돌이 지표의 구현.
향상된 소용돌이 및 AVX 지표 및 AVX 시스템.
최초의 Vortex Indicator는 결함 (Forex 외 시장을위한 gap handling)을 가지고 있었고 평활화를 위해 지수 이동 평균을 사용하지 않았습니다. 이것은 항목 / 종료를 위해 기본 반전 시스템을 사용하여 개선 된 버전입니다.
원래 게시물에 대한 링크 | 소용돌이 표시기 & AVX 보조 블록 파일 (tbx), AVX 항목 종료 블록 (tbx), AVX 시스템 (tbs) 포함)에 대한 링크
과거 수준에 비해 변동성 수준에 따라 거래를 거부 / 허용 할 수있는 필터를 구현합니다.
Vince의 Leverage Space Model의 워크 포워드 구현.
적응 형 테스트 테스트 방법론을 허용하기 위해 워크 플로우 (walk-forward) 접근 방식으로 LSPM R 패키지 (조쉬 울리히 제공)를 활용합니다.
전자 비율은 시스템 전체를 테스트 할 필요없이 시스템의 특정 구성 요소의 에지를 평가하는 실용적인 방법입니다 (예 : 입력 신호 에지 만).
원본 게시물 링크 (필요한 모든 코드 스 니펫과 로직 포함)
& # 8212; TradersStudio & # 8212;
Donchian Channel Breakout 시스템에 대한 전자 비율 계산.
이 코드에는 Donchian 채널 브레이크 아웃 입력 신호에 계산을 적용하기위한 구현뿐만 아니라 e - 비율을 계산하는 데 필요한 일반 코드가 들어 있습니다.
원래 게시물에 대한 링크 | zip 파일 (Donchian 채널 표시기 TS 코드, 주문형 무역 보고서 TS 코드, 구매 시스템 TS 코드, 시스템 TS 코드 판매, Excel 전자 비율 매크로 (텍스트 파일), Excel 예제 통합 문서 포함)에 대한 링크
무료 업데이트.
인기 게시물.
Search Au. Tra. Sy 블로그.
글로벌 선물 브로커.
Au. Tra. Sy 블로그, 추세 추종의 맛과 체계적인 무역 연구 및 개발.
면책 조항 : 과거 실적이 반드시 미래 결과를 나타내는 것은 아닙니다. 선물 거래는 복잡하며 상당한 손실 위험이 있습니다. 따라서 모든 투자자에게 적합하지 않을 수 있습니다. 이 사이트의 내용은 일반적인 정보로만 제공되므로 투자 조언으로 간주해서는 안됩니다. 모든 사이트 내용은 증권 또는 금융 상품을 매매하거나 특정 거래 또는 투자 전략에 참여할 것을 권장하는 것으로 해석되어서는 안됩니다. 이 사이트에서 표현 된 아이디어는 전적으로 저자의 의견입니다. 저자는 위에 언급 된 금융 상품이나 전략에서 직위를 갖거나 갖지 않을 수도 있습니다. 귀하가이 사이트에서 정보 나 분석 결과로 취한 조치는 귀하의 전적인 책임입니다.
역기능 성과는 많은 내재적 인 제한이 있으며 그 중 일부는 아래에 설명되어 있습니다. 어떠한 계정도 이익이나 손실을 달성 할 가능성이 높거나 그와 유사한 것으로 보이지 않는다는 진술이 없습니다. 사실상, 실적 실적과 특정 거래 프로그램에 의해 흔히 성취되는 실제 결과의 차이는 종종 상이합니다. 외상 성과 결과의 제한 중 하나는 일반적으로 통찰력의 혜택과 함께 준비된다는 것입니다. 또한 HYPOTHETICAL TRADING은 재무 위험을 포함하지 않으며 HYPOTHITICAL TRADING RECORD는 실제 거래의 재정적 위험에 대한 완전한 설명을 할 수 없습니다. 예를 들어, 손실을 저 지르거나 거래 손실이있는 특정 거래 프로그램에 참석할 수있는 능력은 실제 거래 결과에 약간의 영향을 미칠 수있는 자료 포인트입니다. 일반적으로 시장에 관련된 수많은 요인들이 있으며, 실적 실적의 준비 및 거래 결과에 중대한 영향을 미칠 수있는 모든 특정 거래 프로그램의 구현에 대한 충분한 정보가 포함되어 있지 않습니다.
이 성과 표와 결과는 자연의 견해이며 실제 회계에서의 거래를 나타내지 마십시오.

자동 거래 시스템 소스 코드
당겨 요청 0.
오늘 GitHub에 가입하십시오.
GitHub은 코드를 호스팅하고 검토하고, 프로젝트를 관리하고, 소프트웨어를 함께 구축하기 위해 함께 일하는 2,000 만 명이 넘는 개발자들의 본거지입니다.
HTTPS로 복제하십시오.
Git을 사용하거나 웹 URL을 사용하여 SVN에서 체크 아웃하십시오.
StockSharp (곧 S #) - 세계의 모든 시장 (미국, 유럽, 아시아, 러시아, 주식, 선물, 옵션, Bitcoins, 외환 등) 거래를위한 무료 프로그램 세트입니다. 수동 또는 자동 거래 (알고리즘 거래 로봇, 기존 또는 HFT)를 거래 할 수 있습니다.
사용 가능한 연결 : FIX / FAST, LMAX, Rithmic, Fusion / Blackwood, Interactive Brokers, OpenECry, Sterling, IQFeed, ITCH, FXCM, QuantHouse, E * Trade, BTCE, BitStamp 및 기타 여러 연결. 모든 브로커 또는 파트너 브로커 (혜택).
S #. 터미널은 무료 거래 차트 응용 프로그램 (거래 터미널)입니다. 더 많은 정보.
S #. 디자이너는 거래 전략의 자유 디자이너입니다. 직관적 인 인터페이스. 마우스 또는 C #을 이용한 "프로그래밍"전략. 더 많은 정보.
S #.Data는 다양한 출처 (35+)의 시장 데이터를 다운로드하고 저장하는 무료 응용 프로그램입니다. 더 많은 정보.
S #.API는 Visual Studio를 사용하는 프로그래머를위한 무료 C # 라이브러리입니다. S #.API를 사용하면 장기간의 위치 전략에서 교환 (DMA)에 직접 액세스 할 수있는 고주파수 전략 (HFT)에 이르기까지 모든 거래 전략을 생성 할 수 있습니다. 더 많은 정보.
모든 구성 요소의 현재 단계 - RELEASE_STAGES. md 출시 노트 - RELEASE_NOTES. md
StockSharp 코드는 Apache License 2.0에 따라 사용이 허가되었습니다.
&부; 2017 GitHub, Inc. 용어 개인 정보 알고리즘 트레이딩의 이점 보안 상태 도움말.
현재이 작업을 수행 할 수 없습니다.
다른 탭이나 창을 사용하여 로그인했습니다. 새로 고침하여 세션을 새로 고침하십시오. 다른 탭이나 창에서 로그 아웃했습니다. 새로 고침하여 세션을 새로 고침하십시오.

자동 거래 시스템 소스 코드
App Store를 통해 가져 오기 우리의 응용 프로그램 에서이 게시물을 읽으십시오!
어떤 오픈 소스 거래 플랫폼을 사용할 수 있습니다.
오픈 소스 거래 플랫폼 목록을 작성하고 싶습니다. 다른 아키텍처와 접근법에 대한 개요와 비교를 제공하는 것.
콴토 피안은 무료 연구 환경, 백 테스터 (backtester), 생방송 무역 장비 (algos는 인터랙티브 브로커 (Interactive Brokers)에 연결될 수 있음)를 제공합니다. 알고리즘 개발 환경에는 매우 편리한 공동 작업 도구와 오픈 소스 디버거가 포함됩니다. 그들은 많은 양의 데이터 (모닝 스타의 기초조차도!)를 무료로 제공합니다.
Quantopian의 플랫폼은 Python을 기반으로하며 Python 커뮤니티가 제공해야하는 모든 오픈 소스의 장점을 포함합니다 (Pandas, NumPy, SciKitLearn, iPython Notebook 등)
성공적인 라이브 상인은 군중에 의한 헤지 펀드 인 콴토 피안 매니저 프로그램 (Quantopian Managers Program)에 자리를 제공받을 것입니다.
Zipline은 Quantopian을 지원하는 오픈 소스 백 테스팅 엔진입니다. 이 시스템은 실시간 거래 시스템이 작동하는 방식과 매우 유사한 Pythonic 알고리즘 트레이딩 라이브러리를 제공합니다.
(전체 공개 : 저는 콴토 피안에서 일합니다)
QuantConnect는 오픈 소스, 지역 중심 프로젝트 인 Lean을 제공합니다. 이 프로젝트에는 수천 명의 엔지니어가 이벤트 분석 전략, 모든 해상도 데이터, 모든 시장 또는 자산 클래스를 생성하는 데 사용됩니다.
Google 시스템은 마진 레버리지 및 마진 콜, 현금 제한, 거래 비용을 모델링합니다. 우리는 귀하의 통화로 가득 찬 현금을 유지합니다. 가능한 현실에 가깝습니다. Zipline보다 20 배 빠르며 모든 자산 클래스 또는 시장에서 실행됩니다. 주식 및 Forex에서 틱, 초 또는 분 데이터를 무료로 제공합니다.
저는 창업자 인 QuantConnect입니다.
2017 년 1 월 : 우리는 오늘 옵션 거래, 선물, Forex, CFD 및 미국 주식을 QuantConnect를 통해 백 테스팅으로 제공합니다.
연구를하는 동안 내가 발견 한 링크 / 프로젝트 목록 :
헤지 펀드의 경우 공개적으로 사용 가능한 유명한 최상위 솔루션 (wiki 참조)이 있지만 "오픈 소스"는 없습니다. ( "오픈 소스"는 대개 실제 알 고 트레이딩에 대한 단서가없는 애호가에 의해 처리됩니다.)
AlgoTrading의 초보자 인 QuantConnect와 Quantopian은 실전과 기술 향상에 중점을두고 있지만 Algo Trader의 경우에는 기본적으로 쓸모가 없습니다. Algo Trader는 거래 아이디어를 조사하고 작동하지 않는 라이브러리 나 시스템 부분을 추가하거나 제거 할 수있는 유연성이 필요합니다. 시스템을 자동으로 지속적으로 재평가해야합니다. 이 거래 수준에서 Quantopian과 Quantconnect는 매우 알고리즘 트레이딩의 이점 엄격하고 완벽하지 않습니다. 몇 년 안에 더 고급 라이브러리를 통해 새로운 거래 아이디어를 구현할 수있는 수준이 될 것입니다. 이 두 신생 기업은 단순하고 단순한 돈을 찾고 있습니다. 당신이 실제로 수익성이 있고 당신이 무역 업계에서 알고있는 알 고를 개발했다면. 큰 소년, 헤지 펀드, HFT 회사 및 무역 회사와 일하면서 내가 왜 이렇게 말하는지 알게 될 것입니다. 한 바구니에 모든 계란을 넣지 않도록 조심하십시오.
QuantConnect와 Quantopian은 최초의 알고리즘 거래 플랫폼이었으며, 가장 전문화 된 트레이딩 플랫폼이었습니다 (전문 상인에게는 훨씬 더 많은 작업이 필요하지만 좋은 출발점입니다).
이것은 신흥 시장으로 많은 벤처 기업이 부상하고 있습니다. 요즘은 새로운 플랫폼을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
모든 플랫폼에는 고유 한 특성이 있지만 모두 모두 진행중인 작업입니다. 당신이 의지 할 수 있고 전문적인 거래에 필요한 모든 것을 제공 할 수있는 안정적인 거래 플랫폼을 가지려면 몇 년이 더 걸릴 것입니다.
몇 년 전 autoStock이라고 쓰여진이 편지가 나에게 있습니다. 가치가있다.


0 개 댓글

답장을 남겨주세요