
Cette stratégie utilise un signal croisé de 50 cycles de moyenne mobile lisse (SMMA) et de 20 cycles de moyenne mobile simple (SMA) pour déterminer le moment de l’achat et de la vente. Elle génère un signal d’achat lorsque la SMA rapide monte au-dessus de la SMMA lente et génère un signal de vente lorsque la SMA descend au-dessus de la SMMA.
une combinaison de différents paramètres (nombre de cycles, conditions de filtrage, etc.) peut être testée pour trouver le paramètre optimal;
Le signal de filtrage peut être combiné avec d’autres facteurs, tels que l’augmentation de la circulation;
les outils d’optimisation des paramètres peuvent être utilisés pour trouver les paramètres optimaux;
D’autres méthodes d’arrêt, telles que l’arrêt mobile et l’arrêt proportionnel, peuvent être envisagées.
Le stop loss dynamique peut être calculé en fonction de la volatilité du marché.
La stratégie fonctionne de manière simple, en capturant l’orientation de la tendance par une double ligne de symétrie; l’utilisation flexible de stop-loss fixes et de stop-loss dynamiques permet de verrouiller les bénéfices et de contrôler les risques, les risques et les bénéfices. La stratégie de récapitulation peut être adaptée à un environnement de marché plus large en optimisant les paramètres et les règles.
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true)
// Define 50 SMMA
smma50 = sma(close, 50)
// Define 20 SMA
sma20 = sma(close, 20)
// Plotting the SMMA and SMA
plot(smma50, color=color.blue, title="50 SMMA")
plot(sma20, color=color.red, title="20 SMA")
// Initialize TP and SL variables
tp = 150
var float sl_price = na
// Buy Signal
buySignal = crossover(sma20, smma50)
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price)
// Sell Signal
sellSignal = crossunder(sma20, smma50)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price)
// Update stop loss level on every crossover
if (buySignal or sellSignal)
sl_price := close[bar_index + 1]
// Plot Stop Loss level
plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)