Chiến lược này được chuyển thể từ các bài viết của Enrico Malverti. Nó chủ yếu sử dụng Simple Moving Average (SMA) và Relative Strength Index (RSI) để xác định các tín hiệu đầu vào và đầu ra dài. Chiến lược chỉ đi dài nhưng không ngắn.
Tín hiệu nhập cảnh được kích hoạt khi giá đóng vượt qua đường SMA dài hơn.
Các tín hiệu ra ngoài bao gồm:
Đường SMA dừng lỗ và đường SMA lấy lợi nhuận cũng được vẽ.
Những lợi thế của chiến lược này:
Có một số rủi ro:
Giải pháp:
Chiến lược có thể được tối ưu hóa thêm:
Ý tưởng tổng thể rất đơn giản và rõ ràng. Với các chỉ số cơ bản và khả năng kiểm soát, nó phù hợp với giao dịch trung hạn và dài hạn. Nhưng điều chỉnh tham số và lọc chỉ số đòi hỏi rất nhiều thử nghiệm và tối ưu hóa để làm cho chiến lược vững chắc và đáng tin cậy hơn. Những ý tưởng đơn giản cần nỗ lực rất lớn về tối ưu hóa và kết hợp để hình thành các hệ thống giao dịch thực sự có thể sử dụng.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version= 4 // form the original idea of Enrico Malverti www.enricomalverti.com , trading system 2015 // https://sauciusfinance.altervista.org strategy(title="MAs & RSI strategy long only", overlay = true, max_bars_back=500) ///********FROM EMAS TO SIMPLE MA ***** // NON AGGIUNTO SCHAFF INDICATOR, che serve per discriminare quali titoli scegliere dallo screener (segnale già aperto o il primo o, a parità, //quello più alto) ==> Tolte le bande di Bollinger (che filtrano "poco") // INPUTS emapf = input(14, title ="Ma periodo veloce", minval=1, step = 1) emapl = input(14, title ="Ma periodo lungo", minval=1, step = 1) emaps = input(7, title ="Ma periodi stop", minval=1, step = 1) rsi_period = input(14, title="RSI period", minval = 1, step = 1) // CALCULATIONS maf = sma(close, emapf) mal = sma(close, emapl) // rsi myrsi = rsi(close, rsi_period) //ema stop long ed ema stop short //Ema7 messo da "massimo" a "chiusura" come target per posizioni short. Il limite è, in questo caso, sempre ema20 (più restringente - asimmetria) // in questo t.s., lo short viene soltanto indicato come "rappresentazione grafica", non agito mass = sma(close, emaps) masl = sma(low, emaps) ma200=sma(close,200) /// Entry strategy.entry("Long", true, when = crossover(close,mal)) rsi1 = crossunder(myrsi,70) rsi2 = myrsi > 75 // previously, 80 st_loss_long = crossunder(close,masl)// **chiusura sotto EMA7** target_long= crossunder(close,maf) //* Chiusura sotto EMA14* // exits. *RSI**Long: Target if over bandamax, loss if under bandamin. Viceversa, for short strategy.close("Long", when = rsi1, comment="crossunder RSI") strategy.close("Long", when = rsi2, comment ="RSI MAX") strategy.close("Long", when = st_loss_long, comment = "Stop loss") strategy.close("Long", when = target_long, comment = "target_long" ) plot(masl, title="ma stop long", color=#363A45, linewidth= 1, style=plot.style_cross) plot(maf, title="MA FAST", color=#FF0000, linewidth= 1) plot(mal, title="MA SLOW", color=#0000FF, linewidth= 2) plot(mass, title="ma stop short", color=#787B86,linewidth= 1, style=plot.style_cross) plot(ma200, title="ma200", color=color.black, linewidth= 1)