Chiến lược này xác định hướng nến trong tương lai bằng cách phân tích giá đóng so với giá mở của N nến trong quá khứ.
Logic cốt lõi của chiến lược này là:
Đặt tham số NUM_CANDLES để xác định số lượng nến để phân tích.
Định nghĩa hàm candle_dir để xác định hướng của một nến duy nhất. close>open là tăng, close
Định nghĩa hàm count_candles để đếm số lượng nến với một hướng nhất định trong nến NUM_CANDLES trong quá khứ.
Đếm số lượng nến tăng, giảm và trung tính trong nến NUM_CANDLES trong quá khứ, lưu trữ trong ups, dns, neu.
Định nghĩa chỉ số chỉ số, giá trị của nó bằng ups-dns cộng/trừ neu.
Xác định đầu vào dài / ngắn dựa trên chỉ số Indic.
Bằng cách phân tích hướng nến của một số nến nhất định, chiến lược này ước tính xác suất hướng nến trong tương lai cho các quyết định giao dịch.
Logic chiến lược là rõ ràng và dễ hiểu, giải thích và xác minh.
Chỉ cần dữ liệu nến, giảm chi phí tính toán.
Dễ dàng điều chỉnh độ nhạy bằng cách điều chỉnh tham số NUM_CANDLES.
Áp dụng cho tất cả các sản phẩm và khung thời gian, khả năng thích nghi cao.
Dễ dàng tối ưu hóa các thông số để tìm kết hợp tốt nhất.
Không thể xử lý thị trường giới hạn phạm vi, có thể gây ra giao dịch quá mức.
Thời gian lấy mẫu không phù hợp có thể gây ra sự chậm trễ tín hiệu, NUM_CANDLES cần điều chỉnh cẩn thận.
Không thể thích nghi với xu hướng đảo ngược, nguy cơ mất mát trong xu hướng đảo ngược.
Tác động chi phí giao dịch cần được xem xét để tránh giao dịch quá mức.
Cẩn thận quá phù hợp trong tối ưu hóa tham số, yêu cầu xác minh đa thị trường.
Xem xét thêm stop loss vào limit loss.
Kết hợp với chỉ số xu hướng để tránh giao dịch ngược xu hướng.
Tăng kích thước mẫu hoặc sử dụng khung thời gian ngắn hơn để cải thiện tính ổn định.
Xem xét hợp chất đa thị trường để cải thiện tỷ lệ thắng.
Sử dụng máy học để tối ưu hóa tham số tự động.
Chiến lược này xác định hướng giao dịch bằng cách phân tích hướng nến, với logic rõ ràng và đơn giản. Độ nhạy có thể được kiểm soát thông qua điều chỉnh tham số.
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Refined CandleCounter Strategy by origo", overlay=true) // how many candles to count NUM_CANDLES = 7 // determine candle direction candle_dir = close > open ? 1 : (round(close-open) == 0 ? 0 : -1) // return # of candles with a given direction count_candles(dir, max) => count = 0 for i = 0 to max if candle_dir[i] == dir count := count + 1 count ups = count_candles(1, NUM_CANDLES) dns = count_candles(-1, NUM_CANDLES) neu = count_candles(0, NUM_CANDLES) indic = ups-dns if indic > 0 indic := indic+neu else indic := indic-neu plotarrow(neu, title="UP vs DN") longCondition = (indic) > 0 shortCondition = (indic) <= 0 strategy.entry("buy", strategy.long, 1, when = longCondition and not shortCondition) strategy.entry("sell", strategy.short, 1, when = shortCondition and not longCondition)