
Chiến lược này được sử dụng để đánh giá điểm biến động giá bằng cách kết hợp sử dụng đường hai chiều, chỉ số tương đối mạnh (RSI) và chỉ số đường parallax (PSAR) để thực hiện các hoạt động mua và bán khi điểm biến động xảy ra. Chiến lược này thuộc về chiến lược giao dịch đảo ngược.
Chiến lược này chủ yếu sử dụng các chỉ số kỹ thuật sau để xác định điểm đảo ngược giá:
Đường trung bình kép: tính trung bình di chuyển nhanh (MA nhanh) và trung bình di chuyển chậm (MA chậm). Khi đi qua đường chậm trên đường nhanh, đánh giá là thị trường nhiều đầu, làm nhiều; khi đi qua đường chậm dưới đường nhanh, đánh giá là thị trường trống, làm trống.
Chỉ số RSI: RSI đánh giá tình trạng quá mua và quá bán bằng cách tính toán mức tăng và giảm trung bình trong một khoảng thời gian. RSI lớn hơn 70 là vùng quá mua và nhỏ hơn 30 là vùng quá bán.
Chỉ số PSAR: Chỉ số SAR phân tích xu hướng. Bên dưới điểm SAR là thị trường đa đầu và trên là thị trường đầu không.
Chỉ số ADX: ADX đánh giá sức mạnh của xu hướng bằng cách tính toán cường độ định hướng của biến động giá. ADX lớn hơn 20 cho thấy xu hướng, nhỏ hơn 20 cho thấy sự cân bằng.
Theo các chỉ số trên, logic của các tín hiệu mua và bán như sau:
Tín hiệu mua: Giao dịch trên đường nhanh đi qua đường chậm, RSI nhỏ hơn 30 (vùng bán tháo), điểm SAR ở trên giá, ADX lớn hơn 20, phát ra tín hiệu mua.
Tín hiệu bán: Hướng nhanh đi qua đường chậm, RSI lớn hơn 70 (vùng mua quá mức), điểm SAR ở bên dưới giá, ADX lớn hơn 20, phát ra tín hiệu bán.
Khi có tín hiệu mua và bán, hãy thiết lập vị trí nhiều và trống với tỷ lệ 10% tương ứng. Khi tín hiệu đảo ngược không hiệu quả, hãy dừng vị trí bằng phẳng kịp thời.
Sử dụng đường hai chiều để xác định hướng của xu hướng lớn, thêm các chỉ số như RSI và SAR để loại bỏ các tín hiệu sai, có thể xác định chính xác hơn điểm đảo ngược.
Sử dụng kết hợp các chỉ số khác nhau để tránh các tín hiệu sai lầm do chỉ số kỹ thuật đơn lẻ gây ra.
Thiết lập các điều kiện dừng lỗ để kiểm soát rủi ro hiệu quả.
Chiến lược hoạt động đơn giản, rõ ràng và dễ thực hiện.
Chiến lược này có nhiều cách để đối phó với sự sụt giảm của thị trường và có thể áp dụng cho nhiều tình huống khác nhau.
Khi hai đường trung bình tạo ra tín hiệu không đầu, có thể xảy ra phá vỡ giả, cần phải đánh giá kết hợp với các chỉ số khác. Có thể kéo dài chu kỳ đường trung bình một cách thích hợp, hoặc thêm chỉ số Brin để đánh giá tính xác thực của đột phá.
Chỉ số RSI có thể tạo ra tín hiệu sai vì các tham số được đặt không đúng. Các tham số RSI nên được điều chỉnh thích hợp, đồng thời thêm các chỉ số khác để xác nhận tín hiệu RSI.
Khi ADX thấp hơn 20, nên tạm dừng giao dịch để tránh giao dịch đảo ngược của thị trường không định hướng. Hoặc giảm thông số chu kỳ của ADX một cách thích hợp.
Cài đặt điểm dừng của SetStringry quá nhỏ, có thể gây ra lỗ không cần thiết. Cài đặt điểm dừng hợp lý theo mức độ biến động của thị trường.
Tần suất giao dịch có thể quá cao, có thể điều chỉnh chu kỳ đường hai chiều một cách thích hợp để giảm tần suất giao dịch.
Kiểm tra kết hợp đường trung bình của các chu kỳ khác nhau để tìm tham số tối ưu.
Kiểm tra các thiết lập tham số khác nhau của RSI để tối ưu hóa phán quyết mua quá mức.
Cố gắng thêm các chỉ số khác, chẳng hạn như Binance, KDJ, để làm phong phú các tín hiệu mua và bán.
Thiết lập cơ chế dừng lỗ động theo các giống và tình hình thị trường khác nhau.
Thêm chiến lược quản lý vị trí để lợi nhuận có thể theo dõi xu hướng tốt hơn.
Kiểm tra các tham số ADX khác nhau để tìm ra giá trị tốt nhất để xác định cường độ của xu hướng.
Thêm mô-đun tự động dừng lỗ để chiến lược có thể tự động dừng lỗ.
Chiến lược này sử dụng hai đường cong để đánh giá xu hướng lớn, kết hợp với các chỉ số như RSI, SAR để lọc tín hiệu đảo ngược, sau khi thiết lập tham số tối ưu hóa, có thể đánh giá hiệu quả điểm đảo ngược giá, để nắm bắt xu hướng trước và sau khi đảo ngược. Trong thực tế, nên chú ý đến việc kiểm soát rủi ro, thiết lập điều kiện dừng lỗ hợp lý và tiếp tục tối ưu hóa tham số để làm cho chiến lược ổn định hơn và lợi nhuận cao hơn. Nói chung, chiến lược này kết hợp với các chỉ số chéo, suy nghĩ rõ ràng và dễ sử dụng, là một chiến lược đảo ngược đáng tin cậy.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close
//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)
//ADX Init
adxlen = input(30, title="ADX Smoothing")
dilen = input(30, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1])
//////////////////// Algo
//if (rsi>50 and n1>n2)
//strategy.exit("Close", "Short")
// strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
//strategy.exit("Close", "Long")
// strategy.entry("Short", strategy.short)
//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver
//short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close
//Entry
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)
/////////////////////
///PLOT
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//plot(short,"short",color=red,linewidth=1)
//
//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
//strategy.exit(id="Stop", profit = 20, loss = 100)