Stratégie de reprise de l' élan

Auteur:ChaoZhang est là., Date: 2024-01-23 15h23 et 14h
Les étiquettes:

img

Résumé

Cette stratégie vise à identifier les opportunités de recul potentiels sur le marché. Elle utilise un système de moyenne mobile double avec une moyenne mobile à long terme (MA1) et une moyenne mobile à court terme (MA2).

La logique de la stratégie

La stratégie utilise deux moyennes mobiles: MA1 (à plus long terme) et MA2 (à plus court terme). La logique est que si les prix reculent brièvement pour tester le support de la tendance à plus long terme, cela peut présenter une opportunité à long terme. Plus précisément, si le prix de clôture reste au-dessus du support à long terme (MA1), la tendance majeure reste intacte. Mais si le prix de clôture dépasse le MA à court terme (MA2) mais reste au-dessus du MA à long terme (MA1), cela signale une configuration de rebond de manuel.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Simple à mettre en œuvre et facile à comprendre avec réglage flexible des paramètres
  2. Utilise des MAs doubles pour identifier les tendances majeures et éviter les transactions contraires à la tendance
  3. Filtres de temps personnalisables pour éviter les règles anormales
  4. Taille réglable des positions en fonction des différentes préférences en matière de risques
  5. Mécanisme de stop-loss pour limiter le risque à la baisse

Analyse des risques

Les risques à prendre en compte:

  1. Réduction du risque si les prix continuent de baisser et que le stop-loss est atteint
  2. Renversement de tendance majeur si la zone de soutien clé est brisée
  3. Les écarts et les divergences liés à l'action volatile des prix
  4. Transactions manquantes dans les filtres de temps sous-optimaux

Certaines façons d'optimiser et d'atténuer les risques:

  1. Optimiser les paramètres MA pour améliorer la qualité du signal
  2. Ajuster les niveaux de stop-loss pour maximiser les bénéfices tout en minimisant les risques
  3. Ajustez les filtres horaires pour se concentrer sur les meilleures périodes de négociation
  4. Test sur différents instruments et environnements de marché

Des possibilités d'amélioration

Quelques moyens pour améliorer la stratégie:

  1. Optimiser les paramètres MA pour trouver les meilleures combinaisons
  2. Testez différents mécanismes de stop-loss tels que les stops de trailing ou de lustre
  3. Ajouter des filtres supplémentaires comme le volume ou la volatilité
  4. Incorporer des règles de taille de position comme ajouter sur les croix d'or et de réduire sur les croix de la mort
  5. Mettre en place un mécanisme automatisé de prise de profit
  6. Test de retour pour analyser les principales mesures et finaliser les paramètres

Conclusion

En résumé, il s'agit d'une stratégie de reversation de la moyenne simple. Il identifie les configurations de revers avec l'approche double MA et gère le risque avec des arrêts adaptatifs. La stratégie est facile à saisir et à mettre en œuvre avec un réglage flexible. Les prochaines étapes sont d'autres optimisations autour d'éléments tels que les paramètres MA, les stop-loss, les filtres pour rendre la stratégie plus robuste.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter =true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)

Plus de