Stratégie de suivi de tendance à double moyenne mobile


Date de création: 2024-03-22 13:56:44 Dernière modification: 2024-03-22 13:56:44
Copier: 1 Nombre de clics: 501
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance à double moyenne mobile

Résumé

Cette stratégie utilise la croisée de deux moyennes mobiles pour juger de la variation des tendances du marché et effectuer des opérations de vente et d’achat en fonction de la tendance. Faire plus lorsque la courte moyenne traverse la longue moyenne et faire moins lorsque la courte moyenne traverse la longue moyenne pour suivre la tendance.

Le principe de stratégie

Le cœur de la stratégie est constitué de deux moyennes mobiles: une moyenne rapide (avec un cycle de 32 par défaut) et une moyenne lente (avec un cycle de 32 par défaut, qui peut être ajustée par paramètres). Lorsque le cours de clôture franchit le canal formé par ces deux moyennes, il s’agit d’un renversement de tendance, ce qui génère un signal d’achat et de vente:

  • Faites plus lorsque vous traversez une ligne moyenne rapide sur une ligne moyenne lente
  • Lorsque la moyenne rapide est traversée par la moyenne lente, laissez un espace
  • Une fois que vous avez un lot, traversez la moyenne rapide en dessous de la moyenne lente, pariez le lot et faites un vide.
  • Une fois que vous avez un billet, traversez la ligne moyenne rapide sur la ligne moyenne lente, vide et faites plus

Par cette méthode d’équilibrage, la stratégie peut suivre la tendance, en tenant des ordres en hausse et des ordres vides en baisse, jusqu’à ce que la tendance se retourne.

Analyse des avantages

  1. Suivi des tendances: Cette stratégie permet de capturer efficacement les principales tendances du marché et de les suivre en les analysant par une courbe symétrique.
  2. Simple et facile à utiliser: la logique de la stratégie est claire, seulement deux lignes moyennes sont utilisées, la configuration des paramètres est simple, facile à comprendre et à maîtriser.
  3. Large applicabilité: La stratégie est largement applicable aux variétés et aux cycles et peut être utilisée dans de nombreux marchés.
  4. Le stop loss en temps opportun: la stratégie permet d’effacer les positions en temps opportun et de contrôler les pertes lorsque la tendance se retourne.

Analyse des risques

  1. Une mauvaise performance dans les marchés en tremblement de terre: lorsque les marchés sont en tremblement de terre, les signaux de croisement fréquents entraînent des pertes plus importantes que les transactions fréquentes.
  2. Insuffisance à faire face aux situations d’urgence: face à des situations extrêmes (par exemple, une hausse ou une baisse rapide), la stratégie peut ne pas réagir assez rapidement, ce qui entraîne de plus grandes pertes.
  3. L’optimisation des paramètres est difficile: l’optimisation des paramètres de la moyenne nécessite de nombreuses données historiques et des retours, et les paramètres sont peu orientés vers les effets futurs.

Pour les risques ci-dessus, il est possible d’envisager d’ajouter des filtres appropriés, tels que des filtres ATR ou de l’amplitude d’onde réelle moyenne, pour réduire la survente dans les marchés volatiles; mettre en place des arrêts raisonnables, contrôler les pertes ponctuelles; Optimiser en permanence les paramètres pour s’adapter au marché. Cependant, les limites de la stratégie elle-même sont difficiles à contourner complètement.

Direction d’optimisation

  1. Confirmation de tendance: après la génération du signal de transaction, des indicateurs de confirmation de tendance, tels que MACD, DMI, etc., peuvent être ajoutés pour filtrer davantage le signal.
  2. Stop-loss dynamique: Le risque est mieux contrôlé en définissant un stop-loss dynamique en fonction d’indicateurs tels que l’ATR, plutôt qu’en fonction d’un pourcentage fixe ou d’un stop-loss de prix.
  3. Gestion des positions: en fonction de la force de la tendance, de la volatilité et d’autres indicateurs, ajustez dynamiquement la taille de la position, augmentez la position lorsque la tendance est forte et diminuez la position lorsque la tendance est faible.
  4. Multipériode multi-niveaux: prendre en compte plusieurs niveaux de système de ligne moyenne, comme la ligne solaire + 4 heures, pour filtrer et confirmer les uns les autres, améliorer l’exactitude de la prise de tendance.
  5. Adaptation des paramètres: l’introduction de méthodes d’optimisation des paramètres adaptatifs, telles que les algorithmes génétiques, permettent aux paramètres de la stratégie de s’adapter aux différentes conditions du marché.

Les optimisations ci-dessus peuvent améliorer la capacité de la stratégie à faire face à des marchés complexes, mais il convient de noter que l’optimisation excessive peut entraîner un ajustement de la courbe et entraîner une mauvaise performance future.

Résumé

Les stratégies de suivi de tendance bi-linéaire permettent de capturer les tendances en croisant les mêmes lignes. Elles sont simples, faciles à utiliser et largement applicables. Cependant, elles ne fonctionnent pas bien dans les marchés instables, ne répondent pas aux conditions extrêmes et ont plus de difficulté à optimiser les paramètres.

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

//@version=5

//study(title="Demo - SSL Basic", shorttitle="Demo - SSL Basic", overlay=true)
strategy(title='Demo - SSL Basic', shorttitle='Demo - SSL Basic', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.15)

// Backtest Date Range
start_date_long = input(title='Backtest Long Start Date', defval=timestamp('01 Jan 2018 00:00 +0530'))
end_date_long = input(title='Backtest Long End Date', defval=timestamp('25 Jan 2030 00:00 +0530'))
backtest_range = true

// Inputs
maType = input.string(title='SSL MA Type', options=['SMA', 'EMA', 'WMA'], defval='SMA')
sslLen = input(title='SSL Length', defval=32)
showCross = input(title='Show Crossover?', defval=true)
showEntry = input(title='Show Entry?', defval=true)
showTrend = input(title='Show Trend Colors?', defval=true)

// Calc MA for SSL Channel
calc_ma(close, len, type) =>
    float result = 0
    if type == 'SMA'  // Simple
        result := ta.sma(close, len)
        result
    if type == 'EMA'  // Exponential
        result := ta.ema(close, len)
        result
    if type == 'WMA'  // Weighted
        result := ta.wma(close, len)
        result    
    result

// Add SSL Channel
maHigh = calc_ma(high, sslLen, maType)
maLow = calc_ma(low, sslLen, maType)
Hlv = int(na)
Hlv := close > maHigh ? 1 : close < maLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? maHigh : maLow
sslUp = Hlv < 0 ? maLow : maHigh
ss1 = plot(sslDown, title='Down SSL', linewidth=2, color=showTrend ? na : color.red)
ss2 = plot(sslUp, title='Up SSL', linewidth=2, color=showTrend ? na : color.lime)

// Conditions
longCondition = ta.crossover(sslUp, sslDown)
shortCondition = ta.crossover(sslDown, sslUp)

// Strategy
if shortCondition
    strategy.close('Long', comment='Long Exit', alert_message='JSON')

if longCondition
    strategy.close('Short', comment='Short Exit', alert_message='JSON')

if backtest_range and longCondition
    strategy.entry('Long', strategy.long, comment='Long Entry', alert_message='JSON')

if backtest_range and shortCondition
    strategy.entry('Short', strategy.short, comment= 'Short Entry', alert_message='JSON')


// Plots
fill(ss1, ss2, color=showTrend ? sslDown < sslUp ? color.new(color.lime, transp=75) : color.new(color.red, transp=75) : na, title='Trend Colors')