Stratégie de négociation quantitative basée sur la SMA et l'EMA

Auteur:ChaoZhang est là., Date: 2023-12-12 12:31:25 Je vous en prie.
Les étiquettes:

img

I. Vue d'ensemble de la stratégie

Cette stratégie s'appelle Quantitative Trading Strategy Based on SMA and EMA. Son idée principale est de combiner des lignes SMA et des lignes EMA avec différents paramètres pour construire des signaux de trading.

II. Principe de stratégie

  1. Calculer le SMA9, le SMA50, le SMA180 du prix de clôture et l'EMA20.

  2. Déterminez les signaux d'achat et de vente en fonction de la relation entre le prix de clôture et le support sup et résistance res. Générez un signal d'achat BuySignal lorsque la clôture passe par sup, et générez un signal de vente SellSignal lorsque la clôture passe par res.

  3. Lorsque vous achetez des signaux déclencheurs, exécutez une stratégie de position longue; lorsque vous vendez des signaux déclencheurs, fermez une position longue.

  4. Lorsque vous vendez des signaux déclencheurs, exécutez une stratégie de position courte; lorsque vous achetez des signaux déclencheurs, fermez une position courte.

III. Analyse des avantages

  1. La combinaison de plusieurs moyennes mobiles pour former des signaux de trading améliore la précision et la stabilité.

  2. Le calcul du support et de la résistance dynamiques rend les signaux de trading plus fiables.

  3. L'adoption de moyennes mobiles à volatilité élevée, moyenne et faible tient compte à la fois de la tendance à long terme et des percées à court terme, ce qui améliore la rentabilité de la stratégie.

  4. Le soutien à la fois des positions longues et courtes peut générer des bénéfices sur les marchés tendance et latéraux.

IV. Analyse des risques

  1. La SMA a un effet de retard, ce qui peut retarder les signaux d'achat et de vente et affecter les performances de la stratégie.

  2. Sans mécanisme de stop loss, les pertes peuvent s'étendre.

  3. Les données des tests antérieurs sont insuffisantes et les paramètres doivent être ajustés en fonction du marché.

  4. S'appuyant sur des indicateurs techniques, incapable de faire face aux événements du cygne noir.

Les solutions:

  1. Ajustez correctement les périodes SMA.
  2. Définir un stop loss raisonnable.
  3. Augmenter la taille de l'échantillon pour le backtesting, ajuster les paramètres.
  4. Améliorer les mécanismes de contrôle des risques.

V. Optimisation

  1. L'établissement doit fournir des informations détaillées sur les risques liés à l'établissement et les risques liés à l'établissement.

  2. Ajouter des modèles d'apprentissage automatique pour aider à juger des tendances et à générer des signaux.

  3. Ajouter une analyse des prix clés pour améliorer la précision des supports et des résistances.

  4. Testez différentes combinaisons de paramètres pour trouver de meilleurs paramètres.

Résumé

Cette stratégie combine les indicateurs techniques de SMA et EMA pour construire des signaux de trading, et calcule le support dynamique et la résistance pour former une logique complète d'achat et de vente.

]


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

//@version=4
strategy(title="StrategySMA 9/50/180 | EMA 20 | BUY/SELL", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//SMA and EMA code
smaInput1 = input(9, title="SMA1")
smaInput2 = input(50, title="SMA2")
smaInput3 = input(180, title="SMA3")
emaInput1 = input(20, title="EMA1")
sma1 = sma(close, smaInput1)
sma2 = sma(close, smaInput2)
sma3 = sma(close, smaInput3)
EMA1 = ema(close, emaInput1)
plot(sma1, color= color.red , title="SMA1")
plot(sma2, color = color.blue, title="SMA2")
plot(sma3, color= color.white, title="SMA3")
plot(EMA1, color = color.yellow, title="EMA1")

no=input(3,title="BUY/SELL Swing")
Barcolor=input(false,title="BUY/SELL Bar Color")
Bgcolor=input(false,title="BUY/SELL Background Color")
res=highest(high,no)
sup=lowest(low,no)
avd=iff(close>res[1],1,iff(close<sup[1],-1,0))
avn=valuewhen(avd!=0,avd,0)
tsl=iff(avn==1,sup,res)

// Buy/sell signals
BuySignal = crossover(close, tsl)
SellSignal = crossunder(close, tsl)

// Enter long position
strategy.entry("Buy", strategy.long, when=BuySignal)

// Exit long position
strategy.exit("Sell", "Buy", when=SellSignal)

// Enter short position
strategy.entry("Sell", strategy.short, when=SellSignal)

// Exit short position
strategy.exit("Buy", "Sell", when=BuySignal)

colr = close>=tsl ? color.green : close<=tsl ? color.red : na
plot(tsl, color=colr)


Plus de