Monday 12 March 2018

통합 된 쌍 거래 전략


Forex Pairs Trading의 통화 통합.
외환 거래의 통합은 중요한 도구입니다. 나에게 공적분은 모든 경제적 환경에서 이익을 얻을 수있는 우수한 중립적 기계 무역 전략의 기초입니다. 시장이 상승 추세, 하락 추세 또는 단순히 옆으로 움직이든, 외환 거래는 일년 내내 이익을 얻을 수 있습니다.
공적분을 활용하는 외환 거래 전략은 통계적 재정 거래와 평균으로의 전환을 기반으로하는 컨버전스 거래의 한 형태로 분류됩니다. 이 유형의 전략은 1980 년대 모건 스탠리 (Morgan Stanley)의 양적 거래 팀이 주식 쌍을 사용하여 처음으로 대중화되었습니다. 그러나 다른 트레이더들도 외환 거래에서도 매우 효과적이라는 것을 알았습니다.
공적분에 기초한 외환 쌍 거래.
공적분에 기반한 외환 거래는 근본적으로 회귀 - 평균 전략입니다. 간단하게 말해서 둘 이상의 외환 쌍이 공적으로 통합 될 때, 이는 개별 외환 쌍들 사이의 가격 스프레드가 시간이 지남에 따라 일관되게 평균값으로 되돌아가는 경향이 있음을 의미합니다.
공적분은 상관 관계가 아니라는 것을 이해하는 것이 중요합니다. 상관 관계는 가격의 공동 움직임에 관한 단기간의 관계입니다. 상관 관계 란 개별 가격이 함께 움직이는 것을 의미합니다. 상관 관계는 일부 거래자에 의존하지만, 그 자체로는 신뢰할 수없는 도구입니다.
다른 한편, 공적분은 가격이 함께 움직이는 것처럼 특정 범위 또는 스프레드 내에서 함께 움직이는 가격의 공동 움직임과 장기적인 관계이다. 나는 공적분이 외환 거래에서 매우 유용한 도구라는 것을 알게되었습니다.
내 외환 거래 중 스프레드가 기계 거래 알고리즘에 의해 계산 된 한계 값까지 넓어지면 나는 쌍 가격 사이의 스프레드를 "짧게"합니다. 다시 말해서, 나는 공적분으로 인해 확산이 0으로 되돌아 갈 것을 내기하고있다.
기본 외환 거래 전략은 매우 간단합니다. 특히 기계 거래 시스템을 사용할 때 : 비슷한 방식으로 움직이는 두 가지 통화 쌍을 선택합니다. 나는 실적이 저조한 통화 쌍을 사고 외제를 판매합니다. 두 쌍 사이의 퍼짐이 수렴 할 때, 나는 이익을 위해 나의 입장을 마감한다.
공적분에 기반한 외환 거래는 시장 중립적 인 전략입니다. 예를 들어 통화 쌍이 폭락하면 거래가 장기적 측면에서 손실을 가져오고 단기적 측면에서 상쇄 효과가 발생할 것입니다. 따라서 모든 통화와 기본 상품이 갑자기 가치를 잃지 않는 한 최악의 시나리오에서는 순매수가 0에 가까워 야합니다.
같은 맥락으로, 많은 시장에서 페어 트레이딩은 자체 매매 트레이딩 전략이다. 왜냐하면 짧은 매도로부터 얻은 수익금이 때때로 긴 포지션을여는데 사용될 수 있기 때문이다. 이 혜택이 없다고하더라도, 공적분을 동원한 외환 거래 쌍은 여전히 ​​잘 작동합니다.
외환 거래를위한 공적분의 이해.
균형 환율은 단기 균형 가격뿐만 아니라 장기적인 가격 기대치를 바탕으로 기계적 거래 시스템을 프로그래밍 할 수있게 해주는 외환 거래 쌍방에서 유용합니다.
공적분 중심의 외환 거래의 작동 방식을 이해하려면 먼저 공적분을 정의한 다음 기계적 거래 시스템에서 어떻게 기능 하는지를 설명하는 것이 중요합니다.
앞에서 말했듯이, 공적분은 시계열 집합 사이의 평형 관계를 말합니다. 예를 들어, 균형이 맞지 않는 별도의 외환 쌍의 가격과 같은 시계열 집합 간의 균형 관계를 말합니다. 수학적 전문 용어로 표현되는 공적분 (cointegration)은 시계열에서 비정상 변수 간의 관계를 측정하는 기술입니다.
두 개 이상의 시계열이 각각 1의 루트 값을 가지지 만 선형 조합이 고정되어있는 경우 시계열은 공적분이라고합니다.
간단한 예로서, 주식 시장 지수와 관련 선물 계약의 가격을 고려해보십시오. 이 두 가지 상품의 가격이 단기간에 무작위로 나돌 수도 있지만 궁극적으로는 균형으로 돌아갈 것이고 그 차이는 변화 없는.
고전적인 "무작위 걸음 걸이"예를 들어 설명하는 또 다른 예가 있습니다. 카 루핑 밤 이후에 귀가하는 두 명의 개별 술꾼이 있다고 가정 해 봅시다. 이 두 술주정 뱅이가 서로를 모르고 있다고 가정 해 봅시다. 그러므로 개별 경로 사이에 예측 가능한 관계는 없습니다. 그러므로 그들의 운동 사이에는 공적분이 없다.
대조적으로, 개가 가죽 끈에 그의 개를 동반하는 동안 각 술꾼이 귀환을 방황하고 있다는 생각을 고려하십시오. 이 경우, 이 두 가난한 생물의 경로 사이에는 확실한 연결 고리가 있습니다.
이 둘은 각각 단기간에 여전히 개별 통로를 유지하고 있지만 어느 한 쪽에서 어느 한 쪽이 임의로 특정 시점에 임의로 길을 가거나 늦을지라도 항상 가까이서 발견됩니다. 그들 사이의 거리는 상당히 예측 가능하기 때문에 쌍은 공적분이라고한다.
기술 용어로 돌아가서, 두 개의 비 정적 시계열 (예 : AB와 XY의 가상 쌍 집합)이있을 경우 이들의 차이가 계산 될 때 고정되어 있으며이 쌍을 통합 된 1 차 계열이라고합니다. 또한 I (1) 시리즈를 부르십시오.
이 시리즈들 중 어떤 것도 일정한 값을 유지하지 않더라도 고정 된 AB와 XY의 선형 조합 (I (0)으로 표시)이 있으면 AB와 XY가 공적분됩니다.
위의 간단한 예는 가상의 외환 쌍의 두 시계열로만 구성됩니다. 그러나 공적분의 개념은 더 높은 통합 주문을 사용하는 여러 시계열에도 적용됩니다 ... 여러 개의 개가 각각 다른 길이의 가죽 끈을 동반 한 방랑 술에 관해 생각해보십시오.
실 사회 경제학에서는 소득과 지출, 또는 형법의 엄격함과 감옥 인구의 크기와 같은 쌍의 공적분을 보여주는 사례를 찾는 것이 쉽습니다. 외환 거래에서, 내 초점은 통화의 공적분 된 쌍 사이의 양적 및 예측 가능한 관계를 활용하는 데 있습니다.
예를 들어, 나는이 두 가지 공적분 화 된 가상 통화 쌍인 AB와 XY를보고 있다고 가정하고 그들 사이의 공적분 관계는 AB & # 8211; XY = Z, 여기서 Z는 평균이 0 인 정지 시리즈, 즉 I (0)입니다.
이것은 간단한 거래 전략을 제안하는 것처럼 보일 것이다 : AB-XY & gt; V 및 V가 내 임계 값 트리거 가격 인 경우 AB가 가격이 하락하고 XY가 증가 할 것으로 예상되므로 외환 거래 시스템이 AB를 판매하고 XY를 구매합니다. 또는, AB-XY < - V, 나는 AB를 사고 XY를 팔 것을 기대할 것입니다.
외환 거래에서 가짜 회귀를 피하십시오.
그러나 위의 예에서 제안하는 것처럼 간단하지 않습니다. 실제로, 외환 거래를위한 기계 거래 시스템은 AB와 XY 사이의 R 제곱 값에 의존하는 대신 공적분을 계산해야합니다.
비상업적 인 변수를 다루는 경우 일반 회귀 분석이 부족하기 때문입니다. 그것은 소위 가짜 회귀 (spurious regression)를 야기하는데, 이것은 변수가없는 경우에도 변수들 간의 관계를 암시합니다.
예를 들어, 나는 서로에 대해 2 개의 "무작위 걸음 걸이"시계열을 회귀 시킨다고 가정 해보자. 선형 관계가 있는지 테스트 할 때 매우 자주 p 값이 낮은 R - 제곱 값과 높은 p 값을 찾습니다. 아직도, 이 2 개의 무작위 도보 사이 아무 관계도 없다.
외환 거래의 공적분 수식 및 테스트.
공적분을위한 가장 간단한 테스트는 다음과 같이 작동하는 Engle-Granger 테스트입니다.
AB t와 XY t가 둘 다 I가 맞는지 확인한다. (1) 최소 제곱 법을 사용하여 공적분 관계 [XY t = aAB t + et]를 계산한다. 공적분 잔차 등이 Augmented Dickey-Fuller (ADF) 테스트.
자세한 그레인저 방정식 :
I (0)은 공적분 관계를 설명한다.
XY t-1 - βAB t-1은 장기간에 걸친 불균형의 정도를 설명하는 반면, αi는 통화 쌍의 시계열이 불균형을 바로 잡는 속도와 방향이다.
외환 거래에서 Engle-Granger 방법을 사용하는 경우 회귀의 베타 값을 사용하여 쌍의 거래 규모를 계산합니다.
외환 거래에서 Engle-Granger 방법을 사용하는 경우 회귀의 베타 값을 사용하여 쌍의 거래 규모를 계산합니다.
외환 거래에서 공적분에 대한 오차 보정 :
외환 거래를 위해 공적분을 사용할 때, 공적분 된 변수가 조정되고 장기 균형으로 어떻게 돌아갈지를 설명하는 것도 도움이됩니다. 예를 들어, 여기에 두 개의 샘플 외환 쌍 시계열이 자동 회귀 적으로 표시됩니다.
공적분에 기초한 외환 쌍 거래.
외환 거래를 위해 기계 거래 시스템을 사용하면 설치와 실행이 매우 간단합니다. 첫째, 나는 그들이 EUR / USD와 GBP / USD와 같이 공적화 될 수있는 것처럼 보이는 두 개의 통화 쌍을 찾는다.
그런 다음 두 쌍 간의 예상 스프레드를 계산합니다. 다음으로, unit-root 테스트 또는 다른 일반적인 방법을 사용하여 스테 틀러 리티를 확인합니다.
내 인바운드 데이터 피드가 제대로 작동하는지 확인하고 기계적 거래 알고리즘이 거래 신호를 생성하도록합니다. 매개 변수를 확인하기 위해 적절한 백 테스트를 수행했다고 가정하면 마침내 내 외환 거래에서 공적분을 사용할 준비가되었습니다.
나는 Cointegration 외환 거래 시스템을 구축하기위한 훌륭한 출발점을 제공하는 MetaTrader 지표를 발견했습니다. 그것은 Bollinger Band 표시기처럼 보이지만 사실 오실레이터는 두 개의 서로 다른 통화 쌍 사이의 가격 차이를 보여줍니다.
이 오실레이터가 높은 극단 또는 저 극단으로 이동하면 페어가 디커플링 (decoupling)되어 거래를 알리는 신호입니다.
그래도 성공을 확신하려면 적절한 거래를 실행하기 전에 Augmented Dickey-Fuller 테스트를 통해 신호를 필터링하는 내 기계적 거래 시스템을 신뢰해야합니다.
물론 자신의 외환 거래를 위해 공적분을 사용하고자하는 사람은 아직 알 고 프로그래밍 기술이 부족하여 숙련 된 프로그래머가 성공한 전문가 고문을 의뢰 할 수 있습니다.
알고리즘 트레이딩의 마법을 통해 데이터 분석을 기반으로 가격 스프레드를 정의하는 기계 거래 시스템을 프로그래밍합니다. 내 알고리즘은 가격 편차를 모니터링 한 다음 시장 비효율을 수확하기 위해 통화 쌍을 자동으로 구매 및 판매합니다.
외환 거래와 함께 공적분을 사용할 때주의해야 할 위험.
Forex 쌍 거래는 전적으로 위험 부담이 없습니다. 무엇보다도 공적분을 이용한 외환 거래는 평균 가치가 과거와 마찬가지로 미래에도 동일 할 것이라는 가정에 근거한 평균 회귀 전략이라고 생각합니다.
앞에서 언급 한 Augmented Dickey-Fuller 테스트는 외환 거래를위한 공적분 관계를 검증하는 데 도움이되지만 미래에 스프레드가 계속해서 공적분 될 것이라는 의미는 아닙니다.
강력한 리스크 관리 규칙에 의거합니다. 즉, 계산 된 역 환위가 무효화되는 경우 또는 내 기계 거래 시스템이 수익성이없는 거래에서 나옵니다.
평균값이 바뀌면 표류가됩니다. 나는 가능한 빨리 표류를 탐지하려고 노력한다. 즉, 이전에 공적분 된 외환 쌍의 가격이 이전에 계산 된 평균으로 되돌아가는 대신 추세로 움직이기 시작하면, 기계 거래 시스템의 알고리즘이 가치를 다시 계산해야 할 때입니다.
외환 거래를위한 기계 거래 시스템을 사용할 때이 기사 앞부분에서 언급 한 자기 회귀 식을 사용하여 스프레드를 예측하는 이동 평균을 계산합니다. 그런 다음 계산 된 오류 범위에서 거래를 종료합니다.
Cointegration는 나의 forex 쌍 무역을위한 귀중한 공구이다.
외환 거래에서 공적분 사용은 시장 중립적 인 기계 무역 전략으로 어떤 시장 환경에서도 거래가 가능합니다. 그것은 의미로의 복귀에 기반을 둔 현명한 전략이지만, 다른 회귀 수단을 의미하는 외환 거래 전략의 함정을 피하는 데 도움이됩니다.
수익성있는 기계 거래 시스템에서의 잠재적 인 사용 때문에 외환 거래를위한 공적분은 학술 연구자 및 전문 상인 모두의 관심을 끌었습니다.
이 양에 초점을 맞춘 블로그 기사 또는 주제에 대한이 학술 토론과 거래자 간의 토론에 대해 많은 최근 출판 된 기사가 많이 있습니다.
Cointegration는 나의 forex 쌍 무역 안에 귀중한 공구이고, 나는 너 자신을 위해 그것으로 볼 것을 높게 추천한다.
Tommaso Sillian이 말합니다.
아주 좋은 기사. 그것은 고무적이다. 그것을 쓰는 주셔서 감사합니다!
Harish Nachnani는 말합니다.
상관 관계는 주식 (지분)에도 적용됩니다. 그 차이점은 무엇입니까? 위의 과정을 주식에 적용 할 수 있습니까?
에디 플라워 (Eddie Flower)는 말한다.
예. 동일한 프로세스가 주식 및 파생 상품에 적용될 수 있습니다. 외환 쌍과 비교할 때 주식의 그런 큰 우주가 있기 때문에, 거래를위한 잠재적 인 기회의 더 많은 수가 있어야합니다. 오늘날의 거래 시스템의 수 많은 기능을 통해 많은 관계 세트를 실시간으로 신속하게 조사 할 수 있습니다. 또한 옵션 통합 자들에 의해 공적분을 사용할 수 있습니다. 특정 종목 / 옵션 간의 가격 관계로 인해 거래자가 상당히 위험한 종목에 참여할 수있는 인기있는 코카 콜라 - 펩시 스프레드와 같은 결과를 기대할 수 있습니다.
Harish Nachnani는 말합니다.
이 전략을 사용하여 일주일 또는 수주에 걸쳐 거래합니까? 또한, 어떤 프로그래밍 언어를 권하고 싶습니다. R은 계산을 실행하는 데 시간이 걸리며 일간 거래 일 경우 지연이 발생합니다.
프로그래밍 언어는 하루 종일 거래의 중요성을 느끼지 못합니다. Perl, Python, C / C ++ 및 C #과 같은 주요 언어도 좋습니다. R은 매우 빠르지 만 메모리를 동적으로 할당해야하는 경우 느려집니다.
나는 매일 차트를 사용하여 거래하며 2 ~ 2 주 동안 대부분의 거래를 유지합니다. Shaun은 전문 프로그래머이며, 주어진 거래 전략에 대해 최상의 결과를 얻기 위해 최상의 프로그래밍 언어를 사용한다는 자신의 판단을 항상 신뢰합니다. 사실, Shaun은 공적분 및 기타 요소를 활용할 수있는 균형 잡힌 성과를 거둔 프로그램을 만들 수 있습니다. 견적을 원하신다면 즉시 연락하십시오.
Chris Zimmer는 말합니다.
이 MT4의 구현에는 약간의 관심이 있습니다. 코드에서이 전략을 구현 한 세부 사항을 제공 할 수 있으면 czimmeronestepremoved로 보내주십시오.
나는 나의 석사를 위해 FX에서 공적분 전략에 관한 작은 프로젝트를하고있다. 나는 많은 통화 쌍에 대한 공적분 테스트를 실시했다고 생각합니다. 통계적으로 크게 공적분을 발견 한 사람은 누구입니까?
Eddie가 실제로 숫자를 사용했다고 생각하지 않습니다. 이 기사는 개념에 대한 전반적인 가이드가 되려고하지만 진실한 전략이 될 수는 없습니다.
1) USD / JPY 및 EUR / CHF.
2) EUR / PLN 및 EUR / HUF.
3) USD / TRY 및 USD / ZAR.
4) AUD / USD 및 NZD / USD.
5) EUR / NOK 및 EUR / SEK.
나는이 것들이 상당히 상관 관계가 있다는 것을 알고 있지만 그것은 공적분을 암시하지 않는다.
Camilo Romero는 말합니다.
좋은 외환 쌍이 공적합니다 :
시장 중립적 인 전략이 없기 때문에 USDJPY / EURCHF는 공적분이 될 것입니다.
공유해 주셔서 감사합니다.
Camilo Romero는 말합니다.
누구든지 평균 회귀 전략을 사용하여 백 테스트 코드를 구현 했습니까?
나는 두 개의 외환 쌍 사이에 pip 값을 주어야합니까?
누구든지 코드 백 테스트 비용을 추가하고 수익성있는 결과를 얻었습니까?
나는 누군가가 가지고 있다고 확신하지만 단기 차트에 대해 확실한 답을 찾을 수있는 곳이 아닙니다. 여러분은 장기적인 공동 연구를 할 수는 있지만, 제가 한 연구는 아닙니다.
유일한 공적분은 유로와 CHF 그리고 AUD와 NZD 간의 유일한 친목 무역이며, 이 국가와 중앙 은행 간의 경제는이 공적분을 창출하고있다.
EUR 및 GBP가 아닌가요?
Robert J Armagost가 말했습니다.
안녕, 에디. 훌륭한 기사. 나는 10 년 동안의 차트를 생각하면서 테스트 해 보았습니다. & # 8221; 나는 이것을 생각한 최초의 사람이 될 수 없다! & # 8221; 이 사이트를 발견했을 때. 이것을 작성해 주셔서 대단히 감사드립니다. 더 이상 혼자라고 느끼지 않습니다. 🙂 어떤 브로커를 사용하는지 궁금하거나 여러 브로커를 사용하는지 궁금합니다. 시간 내 줘서 고마워.
근실하게 로버트 J. Armagost.
내가 사용하는 주요 브로커는 Pepperstone과 STO (TopTradr를 통해)입니다.
안녕하세요 Shaun 저는이 전략을 수동으로 거래 해 왔습니다. 이것을 자동화 할 소프트웨어가 있습니까? (그래서 더 이상 심야에 일어나지 않아도됩니다.) 시간 내 주셔서 감사합니다.
선반에서 벗어나지 만 우리가 만들 수있는 무언가입니다. 견적을 얻기 위해 입장 및 퇴장 규정에 저를 쏴주세요. infeestestremoved.
로버트 & # 8212; 좋은 의견에 감사드립니다. Shaun은 이러한 유형의 거래 전략을 구현할 수있는 적절한 도구를 보유하고 있으며, 나는 그의 중개인 권고 사항에 전적으로 동의합니다. 다시 한번 감사드립니다. EF.

