
Strategi ini adalah strategi multi-head yang menggunakan trend pengesanan RSI dan trend pengesanan MACD. Strategi ini menggabungkan garis rata-rata EMA sebagai penapis trend, dan mekanisme berhenti kecemasan untuk mengawal risiko.
Strategi ini bergantung terutamanya pada petunjuk RSI untuk menentukan arah trend. Apabila RSI memakai garis panjang RSI yang ditetapkan pada petunjuk RSI (default 21), menganggap bahawa pasaran mungkin akan berbalik ke arah kecenderungan lebah. Pada masa ini, jika MACD sudah berada dalam trend menurun, maka dapat dipastikan bahawa ia kini berada di titik pembalikan, merupakan masa yang lebih baik untuk melakukan lebih banyak.
Di samping itu, strategi ini juga memperkenalkan EMA rata-rata (default 200 cycle) sebagai penapis trend. Ia hanya akan dipertimbangkan apabila harga lebih tinggi daripada EMA rata-rata. Ini dapat menyaring dengan berkesan trend yang tidak jelas atau pembalikan palsu dalam trend menurun.
Dalam hal halangan, strategi ini menetapkan garis berhenti biasa dan garis berhenti kecemasan pada masa yang sama. Apabila RSI melintasi garis berhenti biasa (default 86) di bawahnya, ia akan ditutup; jika harga turun dengan ketara, ia akan ditutup tanpa syarat apabila RSI melintasi garis berhenti kecemasan (default 73) di bawahnya, untuk mengawal kerugian maksimum.
Secara keseluruhan, strategi ini adalah strategi pelbagai jenis trend yang lebih tradisional. Menggunakan RSI untuk mengenal pasti titik balik, penapisan MACD untuk membuat keputusan yang salah, EMA untuk menilai trend besar, dan mengawal risiko kerugian. Strategi ini lebih mudah, mudah difahami, mempunyai kelebihan tertentu dalam menilai perubahan harga, dan boleh digunakan sebagai salah satu strategi permulaan perdagangan kuantitatif.
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dravitch
//@version=4
strategy("RSI - BULL RUN (Improved)", overlay=true)
// Input
UseEmergency = input(true, "Use Emergency Exit?")
RSIlong = input(21, "RSI Long Cross")
RSIcloseLong = input(86, "RSI Close Long Position")
EmergencycloseLong = input(73, "RSI Emergency Close Long Position")
UseEMAFilter = input(true, "Use EMA Trend Filter")
EMAlength = input(200, "EMA Length for Trend Filter") // Utiliser 200 pour SMMA
// RSI
rsiValue = rsi(close, 14)
// MACD
[macdLine, signalLine, _] = macd(close, 12, 26, 9)
// EMA Trend Filter
emaTrend = sma(close, EMAlength) // Utiliser sma pour la SMMA (Simple Moving Average)
// Conditions pour les trades longs
trendUp = close > emaTrend
trendDown = close < emaTrend
longCondition = crossover(rsiValue, RSIlong) and trendDown or crossunder(macdLine, signalLine) and crossover(rsiValue, RSIlong)
longCloseCondition = crossunder(rsiValue, RSIcloseLong) and trendUp
emergencyLongCondition = crossunder(rsiValue, EmergencycloseLong)
// Plots
plot(rsiValue, color=color.white, linewidth=2, title="RSI")
// Strategy
if (longCondition)
strategy.entry("Long", strategy.long, alert_message='RSI Long Cross: LONG')
if (longCloseCondition)
strategy.close("Long", alert_message='RSI Close Long Position')
if (emergencyLongCondition and UseEmergency)
strategy.close("Long", alert_message='RSI Emergency Close Long')
// Plot EMA Trend Filter in a separate pane
plot(emaTrend, color=color.rgb(163, 0, 122), title="EMA Trend Filter", linewidth=2, style=plot.style_line, transp=0)
hline(0, "Zero Line", color=color.gray)