Xây dựng hệ thống giao dịch với Python

Đầu tuần này, chúng tôi đã khám phá cách mã đã thay đổi mạnh mẽ thị trường tài chính thông qua việc sử dụng các thuật toán giao dịch tự trị. Đáng ngạc nhiên là xây dựng bot giao dịch của riêng bạn thực sự không khó.  

Trong hướng dẫn này, chúng ta sẽ sử dụng Python để xây dựng bot giao dịch của riêng mình

Hãy nhớ rằng hướng dẫn này không phải là về cách kiếm hàng tỷ đô la từ bot giao dịch của bạn. Nếu tôi có một thuật toán phức tạp như vậy, có lẽ tôi đã không cho đi. Thay vào đó, tôi sẽ chỉ cho bạn cách đọc dữ liệu thị trường, mua và bán cổ phiếu cũng như lập trình logic cho thuật toán giao dịch của bạn, tất cả chỉ với một số mã Python tương đối đơn giản

Và dĩ nhiên
Bài viết này chỉ dành cho mục đích thông tin. Nó không nhằm mục đích tư vấn đầu tư. Tìm kiếm một chuyên gia được cấp phép hợp lệ để được tư vấn đầu tư

Bạn có thể mở bản demo nhanh của dự án trên Codesphere tại đây

https. // mật mã. com/#https. //github. com/LiorB-D/TradingBot

Tuy nhiên, bạn sẽ cần một khóa API trước khi thực sự có thể bắt đầu giao dịch với bot của chúng tôi - Thông tin thêm về điều đó sau


Một số thuật ngữ hữu ích

Trước khi chúng tôi bắt đầu, sẽ rất hữu ích khi xác định một số thuật ngữ

  • Kinh doanh giấy. Giao dịch chứng khoán bằng tiền giả cho mục đích giáo dục hoặc thử nghiệm
  • kiểm tra lại. Thử nghiệm một thuật toán giao dịch dựa trên dữ liệu thị trường trong quá khứ để đánh giá hiệu quả của nó
  • Di chuyển trung bình. Giá trị trung bình của một lượng mục nhất định gần đây trong một tập hợp dữ liệu
  • S&P 500. Chỉ số thị trường chứng khoán bao gồm 500 công ty lớn nhất được niêm yết trên thị trường chứng khoán Hoa Kỳ
  • Giá đóng cửa. Giá cuối cùng của chứng khoán trong một đơn vị thời gian
  • Tốt cho đến khi hủy bỏ (GTC). Khi bạn đặt một giao dịch, nó có thể không được đáp ứng ngay lập tức. Một nhà môi giới sẽ tiếp tục thử và thực hiện giao dịch GTC cho đến khi bạn hủy giao dịch đó

Cài đặt

API giao dịch mà chúng tôi sẽ sử dụng có tên là Alpaca và cho đến nay là một trong những API giao dịch trực quan nhất mà tôi đã tìm thấy

https. // alpaca. chợ/

Ở bậc miễn phí, Alpaca bao gồm cả Giao dịch trên giấy và Giao dịch thực cũng như cả dữ liệu Lịch sử và Thị trường trực tiếp. Nó cũng có giao diện người dùng cực kỳ rõ ràng và thư viện Python

Ngoài ra, trừ khi bạn sẵn sàng để tập lệnh python chạy trên máy tính của mình, bạn sẽ cần triển khai bot giao dịch của mình trên đám mây. Đối với điều này, chúng tôi sẽ sử dụng Codesphere

https. // mật mã. com

Vì giao diện người dùng của Codesphere là một IDE nên chúng tôi có thể phát triển bot của mình trực tiếp trên nền tảng. Tuy nhiên, nếu bạn muốn thực hiện mã hóa trên máy cục bộ của mình, bạn có thể kết nối repo GitHub của mình với Codesphere và triển khai sau đó

Thiết lập môi trường duy nhất mà chúng tôi thực sự cần trước khi có thể bắt đầu viết mã là tạo môi trường pip của chúng tôi

pipenv shell

Và sau đó cài đặt API Alpaca

pipenv install alpaca_trade_api

Chúng tôi cũng sẽ cần tạo một tài khoản Alpaca miễn phí và sau đó điều hướng đến Tài khoản giao dịch giấy của chúng tôi

Xây dựng hệ thống giao dịch với Python

Lưu ý Khóa API của bạn ở phía bên tay phải. Khi bạn mở tài khoản lần đầu tiên, bạn sẽ được nhắc tạo khóa và cả khóa chung và khóa riêng sẽ được hiển thị cho bạn. Chúng ta sẽ cần những thứ đó cho sau này

Mua và Bán Cổ phiếu

Sau đó, chúng tôi có thể thiết lập thư viện Giao dịch Alpaca của mình và mua và bán cổ phiếu bằng Python như vậy

