Xây dựng hệ thống giao dịch thuật toán: 2 phương pháp chính, thử nghiệm, công cụ

Xây dựng hệ thống giao dịch thuật toán: 2 phương pháp chính, thử nghiệm, công cụ

Lượt xem: 326
Thời gian đọc: 6 phút



Các thành phần chính của hệ thống giao dịch thuật toán là các công cụ nghiên cứu, hiệu suất, dễ phát triển, khả năng phục hồi và thử nghiệm, phân tách mối quan tâm, làm quen, bảo trì, sẵn có mã nguồn, chi phí cấp phép và trưởng thành của thư viện. Trước khi quyết định công cụ "tốt nhất", để viết một hệ thống giao dịch tự động, cần phải xác định các yêu cầu:

  1. Điều gì sẽ là tần suất giao dịch và khối lượng giao dịch có khả năng?
  2. Hệ thống sẽ yêu cầu quản lý rủi ro hoặc danh mục đầu tư xây dựng mô-đun?
  3. Hệ thống sẽ yêu cầu một backtester hiệu suất cao?

Các thương nhân, những người yêu cầu các hệ thống phức tạp và được xây dựng tùy chỉnh hơn, có thể cần xem xét sử dụng C #, Matlab hoặc Python, nhưng tôi sẽ nói với 95% các nhà giao dịch khác Phần mềm giao dịch thuật toán sẽ đủ.

1 - Tính toán bằng Python, Matlab, C #

Trong trường hợp này, kỹ năng lập trình là một yếu tố quan trọng trong việc tạo ra một thuật toán tự động chiến lược kinh doanh. Có kiến ​​thức về ngôn ngữ lập trình, chẳng hạn như Python hoặc R, sẽ cho phép bạn tự lưu trữ dữ liệu đầu cuối, công cụ backtest và hệ thống thực thi. Nó cho phép bạn khám phá các chiến lược tần suất cao hơn vì bạn sẽ có toàn quyền kiểm soát "ngăn xếp công nghệ" của mình. Mặc dù điều này có nghĩa là bạn có thể kiểm tra phần mềm của mình và loại bỏ các lỗi, nhưng điều đó cũng có nghĩa là dành nhiều thời gian hơn cho việc mã hóa cơ sở hạ tầng và ít thực hiện các chiến lược hơn, ít nhất là trong phần trước của sự nghiệp đại số.

Quy trình công việc cơ bản như sau:

  • Chiến lược giao dịch thuật toán cung cấp dữ liệu thị trường (lịch sử hoặc trực tiếp) vào chương trình máy tính (thực hiện backtest hoặc tự động).
  • Chương trình sau đó gửi đơn đặt hàng cho nhà môi giới thông qua API và nhận lại thông báo trạng thái đơn hàng từ nhà môi giới.

MATLAB và Python là nền tảng backtesting yêu thích của tôi. Nó có giao diện rất toàn diện và thân thiện với người dùng để phát triển và gỡ lỗi chương trình, và nó có một loạt các hộp công cụ bao gồm hầu hết mọi kỹ thuật toán học hoặc tính toán phức tạp mà bạn có thể gặp phải trong phát triển chiến lược giao dịch.

Nhập dữ liệu lịch sử từ Yahoo Finance vào Python
Ảnh: nhập dữ liệu lịch sử từ Yahoo Finance sang Python
Quá trình giao dịch thuật toán
Ảnh: quá trình giao dịch thuật toán

2 - Phần mềm giao dịch tiền thuật toán. Không có kỹ năng mã hóa

Cách tiếp cận thứ hai là các công cụ thuật toán, chẳng hạn như Multicharts, StrategQuant hoặc R Trader Strateg Builder (miễn phí và dễ sử dụng, dựa trên đám mây) và nhiều hơn nữa.

Những ngày mà giao dịch thuật toán được thực hiện chỉ bởi các chuyên gia đã qua. Không cần phải mất hàng giờ để học C # khi gần như tất cả các hệ thống và chiến lược có thể được mã hóa bằng StrategQuant, Đa sắc, hoặc Người xây dựng chiến lược thương nhân R. Theo kinh nghiệm của chúng tôi, một số nhà giao dịch / lập trình viên muốn đi theo con đường dài đến mục tiêu thường là dưới sự ưu việt về kỹ thuật, hãy tin chúng tôi, hầu hết các mã hóa tiên tiến không cần thiết cho chiến lược giao dịch thuật toán trung bình. Tạo API của bạn hoặc tùy chỉnh mọi thứ với MetaTrader có thể rất lãng phí, đặc biệt nếu bạn bị sa lầy với các chi tiết kỹ thuật thay vì tạo giá trị.

