알고리즘 트레이딩 전략의 성공적인 백테스팅 - 1부

저자:선함, 2019-03-20 17:00:16, 업데이트:

이 기사는 양적 거래에 관한 시리즈를 계속합니다. 이 두 개의 더 길고 더 복잡한 기사는 매우 인기가 있습니다. 그래서 나는 이 맥락에서 계속하여 전략 백테스팅 주제에 대한 세부 사항을 제공합니다.

알고리즘 백테스팅은 심리학, 수학, 통계, 소프트웨어 개발 및 시장 / 거래소 미세 구조를 포함한 많은 영역의 지식을 필요로합니다. 나는 한 기사에서 모든 주제를 다루기를 희망할 수 없었으므로 두 세 개의 작은 조각으로 나눌 것입니다. 이 섹션에서 무엇을 논의 할 것입니까? 백테스팅을 정의함으로써 시작하고 수행하는 방법에 대한 기초를 설명합니다. 그 다음 양적 거래에 대한 초보자 가이드에서 언급 한 편견을 설명합니다. 다음에는 다양한 사용 가능한 백테스팅 소프트웨어 옵션을 비교합니다.

다음 기사에서는 종종 거의 언급되지 않거나 무시되는 전략 구현의 세부 사항을 살펴볼 것입니다. 또한 거래 거래소의 특색을 포함하여 백테스팅 프로세스를 더 현실적으로 만드는 방법을 고려할 것입니다. 그 다음 거래 비용을 논의하고 백테스트 설정에서 올바르게 모델링하는 방법을 논의 할 것입니다. 우리는 백테스트의 성능에 대한 논의로 끝내고 마지막으로 평균 반전 쌍 거래로 알려진 일반적인 양 전략의 예를 제공합니다.

먼저 백테스팅이 무엇이고 왜 알고리즘 트레이딩에 적용해야 하는지에 대해 알아보겠습니다.

백테스팅이란 무엇인가요?

알고리즘 거래는 풍부한 데이터 가용성으로 인해 과거의 성과에 대한 미래 성과에 대한 기대를 더 신뢰할 수 있기 때문에 다른 유형의 투자 클래스에서 구별됩니다. 이것을 수행하는 과정은 백테스팅으로 알려져 있습니다.

간단히 말해서, 백테스팅은 특정 전략 알고리즘을 역사적인 금융 데이터의 흐름에 노출시켜서 수행되며, 이는 일련의 거래 신호로 이어집니다. 각 거래 (우리는 여기서 두 개의 신호의 회전) 는 연관된 이익 또는 손실을 가지고 있습니다. 전략 백테스트 기간 동안이 이익 / 손실의 축적은 총 이익과 손실으로 이어집니다. (P&L 또는 PnL라고도 알려져 있습니다). 물론 악마는 항상 세부 사항에 있지만 아이디어의 본질입니다!

알고리즘 전략의 백테스팅의 주요 이유는 무엇일까요?

  • 필터링 - 전략 식별에 대한 기사를 기억하면 초기 연구 단계에서 우리의 목표는 전략 파이프 라인을 설정하고 특정 기준을 충족하지 않는 모든 전략을 필터링하는 것입니다. 백테스팅은 우리의 성능 요구를 충족하지 않는 전략을 제거 할 수 있기 때문에 또 다른 필터링 메커니즘을 제공합니다.
  • 모델링 - 백테스팅은 거래 비용, 주문 라우팅, 대기 시간, 유동성 또는 기타 시장 미세 구조 문제와 같은 특정 시장 현상의 새로운 모델을 (안전하게!) 테스트 할 수 있습니다.
  • 최적화 - 전략 최적화는 편견으로 가득차 있지만, 백테스팅은 전략과 관련된 매개 변수의 양 또는 값을 수정하고 성능을 재 계산함으로써 전략의 성능을 높일 수 있습니다.
  • 검증 - 우리의 전략은 종종 전략 파이프 라인을 통해 외부에서 공급됩니다. 전략을 백테스트하는 것은 그것이 잘못 구현되지 않았음을 보장합니다. 외부 전략으로 생성 된 신호에 접근 할 수있는 경우는 거의 없지만, 우리는 종종 샤프 비율 및 마감 특성과 같은 성능 메트릭에 액세스 할 수 있습니다. 따라서 우리는 그것들을 우리 자신의 구현과 비교 할 수 있습니다.

