La stratégie s'appelle
La logique de base de cette stratégie est de suivre le croisement des prix avec la moyenne mobile simple (SMA) de 21 jours.
Plus précisément, la stratégie demande un prix de clôture dans une plage de dates donnée et calcule différents SMA en fonction des périodes d'entrée.
En plus de calculer les SMA et de déterminer les croisements, la stratégie suit également la position actuelle. Elle entre en position lorsque les déclencheurs de signaux d'achat et aplatit la position lorsque les déclencheurs de signaux de vente.
Le plus grand avantage de cette stratégie est d'être simple et facile à comprendre et à mettre en œuvre. SMA est un indicateur technique couramment utilisé et SMA crossover est l'un des signaux de trading les plus courants.
Un autre avantage est que cette stratégie peut être optimisée en ajustant les paramètres de la SMA. Par exemple, nous pouvons tester différentes combinaisons de périodes de SMA pour trouver la meilleure pour des stocks spécifiques.
Le plus grand risque de cette stratégie est que les stratégies basées sur des indicateurs ont tendance à générer des faux signaux excessifs.
Par exemple, nous pouvons définir un ratio de perte maximale pour limiter le risque, ajuster les périodes SMA pour trouver des paramètres plus stables ou utiliser d'autres indicateurs pour filtrer certains signaux de trading.
La stratégie peut être optimisée dans les aspects suivants:
Testez et sélectionnez des combinaisons optimales de paramètres SMA. Re-testez différentes longueurs SMA pour trouver les meilleures périodes.
Ajoutez d'autres indicateurs pour filtrer la confirmation du signal, tels que RSI, MACD, etc. Cela aide à filtrer les faux signaux.
Incorporer une logique de stop-loss, définir une perte maximale tolérable ou un stop de trailing pour mieux contrôler les risques.
Optimisez le timing de l'entrée. envisagez d'entrer autour des principales ruptures plutôt que de suivre strictement le croisement SMA.
Testez des stratégies composites et combinez-les avec d'autres types de stratégies comme le suivi des tendances.
La stratégie réalise le trading automatisé avec des signaux de croisement SMA simples. Les avantages sont faciles à comprendre et à mettre en œuvre. Les inconvénients sont des signaux excessifs et sujets aux fouets. Nous pouvons l'améliorer en ajustant les paramètres, en ajoutant des filtres, en supprimant les pertes, etc. La stratégie nous fournit un cadre de base. Nous pouvons l'enrichir en incorporant plus de composants.
/*backtest start: 2023-02-15 00:00:00 end: 2024-02-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Price Cross Above/Below SMA Strategy", shorttitle="Tressy Strat", overlay=true) // Define start and end year inputs start_year = input.int(2022, title="Start Year") end_year = input.int(2022, title="End Year") // Define start and end month inputs start_month = input.int(1, title="Start Month", minval=1, maxval=12) end_month = input.int(12, title="End Month", minval=1, maxval=12) // Define SMA length inputs sma_length = input.int(21, title="SMA Length") sma_length_50 = input.int(50, title="50 SMA Length") sma_length_200 = input.int(200, title="200 SMA Length") // Filter data within the specified date range filter_condition = true filtered_close = request.security(syminfo.tickerid, "D", close[0], lookahead=barmerge.lookahead_on) // Define SMAs using the input lengths sma = ta.sma(filtered_close, sma_length) sma_50 = ta.sma(filtered_close, sma_length_50) sma_200 = ta.sma(filtered_close, sma_length_200) // Initialize position var bool in_position = false // Condition for a price cross above SMA within the date range cross_above = filter_condition and ta.crossover(filtered_close, sma) // Condition for a price cross below SMA within the date range cross_below = filter_condition and ta.crossunder(filtered_close, sma) // Buy condition if cross_above in_position := true // Sell condition if cross_below in_position := false // Strategy entry and exit if cross_above strategy.entry("Buy", strategy.long) if cross_below strategy.close("Buy") // Plot the SMAs on the chart plot(sma, color=color.blue, title="21 SMA") plot(sma_50, color=color.red, title="50 SMA") plot(sma_200, color=color.orange, title="200 SMA") // Plot the Buy and Sell signals with "tiny" size plotshape(cross_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal") plotshape(cross_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal")