
La stratégie de la dynamique de la croisée des trois équations est une stratégie d’indicateur technique typique pour suivre les tendances du marché. Elle combine trois moyennes mobiles simples de 16 cycles, 36 cycles et 72 cycles pour juger de la tendance du marché par leur croisement à plusieurs têtes et leur croisement à vide, et la moyenne mobile auto-adaptative de Kaufman comme filtre pour effectuer des opérations de plus ou de moins lorsque la direction de la tendance est plus claire.
Le centre de la stratégie est constitué de trois moyennes mobiles simples de 16 cycles, 36 cycles et 72 cycles. Lorsque la courte moyenne périodique traverse la plus longue moyenne périodique, le marché entre dans une tendance à la hausse. Lorsque la courte moyenne périodique traverse la plus longue moyenne périodique, le marché entre dans une tendance à la baisse.
La moyenne mobile adaptative de Kaufman (KAMA) est utilisée comme filtre pour éviter les signaux erronés lorsque la tendance n’est pas claire. Le signal de croisement linéaire uniforme est activé et exécuté uniquement lorsque KAMA est en mode non-accélération ou non-décélération (paragraphe linéaire).
La stratégie consiste à suivre les intersections de la ligne moyenne et, lorsque la tendance est plus claire, à effectuer des opérations de sur- ou de coupe. La condition de sur-opération est de traverser la ligne moyenne 36 et la ligne moyenne 72 sur la ligne moyenne 16 et de ne pas accélérer (KAMA); la condition de coupe est de traverser la ligne moyenne 36 et la ligne moyenne 72 sous la ligne moyenne 16 et de ne pas ralentir (KAMA).
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Il est possible de réduire le risque en ajustant le paramètre de la moyenne, en définissant des contraintes de stop loss ou en utilisant cette stratégie uniquement sur les marchés les plus volatiles.
Cette stratégie peut être optimisée de la manière suivante:
La stratégie de dynamique de croisement de trois lignes est une stratégie de suivi de tendance plus classique et pratique dans l’ensemble. Elle permet de juger de la tendance des lignes longues du marché en croisant les lignes moyennes sur plusieurs périodes et filtre efficacement une partie du bruit.
/*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