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.
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
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
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
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
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
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ố
Đ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
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)