
Chiến lược Binary Equilibrium Tracking là một chiến lược giao dịch định lượng dựa trên chỉ số Equilibrium. Chiến lược này chủ yếu sử dụng các đường nét vàng và đường nét chết của đường trung bình di chuyển để phát tín hiệu mua và bán.
Chiến lược này dựa trên ba chỉ số kỹ thuật:
Bước vượt chỉ số ((Supertrend): được sử dụng để xác định hướng xu hướng chính của giá. Khi chỉ số Supertrend thay đổi hướng, nó được coi là điểm biến đổi xu hướng giá, phát ra tín hiệu giao dịch.
Chỉ số RSI (Relative Strength Index): Một chỉ số xung đột được sử dụng để đánh giá tình trạng quá mua hoặc quá bán. Chiến lược này phát ra tín hiệu giao dịch khi chỉ số RSI cho thấy giá quá mua hoặc quá bán trong thời gian ngắn.
Chỉ số ADX (Average Directional Indicator): dùng để đánh giá cường độ của xu hướng. Chiến lược này kết hợp với ADX để đánh giá cường độ của xu hướng, chọn vào khi xu hướng mạnh hơn.
Khi chỉ số Supertrend thay đổi hướng, cho thấy xu hướng giá bị đảo ngược; đồng thời chỉ số RSI cho thấy hiện tượng mua bán quá mức, cho thấy mối quan hệ cung cấp nhu cầu ngắn hạn thay đổi, giá có thể đảo ngược; Ngoài ra, chỉ số ADX cho thấy xu hướng mạnh hơn, điều này cung cấp cơ hội cho chiến lược này. Cụ thể, khi có thay đổi hướng Supertrend, chỉ số RSI cho thấy bán tháo, và khi ADX> 20, phát đi nhiều tín hiệu; khi thay đổi hướng Supertrend, chỉ số RSI cho thấy mua bán quá mức, phát đi tín hiệu bán tháo.
Sử dụng hệ thống hai dòng đồng nhất, có thể theo dõi hiệu quả các thay đổi trong xu hướng giá, và Profit thu được lợi nhuận từ xu hướng.
Kết hợp với chỉ số RSI để đánh giá hiện tượng quá mua quá bán, tránh theo đuổi giá cao và thấp tại các điểm biến động giá.
Chỉ số ADX đánh giá cường độ của xu hướng, làm cho chiến lược này chủ yếu hoạt động khi xu hướng mạnh hơn và lợi nhuận từ xu hướng lớn.
Các tham số chiến lược đã được lựa chọn tối ưu hóa và hoạt động tốt trong thử nghiệm so sánh.
Chiến lược hai đường trung bình tự nó nhạy cảm hơn với sự thay đổi giá và có thể tạo ra nhiều tín hiệu giao dịch hơn. Giải pháp là điều chỉnh các tham số đường trung bình một cách thích hợp, giảm tần suất giao dịch.
Chỉ số RSI và chỉ số ADX có thể bị hỏng. Giải pháp là tối ưu hóa tham số, điều chỉnh chu kỳ tính toán chỉ số.
Chiến lược này cần chọn chiến lược dừng lỗ thích hợp. Giải pháp là thiết lập dừng động hoặc dừng đơn hợp lý.
Tối ưu hóa tần số giao dịch. Bạn có thể thử tối ưu hóa các tham số hệ thống đồng tuyến, điều chỉnh tần số giao dịch.
Có thể giới thiệu các chỉ số phụ trợ khác. Ví dụ như giới thiệu chỉ số khối lượng giao dịch, chọn nhập cảnh khi tham gia một trận đấu lớn.
Có thể kết hợp với thuật toán học máy để tối ưu hóa tham số. Sử dụng thuật toán để dự đoán sự kết hợp tham số tối ưu nhất.
Đưa ra cơ chế dừng lỗ. Thiết lập dừng di động hoặc dừng lỗ để kiểm soát tổn thất đơn lẻ.
Chiến lược này là một chiến lược theo dõi hai đường ngang, ý tưởng cốt lõi là theo dõi chỉ số đường ngang để xác định xu hướng giá, và kết hợp với chỉ số RSI và chỉ số ADX để chọn thời gian nhập cảnh. Ưu điểm của nó là có thể chạy theo xu hướng, nhập cảnh nhanh chóng khi hiện tượng bán tháo xuất hiện, và lợi nhuận từ xu hướng lớn. Rủi ro của chiến lược chủ yếu là do sự nhạy cảm của thay đổi giá, có thể phát sinh từ giao dịch thường xuyên.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=120,
initial_capital=1000, margin_long=0.1)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step=0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
strategy.entry("My Long Entry Id", strategy.long)
if ta.change(direction) > 0
strategy.close("My Long Entry Id") // Close long position
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)