Tất cả các nền tảng đều có những mặt tích cực và tiêu cực, đối với chúng tôi, R Trader Strateg Builder là một mô-đun dễ sử dụng độc quyền nội bộ, cho phép các nhà giao dịch bán lẻ thiết kế, backtest và triển khai các chiến lược giao dịch thuật toán mà không cần bất kỳ kiến ​​thức nào về ngôn ngữ lập trình.

Sàn giao dịch R Trader có một cách đơn giản hơn để bạn thoát khỏi giao dịch điểm và nhấp truyền thống. Được thiết kế cho các nhà giao dịch có kinh nghiệm cũng như người mới đến, giao diện dễ sử dụng của chúng tôi cho phép bạn tự động hóa các chiến lược giao dịch của mình trong vài phút. Không mã hóa và không phiền phức - bạn sẽ nhanh chóng hoạt động.

Backtesting. Thuật sĩ chiến lược trong R Trader Strateg Builder.
Ảnh: Backtesting. Thuật sĩ chiến lược trong R Trader Strateg Builder.

Kiểm tra và đánh giá hệ thống giao dịch

Nghiên cứu liên quan đến việc đánh giá hiệu suất chiến lược đối với dữ liệu lịch sử. Quá trình đánh giá một chiến lược giao dịch so với dữ liệu thị trường trước đó được gọi là kiểm tra lại.

Giao dịch tiền thuật toán khác biệt với các loại lớp đầu tư khác bởi vì chúng tôi có thể cung cấp kỳ vọng đáng tin cậy hơn về hiệu suất trong tương lai từ hiệu suất trong quá khứ. Nói một cách đơn giản, việc kiểm tra lại được thực hiện bằng cách đưa ra thuật toán chiến lược cụ thể của bạn vào luồng dữ liệu giá lịch sử, dẫn đến một tập hợp các tín hiệu giao dịch. Mỗi giao dịch sẽ có một khoản lãi hoặc lỗ liên quan. Việc tích lũy lãi / lỗ này trong suốt thời gian thực hiện chiến lược của bạn sẽ dẫn đến tổng lãi và lỗ.

Các lý do chính để backtesting một chiến lược thuật toán là gì?

Lọc

Mục tiêu của chúng tôi ở giai đoạn nghiên cứu ban đầu là lọc ra bất kỳ chiến lược nào không đáp ứng các tiêu chí nhất định. Backtesting cung cấp cho chúng tôi một cơ chế lọc khác, vì chúng tôi có thể loại bỏ các chiến lược không đáp ứng nhu cầu hiệu suất của chúng tôi.

Mô hình hóa

Backtesting cho phép chúng tôi (một cách an toàn!) Thử nghiệm các mô hình mới của các điều kiện thị trường nhất định.

Trong mẫu và ngoài mẫu

Khi thử nghiệm một ý tưởng về dữ liệu lịch sử, tốt nhất là dành một khoảng thời gian của dữ liệu lịch sử cho mục đích thử nghiệm. Dữ liệu lịch sử ban đầu, trên đó ý tưởng được thử nghiệm và tối ưu hóa, được gọi là dữ liệu trong mẫu. Tập dữ liệu đã được bảo lưu được gọi là dữ liệu ngoài mẫu. Thiết lập này là một phần quan trọng của quy trình đánh giá vì nó cung cấp một cách để kiểm tra ý tưởng về dữ liệu chưa phải là một thành phần trong mô hình tối ưu hóa. Do đó, ý tưởng sẽ không bị ảnh hưởng theo bất kỳ cách nào bởi dữ liệu ngoài mẫu và các nhà giao dịch sẽ có thể xác định hệ thống có thể hoạt động tốt như thế nào trên dữ liệu mới, tức là trong giao dịch thực tế.

Tối ưu hóa chiến lược giao dịch thuật toán

Mặc dù tối ưu hóa chiến lược có nhiều sai lệch, việc kiểm tra lại cho phép chúng tôi tăng hiệu suất của chiến lược bằng cách sửa đổi giá trị của các tham số liên quan đến chiến lược đó và tính toán lại hiệu suất của chiến lược đó. Quá mức (khớp đường cong) là một vấn đề nghiêm trọng trong tất cả các lĩnh vực liên quan đến khai thác dữ liệu và bạn phải cẩn thận về việc sử dụng các bộ kiểm tra và xác nhận hợp lệ. Vì lý do đó, có thể thực hiện nhiều phương pháp khác nhau, chẳng hạn như thử lại với các cài đặt khác nhau, mô phỏng Monte-Carlo, Walk-Forward-Matrix, Walk-Forward-Optimization, Nhiều giai đoạn ngoài mẫu.

Kiểm tra hiệu suất chuyển tiếp