백테스팅은 알고리즘 거래에 많은 이점을 제공합니다. 그러나 전략의 빈도가 증가함에 따라 일반적으로 전략의 미세 구조 효과를 올바르게 모델링하는 것이 더 어려워집니다. 이것은 덜 신뢰할 수있는 백테스트로 이어지고 선택된 전략의 더 까다로운 평가로 이어집니다. 이것은 실행 시스템이 초고 주파수 알고리즘과 마찬가지로 전략 성능의 핵심이 되는 특별한 문제입니다.

불행 히도, 백테스트 는 모든 종류의 편견 으로 가득 차 있다. 우리 는 이전 기사 들 에서 이 문제 들 중 일부 에 대해 언급 하였지만, 이제 그 문제 들 을 깊이 논의 할 것 이다.

전략 역시험에 영향을 미치는 편견

백테스트 전략의 성능에 영향을 줄 수있는 많은 편견이 있습니다. 불행히도, 이러한 편견은 성능을 감소시키는 대신 성능을 증폭시키는 경향이 있습니다. 따라서 당신은 항상 백테스트를 전략의 실제 성능에 대한 이상화 된 상위 경계로 간주해야합니다. 알고리즘 거래에서 편견을 제거하는 것은 거의 불가능하므로 알고리즘 전략에 대한 정보적 결정을 내리기 위해 가능한 한 최대한 그들을 최소화하는 것이 우리의 작업입니다.

제가 논의하고 싶은 네 가지 주요 편견이 있습니다. 최적화 편견, 미래지향 편견, 생존 편견, 심리적 관용 편견입니다.

최적화 편차

이것은 아마도 모든 백테스트 편향 중 가장 교활한 것입니다. 백테스트 데이터 세트에 대한 전략 성능이 매우 매력적이 될 때까지 추가 거래 매개 변수를 조정하거나 도입하는 것을 포함합니다. 그러나 실행되면 전략의 성능이 크게 다를 수 있습니다. 이 편향의 다른 이름은 커브 피팅 또는 데이터 스누핑 편향입니다.

최적화 편향은 알고리즘 전략이 종종 많은 매개 변수를 포함하기 때문에 제거하기가 어렵습니다. 이 경우 매개 변수는 입력/출출 기준, 룩백 기간, 평균화 기간 (즉 이동 평균 평형 매개 변수) 또는 변동 측정 주파수 일 수 있습니다. 최적화 편향은 매개 변수 수를 최소화하고 훈련 세트의 데이터 포인트 수를 증가시킴으로써 최소화 할 수 있습니다. 사실, 오래된 훈련 포인트가 이전 체제에 적용 될 수 있기 때문에 후자의 점도 조심해야합니다. (예: 규제 환경) 따라서 현재 전략에 관련이 없을 수 있습니다.

이러한 편향을 완화시키는 데 도움이되는 방법 중 하나는 감수성 분석을 수행하는 것입니다. 이것은 매개 변수를 점진적으로 변화시키고 성능의 표면을 그려내는 것을 의미합니다. 매개 변수 선택에 대한 건전하고 근본적인 추론은 다른 모든 요소를 고려하면 더 부드러운 매개 변수 표면을 가져야합니다. 매우 점프한 성능 표면이있는 경우 매개 변수가 현상을 반영하지 않고 테스트 데이터의 유물이라는 것을 의미합니다. 다차원 최적화 알고리즘에 대한 광범위한 문헌이 있으며 매우 활발한 연구 분야입니다. 나는 여기에 머물지 않을 것이지만 환상적인 백테스트가있는 전략을 찾을 때 그것을 머릿속에 두십시오!

