Basé sur une simple stratégie de trading croisée à double moyenne mobile


Date de création: 2023-12-25 16:03:48 Dernière modification: 2023-12-25 16:03:48
Copier: 0 Nombre de clics: 643
1
Suivre
1623
Abonnés

Basé sur une simple stratégie de trading croisée à double moyenne mobile

Aperçu

Cette stratégie est basée sur le principe de la fourche dorée des moyennes mobiles simples (SMA). La stratégie utilise deux SMA, soit le SMA rapide et le SMA lent, qui génèrent un signal d’achat lorsque le SMA rapide franchit le SMA lent par le bas et un signal de vente lorsque le SMA rapide franchit le SMA lent par le haut.

Principe de stratégie

La stratégie repose principalement sur deux lignes de l’indicateur SMA. Parmi celles-ci, les réglages plus courts pendant les SMA rapides permettent de capturer plus rapidement les variations de prix; les réglages plus longs pendant les SMA lents permettent de filtrer une partie du bruit. Lorsque les SMA rapides croisent les SMA lents en bas, cela signifie que les prix à court terme augmentent plus rapidement, ce qui génère un signal d’achat.

Les paramètres de la stratégie peuvent être adaptés à différents environnements de marché en définissant différents paramètres de cycle SMA. De plus, la stratégie permet de définir des intervalles de temps de rétrogradation, ce qui facilite le test des paramètres de la stratégie sur des données historiques.

Analyse des avantages

  • Le principe est simple et compréhensible, en utilisant l’indicateur SMA bien connu.
  • Paramètres de cycle SMA personnalisables et adaptatifs
  • Une plage de temps de réponse réglable pour une optimisation des paramètres
  • La génération de signaux par croisement a un effet de filtrage sur les signaux de rupture, ce qui réduit les erreurs de transaction.

Analyse des risques

  • La SMA est en retard et risque de rater des opportunités de raccourcis
  • L’effet de ces signaux peut être instable si la force de la tendance n’est pas déterminée.
  • Les paramètres de la période SMA sont mal configurés, ce qui augmente le signal d’erreur

Les mesures suivantes peuvent être prises pour contrer ces risques:

  • Réduire les cycles SMA et augmenter la sensibilité
  • L’intensité de la tendance combinée à d’autres indicateurs
  • Trouver la meilleure combinaison de paramètres avec l’outil d’optimisation des paramètres

Direction d’optimisation

  • Augmenter les stratégies de stop-loss et contrôler les pertes individuelles
  • Amélioration des mécanismes de gestion des positions
  • Combinaison avec d’autres indicateurs techniques
  • Ajout d’algorithmes d’apprentissage automatique pour optimiser les paramètres dynamiques

Résumer

Cette stratégie est une stratégie de suivi de tendance typique. Elle utilise un principe simple de croisement biuniversale, qui permet d’obtenir de meilleurs résultats de suivi, à condition que les paramètres soient configurés de manière appropriée. Cependant, la SMA elle-même est un peu en retard et ne permet pas de juger de la force de la tendance.

Code source de la stratégie
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD')

strategy(title="SMA Cross Entry & Exit Strategy", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/


// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 36, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open , title = "Slow MA Source")
maSlowLength   = input(defval = 46, title = "Slow MA Period", minval = 1)

// === SERIES SETUP ===
// a couple of ma's..
maFast = sma(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
//enterLong = crossover(maFast, maSlow)
//exitLong = crossover(maSlow, maFast)
enterLong = crossover(maSlow, maFast)
exitLong = crossover(maFast, maSlow)


// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)