
Chiến lược này xác định thời điểm mua thích hợp bằng cách tìm kiếm sự lệch nhiều đầu của chỉ số RSI để đánh giá thời điểm giá Bitcoin có thể tăng trở lại trong thời gian ngắn.
Sử dụng chỉ số RSI để xác định sự lệch nhiều đầu
Xác định RSI dưới ngưỡng
Xác định giá đóng cửa thấp hơn mức thấp bắt đầu
Xác định điều kiện thoát lỗ
Xác định điều kiện rút lợi nhuận
Sử dụng chỉ số RSI để đánh giá độ lệch nhiều đầu, có thể nắm bắt hiệu quả thời gian của giá trong thời gian ngắn
Kết hợp với RSI đánh giá điểm thấp, bạn có thể xác định vị trí mua cụ thể trước khi hồi phục
Thiết lập các điều kiện dừng lỗ và ngăn chặn để quản lý rủi ro và lợi nhuận của giao dịch
Chiến lược này tham khảo các đặc điểm của chỉ số RSI trong một số lượng lớn giao dịch Bitcoin thực và rất phù hợp cho Bitcoin short.
Cài đặt tham số chiến lược hợp lý, có thể thích ứng với các tình huống thị trường khác nhau, có lợi cho ứng dụng trên thực tế
RSI có thể không hiệu quả, nếu sai, sẽ dẫn đến tổn thất giao dịch
Chỉ số kỹ thuật đơn lẻ dễ tạo ra tín hiệu sai và nên được sử dụng kết hợp với các chỉ số khác
Cần chọn giá trị tham số phù hợp, nếu thiết lập không đúng sẽ ảnh hưởng đến lợi nhuận của chiến lược
Giao dịch đa chiều, cần chú ý đến xu hướng lớn, tránh hoạt động ngược
Cần chú ý đến chi phí giao dịch, giao dịch quá thường xuyên sẽ ảnh hưởng đến thu nhập cuối cùng
Các tham số tối ưu hóa nên được đánh giá lại thường xuyên, điều chỉnh chiến lược theo thị trường khác nhau
Có thể xem xét thêm các chỉ số khác như đường trung bình di chuyển, thiết lập các điều kiện lọc, giảm tín hiệu giả
Có thể thử nghiệm các thiết lập tham số của các chu kỳ khác nhau để tìm kiếm sự kết hợp tham số tốt nhất
Bạn có thể kết hợp các đánh giá về xu hướng ở cấp độ lớn hơn để tránh làm nhiều hơn khi xu hướng đảo ngược
Có thể thiết lập dừng động, khi lợi nhuận đạt đến một mức độ nhất định, điểm dừng sẽ tăng dần
Có thể thiết lập mức dừng lỗ khác nhau tùy thuộc vào tình huống nắm giữ vị trí cụ thể
Có thể giới thiệu các công nghệ như học máy để tự động tối ưu hóa các tham số
Chiến lược này xác định thời điểm mua bằng cách nắm bắt các chỉ số RSI đa đầu, đánh giá khả năng Bitcoin sẽ tăng trở lại trong thời gian ngắn. Chiến lược này đơn giản và hiệu quả, dựa trên nhiều kinh nghiệm thực tế, rất phù hợp với đường ngắn của Bitcoin. Tuy nhiên, chỉ số kỹ thuật đơn lẻ dễ tạo ra tín hiệu giả, cần được sử dụng với các chỉ số khác, đồng thời chú ý đến các vấn đề như tối ưu hóa tham số, thiết lập dừng lỗ, chi phí giao dịch.
/*backtest
start: 2023-11-02 00:00:00
end: 2023-11-09 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bullish Divergence Short-term Long Trade Finder", overlay=false)
max_range = 50
min_range = 5
///pivot_left = 25
pivot_right = 5
//Inputs
src = input(close, title="Source")
rsiBearCondMin = input.int(50, title="RSI Bearish Condition Minimum")
rsiBearCondSellMin = input.int(60, title="RSI Bearish Condition Sell Min")
rsiBullCondMin = input.int(40, title="RSI Bull Condition Minimum")
pivot_left = input.int(25, title="Look Back this many candles")
SellWhenRSI = input.int(75, title="RSI Sell Value")
StopLossPercent = input.int(5, title="Stop loss Percentage")
rsiPeriod = input.int(14, title="RSI Length")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiOverbought = input.int(70, title="RSI Overbought Level")
//RSI Function/ value
rsi_value = ta.rsi(src, rsiPeriod)
rsi_hour = request.security(syminfo.tickerid,'60',rsi_value)
rsi_4hour = request.security(syminfo.tickerid,'240',rsi_value)
rsi_Day = request.security(syminfo.tickerid,'D',rsi_value)
plot(rsi_value, title="RSI", linewidth = 2, color = color.black, display =display.all)
hline(50, linestyle = hline.style_dotted)
rsi_ob = hline(70, linestyle=hline.style_dotted)
rsi_os = hline(30, linestyle=hline.style_dotted)
fill(rsi_ob, rsi_os, color.white)
SL_percent = (100-StopLossPercent)/100
pivot_low_true = na(ta.pivotlow(rsi_value, pivot_left, pivot_right)) ? false : true
//create a function that returns truee/false
confirm_range(x) =>
bars = ta.barssince(x == true) //counts the number of bars since thee last time condition was true
min_range <= bars and bars <= max_range // makees sure bars is less than max_range(50) and greater than min_range(5)
// RSI higher check / low check
RSI_HL_check = rsi_value<rsiBullCondMin and rsi_value > ta.valuewhen(pivot_low_true and rsi_value<rsiBullCondMin, rsi_value,1) and confirm_range(pivot_low_true[1])
// price check for lower low
price_ll_check = low < ta.valuewhen(pivot_low_true, low, 1)
bullCond = price_ll_check and RSI_HL_check and pivot_low_true
//pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true
pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true
// RSI Lower check / high check ensuring that the RSI dips below 30 to start divergence
RSI_LH_check = rsi_value < ta.valuewhen(pivot_high_true and rsi_value>rsiBearCondMin, rsi_value,1) and confirm_range(pivot_high_true[1]) //and rsi_value[pivot_right] >= 65
// price check for lower low
price_hh_check = high > ta.valuewhen(pivot_high_true, high, 1)
bearCond = price_hh_check and RSI_LH_check and pivot_high_true and rsi_value[3] > rsiBearCondSellMin
plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bullCond ? color.green : color.new(color.white, 100)))
plotshape(bullCond ? rsi_value : na , text = "BUY", style = shape.labelup, location = location.absolute, color = color.green, offset =0, textcolor = color.white )
plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bearCond ? color.red : color.new(color.white, 100)))
plotshape(bearCond ? rsi_value : na , text = "Sell", style = shape.labelup, location = location.absolute, color = color.red, offset =0, textcolor = color.white )
//[bbUpperBand, bbMiddleBand, bbLowerBand] = ta.bb(src, bbPeriod, bbDev)
//Entry Condition
longCondition = false
//bullEntry = bullCond and RSI_HL_check and confirm_range(pivot_low_true[1])
if bullCond and close < ta.valuewhen(pivot_low_true, low, 1) and rsi_hour <40 ///and rsi_4hour<40 //and rsi_Day<50
strategy.entry("Long", strategy.long)
//Exit Condition
if (strategy.position_size > 0 and close < strategy.position_avg_price*SL_percent)
strategy.close("Long")
if (strategy.position_size > 0 and (rsi_value > SellWhenRSI or bearCond))
strategy.close("Long")