미래 를 바라보는 편견

앞을 바라보는 편향은 미래 데이터가 실제로 사용할 수 없었던 시뮬레이션의 한 지점에서 우연히 포함될 때 백테스팅 시스템에 도입됩니다. 만약 우리가 백테스트를 시간 순으로 실행하고 N 시간 지점에 도달한다면, 앞을 바라보는 편향은 어떤 지점인 N+k에 대한 데이터가 포함되면 발생합니다.

  • 기술 오류 - 코드 내의 배열/벡터는 종종 반복자 또는 인덱스 변수를 가지고 있습니다. 이러한 인덱스의 잘못된 오프셋은 0이 아닌 k에 대한 N + k에서 데이터를 통합함으로써 미래 편향을 초래할 수 있습니다.
  • 매개 변수 계산 - 두 개의 시간 계열 사이의 선형 회귀와 같이 최적 전략 매개 변수를 계산할 때 전망 편향의 또 다른 일반적인 예가 발생합니다. 전체 데이터 집합 (미래 데이터 포함) 이 회귀 계수를 계산하는 데 사용되고 최적화 목적으로 거래 전략에 역행적으로 적용되면 미래 데이터가 통합되고 전망 편향이 존재한다.
  • 최대/최소 - 특정 거래 전략은 어떤 기간에도 극한 값을 사용한다. 예를 들어 OHLC 데이터에 높은 가격이나 낮은 가격을 포함한다. 그러나 이러한 최대/최소 값은 기간의 끝에서만 계산될 수 있기 때문에, 이러한 값이 현재 기간 동안 사용된다면 미래 편향이 도입된다. 그것들을 사용하는 모든 거래 전략에서 항상 높은/저 낮은 값을 적어도 한 기간 뒤쳐야 한다.

최적화 편향과 마찬가지로 도입을 피하기 위해 매우 조심해야합니다. 종종 거래 전략이 라이브 트레이딩에서 백테스트에서 현저하게 떨어지는 주된 이유입니다.

생존 의 편견

생존 편견은 특히 위험한 현상이며 특정 전략 유형에 대한 상당히 부풀린 성능을 초래할 수 있습니다. 특정 시점에 선택되었을 수있는 이전 자산의 전체 우주를 포함하지 않는 데이터 세트에 전략을 테스트 할 때 발생합니다.

예를 들어, 2001년 시장 붕괴 이전과 이후 주식들의 무작위 선택에 대한 전략을 테스트하는 것을 고려해보자. 일부 기술 주식들은 파산했고, 다른 것들은 헤엄치면서도 번영할 수 있었다. 만약 우리가 이 전략을 시장 마감 기간을 통과한 주식에만 제한했다면, 우리는 이미 우리에게 성공을 보여주었기 때문에 생존 편향을 도입했을 것이다. 사실, 이것은 단지 미래 정보가 과거 분석에 통합됨에 따라 미래 편향의 또 다른 구체적인 사례일 뿐이다.

전략 백테스트에서 생존 편견을 완화시키는 두 가지 주요 방법이 있습니다.

  • 생존 편견 무료 데이터 세트 - 주식 데이터의 경우 상장 해제 된 엔티티를 포함하는 데이터 세트를 구입할 수 있지만 저렴하지 않으며 기관 회사에서만 사용하는 경향이 있습니다. 특히 야후 금융 데이터는 생존 편견이 없으며 많은 소매 알고 거래자가 일반적으로 사용합니다. 특정 상품 (그리고 미래의 파생물) 과 같은 생존 편견에 취약하지 않은 자산 클래스에서도 거래 할 수 있습니다.
  • 더 최근의 데이터를 사용하십시오. 주식의 경우, 더 최근의 데이터 세트를 사용하는 것은 선택된 주식 선택이 생존자에 가중될 가능성을 완화시킵니다. 단기간에 전체 주식 상장 해제 가능성이 낮기 때문입니다. 또한 현재 시점에서 데이터를 수집함으로써 개인 생존 편견 무료 데이터 세트를 구축하기 시작할 수 있습니다. 3-4 년 후에 추가 전략을 백테스트 할 수있는 견고한 생존 편견 무료 주식 데이터 세트를 갖게됩니다.