통합형 거래 전략
관련 논문이 다음에 추가되었습니다.
# 12 - 주식 거래.
Title : Cointegration과 Relative Value Arbitrage.
학술 연구 논문의 주목할만한 견적 :
"쌍재 거래 문헌에서, 가장 일반적인 유형의 상대 가치 차익 거래에서, 개별 주식에 대한 대용 물은 역사적 기간 동안의 일일 가격 공간에서 유클리드 거리를 최소화함으로써 식별된다 .5 수익 공간 대신 ​​가격 공간상의 매칭 주식 요인을 명시 할 필요성을 제거하면서 단기간의 상대 가치 거래 전략과 일치합니다. 매칭 방법은 설계 상 간단하게 수행 할 수 있지만, 모든 주식에 대한 대응 물의 존재를 보장하며, 직관적이지 못하다. 더 중요한 것은, (뉴스 흐름의 부족으로 인해) 형성 기간 동안 가격 패턴의 변화가 거의없는 주식은 근본적으로 관련이 없지만 가까운 대체물로 분류 될 수밖에 없다는 것입니다.
이 논문에서는 공적분을 사용하여 가까운 경제적 대체물을 식별하는 간단한 방법을 제안한다. 한 쌍의 주가가 공적분 될 때, 한 계열은 다른 한 계열의 축소 된 버전과 함께 움직입니다. 우리는 가까운 경제 대체물이 배율 계수 또는 공적분 계수가 1에 가까운 공적분 가격 체계로 나타낼 수 있음을 보여준다.
우리는 1962 년부터 2013 년까지 공적분 계수의 거리를 단일성에서 측정하는 친밀도의 양립 기준 인 NonParity가 차익 거래가 차후에 조정될 가능성과 차익 거래의 수익성을 강력하게 예측합니다. 변수의 표준 편차가 1 증가하면 수렴 확률은 7 % 포인트 줄어들고 쌍은 두 배의 보수를 2.78 % 포인트 줄입니다. 또한 NonParity를 ​​통한 예측 가능성은 수익성있는 거래 기회를 제공합니다. 포트폴리오 수준에서, 공적분 주식의 쌍 거래는 일반적으로 수익성이 낮습니다. 그러나 거래가 0에 가까운 NonParity가있는 주식 쌍에 국한되어있는 경우 전략은 중개, 미끄러짐 및 단기 판매 비용의 합리적인 추정 후에 수익성이 있습니다. 구체적으로, 샘플 기간 동안 0.5 미만의 공적분을 가진 공적분 쌍 (cointegrated pair) 포트폴리오를 거래하는 평균 후 비용 리스크 조정 수익은 0.29 %이며, t - 통계량은 5.29 (월 0.58 % 4.77의 t - 통계치를 가짐).

