Python

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ểuMặc địnhMô tả
client_idstr""Client ID xác thực
api_keystr""API key từ SSI
api_secretstr""API secret từ SSI
private_keystr""Private key cho ký lệnh giao dịch
api_urlstr"https://api.ssi.com.vn"URL REST API (xác thực và market data luôn dùng URL này)
streaming_urlstr"wss://stream.ssi.com.vn/ws/v3"URL WebSocket streaming
trading_api_domainstr"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_domainstr"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_msint60000Timeout request (mili-giây)
max_retriesint5Số lần retry tối đa (chỉ request GET được retry)
retry_delay_msint2000Delay 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_secondint10Giới hạn request/giây (0 = không giới hạn)
max_batch_ordersint20Số 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
proxystr | NoneNoneProxy URL
user_agentstr | NoneNoneUser-Agent tuỳ chọn cho HTTP request và payload lệnh
auto_reconnectboolTrueTự mở lại kết nối streaming khi bị rớt; đặt False để tắt
otp_poll_interval_msint5000Khoảng cách giữa các lần polling duyệt Smart OTP (mili-giây)
otp_poll_max_wait_msint60000Tổng thời gian tối đa polling Smart OTP (mili-giây)
log_levelstr"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_secret sẽ làm luồng xác thực thất bại.
  • Thiếu private_key sẽ ảnh hưởng các nghiệp vụ ký lệnh giao dịch.
  • Cấu hình rate_limit_per_second phù 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_ms phù hợp với tải thực tế.

Trên trang này