이제 우리는 당신의 거래 성과에 영향을 줄 수 있는 특정 심리적 현상을 고려할 것입니다.

심리적 관용 편견

이 특정 현상은 양적 거래의 맥락에서 자주 논의되지 않습니다. 그러나 더 재량적인 거래 방법과 관련하여 광범위하게 논의됩니다. 그것은 다양한 이름을 가지고 있지만 문제의 본질을 포착하기 때문에 "심리적 관용 편향"이라고 부르기로 결정했습니다. 5 년 또는 그 이상의 기간에 백테스트를 만들 때 상승 추세를 보이는 주식 곡선을보고 복합 연간 수익률, 샤프 비율 및 심지어 마감 특성을 계산하고 결과에 만족하는 것이 쉽습니다. 예를 들어 전략은 최대 상대 마감 25%와 최대 마감 기간 4 개월을 가질 수 있습니다. 이것은 추진 전략에 대해 이상적이지 않을 것입니다. 그러나 전반적인 그림이 장미하기 때문에 그러한 손실 기간을 용납하는 것이 쉽다고 설득하는 것은 간단합니다. 실제로는 훨씬 어렵습니다!

백테스트에서 25% 이상의 역사적인 드라우다운이 발생하면 라이브 트레이딩에서 비슷한 드라우다운 기간을 볼 가능성이 높습니다. 이러한 드라우다운 기간은 심리적으로 견딜 수 없습니다. 기관적인 환경에서 연장 드라우다운이 어떻게 될 수 있는지 직접 관찰했으며, 그것은 쾌적하지 않습니다 - 백테스트가 그러한 기간이 발생할 것이라고 제안하더라도. 내가 그것을 비어스라고 부르는 이유는 종종 다른 방법으로 성공할 전략이 연장 드라우다운 기간 동안 거래에서 중단되어 백테스트에 비해 저성공으로 이어질 것이기 때문입니다. 따라서 전략이 알고리즘적 성격이지만 심리적 요인은 여전히 수익성에 큰 영향을 줄 수 있습니다. 취득점은 백테스트에서 일정 비율과 기간의 드라우다운을 볼 경우, 더 많은 수익을 얻기 위해 한 번 더 거래 환경에서 발생하기를 기대해야한다는 것입니다.

백테스팅용 소프트웨어 패키지

