Thuật ngữ

Giao dịch qua API

Đặt và quản lý lệnh từ phần mềm của riêng bạn thông qua giao diện lập trình của sàn môi giới.

9 phút đọc

Giao dịch qua API là gì

Giao dịch qua API là việc gửi lệnh, yêu cầu giá và đọc dữ liệu tài khoản thông qua giao diện lập trình ứng dụng (API) của broker, thay vì bấm chuột trên một nền tảng giao dịch. API, viết tắt của application programming interface, là một cách được định nghĩa sẵn để một chương trình giao tiếp với chương trình khác. Phần mềm của bạn kết nối đến máy chủ của broker, xác thực, rồi ra các lệnh như đặt lệnh, hủy lệnh, lấy các vị thế hoặc nhận luồng báo giá.

Những người sử dụng cách này thuộc một vài nhóm. Các nhà giao dịch hệ thống chạy những chiến lược dựa trên quy tắc do chính họ lập trình. Các nhà phân tích định lượng và sinh viên kiểm nghiệm ý tưởng trên dữ liệu thực. Các lập trình viên xây dựng bảng điều khiển tùy chỉnh, công cụ tái cân bằng danh mục hoặc hệ thống cảnh báo. Một số công ty dùng API để kết nối hệ thống quản trị rủi ro hoặc nhật ký giao dịch với tài khoản. Dùng API không làm cho chiến lược tốt hơn. Nó chỉ thay đổi cách các chỉ thị đến được broker.

Giao dịch qua API khác với expert advisor (EA) và các đoạn mã chạy trong nền tảng. Một expert advisor chạy bên trong nền tảng như MetaTrader và phụ thuộc vào việc nền tảng đó đang mở. Một ứng dụng khách API thường chạy trên máy chủ hoặc máy tính của riêng bạn bằng bất kỳ ngôn ngữ nào mà broker hỗ trợ, và giao tiếp trực tiếp với broker.

Cách hoạt động

Các broker cung cấp API theo một vài kiểu phổ biến, và nhiều nơi cung cấp nhiều hơn một kiểu.

  • REST. Chương trình của bạn gửi một yêu cầu qua HTTPS và nhận phản hồi. Kiểu này phù hợp để đặt lệnh, kiểm tra số dư và tải dữ liệu lịch sử.
  • WebSocket hoặc truyền phát (streaming). Một kết nối duy trì liên tục đẩy giá trực tiếp và cập nhật lệnh đến bạn mà không cần hỏi đi hỏi lại.
  • FIX. Giao thức Financial Information eXchange là tiêu chuẩn ngành được các tổ chức và một số broker bán lẻ sử dụng, được thiết kế cho độ trễ thấp và khối lượng thông điệp lớn.
  • Thư viện của nhà cung cấp. Một số broker phát hành bộ công cụ phát triển phần mềm (SDK) cho các ngôn ngữ như Python, Java hoặc C#.

Một quy trình điển hình trông như sau.

  1. Tạo thông tin xác thực API, thường là một khóa (key) kèm mã bí mật (secret) hoặc một token, trong phần cài đặt tài khoản.
  2. Xác thực ở mỗi phiên làm việc. Nhiều broker cho phép bạn giới hạn khóa ở một số quyền cụ thể, chẳng hạn chỉ đọc.
  3. Đăng ký nhận dữ liệu thị trường và đọc giá mua (bid) và giá bán (ask) hiện tại.
  4. Chạy logic của bạn và gửi một thông điệp lệnh gồm công cụ, chiều lệnh, khối lượng, loại lệnh và giá.
  5. Đọc xác nhận hoặc từ chối, và theo dõi các lần khớp qua cập nhật trạng thái lệnh.
  6. Xử lý lỗi, kết nối lại và giới hạn tần suất (rate limit).

Một ví dụ minh họa

