
La stratégie est basée sur l’article d’Enrico Malverti et utilise principalement les moyennes mobiles simples (SMA) et l’indicateur relativement faible (RSI) pour identifier les signaux d’entrée et de position à plusieurs niveaux. La stratégie fait plus, pas moins.
Le signal d’entrée est une position de plus ouverte lorsque la moyenne SMA a traversé un cycle plus long sur le prix de clôture.
Les signaux de plafonnement sont les suivants:
La moyenne SMA de stop-loss et la moyenne SMA de stop-loss sont dessinées simultanément.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
La réponse:
Cette stratégie peut également être optimisée dans les directions suivantes:
L’idée générale de la stratégie est claire et compréhensible, elle utilise des indicateurs de base, est très contrôlable et convient aux opérations sur des lignes moyennes et longues. Cependant, la configuration des paramètres et le filtrage des indicateurs doivent être testés et optimisés à plusieurs reprises pour rendre la stratégie plus stable et fiable.
/*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)