전략 백테스팅의 소프트웨어 풍경은 광범위하다. 솔루션은 완전히 통합된 기관 수준의 정교한 소프트웨어에서 C ++, 파이썬 및 R와 같은 프로그래밍 언어에 이르기까지 거의 모든 것이 처음부터 작성되어야합니다. 양자 거래자로서 우리는 거래 기술 스택과 개발 방법론의 속도와 신뢰성을 소유 할 수있는 균형에 관심이 있습니다. 소프트웨어 선택에 대한 주요 고려 사항은 다음과 같습니다.

  • 프로그래밍 기술 - 환경 선택은 소프트웨어 프로그래밍 능력에 크게 달려 있습니다. 전체 스택을 제어하는 것이 공급자 소프트웨어에 가능한 한 많은 양의 아웃소싱보다 장기적인 P&L에 더 큰 영향을 미칠 것이라고 주장 할 것입니다. 이것은 공급자 소프트웨어에서 해결할 수없는 외부 버그 또는 특이성 위험이 있기 때문입니다.
  • 실행 능력/브로커 상호 작용 - 트레드스테이션과 같은 특정 백테스팅 소프트웨어는 브로커와 직접 연결됩니다. 거래 비용을 줄이는 것이 더 높은 샤프 비율을 얻는 데 종종 큰 구성 요소이기 때문에 이러한 접근 방식의 팬은 아닙니다. 특정 브로커에 묶여있는 경우 (그리고 트레드스테이션이 이것을 하도록 강요하는 경우), 필요한 경우 새로운 소프트웨어 (또는 새로운 브로커) 로 전환하는 것이 더 어려울 것입니다. 인터랙티브 브로커는 약간 obtuse 인 인터페이스와 함께 강력하지만 API를 제공합니다.
  • 커스터마이징 - MATLAB 또는 파이썬과 같은 환경은 상상할 수 있는 거의 모든 수학적 연산을 위한 환상적인 라이브러리를 제공하지만 필요한 경우 광범위한 커스터마이징을 허용하기 때문에 algo 전략을 만들 때 많은 유연성을 제공합니다.
  • 전략 복잡성 - 특정 소프트웨어는 무거운 숫자 분해 또는 수학적 복잡성에 맞지 않습니다. 엑셀은 그러한 소프트웨어 중 하나입니다. 간단한 전략에 적합하지만 많은 자산이나 더 복잡한 알고리즘을 빠르게 처리 할 수 없습니다.
  • 편견 최소화 - 특정 소프트웨어 또는 데이터가 거래 편견에 더 적합합니까? 모든 기능을 직접 만들고 싶다면 편견으로 이어질 수있는 버그를 도입하지 않도록해야합니다.
  • 개발 속도 - 한 사람이 몇 달 동안 백테스트 엔진을 구현 할 필요가 없습니다. 프로토타입 제작은 몇 주 만 걸릴 수 있습니다. 실행 속도에서 몇 가지 추가 인수점을 확보하기 위해 소프트웨어가 크게 진행을 방해하지 않는지 확인하십시오. C ++는 여기에 "방의 코끼리"입니다.
  • 실행 속도 - 당신의 전략이 실행의 신속성에 완전히 의존하는 경우 (HFT/UHFT에서와 같이) C 또는 C++와 같은 언어가 필요합니다. 그러나, 당신은 이러한 도메인들에 대한 리눅스 커널 최적화와 FPGA 사용에 한계를 이루게 될 것입니다. 이것은 이 문서의 범위를 벗어납니다!
  • 비용 - 알고리즘 거래 전략을 프로그래밍 할 수있는 많은 소프트웨어 환경은 완전히 무료이며 오픈 소스입니다. 실제로 많은 헤지 펀드는 전체 알고 거래 스택에 오픈 소스 소프트웨어를 사용합니다. 또한 엑셀과 MATLAB은 비교적 저렴하며 각각에 무료 대안이 있습니다.

이제 우리가 소프트웨어 인프라를 선택해야 할 기준을 나열한 후에,

참고: 나는 대부분의 소매업자와 소프트웨어 개발자에게 사용할 수있는 소프트웨어를 포함 할 것입니다. 이것은 사이트의 독자입니다. 더 기관 수준의 도구와 같은 다른 소프트웨어가 사용할 수 있지만, 나는 이것이 소매 환경에서 효과적으로 사용할 수 없을 정도로 비싸고 개인적으로 경험은 없습니다.

백테스팅 소프트웨어 비교

MS Excel

설명: WYSIWYG (what-you-see-is-what-you-get) 스프레드시트 소프트웨어. 금융 산업에서 매우 널리 퍼져 있습니다. 데이터와 알고리즘은 긴밀하게 결합되어 있습니다.

실행: 예, 엑셀은 대부분의 중개 회사와 연결될 수 있습니다.

커스터마이징: VBA 매크로는 구현을 숨기는 비용으로 더 고급 기능을 허용합니다.

전략 복잡성: 수백 개의 자산을 가진 전략과 마찬가지로 더 진보된 통계 도구는 구현하기가 어렵습니다.