Các con số dưới đây chỉ mang tính minh họa. Một lập trình viên viết một đoạn mã kiểm tra EUR/USD mỗi phút và tái cân bằng vị thế về mục tiêu 1 lot chuẩn, tức 100.000 đơn vị của tiền tệ cơ sở.

  • Vị thế hiện tại là 0,60 lot, nên đoạn mã cần mua thêm 0,40 lot.
  • Nó đọc giá bán (ask), giả sử là 1,0852, và gửi một lệnh mua giới hạn 0,40 lot tại 1,0852.
  • Broker giới hạn khóa ở mức 60 yêu cầu mỗi phút. Mỗi chu kỳ, đoạn mã gửi một yêu cầu giá và một yêu cầu lệnh, tức dùng 2 trên 60 yêu cầu được phép, còn dư chỗ cho việc thử lại.
  • Lệnh được khớp một phần, 0,25 lot. Đoạn mã nhận cập nhật, ghi lại 0,15 lot còn lại, rồi quyết định chờ hay hủy.
  • Giá trị danh nghĩa của phần đã khớp là 0,25 × 100.000 × 1,0852 = 27.130 USD.

Phần mã thì đơn giản. Công sức nằm ở những phần ít hào nhoáng, như khớp một phần, mất kết nối và lệnh bị gửi trùng.

Vì sao điều này quan trọng

API mang lại sự nhất quán và tốc độ, vì phần mềm không do dự và không quên. Nó cho phép bạn kiểm nghiệm một bộ quy tắc trên dữ liệu đã lưu, rồi chạy thật với cùng logic đó. Nó cũng có thể giảm lỗi thao tác thủ công khi bạn quản lý nhiều công cụ giao dịch.

Nhưng nó chuyển trách nhiệm sang phía bạn. Một lỗi lập trình có thể gửi hàng trăm lệnh chỉ trong một phút. Các broker khác nhau về những gì họ cho phép. Có nơi cung cấp API trên mọi tài khoản, có nơi chỉ trên một số loại tài khoản, và có nơi yêu cầu số dư tối thiểu hoặc phê duyệt. Giới hạn tần suất, loại lệnh được hỗ trợ, phí dữ liệu thị trường và các công cụ có sẵn rất khác nhau, và các chi phí như chênh lệch giá (spread) và hoa hồng vẫn áp dụng cho mọi giao dịch tự động.

Cách áp dụng trong thực tế

  • Kiểm tra tài liệu dành cho nhà phát triển của broker trước khi mở tài khoản. Tìm các ngôn ngữ, giao thức, loại lệnh được hỗ trợ và mã mẫu.
  • Tìm hiểu xem có môi trường demo hoặc giao dịch thử (paper trading) cho API hay không, và dùng nó trước tiên.
  • Xem lại giới hạn tần suất, giới hạn kết nối và mọi khoản phí cho dữ liệu hoặc quyền truy cập API.
  • Tạo khóa với quyền tối thiểu cần thiết, và lưu chúng trong trình quản lý bí mật (secrets manager), không bao giờ để trong kho mã công khai.
  • Xây dựng cơ chế an toàn. Giới hạn khối lượng lệnh, giới hạn mức lỗ trong ngày, thêm công tắc ngắt khẩn cấp (kill switch) và ghi nhật ký mọi thông điệp.
  • Kiểm tra việc kết nối lại và xử lý lỗi bằng cách chủ động ngắt kết nối.
  • Giám sát tiến trình. Chạy nó trên một máy chủ ổn định và đặt cảnh báo khi có sự cố.

Những sai lầm và quan niệm sai thường gặp

  • Cho rằng API giúp bạn nhanh hơn các nhà giao dịch khác. Với hầu hết thiết lập của nhà giao dịch cá nhân, độ trễ mạng và việc khớp lệnh của broker mới là yếu tố quyết định.
  • Bỏ qua môi trường demo. Dùng tiền thật là cách đắt đỏ để tìm ra một lỗi.
  • Bỏ qua các lần khớp một phần và các lần từ chối lệnh, khiến mã của bạn tin rằng mình có một vị thế không hề tồn tại.
  • Viết cứng thông tin bí mật vào mã. Các khóa bị lộ đã từng bị dùng để đặt những lệnh ngoài ý muốn.
  • Tin rằng kết quả backtest bằng kết quả tương lai. Các bài kiểm tra lịch sử thường bỏ qua trượt giá (slippage), thay đổi của spread và lỗi dữ liệu.
  • Quên rằng broker cũng có thể thay đổi hoặc ngừng hỗ trợ một phiên bản API.

