Chiến lược này cố gắng xác định các cơ hội ngắn hạn mà Bitcoin có khả năng tăng lên bằng cách tìm kiếm các mô hình chênh lệch tăng trong chỉ số RSI, và do đó xác định các điểm đầu vào tốt cho các giao dịch dài.
Xác định chênh lệch tăng với chỉ số RSI
Kiểm tra xem giá trị RSI dưới ngưỡng
Kiểm tra xem giá đóng là dưới mức thấp khác biệt trước đó
Định nghĩa các điều kiện thoát khỏi lỗ dừng
Xác định các điều kiện thoát khỏi lợi nhuận
Sử dụng chênh lệch chỉ số RSI có thể nắm bắt hiệu quả các cơ hội tăng giá ngắn hạn
Kết hợp với ngưỡng thấp RSI giúp xác định các điểm nhập cảnh cụ thể
Các thiết lập dừng lỗ và lấy lợi nhuận giúp quản lý rủi ro và phần thưởng
Chiến lược tham chiếu rất nhiều kinh nghiệm giao dịch thực tế với tín hiệu Bitcoin RSI và rất phù hợp với Bitcoin scalping dài
Cài đặt tham số hợp lý làm cho chiến lược thích nghi với các điều kiện thị trường khác nhau và tốt cho giao dịch trực tiếp
Sự khác biệt của chỉ số RSI có thể thất bại, dẫn đến việc mất giao dịch nếu được xác định sai
Một chỉ số duy nhất có xu hướng tạo ra tín hiệu sai, nên kết hợp với các chỉ số khác
Cần phải chọn đúng các giá trị tham số, cài đặt không đúng ảnh hưởng đến lợi nhuận
Giao dịch dài cần xem xét xu hướng tổng thể, tránh giao dịch chống lại xu hướng
Cần phải cảnh giác với chi phí giao dịch, giao dịch tần số cao ảnh hưởng đến lợi nhuận
Cần kiểm tra lại và tối ưu hóa các thông số thường xuyên dựa trên thị trường thay đổi
Xem xét thêm các chỉ số khác như trung bình động cho điều kiện bộ lọc để giảm tín hiệu sai
Kiểm tra các thiết lập thời gian khác nhau trên mỗi khung thời gian để tìm kết hợp tối ưu
Kết hợp phân tích xu hướng khung thời gian cao hơn để tránh mua theo xu hướng đảo ngược
Thực hiện stop loss động dần dần tăng stop khi mức lợi nhuận tăng lên
Điều chỉnh tỷ lệ dừng lỗ dựa trên kích thước vị trí cụ thể
Giới thiệu máy học để tối ưu hóa tham số tự động
Chiến lược này nhằm mục đích xác định các cơ hội phục hồi ngắn hạn của Bitcoin bằng cách phát hiện các chênh lệch tăng RSI và xác định các điểm đầu vào dài tốt. Chiến lược này đơn giản và hiệu quả, kết hợp rất nhiều kinh nghiệm giao dịch thực tế, làm cho nó rất phù hợp với giao dịch dài Bitcoin. Tuy nhiên, việc dựa vào một chỉ số duy nhất có xu hướng tạo ra tín hiệu sai, vì vậy nó nên được kết hợp với các chỉ số khác.
/*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")