Chiến lược theo dõi RSI MACD Crossover Double MA

Tác giả:ChaoZhang, Ngày: 2023-10-23 17:00:44
Tags:

img

Tổng quan

Chiến lược này kết hợp chỉ số RSI, chỉ số MACD và đường trung bình động kép để đạt được hiệu ứng theo dõi xu hướng và định vị trong thị trường biến động. Nó sử dụng chỉ số RSI để đánh giá các điều kiện mua quá mức và bán quá mức, MACD để xác định các điểm vào và ra với chéo MA nhanh và chậm, và MAs kép để lọc một số cơ hội giao dịch ồn ào trong xu hướng.

Chiến lược logic

  1. Tính toán chỉ số RSI cho quá mua và quá bán
  • Tính toán biến đổi giá xu hướng tăng và giảm

  • Tính toán chỉ số RSI dựa trên sự thay đổi giá

  • Xác định mức mua quá mức và mức bán quá mức

  1. Tính toán MACD cho crossover
  • Tính toán MA nhanh, MA chậm và đường tín hiệu

  • Vào dài trên thập giá vàng và ra ngoài trên thập giá chết

  • Xác định các tình huống chéo

  1. Thiết lập bộ lọc MA kép
  • Tính toán trung bình di chuyển nhanh và chậm

  • Chỉ xem xét giao dịch khi MA nhanh vượt qua MA chậm

  • lọc tiếng ồn và theo xu hướng

  1. Kết hợp các chỉ số nhập cảnh
  • Tín hiệu nhập khẩu lọc với RSI, MACD và double MA

  • Cải thiện tính chính xác và ổn định của chiến lược

Phân tích lợi thế

  • Kết hợp nhiều chỉ số cải thiện độ chính xác

  • Xu hướng sau lọc tiếng ồn và tăng cường sự ổn định

  • RSI phát hiện các điểm đảo ngược tiềm năng

  • MACD crossover cung cấp các tín hiệu nhập và xuất đơn giản

  • Double MA loại bỏ hầu hết các giao dịch chống xu hướng

  • Dễ hiểu với ít thông số, tốt cho việc học

Phân tích rủi ro

  • Nguy cơ quá phù hợp với nhiều chỉ số

  • MA gấp đôi hy sinh sự linh hoạt và có thể bỏ lỡ cơ hội

  • Các thông số RSI và MACD cần lựa chọn cẩn thận

  • Chú ý đến dừng lỗ dựa trên biểu tượng

  • Yêu cầu điều chỉnh lại định kỳ các thông số

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

  • Điều chỉnh các thông số RSI cho các biểu tượng khác nhau

  • Tối ưu hóa thời gian MA hai lần để theo dõi tốt hơn

  • Thêm stop loss để kiểm soát lỗ giao dịch duy nhất

  • Tích hợp nhiều chỉ số hơn để làm phong phú combo

  • Phát triển mô hình tham số thích nghi cho tự động điều chỉnh

Tóm lại

Chiến lược này kết hợp RSI, MACD và double MA để xác định và theo dõi xu hướng, và lọc tín hiệu thông qua nhiều lớp. Nó rất phù hợp cho người mới bắt đầu học và cải thiện. Ưu điểm nằm ở sự đơn giản và thích nghi của nó.


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// strategy(title="RSI MACD", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.25, initial_capital = 1000)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//standard rsi template
src = ohlc4, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=#87ff1a)
band1 = hline(80)
band = hline(50)
band0 = hline(20)
fill(band1, band0, color=purple, transp=90)

//macd

fast_length = input(title="Fast Length",  defval=9)
slow_length = input(title="Slow Length",  defval=72)
signal_length = input(title="Signal Length",  defval=9)

fast_ma = sma(rsi, fast_length) 
slow_ma = sma(rsi, slow_length) 
shortma = sma(ohlc4, fast_length)
longma = sma(ohlc4, slow_length)
controlmainput = input(title = "Control MA", defval = 234)
controlma = sma(ohlc4, controlmainput)
macdx = fast_ma - slow_ma
signalx = sma(macdx, signal_length)
hist = macdx - signalx
ma_hist = shortma - controlma
macd = macdx + 50
signal = signalx + 50

plot(macd,"macd", color = fuchsia)
plot(hist,"hist", style = histogram, color = fuchsia)
//plot(ma_hist,"ma hist", style = histogram, color = orange)
plot(signal,"signal", color = white)

//input
control_buy_toggle = input(true, "Buy on crossover control MA?", type = bool)
buy_on_control = control_buy_toggle == true? true : false

//conditions
buy = buy_on_control == true? ma_hist > 0 and shortma > longma and crossover(macd,signal) or crossover(shortma, controlma) : ma_hist > 0 and shortma > longma and crossover(macd,signal)
sell = ma_hist > 0 and shortma > longma and crossunder(macd,signal)
stop = crossunder(shortma, longma) or crossunder(shortma, controlma)

plotshape(buy,"buy", shape.triangleup, location.bottom, green, size = size.tiny)
plotshape(sell,"sell", shape.triangledown, location.bottom, red, size = size.tiny)
plotshape(stop,"stop",shape.circle,location.bottom, white, size = size.tiny)

if testPeriod()
    strategy.entry("buy", true, when = buy, limit = close)
    strategy.close("buy", when = sell)
    strategy.close("buy", when = stop)
    



Thêm nữa