
Strategi ini adalah berdasarkan pada artikel Enrico Malverti, yang menggunakan purata bergerak sederhana (SMA) dan indikator yang agak lemah (RSI) untuk mengenal pasti isyarat masuk dan kedudukan yang lebih banyak. Strategi hanya melakukan lebih banyak, tidak melakukan apa-apa.
Isyarat masuk adalah apabila harga penutupan melalui garis purata SMA dengan tempoh yang lebih lama.
Terdapat beberapa jenis isyarat imbang:
Pada masa yang sama, garis purata SMA berhenti dan garis purata SMA berhenti digambarkan.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Kaedah yang sesuai:
Strategi ini juga boleh dioptimumkan dalam beberapa arah:
Strategi ini secara keseluruhannya mudah difahami, menggunakan petunjuk asas, terkendali, dan sesuai untuk operasi garis panjang menengah. Tetapi tetapan parameter dan penapisan petunjuk memerlukan ujian dan pengoptimuman berulang untuk menjadikan strategi lebih stabil dan boleh dipercayai. Strategi yang sederhana juga memerlukan banyak penyesuaian dan pengoptimuman yang kaya untuk membentuk sistem perdagangan yang benar-benar boleh digunakan.
/*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)