편견 최소화: 전향 편견은 셀 하이라이트 기능을 통해 쉽게 감지 할 수 있습니다 (VBA가 없다고 가정합니다).

개발 속도: 기본적인 전략을 빠르게 구현합니다.

실행 속도: 느린 실행 속도 - 낮은 주파수 전략에만 적합합니다.

비용: 값싸거나 무료 (허락에 따라).

대안: OpenOffice

MATLAB

설명: 컴퓨터 수학, 물리학 및 공학을 위해 원래 설계 된 프로그래밍 환경. 벡터화 연산 및 수치 선형 대수학을 포함하는 연산에 매우 적합합니다. 양자 거래에 대한 다양한 플러그인을 제공합니다. 양적 헤지 펀드에서 널리 사용됩니다.

실행: 네이티브 실행 기능이 없습니다. MATLAB는 별도의 실행 시스템을 필요로 합니다.

커스터마이징: 컴퓨팅 수학의 거의 모든 영역에 대한 커뮤니티 플러그인들의 거대한 배열.

전략 복잡성: 이미 사용되고 잘 테스트 된 많은 고급 통계 방법.

편견 최소화: 앞으로의 편견을 탐지하기 어렵고 광범위한 테스트가 필요합니다.

개발 속도: 짧은 스크립트는 복잡한 백테스트를 쉽게 만들 수 있습니다.

실행 속도: 벡터화/평행화 알고리즘을 가정하면 MATLAB는 고도로 최적화되어 있습니다. 전통적인 반복 루프에는 좋지 않습니다.

비용: 라이선스 ~ 1,000 USD.

대안: 옥타브, SciLab

파이썬

설명: 개발 속도를 위해 설계된 고수준 언어. 상상할 수 있는 거의 모든 프로그래밍 작업을 위한 광범위한 라이브러리. 헤지 펀드 및 투자 은행 커뮤니티에서 더 폭넓은 수용을 얻고 있다. 실행 속도를 위해 C/C++만큼 빠르지 않다.

실행: 파이썬 플러그인은 인터랙티브 브로커와 같은 더 큰 브로커를 위해 존재합니다. 따라서 백테스트와 실행 시스템은 모두 동일한 테크 스택의 일부일 수 있습니다.

커스터마이징: 파이썬은 매우 건강한 개발 커뮤니티를 가지고 있으며 성숙한 언어입니다. NumPy/SciPy는 양자 거래에 관련된 빠른 과학적 컴퓨팅 및 통계 분석 도구를 제공합니다.

전략 복잡성: 주요 알고리즘에 많은 플러그인이 존재하지만 MATLAB에 존재하는만큼 큰 양자 커뮤니티는 없습니다.

편견 최소화: 모든 고수준 언어와 동일한 편견 최소화 문제가 있습니다. 테스트에 대해 매우 조심해야합니다.

개발 속도: 파이썬의 주요 장점은 개발 속도, 내장된 테스트 기능으로 강력하다.

실행 속도: C++만큼 빠르지는 않지만 과학 컴퓨팅 구성 요소가 최적화되어 있으며 파이썬은 특정 플러그인을 사용하여 네이티브 C 코드와 대화 할 수 있습니다.

비용: 무료/오픈 소스

대안: 루비, 에를랑, 하스켈

R

설명: 고급 통계 방법 및 시간 계열 분석을 위해 설계 된 환경. 특정 통계, 경제학 및 네이티브 그래프 도구 세트의 광범위한 범위. 대규모 개발자 커뮤니티.

실행: R는 일부 브로커, 특히 인터랙티브 브로커에 대한 플러그인을 보유하고 있습니다. 따라서 엔드-투-엔드 시스템은 완전히 R로 작성 될 수 있습니다.

사용자 정의: R는 모든 패키지로 사용자 정의 될 수 있지만, 그 강점은 통계/경제학 영역에 있습니다.