Rủi ro và hạn chế

Tự động hóa khuếch đại lỗi cũng như ý tưởng. Một vòng lặp lỗi, nguồn giá cũ hoặc nhầm múi giờ có thể gây thua lỗ lớn rất nhanh, và các sản phẩm có đòn bẩy như CFD có thể mất giá trị nhanh chóng. Sự cố ở phía broker hoặc máy chủ của bạn có thể khiến các vị thế không được quản lý. An ninh là mối lo thực sự, vì một khóa bị đánh cắp có thể dùng để giao dịch trên tài khoản của bạn. Điều khoản dịch vụ đôi khi hạn chế một số hành vi giao dịch tần suất cao. Không nội dung nào ở đây là khuyến nghị về một chiến lược, và dữ liệu quá khứ không dự đoán được hiệu suất tương lai.

Brokeli nhìn nhận vấn đề này như thế nào

Trong quá trình nghiên cứu, chúng tôi ghi nhận broker có công bố API hay không, hỗ trợ những giao thức nào, và các điều kiện đi kèm, chẳng hạn loại tài khoản hoặc mức nạp tối thiểu. Chúng tôi xem chất lượng tài liệu và môi trường demo là những tín hiệu thiết thực, và gắn các dữ kiện này với bản chụp nghiên cứu đã công bố cho broker và quốc gia đó.

Câu hỏi thường gặp

Giao dịch qua API nói đơn giản là gì?

Đó là gửi chỉ thị giao dịch đến broker từ chương trình của chính bạn thay vì từ màn hình nền tảng. Chương trình xác thực bằng một khóa, đọc giá, rồi đặt hoặc hủy lệnh một cách tự động theo các quy tắc bạn đã viết.

Tôi có cần biết lập trình để dùng API của broker không?

Có, ít nhất là lập trình cơ bản. Bạn phải xử lý xác thực, định dạng dữ liệu, lỗi và logic đặt lệnh. Một số broker cung cấp thư viện cho các ngôn ngữ phổ biến để đơn giản hóa việc này, nhưng bạn vẫn chịu trách nhiệm kiểm thử và mọi sai sót trong mã của mình.

Giao dịch qua API có giống giao dịch thuật toán không?

Không hẳn. Giao dịch thuật toán là các quy tắc được phần mềm thực thi. API là một cách để kết nối phần mềm đó với broker. Bạn cũng có thể chạy thuật toán ngay trong nền tảng thông qua expert advisor hoặc các ngôn ngữ lập trình tích hợp sẵn.

Quyền truy cập API có miễn phí không?

Tùy từng nơi. Một số broker cung cấp kèm mọi tài khoản, số khác yêu cầu tài khoản đã nạp tiền hoặc hạng cao hơn, và một số thu phí dữ liệu thị trường. Các chi phí giao dịch như chênh lệch giá và hoa hồng áp dụng giống như với lệnh thủ công. Hãy xem trang dành cho nhà phát triển của broker.

Làm sao để giao dịch qua API một cách an toàn?

Bắt đầu trong môi trường demo, cấp cho khóa quyền thấp nhất cần thiết, đặt giới hạn cứng về khối lượng lệnh và mức lỗ trong ngày, và ghi nhật ký mọi thông điệp. Hãy thêm công tắc ngắt khẩn cấp thủ công và giám sát tiến trình, vì một lỗi lập trình có thể đặt rất nhiều lệnh trong thời gian ngắn.

Giao dịch qua API — Brokeli glossary · Brokeli