Cette stratégie se base sur la croix dorée et la croix morte de 3 moyennes mobiles simples. Elle va long lorsque la SMA rapide traverse au-dessus de la SMA moyenne et la SMA moyenne traverse au-dessus de la SMA lente; elle va court lorsque le croisement inverse se produit.
Plus précisément, il utilise les croisements entre 3 SMA de différentes périodes pour le commerce. La SMA rapide représente la tendance à court terme, la SMA moyenne représente la tendance à moyen terme et la SMA lente représente la tendance à long terme. Lorsque les trois SMA se croisent à la hausse en séquence, cela indique une tendance haussière à long. Lorsque le croisement à la baisse se produit, cela indique une tendance à la baisse à court terme.
Les risques peuvent être gérés par la dimensionnement des positions, l'optimisation de la SMA, des stratégies de stop loss, etc.
Cette stratégie détient des positions basées sur 3 croisements de SMA pour déterminer la direction de la tendance. Les avantages sont des signaux clairs simples et la configuration; les inconvénients sont des signaux en retard et la dépendance des paramètres. Les performances peuvent être améliorées et les risques contrôlés grâce à l'optimisation des paramètres, stop loss, etc.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © DaynTrading //@version=4 // strategy( // title="Simple Moving Average Cross", // overlay=true, // initial_capital=5000, // default_qty_type=strategy.percent_of_equity, // default_qty_value=2, // commission_type=strategy.commission.percent, // commission_value=0.075, // pyramiding=0 // ) sma_top_input = input(title="SMA Top", type=input.integer, defval=20) sma_mid_input = input(title="SMA Mid", type=input.integer, defval=50) sma_low_input = input(title="SMA Low", type=input.integer, defval=200) bars_long = input(title="Long: After trigger, how many bars to wait?", type=input.integer, defval=5) bars_short = input(title="Short: After trigger, how many bars to wait?", type=input.integer, defval=5) sma_top = sma(close, sma_top_input) sma_mid = sma(close, sma_mid_input) sma_low = sma(close, sma_low_input) long = sma_top > sma_mid and sma_mid > sma_low short = sma_top < sma_mid and sma_mid < sma_low long_condition = long and long[bars_long] and not long[bars_long + 1] short_condition = short and short[bars_short] and not short[bars_short + 1] close_long = sma_top < sma_mid and sma_mid < sma_low and not long[bars_long + 1] close_short = sma_top > sma_mid and sma_mid > sma_low and not short[bars_short + 1] plot(sma_top, title="SMA Top", color=#95f252, linewidth=2) plot(sma_mid, title="SMA Mid", color=#FF1493, linewidth=2) plot(sma_low, title="SMA Low", color=#6a0dad, linewidth=2) strategy.entry("LongPosition", strategy.long, when = long_condition) strategy.entry("ShortPosition", strategy.short, when = short_condition) strategy.close("LongPosition", when = close_short) strategy.close("ShortPosition", when = close_long)