Chiến lược RSI đảo ngược Breakout quá bán

Tác giả:ChaoZhang, Ngày: 2023-12-22 15:00:48
Tags:

img

Tổng quan

Chiến lược RSI bán quá mức là một chiến lược giao dịch thuật toán sử dụng chỉ số RSI để xác định tình huống bán quá mức và đi dài khi giá đảo ngược. Chiến lược đặt ngưỡng RSI ở mức 30 - khi RSI dưới 30, nó được coi là bán quá mức, và tại thời điểm đó một vị trí dài được mở. Chiến lược khóa lợi nhuận thông qua các quy tắc dừng lỗ và lấy lợi nhuận nghiêm ngặt.

Chiến lược logic

Chiến lược RSI Reversal Breakout Oversold sử dụng chỉ số RSI 14 giai đoạn. Khi chỉ số RSI giảm xuống dưới 30, nó được đánh giá là quá bán. Điều này chỉ ra rằng giá đã giảm liên tục trong giai đoạn trước và hiện đang ở trạng thái quá bán, vì vậy thị trường sắp đảo ngược và giá có thể bắt đầu tăng. Chiến lược mở một vị trí dài vào thời điểm này để tìm kiếm cơ hội đảo ngược.

Cụ thể, khi chỉ số RSI <30 và trong thời gian kiểm tra lại, một tín hiệu dài được kích hoạt để mở một vị trí. Sau đó đặt stop loss ở mức 1% dưới giá nhập và lấy lợi nhuận ở mức 7% trên. Khi giá tăng trên mức lấy lợi nhuận hoặc giảm dưới mức stop loss, đóng vị trí.

Toàn bộ chiến lược tăng vốn bằng cách xác định các điểm đầu vào đảo ngược bán quá mức và thiết lập dừng lỗ và lấy lợi nhuận để khóa lợi nhuận.

Phân tích lợi thế

Chiến lược RSI Reversal Breakout Oversold có những lợi thế sau:

  1. Bắt giữ các cơ hội dài do sự đảo ngược bán quá mức, đó là một chiến lược giao dịch tương đối đáng tin cậy.

  2. Sử dụng chỉ số RSI để xác định các điểm nhập cảnh, chuyên nghiệp hơn so với hành động giá trực tiếp.

  3. Các thiết lập dừng lỗ nghiêm ngặt và lấy lợi nhuận kiểm soát hiệu quả rủi ro và lợi nhuận của mỗi giao dịch.

  4. Dữ liệu backtest cho thấy rằng chiến lược có lợi nhuận cao và tỷ lệ thắng.

  5. Dễ hiểu, người mới bắt đầu có thể sử dụng nó dễ dàng.

Phân tích rủi ro

Chiến lược RSI Reversal Breakout Oversold cũng có một số rủi ro:

  1. Mặc dù chỉ số RSI dưới 30 làm tăng xác suất đảo ngược, điều kiện thị trường phức tạp và thay đổi, và thất bại vẫn có thể xảy ra, kích hoạt dừng lỗ tại thời điểm này.

  2. Điểm dừng lỗ quá gần với khả năng xảy ra nhóm dừng lỗ cao.

  3. Các thiết lập cửa sổ thời gian backtest không chính xác có thể sai lệch kết quả thử nghiệm. Thời gian backtest nên được điều chỉnh để đánh giá đầy đủ hiệu suất chiến lược.

  4. Việc lựa chọn token giao dịch không đúng cũng có thể ảnh hưởng đến lợi nhuận.

Tối ưu hóa

Vẫn còn chỗ để tối ưu hóa Chiến lược RSI Reversal Breakout Oversold:

  1. Điều chỉnh các thông số RSI và kiểm tra tác động của các thông số khác nhau đối với lợi nhuận chiến lược.

  2. Kiểm tra các cặp giao dịch khác nhau và chọn các đồng xu dễ bay hơi hơn.

  3. Điều chỉnh các thông số dừng lỗ và lấy lợi nhuận để tìm sự kết hợp thông số tối ưu.

  4. Thêm các bộ lọc chỉ số khác, chẳng hạn như chỉ nhập sau khi giá phá vỡ một mức trung bình động nhất định.

  5. Kiểm tra các thông số khoảng thời gian khác nhau để tìm thời gian nhập tốt nhất.

Tóm lại

Chiến lược RSI Reversal Breakout Oversold dễ hiểu và hoạt động tổng thể, nắm bắt các cơ hội đảo ngược từ các tình huống quá bán để kiếm lợi nhuận. Ưu điểm lớn nhất của chiến lược là dễ hiểu ngay cả cho người mới bắt đầu. Đồng thời, cơ chế dừng lỗ và lấy lợi nhuận nghiêm ngặt cũng làm cho rủi ro có thể kiểm soát được. Bước tiếp theo là tối ưu hóa từ các hướng như điều chỉnh các tham số và thêm các chỉ số lọc để làm cho hiệu suất chiến lược thậm chí tốt hơn.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brodieCoinrule

//@version=4
strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100



// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
oversold= input(30)


//Entry 
strategy.entry(id="long", long = true, when = RSI< oversold and window())

//Exit
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())



Thêm nữa