Stratégie de négociation quantitative basée sur l'opération de moyenne mobile mensuelle et trimestrielle

Auteur:ChaoZhang est là., Date: 2023-12-15 à 11h49
Les étiquettes:

img

Résumé

Cette stratégie est principalement basée sur les moyennes mobiles des lignes mensuelles et trimestrielles pour l'opération. Plus précisément, la ligne de 20 jours est utilisée comme ligne mensuelle et la ligne de 60 jours comme ligne trimestrielle. Les signaux de stratégie proviennent de la croix d'or et de la croix de la mort des deux moyennes mobiles. Lorsque la ligne mensuelle dépasse la ligne trimestrielle, allez long; lorsque la ligne mensuelle tombe en dessous de la ligne trimestrielle, fermez des positions. Cette stratégie convient aux opérations à moyen et long terme pour saisir les opportunités de consolidation et de divergence.

La logique de la stratégie

Cette stratégie utilise la moyenne mobile simple de 20 jours comme indicateur de ligne mensuel et la moyenne mobile simple de 60 jours comme indicateur de ligne trimestriel.

  1. Lorsque la ligne de 20 jours dépasse la ligne de 60 jours, c'est-à-dire qu'une croix dorée se produit, passez long.
  2. Lorsque le prix baisse de plus de 10% par rapport au point le plus élevé au cours des 10 derniers jours, fermez les positions longues pour réaliser des profits.
  3. Lorsque la ligne de 20 jours passe sous la ligne de 60 jours, c'est-à-dire qu'une croix de mort se produit, fermez toutes les positions.
  4. Quand la perte atteint 10%, arrêtez la perte.

Utilisez les croisements moyens mobiles des lignes mensuelles et trimestrielles pour déterminer les tendances à moyen et long terme. La croix d'or pour aller long indique le début d'un marché haussier à moyen et long terme, tandis que la croix de la mort pour aller court indique le début d'un marché baissier à moyen et long terme.

Les avantages de la stratégie

  1. L'utilisation de moyennes mobiles mensuelles et trimestrielles filtre le bruit du marché et capte les tendances à moyen et à long terme.
  2. Les paramètres stratégiques sont simples et faciles à mettre en œuvre.
  3. Les paramètres de prise de profit et de stop loss sont personnalisables pour contrôler les risques.

Analyse des risques

  1. Impossible de déterminer les points d'inversion de tendance, avec risque de pertes.
  2. Les moyennes mobiles mensuelles et trimestrielles ont des effets de retard, ce qui peut entraîner une perte d'opportunités à court terme.
  3. Il faut choisir des points d'arrêt de perte appropriés pour éviter d'être arrêté trop vite.

Les solutions:

  1. Adopter un arrêt de perte pour arrêter de manière opportune.
  2. Incorporer d'autres indicateurs pour filtrer les signaux et déterminer les tendances.
  3. Ajustez les paramètres de moyenne mobile pour optimiser la stratégie.

Directions pour l'optimisation de la stratégie

  1. Ajouter d'autres indicateurs pour le filtrage, tels que l'indicateur KD, etc., pour éviter de fausses éruptions.
  2. Optimiser les paramètres de moyenne mobile pour trouver la meilleure combinaison de paramètres.
  3. Incorporer des stratégies de prise de profit supplémentaires telles que le suivi de la prise de profit pour capturer plus de profits.

Résumé

Cette stratégie utilise systématiquement les avantages des moyennes mobiles mensuelles et trimestrielles en jugeant les directions de tendance à moyen et long terme à travers la croix dorée et la croix de mort des moyennes mobiles.


/*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%強迫停損")


Plus de