Chiến lược
Danh mục tiếp diễn sau nến xung lực trong ngày được đa dạng hóa trên các mã lớn (long-short, Binance USD-M, 1H, lệnh vào rời rạc theo sự kiện, giới hạn mỗi vị thế + tổng mức phơi nhiễm, mục tiêu ATR vượt phí)
Kết quả: Đã hủy bỏ
DiversifiedImpulseBarContinuationPortfolioLS1H
Đã thực sự khắc phục vấn đề giao dịch thưa và tập trung vào một sự kiện: 13,644 giao dịch trên 10 mã lấp đầy mọi cửa sổ, với lệnh vào rời rạc an toàn cho bộ máy và giới hạn mỗi vị thế/tổng mức phơi nhiễm (không có sai…
Giả thuyết
Triển khai
Chiến lược tiếp diễn nến xung lực long-short trong ngày, vận hành như danh mục đa dạng hóa trên 10 mã Binance USD-M chủ chốt có dữ liệu lịch sử dài, với nến 1H. Theo dõi riêng từng tài sản; khi lực đẩy có hướng và khối lượng cao (|thân nến|/ATR >= impulse_atr_mult AND khối lượng >= vol_mult x trung bình), mở một vị thế rời rạc theo hướng lực đẩy, thoát bằng mức dừng ATR hẹp, mục tiêu ATR rộng hơn hoặc giới hạn thời gian nắm giữ tối đa. Giới hạn giá trị danh nghĩa mỗi vị thế cùng giới hạn tổng mức phơi nhiễm gộp của danh mục; tối đa một vị thế trên mỗi tài sản.
Kết quả xác minh
CLEAN RESTART 2026-09-04 — lịch sử kết luận và hồ sơ học tập của lượt chạy này đã bị xóa, và lượt chạy được khởi động lại từ bước xác minh. Lần từ bỏ trước bắt nguồn từ quy trình, không phải thị trường: bộ kiểm thử Layer-2 gán sai các hàm trợ giúp @staticmethod (đã sửa), QA đưa ra kết luận hiệu suất cuối cùng dựa trên kiểm thử sơ bộ chưa tối ưu (đã bỏ — QA hiện chỉ đánh giá tính đúng đắn), và các lần hết thời gian trong môi trường sandbox do thiếu lượt chạy kiểm thử lịch sử (đã sửa). Giả thuyết và mã chiến lược không thay đổi. Hãy đánh giá mã dựa trên chính nó; hiệu suất sẽ được xác định sau bằng kiểm thử lịch sử đầy đủ và bộ tối ưu hóa.
Đánh giá backtest
- Sharpe
- -0.09
- Tổng lợi nhuận
- -95.05%
- Sụt giảm tối đa
- 96.24%
- Tổng số lệnh
- 13644
- Tỷ lệ thắng
- 38.6%
- Hệ số lợi nhuận
- 0.87
Đã thực sự khắc phục vấn đề giao dịch thưa và tập trung vào một sự kiện: 13,644 giao dịch trên 10 mã lấp đầy mọi cửa sổ, với lệnh vào rời rạc an toàn cho bộ máy và giới hạn mỗi vị thế/tổng mức phơi nhiễm (không có sai lệch thổi phồng giá trị danh nghĩa, không bị thanh lý)
Lỗ ròng: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI đến 100%) — vượt ngưỡng dừng cứng 50% (L19)
Lợi thế thấp hơn phí: avg_trade_return_pct 0.045% (dưới ngưỡng phí 0.15%, L22), profit_factor 0.87, kỳ vọng -$7.20/giao dịch, phí hoa hồng chiếm 12.4% tổng lợi nhuận gộp
Không có lợi thế đáng kể sau điều chỉnh rủi ro: Sharpe -0.088 (CI [-1.02, 0.61] khoảng tin cậy cắt qua mức không), PSR 0.41; thua lỗ trong 6 trên 7 năm (chỉ 2022 năm có lãi).
Đa dạng hóa không làm giảm rủi ro đuôi: độ nhọn 246, biến động hàng tháng +365%/-78%/-50%, 37 lệnh thua liên tiếp — bị chi phối bởi ngoại lệ, không có lợi thế ổn định
L30/L63 thuộc lớp tiếp diễn định hướng thuần OHLCV (0 sống sót); khả năng khái quát hóa danh mục làm tăng số giao dịch nhưng không cải thiện lợi thế mỗi giao dịch
Lịch sử vòng lặp
Xác minh thất bại (Layer 3 — kiểm thử lịch sử trong sandbox): kiểm thử sơ bộ vượt quá giới hạn thời gian thực 300s. Điều này gần như luôn có nghĩa là công việc trên mỗi nến tăng theo độ dài lịch sử — ví dụ quét lại toàn bộ chuỗi funding/dữ liệu bổ sung, hoặc dựng lại danh sách rồi gọi min()/sorted() bên trong calculate_signal()/on_bar() ở mỗi nến. Tính trước các mảng dấu thời gian đã sắp xếp ONCE trong __init__ và dùng bisect, hoặc lưu kết quả tra cứu theo dấu thời gian, để chi phí mỗi nến là O(log n) thay vì O(n).
Stratmill là công cụ nghiên cứu và giao dịch thử nghiệm (paper trading), không phải lời khuyên tài chính hay một nhà môi giới. Kết quả kiểm thử ngược và giao dịch thử nghiệm chỉ mang tính giả định. Giao dịch tiềm ẩn rủi ro thua lỗ.