Cấu hình
Tham chiếu đầy đủ các tham số Config của Python SDK
Config
Lớp Config là trung tâm cấu hình SDK. Tạo đối tượng Config với thông tin xác thực:
from ssi_sdk import Config
config = Config(
client_id="<CLIENT_ID>",
api_key="<API_KEY>",
api_secret="<API_SECRET>",
private_key="<PRIVATE_KEY_CONTENT>",
)Mọi khoảng thời gian trong Config tính bằng mili-giây và có hậu tố _ms. Tên cũ timeout, retry_delay, retry_after, poll_interval đã bị đổi từ 3.3.0 và gây TypeError. Tham số không có trong Config (kể cả device_id đã bị bỏ) cũng gây TypeError.
Tất cả tham số cấu hình
| Tham số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
client_id | str | "" | Client ID xác thực |
api_key | str | "" | API key từ SSI |
api_secret | str | "" | API secret từ SSI |
private_key | str | "" | Private key cho ký lệnh giao dịch |
api_url | str | "https://api.ssi.com.vn" | URL REST API (xác thực và market data luôn dùng URL này) |
streaming_url | str | "wss://stream.ssi.com.vn/ws/v3" | URL WebSocket streaming |
trading_api_domain | str | "https://api.ssi.com.vn" | URL REST API giao dịch (lệnh, FCO, tài khoản, danh mục). Khi để mặc định thì đi theo api_url; nhận cả host hoặc host:port (SDK thêm https://). Token và rate limit dùng chung. URL thực tế đọc qua Config.trading_api_url |
trading_ws_domain | str | "wss://api.ssi.com.vn/ws/v3/trading" | URL Trading WebSocket. Nhận host hoặc host:port (SDK thêm wss:// và /ws/v3/trading). URL thực tế đọc qua Config.trading_ws_url |
timeout_ms | int | 60000 | Timeout request (mili-giây) |
max_retries | int | 5 | Số lần retry tối đa (chỉ request GET được retry) |
retry_delay_ms | int | 2000 | Delay cơ sở giữa các lần retry (exponential backoff, mili-giây). Streaming cũng dùng làm base cho backoff reconnect |
rate_limit_per_second | int | 10 | Giới hạn request/giây (0 = không giới hạn) |
max_batch_orders | int | 20 | Số lệnh tối đa trong một request batch (đặt hoặc huỷ), cũng là giới hạn batch của Trading WebSocket. Giá trị không phải số nguyên hoặc nhỏ hơn 1 sẽ được đặt lại về 20 |
proxy | str | None | None | Proxy URL |
user_agent | str | None | None | User-Agent tuỳ chọn cho HTTP request và payload lệnh |
auto_reconnect | bool | True | Tự mở lại kết nối streaming khi bị rớt; đặt False để tắt |
otp_poll_interval_ms | int | 5000 | Khoảng cách giữa các lần polling duyệt Smart OTP (mili-giây) |
otp_poll_max_wait_ms | int | 60000 | Tổng thời gian tối đa polling Smart OTP (mili-giây) |
log_level | str | "INFO" | Mức log: DEBUG, INFO, WARNING, ERROR, CRITICAL |
Các endpoint (api_url, streaming_url, trading_api_domain, trading_ws_domain) để trống hoặc None sẽ dùng giá trị mặc định. repr(Config) che api_secret và private_key.
Cấu hình nâng cao
Debug logging
config = Config(
client_id="<CLIENT_ID>",
api_key="<API_KEY>",
api_secret="<API_SECRET>",
log_level="DEBUG",
)Tuỳ chỉnh retry & rate limit
config = Config(
client_id="<CLIENT_ID>",
api_key="<API_KEY>",
api_secret="<API_SECRET>",
max_retries=3,
retry_delay_ms=1000,
rate_limit_per_second=5,
)Tuỳ chỉnh Smart OTP polling và streaming
config = Config(
client_id="<CLIENT_ID>",
api_key="<API_KEY>",
api_secret="<API_SECRET>",
otp_poll_interval_ms=3000,
otp_poll_max_wait_ms=90000,
auto_reconnect=True,
)Batch order
max_batch_orders mặc định là 20. API reference (trade-order-batch-place) ghi giới hạn phía server là 50 lệnh mỗi request, trong khi mặc định của SDK là 20. Việc nâng Config.max_batch_orders do bên gọi quyết định; hãy theo giới hạn áp dụng cho API Key của bạn. Batch lớn hơn giá trị này bị SDK từ chối ngay (không gửi request). Xem Batch Order.
Trading WebSocket
Các domain trading_api_domain và trading_ws_domain dùng cho dịch vụ giao dịch REST và Trading WebSocket. Các tuỳ chọn riêng của Trading WebSocket (request_timeout_ms, signature_encoding, ping_interval_ms...) không nằm trong Config mà truyền vào trading_ws(auth, **options). Xem Trading WebSocket. Trading WebSocket cần private_key cho các lệnh thay đổi trạng thái.
Khuyến nghị
- Giữ thông tin khóa (
api_key,api_secret,private_key) trong secret manager. - Thiếu
api_key/api_secretsẽ làm luồng xác thực thất bại. - Thiếu
private_keysẽ ảnh hưởng các nghiệp vụ ký lệnh giao dịch. - Cấu hình
rate_limit_per_secondphù hợp với chính sách hệ thống. - Chỉ bật
log_level="DEBUG"trong môi trường phát triển. - Đặt
timeout_ms,max_retries,retry_delay_msphù hợp với tải thực tế.