전략 복잡성: 사용 가능한 플러그인으로 인해 경제학, 통계학 또는 기계 학습 전략을 수행하는 경우 주로 유용합니다.

편향 최소화: 파이썬이나 C++와 같은 모든 고수준 언어에 대한 편향 가능성의 비슷한 수준. 따라서 테스트를 수행해야합니다.

개발 속도: R는 통계적 방법을 기반으로 전략을 작성하는 데 빠르다.

실행 속도: R은 C++보다 느리지만 벡터화된 연산에 대해 상대적으로 최적화되어 있습니다.

비용: 무료/오픈 소스

대안: SPSS, Stata

C++

설명: 실행 속도를 위해 설계된 성숙하고 높은 수준의 언어. 양적 금융 및 수치 라이브러리의 광범위한 범위. 디버깅이 더 어렵고 종종 파이썬 또는 MATLAB보다 구현 시간이 더 오래 걸립니다. 구매 및 판매 측면 모두에서 매우 보편적입니다.

실행: 대부분의 중개 API는 C++ 및 Java로 작성되어 있습니다. 따라서 많은 플러그인이 있습니다.

커스터마이징: C/C++는 기본 메모리에 직접 액세스 할 수 있으므로 초고 주파수 전략을 구현 할 수 있습니다.

전략 복잡성: C++ STL는 다양한 최적화된 알고리즘을 제공합니다. 거의 모든 전문 수학 알고리즘은 웹에서 무료 오픈 소스 C/C++ 구현을 보유하고 있습니다.

편견 최소화: 앞을 보는 편견은 제거하기가 어려울 수 있지만 다른 고위급 언어보다 어렵지 않습니다. 좋은 디버깅 도구이지만 기본 메모리를 처리 할 때 조심해야합니다.

개발 속도: C++는 같은 알고리즘에 대해 파이썬이나 MATLAB에 비해 상당히 어휘가 많다. 더 많은 코드 라인 (LOC) 은 종종 버그의 가능성이 높아집니다.

실행 속도: C / C ++는 매우 빠른 실행 속도를 가지고 있으며 특정 컴퓨팅 아키텍처에 잘 최적화 될 수 있습니다. 이것이 사용하는 주된 이유입니다.

비용: 다양한 컴파일러: 리눅스/GCC는 무료이며, MS 비주얼 스튜디오는 다른 라이선스를 가지고 있습니다.

대안: C#, 자바, 스칼라

다른 전략은 다른 소프트웨어 패키지를 필요로 할 것입니다. HFT 및 UHFT 전략은 C / C ++로 작성 될 것입니다 (오늘날 그들은 종종 GPU 및 FPGA에서 수행됩니다), 반면 낮은 주파수 방향 주식 전략은 소프트웨어 / 중개업의 모든 특성으로 인해 TradeStation에서 구현하기가 쉽습니다.

제 개인적인 선호도는 파이썬입니다. 이는 제 필요와 전략에 맞는 맞춤화, 개발 속도, 테스트 기능 및 실행 속도를 제공합니다. 더 빠른 것이 필요한 경우, 저는 파이썬 프로그램에서 직접 C++로 drop in 할 수 있습니다. 많은 양자 트레이더들이 선호하는 방법 중 하나는 파이썬에서 전략을 프로토타입하고 더 느린 실행 섹션을 반복적으로 C++로 변환하는 것입니다. 결국 전체 알고는 C++로 작성되어 거래에 혼자 남길 수 있습니다!

백테스팅에 관한 다음 몇 가지 기사에서는 알고리즘 거래 백테스팅 시스템의 구현을 둘러싼 몇 가지 특정 문제를 살펴보고 거래 거래소의 효과를 어떻게 통합 할 수 있는지 살펴볼 것입니다. 전략 성능 측정에 대해 논의하고 마지막으로 예제 전략으로 결론을 내릴 것입니다.


더 많은