La stratégie Three SMA Crossover Momentum est une stratégie d'indicateur technique typique qui suit les tendances du marché. Elle combine des moyennes mobiles simples de 16-, 36- et 72 périodes et utilise leurs croisements haussiers et baissiers pour déterminer les tendances du marché, ainsi que la moyenne mobile adaptative Kaufman (KAMA) comme filtre pour prendre des positions longues ou courtes lorsque la direction de la tendance est relativement claire.
Les indicateurs de base de cette stratégie sont les moyennes mobiles simples de 16-, 36- et 72-périodes. Lorsque la SMA à courte durée traverse la moyenne à plus longue durée vers le haut, cela indique que le marché entre dans une tendance haussière. Lorsque la SMA à courte durée traverse la moyenne à plus longue durée vers le bas, cela indique que le marché entre dans une tendance baissière. Par exemple, lorsque la SMA à 16 périodes traverse la moyenne à 36 périodes et la moyenne à 72 périodes, c'est un signal haussier. Et lorsque la SMA à 16 périodes traverse la moyenne à 36 périodes et la moyenne à 72 périodes, c'est un signal baissier.
La moyenne mobile adaptative de Kaufman (KAMA) sert de filtre pour éviter les signaux erronés lorsque la tendance n'est pas claire.
La stratégie suit les situations de croisement des SMA pour prendre des positions longues ou courtes lorsque la tendance est relativement claire. La condition longue est 16-SMA traversant 36-SMA et 72-SMA avec KAMA linéaire. La condition courte est 16-SMA traversant en dessous de 36-SMA et 72-SMA avec KAMA linéaire.
Les avantages de cette stratégie sont les suivants:
Cette stratégie comporte également certains risques:
Les risques pourraient être réduits en ajustant les paramètres de la SMA, en fixant des contraintes de stop loss ou en ne les appliquant qu'aux marchés très volatils.
La stratégie peut être optimisée de la manière suivante:
La stratégie Three SMA Crossover Momentum est une stratégie plutôt classique et pratique de suivi des tendances dans l'ensemble. Elle juge efficacement les tendances du marché à moyen et à long terme grâce à des croisements de SMA à plusieurs périodes et filtre un peu de bruit. Elle peut servir d'indicateur de référence pour le trading de position. Mais cette stratégie présente également certaines faiblesses, nécessitant d'autres améliorations et optimisations pour se positionner sur des marchés plus diversifiés.
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Wielkieef //@version=5 strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) src = close Length1 = input.int(16, title=' 1-SMA Lenght', minval=1, group='SMA') Length2 = input.int(36, title=' 2-SMA Lenght', minval=1, group='SMA') Length3 = input.int(72, title=' 3-SMA Lenght', minval=1, group='SMA') SMA1 = ta.sma(close, Length1) SMA2 = ta.sma(close, Length2) SMA3 = ta.sma(close, Length3) Long_ma = SMA1 > SMA2 and SMA2 > SMA3 Short_ma = SMA1 < SMA2 and SMA2 < SMA3 LengthMainSMA = input.int(100, title=' Trend SMA ', minval=1) SMAas = ta.sma(src, LengthMainSMA) // Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef) lengthas = input.int(50, title=' KAMA Lenght') sp = input.bool(true, title=' Self Powered') er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas) pow = sp ? 1 / er : 2 per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow) a = 0. a := per * src + (1 - per) * nz(a[1], src) mad4h = 0. a_f = a / a[1] > .999 and a / a[1] < 1.001 ///. Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray barcolor(color=Bar_color) long_cond = Long_ma and SMAas < close and not a_f and close > a short_cond = Short_ma and SMAas > close and not a_f and close < a long_stop = Short_ma and SMAas < close short_stop = Long_ma and SMAas > close SMA1plot = plot(SMA1, color=Bar_color, linewidth=2) SMA2plot = plot(SMA2, color=Bar_color, linewidth=4) SMA3plot = plot(SMA3, color=Bar_color, linewidth=2) fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50)) if long_cond strategy.entry('Long', strategy.long) if short_cond strategy.entry('Short', strategy.short) strategy.close_all(when=long_stop or short_stop) //by wielkieef