RSI Axial Moving Average Crossover chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-23 16:45:55
Tags:

img

Tổng quan

Chiến lược chéo trung bình chuyển động trục của RSI tạo ra tín hiệu giao dịch bằng cách tính toán chỉ số RSI và đường trung bình chuyển động đơn giản của nó và quan sát các đường chéo vàng và đường chéo chết giữa hai. Chiến lược cũng kết hợp các dải Bollinger để thêm phán quyết hỗ trợ / kháng cự cho đường trung bình chuyển động trục của RSI.

Chiến lược logic

Chiến lược này đầu tiên tính toán chỉ số RSI 14 ngày, tiếp theo là đường trung bình di chuyển đơn giản 8 ngày của chỉ số RSI.

Đồng thời, chiến lược bổ sung Bollinger Bands để xác định xem đường trung bình động trục của RSI có tương đối quá tải bằng cách tính lệch chuẩn, do đó tránh mua đỉnh và bán đáy.

Phân tích lợi thế

Chiến lược chéo trung bình chuyển động trục của chỉ số RSI kết hợp chỉ số xu hướng RSI và đường trung bình chuyển động chỉ số theo đường cong, có thể xác định hiệu quả xu hướng thị trường và ngẫu nhiên.

Bollinger Bands được thêm vào trong chiến lược này sử dụng nguyên tắc lệch chuẩn để tự động điều chỉnh chiều rộng của các đường dẫn trên và dưới, ngăn chặn hiệu quả các tín hiệu giao dịch sai. Khi Bollinger Bands hẹp lại, nó cho thấy sự thay đổi đang dần chậm lại, phù hợp để tìm kiếm cơ hội đảo ngược. Khi Bollinger Bands mở rộng, nó cho thấy một giai đoạn biến động thị trường dữ dội, phù hợp để theo dõi xu hướng.

Phân tích rủi ro

Rủi ro lớn nhất của Chiến lược chéo trung bình động trục RSI là sự tụt hậu của chỉ số RSI và các đường trung bình động. Khi các biến động thị trường nhanh xảy ra, tính toán chỉ số và phán đoán xu hướng sẽ tụt hậu đến một mức độ nào đó. Điều này sẽ dẫn đến tăng điểm mua và giảm điểm bán.

Một rủi ro lớn khác là sự sai lệch của các chỉ số khi xu hướng thị trường chuyển từ tăng sang giảm hoặc ngược lại, trong khi các chỉ số RSI và MA không phản ứng kịp thời, dẫn đến thua lỗ giao dịch.

Các giải pháp bao gồm điều chỉnh các thông số RSI một cách thích hợp, rút ngắn thời gian MA, thêm các chỉ số xu hướng để hỗ trợ đánh giá và mở rộng phạm vi dừng lỗ một cách thích hợp.

Hướng dẫn tối ưu hóa

Chiến lược chéo trung bình động trục RSI có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các thông số RSI: Điều chỉnh chiều dài RSI để cân bằng độ nhạy và ổn định

  2. Tối ưu hóa các tham số MA: Điều chỉnh các tham số MA loại và thời gian để tối ưu hóa theo xu hướng

  3. Thêm cơ chế dừng lỗ: Đặt chuyển động hoặc thời gian dừng lỗ để kiểm soát lỗ duy nhất

  4. Bao gồm các chỉ số xu hướng: Thêm MACD, KDJ v.v. để tránh đánh giá sai về sự đảo ngược

  5. Xác minh nhiều khung thời gian: Sử dụng khung thời gian dài hơn để xác định xu hướng để tránh bị mắc kẹt

Kết luận

Chiến lược chéo trung bình động trục của RSI là một chiến lược giao dịch định lượng trưởng thành. Nó kết hợp các lợi thế của nhiều chỉ số kỹ thuật và có thể nắm bắt các chuyển động thị trường chính thống thông qua điều chỉnh tham số và tối ưu hóa đa chiều. Rủi ro lớn nhất là sự tụt hậu của các chỉ số, cần phải giải quyết bằng cách dừng lỗ để kiểm soát lỗ. Khi được thực hiện đúng cách, chiến lược này có thể mang lại lợi nhuận đầu tư tương đối ổn định.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Copyright (c) 2020-present, Alex Orekhov (everget)
// Corrected Moving Average script may be freely distributed under the terms of the GPL-3.0 license.
strategy('rsisma', shorttitle='rsisma')

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.blue)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")


long = ta.crossover(rsi, rsiMA)
short = ta.crossunder(rsi, rsiMA)
if long
    strategy.entry("long", strategy.long)
if short
    strategy.close("long", comment = "long TP")

 
// long1 = close * 9
// long2 = long1 / 100
// long3 = long2 + close


//plot(long3,color=color.blue)
// if short
//     strategy.entry("short", strategy.short)
// if long
//     strategy.close("short", comment = "short TP")




Thêm nữa