Chiến lược nhảy vọt giá trung bình động kép

Tác giả:ChaoZhang, Ngày: 2023-11-21
Tags:

img

Tổng quan

Chiến lược này sử dụng chỉ số RSI để xác định các điều kiện mua quá mức và bán quá mức, kết hợp với một hệ thống đánh giá xu hướng được xây dựng với các đường trung bình động nhanh, trung bình và chậm, để xác định cơ hội mở các vị trí dài hoặc ngắn khi giá đang nhảy vọt.

Nguyên tắc chiến lược

  1. Sử dụng chỉ số RSI để xác định các điều kiện mua quá mức và bán quá mức

    • Parameter RSI được thiết lập ở 14 giai đoạn
    • Đường bán quá mức ở mức 30, đường mua quá mức ở mức 70
  2. Sử dụng ba đường SMA của các giai đoạn khác nhau để xác định xu hướng

    • Fast line là SMA 9 giai đoạn, đại diện cho xu hướng ngắn hạn
    • Đường trung bình là đường SMA 50 giai đoạn, đại diện cho xu hướng trung hạn
    • Đường chậm là SMA 200 giai đoạn, đại diện cho xu hướng dài hạn
  3. Khi đường nhanh vượt qua đường trung bình, và chỉ số RSI cho thấy quá bán, mua dài

  4. Khi đường nhanh vượt dưới đường trung bình, và chỉ số RSI cho thấy mua quá mức, đi ngắn

  5. Stop loss được thiết lập ở mức 4% giá nhập cảnh

  6. Lấy lợi nhuận được thực hiện theo lô, đầu tiên lấy lợi nhuận 20%, sau đó lấy 15% khi giá tiếp tục tăng, ra khỏi các vị trí dần dần

Phân tích lợi thế

  1. Sử dụng ba đường SMA của các giai đoạn khác nhau có thể đánh giá sự thay đổi xu hướng trên các khung thời gian khác nhau
  2. Sử dụng chỉ số RSI tránh mở các vị trí bên ngoài các khu vực mua quá mức / bán quá mức
  3. Lợi nhuận hàng loạt tăng thời gian nắm giữ và lợi nhuận trung bình của chiến lược

Phân tích rủi ro

  1. Khả năng tín hiệu sai từ ba đường trung bình động
  2. Rủi ro lợi nhuận không hoàn chỉnh khi thực hiện
  3. Cần phải chọn các công cụ phù hợp với biến động giá cao

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

  1. Có thể kiểm tra các tham số sửa đổi của các đường trung bình động và RSI để tối ưu hóa nhập và ra
  2. Có thể thêm các chỉ số khác để lọc các mẫu nến vv để cải thiện độ chính xác
  3. Có thể theo dõi stop loss để kiểm soát rủi ro hơn nữa

Tóm lại

Chiến lược này kết hợp các chỉ số trung bình động và chỉ số RSI mua quá mức / bán quá mức. Bằng cách nắm bắt sự thay đổi xu hướng giá trong khi đánh giá cơ hội giao dịch, nó thuộc về một chiến lược theo dõi xu hướng thường được sử dụng. Tăng cường tối ưu hóa hơn và tăng tỷ lệ thắng có thể đạt được thông qua kiểm tra tham số và kết hợp các chỉ số phán đoán phụ trợ bổ sung.


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
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/
// © syfuslokust

//@version=4
strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true)


// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
//Normal
oversold = input(30)
overbought =  input(70)
//ALGO
//oversold= input(26)
//overbought= input(80)

//sell pct
SellPct = input(20)
ExitPct = input(15)

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Look Back
inp_lkb = input(12, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

//Entry 

//MA
bullish = crossover(movingaverage_signal, movingaverage_fast)
//Execute buy
strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid))

//when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold)

//Exit

//RSI
Stop_loss= ((input (4))/100)
longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
//MA
bearish = crossunder(movingaverage_signal, movingaverage_fast)
//Execute sell
strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid)
//when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice))


//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2, title="signal")
plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast")
plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow")
plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")

Thêm nữa