
Đây là một chiến lược kết hợp RSI ngẫu nhiên, EMA chéo và VMACD để xác định điểm đảo ngược của thị trường, hoạt động tốt nhất khi xu hướng giảm sắp đảo ngược. Nó sẽ tạo ra tín hiệu mua khi điều kiện phù hợp.
Chiến lược này dựa trên sự kết hợp của một số chỉ số sau:
Một tín hiệu mua sẽ được tạo ra khi RSI ngẫu nhiên bật lên từ khu vực bán tháo và đi qua đường chậm trên đường nhanh EM và VMACD cũng bắt đầu tăng. Ngoài ra, một tín hiệu mua sẽ được tạo ra như là tín hiệu hỗ trợ nếu giá ngắn hạn phá vỡ SMA 10 chu kỳ.
Chiến lược này sẽ theo dõi sự thay đổi của các chỉ số này trong thời gian thực và tính toán các thông tin như SMA, EMA sau một khoảng thời gian nhất định. Khi kích hoạt điều kiện mua, giao dịch mua sẽ được mở bằng số lượng hợp đồng cố định. Sau đó, nếu kích hoạt điều kiện dừng lỗ, chẳng hạn như rút lại 5% hoặc nằm bên dưới đường SMA, giao dịch sẽ bị dừng.
Chiến lược này kết hợp nhiều chỉ số để xác định hiệu quả cơ hội đảo ngược thị trường. Những ưu điểm chính là:
Tóm lại, chiến lược này có thể nắm bắt hiệu quả các tín hiệu đảo ngược, tạo ra các vị trí nhiều đầu sau khi giảm xuống một mức độ nhất định, từ đó tạo ra lợi nhuận.
Mặc dù chiến lược này có một số ưu điểm, nhưng cũng có một số rủi ro cần lưu ý, bao gồm:
Đối với các rủi ro trên, có thể tối ưu hóa thêm bằng cách:
Chiến lược này có thể được tối ưu hóa thêm theo các hướng sau:
Chiến lược tìm kiếm sóng kết hợp VRSI-EMA và VMACD là một chiến lược tốt để xác định cơ hội đảo ngược giảm giá. Nó kết hợp nhiều chỉ số để tạo ra tín hiệu mua, có thể xác định hiệu quả thời gian đảo ngược.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Wavefinder+", overlay=true)
length = input(20)
confirmBars = input(2)
price = close
slow = input(12, "Short period")
fast = input(26, "Long period")
signal = input(9, "Smoothing period")
maFast = ema( volume * close, fast ) / ema( volume, fast )
maSlow = ema( volume * close, slow ) / ema( volume, slow )
da = maSlow - maFast
maSignal = ema( da, signal )
dm=da-maSignal
source = close
lengthRSI = input(14, minval=8), lengthStoch = input(14, minval=5)
smoothK = input(3,minval=3), smoothD = input(3,minval=3)
OverSold = input(25), OverBought = input(75)
rsi1 = rsi(source, lengthRSI)
rsi2= rsi(low, 20)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
k1= sma(stoch(rsi2, rsi2, rsi2, lengthStoch), smoothK)
d1= sma(k1, smoothD)
delta=k-d1
ma = ema(low, length)
ema5= ema(price,20)
sma= sma(price,10)
bcond = price < ma
lcond = price> ema5
bcount = 0
lcount= 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
lcount := lcond ? nz(lcount[1]) + 1 : 0
if (lcount>1 and change(k)>3 and k>d and k<55 and rising(dm,1)) or ( k[1]-k[2]<-2 and k-k[1]>5 and k>35 and k<80) or (ma-sma>0.05*sma and rising(sma,3) and rising(dm,2))
strategy.entry("Long", strategy.long, qty=10000/close)
if (bcount == confirmBars)
strategy.close("Long")
if close<0.99*sma
strategy.close("Long")
plot(0.99*sma)
plot(ma)
//hline(OverSold,color=blue)
//hline(OverBought,color=blue)
//plot(d, color=red)
//plot(k, color=green,title="k-line")
//(close-close[3]<-0.05*close[3]) or (close-close[2]<-0.05*close[2]) or (close-close[2]<-0.05*close[2]) or (close-close[4]<-0.05*close[4]) or
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)