Stratégie de rupture de la moyenne mobile double

Auteur:ChaoZhang est là., Date: 2024-02-04 16:06:46 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de rupture de la moyenne mobile double est une tendance typique suivant la stratégie de trading quantitative. Elle génère des signaux de trading en calculant des moyennes mobiles simples de différentes périodes et en vérifiant si le prix les traverse pour déterminer les positions.

La logique de la stratégie

La logique de base de la stratégie de double MA est de:utiliser des moyennes mobiles de différentes périodes pour capturer les tendances des prix et générer des signaux de négociation lorsque le prix dépasse les moyennes mobiles.

Plus précisément, cette stratégie utilise des moyennes mobiles simples de 20 jours et 60 jours. Ces deux moyennes mobiles peuvent être considérées comme des outils pour capturer les tendances à court terme et à moyen et long terme respectivement. Lorsque le prix à court terme dépasse le prix à moyen et long terme, cela indique que le marché est dans une tendance à la hausse et devrait donc aller long. Lorsque le prix à court terme tombe en dessous du prix à moyen et long terme, cela indique que le marché est dans une tendance à la baisse et que les positions doivent donc être réduites.

Le code utiliseta.crossoveretta.crossunderLes signaux de négociation d'une position longue ou de réduction sont émis en conséquence lorsqu'une rupture survient.

Les avantages

La stratégie de rupture à deux moyennes mobiles présente les avantages suivants:

  1. Le concept est simple et facile à comprendre et à mettre en œuvre.
  2. Il peut suivre efficacement les tendances du marché et éviter les interférences sonores.
  3. Peu de paramètres stratégiques et facile à optimiser.
  4. Flexibilité dans le choix des périodes de moyenne mobile pour ajuster la sensibilité du marché.

Les risques

Il y a aussi des risques avec la stratégie:

  1. Prévalent lorsque le marché est en fluctuation, et peuvent être atténués en augmentant la durée de conservation.
  2. Inefficace pour détecter les revirements rapides du marché.
  3. Les moyennes mobiles sont intrinsèquement en retard, incapables de signaler rapidement les changements de prix.

Les domaines d'amélioration

La stratégie peut être améliorée à partir des dimensions suivantes:

  1. Optimiser les périodes moyennes mobiles pour trouver les meilleurs ensembles de paramètres.
  2. Ajouter d'autres indicateurs pour filtrer les faux signaux, par exemple MACD, KD, etc.
  3. Ajoutez une logique de stop-loss.
  4. Incorporer une analyse de la robustesse sur plusieurs périodes.

Résumé

La stratégie de rupture de la moyenne mobile double est une stratégie simple et pratique de suivi des tendances. Elle peut capturer efficacement les tendances à moyen et long terme tout en évitant le bruit du marché à court terme. De plus, la logique facile à comprendre et les paramètres limités la rendent très adaptée au trading quantitatif. Bien sûr, il y a des possibilités d'amélioration, telles que l'ajustement des paramètres, le filtrage des signaux et le stop loss pour la rendre plus stable et rentable.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
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/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)   


Plus de