Chiến lược của chúng tôi

Chiến lược chúng tôi sẽ sử dụng là mua và bán bất cứ khi nào đường trung bình động 5 phút vượt qua giá của chúng tôi. Bây giờ, điều này khác xa với một chiến lược giao dịch tốt, nhưng logic tương đối đơn giản và sẽ cho phép chúng ta tập trung vào cấu trúc chung của một bot giao dịch

Xây dựng hệ thống giao dịch với Python

Trong ví dụ trên, đường màu đỏ là giá cổ phiếu và đường màu xanh là đường trung bình động. Khi đường trung bình động vượt qua giá của chúng tôi, chúng tôi sẽ mua một phần cổ phiếu của chúng tôi. Sau đó, chúng tôi sẽ giữ cổ phiếu cho đến khi đường trung bình động vượt qua một lần nữa và vượt lên trên giá. Khi điều đó xảy ra, chúng tôi sẽ bán cổ phiếu của mình và sau đó chờ tín hiệu mua tiếp theo

Trong bài viết này, chúng ta sẽ giao dịch SPY, một chỉ số theo dõi S&P 500 và chúng ta sẽ chỉ giao dịch một cổ phiếu tại một thời điểm

Hãy nhớ rằng nếu bạn thực hiện các giao dịch này bằng tiền thật, bạn sẽ phải tuân thủ các quy định về giao dịch trong ngày và phí môi giới, điều này có thể sẽ bù đắp cho lợi nhuận của bạn

Đọc dữ liệu thị trường

Bây giờ, hãy tìm hiểu cách đọc dữ liệu thị trường bằng API Alpaca trong Python

Nếu bạn đang tìm kiếm thông tin chuyên sâu hơn khi xây dựng chiến lược của mình, hãy xem tài liệu của Alpaca
https. // alpaca. thị trường/tài liệu/tài liệu api/api-v2/dữ liệu thị trường/alpaca-data-api-v2/

Thực hiện Chiến lược của chúng tôi

Bây giờ, cuối cùng chúng ta hãy đặt tất cả những thứ này lại với nhau để tạo ra thuật toán giao dịch hoàn chỉnh của chúng ta

Và chúng tôi đã có nó. Chúng tôi vừa xây dựng một bot giao dịch trong 54 dòng mã. Bây giờ nếu chúng tôi để điều này chạy trên Codesphere suốt cả ngày, chúng tôi sẽ thấy bản cập nhật bảng điều khiển Alpaca của chúng tôi trong suốt cả ngày

Xây dựng hệ thống giao dịch với Python

Kiểm tra lại một Chiến lược

Bây giờ nếu bạn không muốn chờ xem thuật toán của mình có tốt không, chúng tôi có thể sử dụng API dữ liệu thị trường của Alpaca để kiểm tra lại thuật toán Python của chúng tôi dựa trên dữ liệu lịch sử

Python có thể được sử dụng để giao dịch không?

Python đã trở thành lựa chọn ưu tiên cho giao dịch gần đây vì Python là mã nguồn mở và tất cả các gói đều miễn phí cho mục đích thương mại. Python đã đạt được sức hút trong cộng đồng tài chính lượng tử. Python giúp dễ dàng xây dựng các mô hình thống kê phức tạp một cách dễ dàng do có đủ thư viện khoa học.

Bạn có thể tạo bot giao dịch bằng Python không?

Bot giao dịch Python có thể được sử dụng để tự động mua và bán cổ phiếu khi được lập trình với các ngưỡng mua và bán . Các bot giao dịch nâng cao có thể được lập trình bằng thuật toán để xác định thời điểm nên mua hoặc bán cổ phiếu. Bắt đầu với môi trường thời gian chạy Python Trading Bot.

Làm thế nào để xây dựng một hệ thống giao dịch tự động?

Cách xây dựng hệ thống giao dịch tự động của riêng bạn .
Tạo kế hoạch giao dịch. Kế hoạch giao dịch đóng vai trò là điểm khởi đầu vì nó giúp bạn xác định mục tiêu giao dịch của mình và cách hệ thống sẽ giúp bạn đạt được chúng. .
Thiết kế hệ thống của bạn. .
Quyết định các công cụ quản lý rủi ro. .
Xây dựng. .
Kiểm tra và tinh chỉnh

Python có đủ nhanh để giao dịch thuật toán không?

Các ngôn ngữ được nhập tĩnh (xem bên dưới) chẳng hạn như C++/Java thường tối ưu để thực thi nhưng có sự đánh đổi về thời gian phát triển, thử nghiệm và dễ bảo trì. Các ngôn ngữ được nhập động, chẳng hạn như Python và Perl hiện nay thường "đủ nhanh" .