동적 공적분 거래 : 평균 분산 시간 일관 전략.
Cointegration은 공통 평형을 공유하는 자산을 식별하는 데 유용한 계량 경제 도구입니다. Cointegrated pair trading은 공적분 자산이 균형에서 벗어 났을 때 이익을 얻으려는 거래 전략이다. 이 논문은 고전적 평균 - 분산 포트폴리오 선택 기준을 사용하여 공적분 자산의 최적 동적 거래를 조사한다. 합리적인 경제적 의사 결정을 보장하기 위해 최적의 전략은 동적 프로그래밍 원리를 따르기 위해 최적화 문제가 시행되는 시간 일관성 정책 세트를 통해 얻어집니다. 우리는 비선형 Hamilton-Jacobi-Bellman 편미분 방정식으로부터 closed-form explicit solution으로 최적의 동적 거래 전략을 풀어 냄. 이러한 분석적 추적 성은 우리가 공적분 분석이 점근 적 분석을 통해 역동적 인 시간 일관성 평균 분산 전략을 사용하여 통계적 재정 거래의 존재를 보장한다는 것을 엄격하게 증명할 수있게합니다. 이것은 공적분 된 쌍 거래에 대한 시장 신념에 대한 이론적 근거를 제공합니다. 공적분 자산에 대한 시간적 일관성과 선행 거래 전략의 비교는 전자의 일관된 접근 방식을 보여 주지만 반면에 후자의 경우 자산의 공적분 계수가 높은 평균 수익률을 가지면 무한한 레버리지를 생성 할 수 있습니다.
이 기사를 찾고 액세스 할 수있는 옵션을 선택하십시오.
로그인 자격 증명이나 기관을 통해 액세스 할 수 있는지 확인하십시오.

