Stratégie de trading quantitative basée sur le fonctionnement de la moyenne mobile mensuelle


Date de création: 2023-12-15 11:49:06 Dernière modification: 2023-12-15 11:49:06
Copier: 2 Nombre de clics: 654
1
Suivre
1621
Abonnés

Stratégie de trading quantitative basée sur le fonctionnement de la moyenne mobile mensuelle

Aperçu

Cette stratégie est basée sur la ligne de la lune et la ligne de la quatrième, en particulier sur la ligne 20 comme ligne de la lune, la ligne 60 comme ligne de la quatrième, la source du signal de la stratégie est le crochet de la fourchette de deux lignes de la même ligne. Lorsque la ligne de la lune traverse la ligne de la quatrième, le longing se forme, formant un signal à plusieurs têtes; lorsque la ligne de la lune traverse la ligne de la quatrième, le dépôt est effectué.

Principe de stratégie

Cette stratégie utilise la moyenne mobile simple à 20 jours comme indicateur de la ligne lunaire et la moyenne mobile simple à 60 jours comme indicateur de la ligne trimestrielle. La logique de génération des signaux de négociation est la suivante:

  1. Lorsque la ligne 20 franchit la ligne 60, c’est-à-dire lorsque la fourche dorée se produit, faites une entrée supplémentaire.
  2. Le placement est arrêté lorsque le cours de l’action a reculé de plus de 10% par rapport à son plus haut niveau de 10 jours.
  3. Lorsque la ligne de 20e jour franchit la ligne de 60e jour, c’est-à-dire que le fourche mort se produit, le stock est à plat.
  4. La perte est suspendue lorsque la perte atteint 10%.

La courbe moyenne est déterminée par le croisement de la courbe lunaire et de la courbe trimestrielle, la fourche dorée est une entrée en hausse de la courbe moyenne et la fourche morte est une entrée en baisse de la courbe moyenne.

Avantages stratégiques

  1. Utilisez la moyenne mensuelle, filtrez le bruit du marché et capturez les tendances de la moyenne et de la longueur.
  2. Les paramètres de la stratégie sont simples et faciles à mettre en œuvre.
  3. Il est possible de configurer des paramètres Stop Loss pour contrôler les risques.

Analyse des risques

  1. Il n’est pas possible de déterminer le point de basculement et il y a un risque de perte.
  2. Les lignes lunaires et les lignes trimestrielles sont en retard, ce qui peut entraîner une perte d’occasions de lignes courtes.
  3. Il faut choisir le bon point d’arrêt pour ne pas être trop radical.

La solution est simple:

  1. Le suivi des pertes par téléphone portable permet de mettre fin aux pertes en temps opportun.
  2. Le filtrage des signaux, combiné à d’autres indicateurs, permet de déterminer les tendances.
  3. Modifier les paramètres de la moyenne et optimiser la stratégie.

Orientation de l’optimisation de la stratégie

  1. Ajouter des filtres pour d’autres indicateurs, tels que les indicateurs KD, afin d’éviter les fausses percées.
  2. Optimiser les paramètres de la moyenne pour trouver la combinaison optimale de périodes de la moyenne.
  3. Il est possible d’ajouter des stratégies d’arrêt, telles que des arrêts mobiles, pour obtenir plus de profit.

Résumer

Cette stratégie Overall XXXXX Systematically utilise l’avantage de la ligne moyenne de la ligne lunaire, en déterminant la direction de la tendance de la ligne moyenne longue à l’aide d’un crochet en or et en argent de la ligne moyenne. En même temps, la configuration d’un mécanisme de contrôle des risques de stop-loss raisonnable. La stratégie a beaucoup de place pour l’optimisation et mérite d’être testée et optimisée.

Code source de la stratégie
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("均線操作-月季", overlay=true, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30)
sma20 = sma(close, 20)
sma60 = sma(close, 60)

plot(sma20, title="月線", color=color.purple,linewidth=2)
plot(sma60, title="季線", color=color.yellow,linewidth=2)

backtest_year = input(title="backtest_year",type=input.integer,defval=2020)
backtest_month = input(title="backtest_month",type=input.integer,defval=10)
backtest_date = input(title="backtest_date",type=input.integer,defval=1)
backtest_start_time = timestamp(backtest_year,backtest_month,backtest_date,0,0,0)

to_long = sma20 > sma60  and close > highest(10)*0.9 // 黃金交叉
to_close = sma20 < sma60 // 死亡交叉
to_exit = close < highest(10)*0.9 //股價嚴重回檔
to_stop = close < 0.9*strategy.position_avg_price 

// to_long = crossover(sma20, sma60)   // 黃金交叉
// to_close = crossunder(sma20, sma60) // 死亡交叉

//plotchar(to_long, char="B", text="買", color=color.red, location=location.belowbar)
//plotchar(to_close, char="S", text="賣", color=color.green, location=location.abovebar)
//strategy.close("open long",when = tslide, comment="多單滑價7%出場")
if true
    strategy.entry("golden", strategy.long,  when=to_long,comment="多單入場")
    strategy.close("golden",  when=to_exit,comment="多單滑價7%出場")
    strategy.close("golden",  when=to_close,comment="月線季線死亡交叉")
    strategy.close("golden",  when=to_stop,comment="虧損10%強迫停損")