Cách tính Cointegration bằng Amibroker và Python

Hướng dẫn Kinh tế lượng trên eviews (Tháng Sáu 2019).

Anonim

Cointegration được sử dụng trong Arbitrage thống kê để tìm cặp cổ phiếu tốt nhất (cặp giao dịch) để đi dài trong một cổ phiếu và ngắn (cạnh tranh đồng nghiệp) khác để tạo ra lợi nhuận. Thống kê Arbitrage (StatArb) là tất cả về đảo ngược có nghĩa là, tìm kiếm độ lệch trong sự lây lan và hy vọng có nghĩa là đảo ngược từ sự lây lan.

Vì vậy, Whats vấn đề với tương quan?
Thường thì mọi người sử dụng mối tương quan trong giao dịch cặp để xác định các cặp tương quan cao và sau đó mong đợi sự đảo chiều trung bình từ sự chênh lệch. Nhưng hãy nhìn vào ví dụ sau, trong đó X và Y là phân tách dữ liệu chuỗi thời gian ngẫu nhiên và cả hai đều di chuyển theo cùng một hướng và tương quan cao. Nhưng bạn có nghĩ rằng chúng ta có thể làm một giao dịch cặp trên đầu trang của nó, nơi không có sự đảo ngược trung bình giữa các spread?

Đồng tích hợp là gì

Co-Integration giúp xác định các cặp cổ phiếu tốt nhất, nơi spread có thể trở lại giá trị trung bình. Co-Integration tìm kiếm cặp văn phòng phẩm, nơi giá trị trung bình của spread được cố định. Bất cứ khi nào chênh lệch chênh lệch giá trị trung bình, nó tạo ra cơ hội giao dịch và chênh lệch giá có thể sẽ trở lại giá trị trung bình.

Hãy để tôi giải thích với một ví dụ vui giải thích Co-Integration một cách tốt hơn. “Một người đàn ông say rượu đang đi trên đường cùng với con chó của mình bị xích và bị trói bằng tay của người say rượu. Khi người đàn ông say rượu và anh ta dự kiến ​​sẽ đi bộ ngẫu nhiên và con chó xích cũng được dự kiến ​​sẽ đi bộ ngẫu nhiên (giả sử một con chó nhỏ nhỏ?). Khoảng cách tối đa giữa chúng có thể là chiều dài của sợi dây giữ con chó xích và nó luôn luôn cố định. Bất cứ khi nào khoảng cách / lây lan giữa Drunken Man và Dog tiến gần đến khoảng cách tối đa, chúng ta có thể mong đợi một sự đảo chiều trung bình trong khoảng cách tới mức trung bình ”Nói cách đơn giản, người đàn ông say rượu và con chó đều là Co-Integrated.

Nếu hai cổ phiếu có tương quan cao thì cả hai cổ phiếu sẽ di chuyển theo cùng một hướng hầu hết thời gian tuy nhiên độ lớn của các động thái chưa được biết và sự lan rộng có thể tiếp tục tăng miễn là nó có thể được thể hiện trong ví dụ trên. Tuy nhiên Co-Integration tìm kiếm sự đảo chiều trung bình trong khoảng cách / khoảng cách và chênh lệch có thể giao dịch. Tăng cường kiểm tra Dicky Fuller thường được sử dụng để xác định với một mức độ nhất định của sự tự tin cho dù sự lây lan giữa hai cổ phiếu hoặc chuỗi thời gian là văn phòng phẩm và cointegrated hay không.

Kiểm tra DICkey-Fuller (ADF) tăng cường

Bài kiểm tra Augy Dicky Fuller là một thử nghiệm giả thuyết rằng một tín hiệu chứa một gốc đơn vị, chúng tôi muốn từ chối giả thuyết này. Các thử nghiệm cho một pValue, thấp hơn số này chúng tôi tự tin hơn có thể được rằng chúng tôi đã tìm thấy một tín hiệu văn phòng phẩm. pValues ​​nhỏ hơn 0, 5 được coi là có nghĩa là hoàn nguyên tốt các cặp cổ phiếu. Một số chuyên gia thậm chí còn tìm kiếm giá trị pValues ​​nhỏ hơn 0, 1. pValues ​​trên 0, 1 có khả năng không phải là statinary và các cặp cổ phiếu như vậy không được khuyến khích.

Ảnh trên cho thấy Bảng tổng hợp và tương quan giữa Sun Pharma và Cipla Futures từ tháng 12 năm 2014 đến nay cho thấy giá trị P là 0, 05 (Co-Integrated) và cũng tương quan cao (0.834) và có thể là một cặp tốt nhất để tìm kiếm dài hạn sự đảo chiều trung bình trong sự lây lan.

Ví dụ thứ hai cho thấy các biểu đồ Tương lai Hàng giờ của Infy và TCS có Đồng tích hợp cao (0, 05) và Tương quan cao (0, 843) và có thể là cặp tốt nhất để tìm kiếm sự đảo chiều trung bình trong ngắn hạn.

Computing Co-Integration tại Amibroker

Vì Co-Integration là một mô hình thống kê, mã ngôn ngữ lập trình AFL tương đối khó, chúng tôi dựa vào Amibroker với Python COM Server và các gói python tính toán thống kê như numpy (để xử lý mảng), Pandas (để xử lý dữ liệu chuỗi thời gian) và mô hình thống kê ( để làm xét nghiệm ADF) trong đó các mảng gần của hai cặp chứng khoán được truyền từ Amibroker và CoIntegration được tính bằng python và hoàn nguyên về Amibroker.

Nếu bạn không chắc chắn cách cài đặt và cấu hình python và các gói thống kê như numpy, statsmodels, gấu trúc thì hãy đi qua video hướng dẫn ở đây giải thích cách cài đặt thư viện python zipline - gói backtesting ngay từ đầu

Các bước để làm theo trong Amibroker

1) Tải xuống CoIntegration-AFL Đặt và giải nén nó
2) Sao chép tập tin coint.py vào thư mục \ python2.7 \ bin \ . Và thực hiện các tập tin với lệnh python coint.py trong dấu nhắc lệnh của bạn như hình dưới đây

3) Sao chép tệp PyCoint.afl và dán tệp trong thư mục \ Amibroker \ Formulas \ Basic Charts
4) Mở một biểu đồ trống mới và áp dụng PyCoint.afl cho nó. Bây giờ nhấp chuột phải lên các biểu đồ và tham số goto và nhập hai biểu tượng mà bạn muốn tính Co-Integration. Bạn sẽ có thể thấy các giá trị Tương quan (22 Thời gian) và Đồng tích hợp được hiển thị trong một bảng điều khiển mà bạn có thể sử dụng cho phân tích Thống kê Chuyên môn Thống kê (Giao dịch Cặp) hơn nữa.

Lưu ý: Đồng tích hợp được tính toán dựa trên dữ liệu hiển thị dữ liệu được hiển thị trong biểu đồ. Nếu bạn zoom / Unzoom hoặc thay đổi khung thời gian bạn có thể kết thúc với giá trị Co-Integration chỉ tính cho giá hiển thị trực quan trên màn hình.