La tendance haussière croisée de la SMA suivant la stratégie

Auteur:ChaoZhang est là., Date: 2024-02-04 à 14h56.
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de suivi de tendance à long terme basée sur le croisement des moyennes mobiles simples (SMA). Elle génère des signaux d'achat lorsque la SMA de courte durée traverse la SMA de longue durée et suit la tendance haussière.

La logique de la stratégie

La stratégie utilise principalement les signaux de croisement golden cross de l'indicateur SMA pour déterminer le moment de l'entrée. Plus précisément, elle calcule respectivement le SMA de 9 périodes et le SMA de 21 périodes. Lorsque le SMA à court terme de 9 périodes traverse le SMA à plus long terme de 21 périodes par le bas, cela indique que le prix passe de la consolidation à une tendance haussière, ce qui est un bon moment pour suivre la tendance. La stratégie générera ensuite un signal d'achat pour suivre la tendance.

En outre, la stratégie définit également dynamiquement le profit et le stop-loss en fonction de 1,5% et 1% du prix d'entrée. Cela signifie que le profit sera de 1,5% au-dessus du prix d'entrée et le stop-loss sera de 1% en dessous.

Les avantages

  • L'utilisation de la SMA pour déterminer l'entrée filtre le bruit du marché à court terme et capte les tendances à moyen et long terme.
  • Les périodes SMA sont réglables et peuvent être ajustées pour s'adapter aux tendances sur différentes périodes.
  • Le mécanisme de gestion des risques est complet et permet de contrôler les pertes d'une seule transaction en ajustant le ratio risque/rendement.
  • La stratégie est simple à comprendre, adaptée aux débutants dans le trading quantitatif.

Risques et solutions

  • Les signaux croisés SMA peuvent avoir de fausses ruptures, causant des pertes inutiles.
  • Le take profit et le stop loss sont relativement fixes, ce qui peut entraîner un profit attendu mais une perte réelle.
  • Le ratio risque/rendement est fixe et ne peut pas s'adapter à l'évolution de la volatilité du marché.
  • Il y a un certain décalage de temps. On peut envisager de réduire les périodes SMA ou d'introduire des indicateurs de pointe.

Des possibilités d'amélioration

  • Ajouter d'autres indicateurs pour filtrer les signaux croisés SMA et éviter les faux signaux, par exemple KDJ, indicateurs de volatilité, etc.
  • Le système de gestion des risques est un système de gestion des risques.
  • Utiliser l'ATR et d'autres indicateurs pour ajuster dynamiquement le ratio risque/rendement en fonction de la volatilité du marché.
  • Réduire les périodes SMA ou introduire des indicateurs de pointe pour réduire les délais.

Conclusion

Il s'agit d'une tendance à moyen et long terme suivant une stratégie basée sur le croisement SMA. Il identifie les tendances avec SMA et contrôle les risques en définissant le profit et le stop loss. L'avantage est qu'il est simple et facile à mettre en œuvre, adapté aux débutants dans le trading quantitatif.


/*backtest
start: 2023-01-28 00:00:00
end: 2024-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Masterdata

//@version=5
strategy("Simple MA Crossover Long Strategy v5", overlay=true)

// Define the short and long moving averages
shortMa = ta.sma(close, 9)
longMa = ta.sma(close, 21)

// Plot the moving averages on the chart
plot(shortMa, color=color.green)
plot(longMa, color=color.orange)

// Generate a long entry signal when the short MA crosses over the long MA
longCondition = ta.crossover(shortMa, longMa)
if (longCondition)
    strategy.entry("Long", strategy.long)

// Define the take profit and stop loss as a percentage of the entry price
takeProfitPerc = 1.5 / 100 // Take profit at 1.5% above entry price

stopLossPerc = 1.0 / 100 // Stop loss at 1.0% below entry price

// Calculate the take profit and stop loss price levels dynamically
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPerc)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPerc)

// Set the take profit and stop loss for the trade
if (longCondition)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfitLevel, stop=stopLossLevel)

Plus de