Cột kỹ thuật

Xử lý TP/SL -2021: thách thức kỹ thuật khi hỗ trợ alt giá thấp

Tháng 1/2026

Phát hiện vấn đề

Tháng 1/2026, lệnh TP (chốt lời) thất bại trên GALA, JASMY và alt giá thấp. Thông báo lỗi: -2021: Order would immediately trigger.

Đây không phải lỗi đơn giản mà là vấn đề cấu trúc về độ chính xác giá và kiểm tra hướng TP. Coin giá cao (BTC, ETH…) ổn định, alt giá thấp lỗi liên tục.

Hiện tượng:

  • GALA (giá ~$0.02) — TP thất bại
  • JASMY (giá ~$0.01) — TP thất bại
  • Alt giá thấp khác — tương tự
  • BTC, ETH — không lỗi

Nguyên nhân gốc

1. Không khớp tên khóa — độ chính xác giá bị cố định

Nguyên nhân thứ nhất là không khớp tên khóa trong `trader.py`:

Mã có vấn đề:

# trader.py
price_prec = exchange_info.get('pricePrecision', 2)  # key 'pricePrecision'
# Phản hồi thực tế có thể là 'price_precision'

# Kết quả: price_prec luôn = 2
# Alt giá thấp cần 3–4 chữ số nhưng bị cố định 2 → tính sai giá

API Binance có thể trả độ chính xác dưới pricePrecision hoặc price_precision; mã chỉ đọc một dạng nên độ chính xác luôn cố định ở 2.

2. Thiếu kiểm tra hướng TP

Nguyên nhân thứ hai: trong `binance_client.py` không có kiểm tra hướng TP.

Tình huống:

  • LONG:TP phải cao hơn giá hiện tại
  • SHORT:TP phải thấp hơn giá hiện tại
  • Lỗi:SHORT mà TP > giá hiện tại — không bắt được

TP sai do độ chính xác vẫn đi qua kiểm tra, Binance trả -2021.

Giải pháp

1. Tương thích hai dạng tên khóa

Hỗ trợ cả hai định dạng:

Mã đã sửa:

# trader.py
price_prec = (
    exchange_info.get('pricePrecision') or 
    exchange_info.get('price_precision') or 
    2
)

# Lấy đúng độ chính xác giá

2. Tự phát hiện alt giá thấp và ép độ chính xác

Tự nhận alt giá thấp và áp độ chính xác phù hợp.

Logic:

  • Giá trong 0.001–0.02 → coi là alt giá thấp
  • Ép độ chính xác 3–4 chữ số
  • Áp dụng khi tính TP/SL

3. Thêm kiểm tra hướng TP

Kiểm tra hướng TP theo phía vị thế:

Logic kiểm tra:

# binance_client.py
def validate_tp_sl_direction(position_side, current_price, tp_price):
    """
    - LONG: TP > current_price
    - SHORT: TP < current_price
    """
    if position_side == 'LONG':
        if tp_price <= current_price:
            raise ValueError(...)
    elif position_side == 'SHORT':
        if tp_price >= current_price:
            raise ValueError(...)
    
    return True

Chặn lệnh sai hướng trước khi gọi API.

Hiệu quả và kiểm chứng

Sau xử lý

  • TP thành công trên GALA, JASMY
  • Alt giá thấp — tính TP/SL chính xác
  • Kiểm tra hướng chặn lệnh sai
  • Coin giá cao — hoạt động như cũ

Cách kiểm chứng

  • Nhiều alt giá thấp
  • Nhiều mức giá 0.001–0.02
  • LONG và SHORT
  • Môi trường thật trên sàn

Bài học kỹ thuật

1. Đa dạng định dạng API

Phản hồi bên ngoài có thể đổi — cần tương thích nhiều khóa/phiên bản.

2. Test biên

Phải test đủ edge case (alt giá thấp, cực đoan). Giá cao ổn không có nghĩa alt giá thấp ổn.

3. Kiểm tra nhiều lớp

Một lớp kiểm tra không đủ — cần chuỗi: độ chính xác giá, hướng TP, trạng thái vị thế…

4. Thiết kế trung lập tài sản

Mọi loại tài sản cùng một lớp an toàn — alt giá thấp hay cổ phiếu, TP/SL phải chính xác; đó là nguyên tắc engine AI tài chính trung lập tài sản.

Hướng cải tiến

  • Tự động hóa phát hiện độ chính xác mạnh hơn (động, theo dải giá, theo sàn)
  • Gom logic kiểm tra — chuỗi kiểm tra — tự sửa khi thất bại
  • DB đặc tính từng coin, học từ lịch sử, cảnh báo sớm

Góc nhìn R&D và nhà đầu tư

  • Ổn định vận hành trong nhiều tình huống
  • Mở rộng sang nhiều loại tài sản
  • Quy trình xử lý ghi lại rõ — có thể kiểm chứng
  • Giảm tái phát nhờ cấu trúc
  • Tin cậy khi đã nghĩ tới edge case

Không chỉ sửa lỗi mà là cải thiện cấu trúc về ổn định và tin cậy.

Kết luận

Xử lý TP/SL -2021 là cải thiện cấu trúc nhằm nâng độ ổn định và tin cậy của hệ thống AI tài chính, không chỉ vá lỗi.

Tương thích khóa, tự phát hiện alt giá thấp, kiểm tra hướng TP giúp cùng một lớp an toàn hoạt động chính xác trên mọi loại tài sản — bước quan trọng cho engine trung lập tài sản.

Chúng tôi tiếp tục cải tiến để hệ thống ổn định trong mọi bối cảnh.