Giao dịch demo hoặc giao dịch giấy cung cấp cho các nhà giao dịch một bộ dữ liệu ngoài mẫu khác để đánh giá một hệ thống. Kiểm tra hiệu suất chuyển tiếp là một mô phỏng giao dịch thực tế và liên quan đến việc tuân theo logic của hệ thống trong một thị trường trực tiếp. Một khía cạnh quan trọng của kiểm tra hiệu suất chuyển tiếp là tuân theo chính xác logic của hệ thống; mặt khác, nếu không thể, việc đánh giá chính xác bước này của quy trình trở nên khó khăn. Nhiều nhà môi giới, cũng như RoboMmarket, cung cấp một tài khoản giao dịch mô phỏng nơi giao dịch có thể được đặt và tính toán lãi lỗ tương ứng. Sử dụng tài khoản giao dịch demo có thể tạo ra một môi trường bán thực tế, trên đó thực hành giao dịch và đánh giá thêm hệ thống.

Ảnh: backtesting. Một biểu đồ trong Python.
Ảnh: backtesting. Một biểu đồ trong Python.
Backtesting. Các giao dịch lịch sử trong R Trader Strateg Builder.
Ảnh: backtesting. Các giao dịch lịch sử trong R Trader Strateg Builder.

Cuối cùng nhưng không kém phần quan trọng, tôi muốn thảo luận về các công cụ sẽ hữu ích trong lĩnh vực này.

Công cụ

Phần mềm nghiên cứu và giao dịch tự động

Trình tạo chiến lược giao dịch Excel, R Trader (https://rtrader.umstel.com - phần mềm miễn phí), StrategQuant (phí giấy phép), MultiCharts (phí giấy phép), TradeStation (phí giấy phép), Wealth-lab (phí giấy phép).

Matlab, Python, R, C #

Ngày

  1. Dữ liệu tình cảm xã hội (từ Twitter và các phương tiện truyền thông xã hội khác, xem ISentium, TickerTags)
  2. Dữ liệu đám đông (xem Ước tính)
  3. Dữ liệu hành vi (xem Nghiên cứu Cabot)
  4. Hình ảnh vệ tinh và trên không (xem Thông tin chi tiết quỹ đạo)
  5. Dữ liệu hành vi của người tiêu dùng (xem Trung thành với thương hiệu)
  6. Tài nguyên trực tuyến phi truyền thống (xem Knowsis)
  7. OTAS (Dữ liệu kỹ thuật)

Các nhà cung cấp khác

Nhóm TIM, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr.

Sách (bằng tiếng Anh)

  1. Giao dịch định lượng: Cách xây dựng doanh nghiệp kinh doanh thuật toán của riêng bạn - Ernest Chan
  2. Giao dịch tiền thuật toán: Chiến lược chiến thắng và lý do của họ - Ernest Chan
  3. Giao dịch máy: Triển khai thuật toán máy tính để chinh phục thị trường - Ernest Chan
  4. Thuật toán giao dịch và DMA: Giới thiệu về chiến lược giao dịch truy cập trực tiếp - Barry Johnson
  5. Giao dịch và trao đổi: Cấu trúc vi mô thị trường cho các học viên - Larry Harris

1. arXiv http://arxiv.org/archive/q-fin
2. SSRN https://www.ssrn.com/en/
3. Tạp chí Chiến lược đầu tư https://www.risk.net/journal-of-investment-strategies
4. Tạp chí Tài chính tính toán https://www.risk.net/journal-of-computational-finance
5. Tài chính toán học https://onlinelibrary.wiley.com/journal/14679965

Tổng kết

Như chúng ta có thể thấy, có nhiều cách tiếp cận khác nhau để tạo ra các chiến lược giao dịch thuật toán. Bạn có thể chọn bất kỳ phù hợp với trình độ kiến ​​thức và cơ hội của bạn. Ngoài ra, backtesting và phát triển hơn nữa, sau đó chỉ có chúng tôi có thể chuyển sang thực hành.

Nếu bạn có bất kỳ câu hỏi nào, tôi sẽ vui lòng trả lời chúng trong các ý kiến ​​dưới đây.

Mở tài khoản giao dịch




Nhận xét

Bài viết trước

Một tuần trên thị trường (01/13 - 01/19): Thống kê và các quyết định của ngân hàng trung ương

Tuần mới của tháng một trông khá bình thường. Chúng tôi có số liệu thống kê, chính trị, cũng như một vài quyết định tiền tệ. Có vẻ như các nền kinh tế và thị trường vốn toàn cầu đang hoạt động toàn diện sau kỳ nghỉ Giáng sinh và Năm mới.

Tiếp theo

3 cổ phiếu sẽ mua trong năm 2020: Delta Air Lines, HP, Morgan Stanley

Chu kỳ 12 năm tăng trưởng của nền kinh tế Mỹ đang diễn ra. Đây là khoảng thời gian dài nhất để không có khủng hoảng. Đầu năm 2020 tiếp tục cổ vũ các nhà đầu tư, các cổ phiếu tiếp tục làm mới mức cao nhất mọi thời đại. Những người đã mua chúng sớm phát triển hạnh phúc hơn.