Stratégie de croisement à double SMA

Auteur:ChaoZhang est là., Date: 23 janvier 2023 16h42h58
Les étiquettes:

img

Résumé

La stratégie du double SMA Crossover génère des signaux de trading en calculant le croisement de deux lignes SMA avec des paramètres différents. Lorsque la ligne SMA plus rapide traverse au-dessus de la ligne SMA plus lente, un signal d'achat est généré. Lorsque la ligne SMA plus lente traverse au-dessous de la ligne SMA plus rapide, un signal de vente est généré. La stratégie utilise deux ensembles de paramètres SMA en même temps, l'un pour déterminer les points d'entrée, et l'autre pour déterminer les points de sortie.

La logique de la stratégie

Cette stratégie utilise deux ensembles de paramètres SMA,smaB1, smaB2pour les signaux d'achat, etsmaS1, smaS2Pour les signaux de vente, qui représentent respectivement des moyennes mobiles plus lentes et plus rapides.smaB1croix au dessussmaB2, un signal d'achat est généré.smaS2croix en dessoussmaS1, un signal de vente est généré, ce qui permet un ajustement flexible des conditions d'entrée et de sortie pour s'adapter à l'évolution des conditions du marché.

Plus précisément, cette stratégie surveille les situations de croisement entre les deux lignes SMA calculées à partir du prix de clôture pour déterminer le moment de l'achat et de la vente. Lorsque la ligne SMA plus rapide traverse au-dessus de la ligne SMA plus lente, il est jugé que la tendance de prix est à la hausse, donc allez long à ce moment-là. Et lorsque la ligne SMA plus lente traverse au-dessous de la ligne SMA plus rapide, la tendance de prix se retourne vers le bas, donc sortez des positions longues.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. L'utilisation d'un double système de croisement des moyennes mobiles permet de régler de manière flexible les critères d'entrée et de sortie pour s'adapter aux changements du marché
  2. Les lignes SMA elles-mêmes peuvent filtrer un peu de bruit et générer des signaux de trading plus fiables
  3. Les combinaisons de paramètres SMA personnalisables permettent une optimisation des paramètres pour différents produits

Analyse des risques

Il existe également certains risques associés à cette stratégie:

  1. Les signaux croisés SMA peuvent être retardés et ne pas générer de signaux en temps opportun autour des points de virage.
  2. Une mauvaise sélection des paramètres SMA peut entraîner trop de faux signaux
  3. Les signaux générés dans des conditions de marché volatiles peuvent ne pas fonctionner correctement

Pour contrôler les risques ci-dessus, des méthodes telles que l'optimisation des paramètres SMA, le stop loss dynamique pour verrouiller les bénéfices, etc., peuvent être utilisées pour améliorer la stratégie.

Directions d'optimisation

Quelques orientations d'optimisation pour cette stratégie:

  1. Testez plus de combinaisons de paramètres SMA pour trouver les paramètres optimaux
  2. Ajouter une confirmation de volume pour éviter de faux signaux lors de fortes fluctuations de prix
  3. Combiner d'autres indicateurs (par exemple MACD, RSI) pour filtrer les signaux croisés SMA
  4. Ajouter des stratégies de stop loss pour verrouiller les profits et réduire les pertes

Résumé

La stratégie de croisement SMA génère des signaux de trading simples et efficaces en calculant les situations de croisement entre deux lignes SMA. La flexibilité d'ajustement des paramètres rend cette stratégie adaptable à différents produits, et c'est une stratégie couramment utilisée.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna

//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)

smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2

plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2020, 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)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        
window()  => time >= start and time <= finish ? true : false 

longCondition = crossover(sma(close, smaB1),sma(close, smaB2))

if (window() and longCondition)
    strategy.entry("BUY", strategy.long)

shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))

if (window() and shortCondition)
    strategy.entry("SELL", strategy.short)
    
    
    

Plus de