자습서.
문서, 비디오 및 채팅을 참조하십시오.
Jing은 QuantConnect의 Quantitative Developer입니다. 존 홉킨스 (John Hopkins)의 금융 수학 석사 (Masters in Financial Mathematics)를 보유하고 있으며, 이전에는 동북 증권에서 정량적 연구를 수행했습니다.
최근 기사.
페어 트레이딩 & # 8211; 대법원의 Cointegration 대결.
전략 자습서, 2017 년 6 월 13 일 발행.
우리는 두 쌍의 거래 방법을 조사하고 결과를 비교합니다. 쌍 거래는 상호 연관성이 높은 두 가지 자산 간의 종속 구조를 조사하는 데 사용됩니다. 평균 회귀가 일어날 것이라는 가정하에 가격의 차이가있을 때 길거나 짧은 위치가 반대 방향으로 입력됩니다. 일반적으로 자산 가격 분포는 Gaussian return series로 모델링되지만 합동 정규 분포는 꼬리 의존과 같이 주식 쌍 가격의 의존성에 대한 주요 특징을 포착하지 못할 수도 있습니다. 우리는 이러한 거래 기회를 확인하기 위해 코 펄라 이론을 사용하여 조사합니다.
이 튜토리얼에서는 수학적 관점에서 풀라의 기본 프레임 워크를 논의하고 페어 트레이딩에서이 접근법을 적용하는 방법을 설명합니다. 알고리즘의 구현은 copulas [1] Stander Y, Marais D, 보타 I. Copulas [J]와 트레이딩 전략에 종이 기반으로 기반으로합니다. 경제 및 금융 과학 저널, 2013, 6 (1) : 83-107. Stander Y, Marais D, 보타 I (2013)의 온라인 카피. Hanson TA, Hall J R. (2012) [2] Hanson TA, Hall J의 Statistical arbitrage trading 전략과 고주파 거래에 기반한 공동 쌍 트레이딩 전략과 공동 쌍 트레이딩 전략의 성과를 비교한다 R. 통계적 재정 거래 전략 및 고주파 거래 [J]. 2012.. 공동 통합 기법은 수익성있는 거래 기회를 파악하기 위해 쌍으로 구성된 주식 간의 공동 통합 관계를 가정합니다. 실증 분석 결과는 코 플랙 기반 전략이 전통적인 페어 트레이딩 기법보다 수익성이 높음을 시사한다.
접합부의 구조.
1. 정의.
무작위 벡터가 주어지면 그 한계 누적 분포 함수 (CDF)는 다음과 같습니다. 확률 적분 변환을 각 구성 요소에 적용함으로써, 한계 분포는 균일합니다 (Wikipedia).
그 다음에의 코 풀라는의 합계 누적 분포 함수로 정의되며, 각 변수 U의 한계 분포는 다음과 같이 균일합니다.
Copulas 함수는 한계 분포의 모든 종속성 특성을 포함하며 확률을 사용하여 변수 간의 선형 및 비선형 관계를보다 잘 설명합니다. 그들은 한계 분포를 서로 독립적으로 모형화 할 수 있으며, 한계선의 합동 행동에 대한 가정은 필요하지 않다. [3] Rad H, Low R K Y, Faff R. 페어 트레이딩 전략의 수익성 : 거리, 공적분 및 코 플루 라 방법 [J]. Quantitative Finance, 2016, 16 (10) : 1541-1558. 온라인 카피.
2. 2 변수 Copulas.
이 연구는 쌍 변이 코 플러스에 초점을 맞추기 때문에 (쌍 거래의 경우 2 개의 임의 변수가 있음) 일부 확률 적 속성이 지정됩니다.
X와 Y를 누적 확률 함수가있는 두 개의 확률 변수 라하고 균등하게 분포되어있다. 그러면 copula 함수는 다음과 같습니다. U와 V에 대해 코 플러 함수의 편미분을 취하면 다음과 같은 조건부 분포 함수를 얻을 수 있습니다.
3. Archimedean Copulas.
우리가 가우스 가정이 아닌 변수 들간의 의존 구조를 기술 할 수있게 해주는 많은 copula 함수들이있다. 여기서 우리는 이들 중 세 가지를 중점적으로 다룰 것입니다. Clayton, Gumbel, Frank Copula 공식을 Archimedean 클래스에서 가져 왔습니다.
Archimedean copulas [4] Mahfoud M, Michael M. Bivariate Archimedean copulas : 두 가지 주식 시장 지수에 대한 적용 [J]. BMI Paper, 2012. 온라인 카피는 단 변수 분포 함수의 φ를 라플라스 변환으로 변환 한 것이다. 그들은 특정 발전기 함수에 의해 구성된다. [5] LANDGRAF N, SCHOLTUS K, DIRIS D R B. 미국 Goldmine Stocks에서 고주파수 copula 기반 쌍 거래. 2016.
확률 밀도 함수는 다음과 같습니다.
생성 함수의 2 차 미분의 역은 어디에 있습니까?
Genest와 MacKay (1986) [6] Genest, C. and MacKay, J., 1986, Copulas의 기쁨 : 균일 한 한계를 갖는 이변 량 분포, American Statistician, 40, 280-283은 copula generator function bivariate 경우의 Kendall rank correlation tau는 다음과 같이 나타낼 수 있습니다.
Kendall의 tau rank measure와 generator function을 아는 경우 Archimedean 코 프라의 파라미터를 쉽게 예측할 수 있습니다. 수식을 보려면 3 단계를 참조하십시오.
파트 I : 접합법.
ETF에는 다양한 종류의 주식 섹터와 자산 클래스가있어 다양한 쌍의 트레이딩 후보자를 제공합니다. 우리의 데이터 세트는 NASDAQ 또는 NYSE에서 거래되는 ETF의 일일 데이터로 구성됩니다.
우리는 첫 3 년간의 데이터를 사용하여 가장 적합한 피팅과 연결 쌍 ( "교육 형성 기간")을 선택합니다. 다음으로 2011 년부터 2017 년까지 5 년의 기간 ( "거래 기간")을 사용하여 전략을 실행합니다. 거래 기간 동안 우리는 연속 된 12 개월의 데이터 창을 사용하여 연결 매개 변수 ( "rolling formation period")를 얻습니다.
1 단계 : 쌍으로 된 주식 선택.
쌍 선택의 일반적인 방법은 기본 및 통계 분석을 기반으로합니다. [7] 진 폴거. 쌍 거래 예 온라인 복사본.
1) 잠재적으로 관련된 쌍의 목록을 모으십시오.
임의의 쌍을 상관시킬 수 있습니다. 이 변수들은 서로간에 인과 관계가 없지만 우연의 일치 또는 특정 3 분의 1의 존재로 인한 가짜 관계 때문에 보이지 않는 요소 일 수 있습니다. 따라서 공통점이있는 유가 증권 목록으로 시작하는 것이 중요합니다. 이 시위를 위해 Nasdaq 또는 NYSE에서 거래되는 가장 유동성이 높은 ETF 중 일부를 선택합니다. 잠재적으로 관련된 쌍에 대한 관계는 지표, 부문 또는 자산 클래스 중복으로 인해 발생할 수 있습니다. 예 : QQQ와 XLK는 시장 선도 지수를 추적하는 두 가지 ETF입니다.
2) 통계적 상관 관계로 거래 쌍을 필터링합니다.
분석에 포함 할 주식 쌍을 결정하기 위해 사전 선택된 ETF 쌍 간의 상관 관계를 분석합니다. 다음은 일반적으로 통계에서 사용하는 세 가지 유형의 상관 관계 측정입니다.
= 일치 수.
= 불협화음의 수.
= 해당 값과의 순위 사이의 차이.
SciPy의 통계 라이브러리에있는 함수를 사용하여 파이썬에서 이러한 계수를 얻을 수 있습니다. 상관 관계는 훈련 형성 기간 동안의 일별 로그 주가 반환을 사용하여 계산되었습니다. 우리는 3 가지 상관 관계 기법이 쌍을 이루는 ETF에 동일한 상관 계수 순위를 부여한다는 것을 발견했습니다. 피어슨 상관 관계는 두 변수가 정상적으로 분산되어야한다고 가정합니다. 따라서 여기서 켄달 순위를 상관 측정 값으로 사용하고 페어 거래를 구현하기 위해 가장 높은 켄달 순위 상관 관계를 가진 쌍을 선택합니다.
히스토리 기능을 사용하고 가격을 로그 수익으로 변환하여 ETF 쌍의 일일 역사적 종가를 구합니다. 주식 x와 주식 y에 대한 역사적인 주가 시리즈를 나타내 보자. ETF 쌍에 대한 로그 수익은 다음에 의해 주어진다.
t = 1,2이다. n 여기서 n은 가격 데이터의 수입니다.
2 단계 : 로그 - 리턴의 한계 분포 추정.
코 플리 어를 구성하기 위해서는 로그 - 리턴 계열을 두 개의 균일 분포 값 u와 v로 변환 할 필요가 있습니다. 이것은와의 한계 분포 함수를 추정하고 리턴 값을 분포 함수로 플러깅함으로써 수행 할 수 있습니다. 두 개의 로그 - 리턴 계열의 분포에 대한 가정을하지 않기 때문에 여기에서 경험적 분포 함수를 사용하여 한계 분포에 접근한다. statsmodel 라이브러리의 Python ECDF 함수는 경험적 CDF를 단계 함수로 제공합니다.
3 단계 : 접합부 매개 변수 추정.
앞서 논의한 바와 같이, 우리는 각 Archimedean copulas에 대한 copula와 dependence measure Kendall 's tau 사이의 관계에 의해 copula parameter theta를 추정한다.
4 단계 : 최고의 피팅 접합부 선택.
일단 코 플러 함수에 대한 매개 변수 추정을 얻으면 알고리즘 초기화에 가장 잘 맞는 코 플레를 선택하기 위해 AIC 기준을 사용합니다.
여기서는 log-likelihood 함수이고 k는 매개 변수의 수이며, 여기서 k = 1입니다.
각 copula 함수의 밀도 함수는 다음과 같습니다.
최상의 적합성을 제공하는 copula는 AIC 기준의 가장 낮은 값에 해당하는 것입니다. 선택한 쌍은 "QQQ"& amp; "XLK".
5 단계 : 거래 신호 생성.
코 플러 함수는 두 개의 리턴 계열의 종속 구조에 대한 모든 정보를 포함합니다. Stander Y, Marais D, Botha I (2013) [8] Stander Y, Marais D, 보타 I. Copulas를 사용한 거래 전략 [J]. 경제 및 금융 과학 저널, 2013, 6 (1) : 83-107. 온라인 카피 (Online Copy)의 fitper는 조건부 한계 분산 함수에 대한 신뢰 밴드를 유도하는 데 사용되며, 이는 잘못된 가격 결정 지수입니다. 시장 관측치가 신뢰 밴드를 벗어나면 쌍 거래 기회를 이용할 수 있다는 표시입니다. 여기서 우리는 95 %를 상위 신뢰 대역으로, 5 %를 낮은 신뢰 대역으로 선택합니다. 신뢰 수준은 95 %를 사용하는 것이 확인 될 수있는 적절한 거래 기회로 이어지는 것으로 보이는 종이의 백 테스트 분석을 기반으로 선정되었습니다.
현재 주식 X와 주식 Y의 현재 수익률을 감안할 때, 우리는 "잘못된 가격 결정 지표"를 다음과 같이 정의합니다.
추가적인 수학적 증명을 위해서는 Xie W, Wu Y (2013) [9] Xie W, Wu Y. Copula 기반 쌍 거래 전략 [C] // Asian Finance Association (AsFA) 2013 Conference를 참조하십시오. doi. 2013, 10.
이변 량 코프라의 조건부 확률 공식은 표 1에 표시된 코 프라 함수의 부분 미분을 취함으로써 유도 할 수있다. 결과는 다음과 같다.
트레이딩 쌍과 최적의 코 플 러스를 선택한 후 트레이딩을 위해 다음과 같은 단계를 밟습니다. Please note we implement the Steps 1, 2, 3 and 4 on the first day of each month using the daily data for the last 12 months, which means our empirical distribution functions and copula parameters theta estimation are updated once a month. In summary each month:
During the 12 months' rolling formation period, daily close prices are used to calculate the daily log returns for the pair of ETFs and then compute Kendall's rank correlation. Estimate the marginal distribution functions of log returns of X and Y, which are ecdf_x and ecdf_y separately. Plug Kendall's tau into copula parameter estimation functions to get the value of theta. Run linear regression over the two price series. The coefficient is used to determine how many shares of stock X and Y to buy and sell. For example, if the coefficient is 2, for every X share that is bought or sold, 2 units of Y are sold or bought.
Finally during the trading period, each day we convert today's returns to u and v by using empirical distribution functions ecdf_x and ecdf_y. After that, two mispricing indexes are calculated every trading day by using the estimated copula C. The algorithm constructs short positions in X and long positions in Y on the days that and . It constructs short position in Y and long positions in X on the days that and .
Part II: Cointegration Method.
For the cointegration pairs trading method, we choose the same ETF pair "GLD" & "DGL". There is no need to choose a copula function so there is only a 12 month rolling formation period. The trading period is 5 years from January 2011 to May 2017.
Step 1: Generate the Spread Series.
At the start of each month, we generate the log price series of two ETFs with the daily close. Then the spread series is estimated using regression analysis based on log price series data.
For equities X and Y, we run linear regression over the log price series and get the coefficient β.
Step 2: Compute the Threshold.
Using the standard deviation of spread during the rolling formation period, a threshold of two standard deviations is set up for the trading strategy as indicated in the paper.
Step 3: Set up the Trading Signals.
On each trading day, we enter a trade whenever the spread moves more than two standard deviations away from its mean. In other words, we construct short positions in X and long positions in Y on the day that spread>mean+2*std. We construct short positions in Y and long positions in X on the day that spread<mean-2*std. The trade is exited if the spread reverts to its equilibrium (defined as less than half a standard deviation from zero spread).
The value of mean and standard deviation are calculated from the rolling formation period and will be updated once a month.
결론.
Ultimately pairs trading intends to capture the price divergence of two correlated assets through mean reversion. Our results demonstrate that the copula approach for pairs trading is superior to the conventional cointegration method because it is based on the probability of the dependence structure, vs cointegration which relies on simple linear regression variance from normal pricing. We found through testing the performance of the copula method less sensitive to the starting parameters. Because the cointegration method relies on standard distribution and the ETF pairs had low volatility there were few trading opportunities.
Generally, ETFs are not very volatile and so mean-reversion did not provide many trading opportunities. There are only 39 trades during 5 years for cointegration method.
It is observed that the use of copula in pairs trading provides more trading opportunities as it does not require any rigid assumptions [10] Liew R Q, Wu Y. Pairs trading: A copula approach[J]. Journal of Derivatives & Hedge Funds, 2013, 19(1): 12-30. .
Backtest for copula method.
헌납 자.
참조.
`Hi Jing Wu. Thank you for an excellent article. I have a question, but it might be because I am misunderstanding your Python code (my background is in C#). The theory states that the log return series is given by ln(P_x, t / P_x, t-1), however in your code it seems that you are returning only ln(P_x, t), in the following line of code: np. log([float(z) for z in close_price]). Please let me know what I am missing. 고맙습니다.
Are you talking about the cointegration? Theoretically ln(Pt) should be used instead if log returns.
Sorry, a typo for my last reply:
Please ignore my previous comment/question, I realize the “diff” function takes care of this – Maths 101.
Hi Jing Wu, I have backtested your strategy from the period of 2010-01-01 to 2017-09-11. However, from around Sep 2012 onward, beta, net holdings and leverage seem to be constant. Is there any intuition to that? I don’t think the code is broken, but I am just curious to see what the intuition would be to cause such an outcome.
That might because there is no new trade at that time. For pairs trading that means the trading condition is not triggered.
Thank you very much for this very interesting post. It’s very helpful to have all the reasoning and formula so clearly explained and synthesized.
I have 2 remarks regarding the algo though:
+ the Gumbel fit done on the calibration set [2006 – 2009] does not work. This does not stop the algo though and the latter chooses the Frank copula in the end but it only decides using AIC for Frank and Clayton. The reason why the fit on Gumbel does not work comes from 2 divisions by 0, owing to the u or v values.
+ a post above mentions the very high beta of the algo and I agree it’s surprising for a pair strategy. This high beta is particularly stricking when simply comparing the algo results and the S&P. Local corrections of US Stocks in Q3-2015 and Q1-2016 are visible on the copula strat as if the latter was simply long equities. I took the liberty to compute the day by day net position in each component of the selected pair [i. e. XLK and QQQ]. It appears that from end 2010 until the end the algo is LONG BOTH ETFs and barely changes the position. I might be totally wrong but I think this explains the beta, the net holdings and the suddenly dropping size of trades.
Hi Jing Wu, I have backtested your strategy but I don’t seem to grasp how exactly the positions are made. According to Trade tab only small quantities of underlying assets are traded.
My reasoning is this. Suppose I have $100 000 and there’s a signal from the copulas to buy A (currently prices at $10) and short B (currently priced at $20) . Do I buy 10 000 shares of A and short 5 000 shares of B?
How long will I be in this position? Till the end of the day/next day or until another signal occurs? 고맙습니다.
Hi Fraty, yes here I allocate 40% capital in each stock. But the ratio of stock A and B are based on the regression coefficient of the historical price of two assets, not just the price at the trading day. The position is changed until another signal occurs.
Hello Jing, Thank you ver much for your excellent article and for presenting the method applying Copula to pair trading 🙂
Regarding the trading signals you mentioned that “we construct short positions in X and long positions in Y on the day that spread>mean+2*std. We construct short positions in Y and long positions in X on the day that spread<mean-2*std."
Since we are regressing Y on X, then if the "normalized"spread, (spread-mean)/sd, is wider than two standard deviations, this means that Y is out-performing X and hence we would want to short the spread, meaning we go short on Y (which is the outperforming stock) and Long X (which is the undersperforming stock).
Hello I am a student study pair trading, and I’m only beginner,
I wanna Run your code and understand the logic, but I can’t see.
all of your code.. if you mind ask you send to me complete code.
I’m not so good at english because I’m Korean Sorry about that !
I hope that your reply. 고맙습니다.
The code is at the end of the page. Just click the ‘code’ tab of the attached backtest or clone the algorithm you will see the code.

No comments:

Post a Comment