Stratégie de suivi de tendance EMA et RSI


Date de création: 2023-09-26 15:39:48 Dernière modification: 2023-09-26 15:39:48
Copier: 0 Nombre de clics: 978
1
Suivre
1617
Abonnés

Aperçu

La stratégie exploite les avantages des moyennes mobiles et des indicateurs relativement faibles pour identifier et suivre les tendances. Elle ne nécessite que deux indicateurs pour pouvoir juger les tendances et choisir le moment des entrées/sorties. La stratégie vise à saisir les tendances des prix sur les longues et moyennes lignes et à éviter d’être induit en erreur par le bruit du marché à court terme.

Principe de stratégie

La stratégie utilise la moyenne des EMA de trois cycles différents, EMA-A ayant le plus court cycle, EMA-B suivant, EMA-C ayant le plus long cycle. Lorsque le cycle court traverse EMA-A sur le cycle plus long EMA-B, cela indique que le prix est en tendance haussière, et cela peut faire plus; à l’inverse, lorsque EMA-A traverse EMA-B, cela indique que le prix est en tendance baissière, et cela peut faire moins.

La stratégie est également combinée avec l’indicateur RSI pour localiser le point de sortie. Lorsque le RSI dépasse la ligne 70 lors d’une position à plusieurs têtes, il est à plat. Lorsque le RSI dépasse la ligne 30 lors d’une position à vide, il est à plat.

Analyse des avantages

  • Utilisez les avantages de l’EMA pour identifier les tendances
  • Le RSI aide à déterminer les points d’entrée et de sortie
  • Il suffit de deux indicateurs pour une stratégie simple et efficace.
  • Paramètres de l’indicateur configurables pour modifier librement le style de stratégie
  • Il peut être rentable au début, au milieu et à la fin d’une tendance.

Analyse des risques

  • Un rebond sous une tendance majeure pourrait donner de faux signaux
  • Les tremblements de terre peuvent entraîner des pannes
  • Les paramètres RSI mal réglés peuvent entraîner une perte de valeur prématurée
  • Les cycles EMA doivent être réglés avec prudence, trop courts sont sensibles au bruit, trop longs manquent la tendance

Ces risques peuvent être atténués par l’optimisation des paramètres RSI ou l’ajout de conditions de filtrage supplémentaires. Des techniques d’analyse techniques telles que la tendance, la résistance au support peuvent également être combinées pour améliorer la performance de la stratégie.

Direction d’optimisation

  • Optimiser les paramètres du RSI pour équilibrer le stop loss
  • Test de différentes combinaisons de cycles EMA
  • Confirmation de l’augmentation de la capacité ou d’autres indicateurs
  • La méthode de stop loss peut être réglée en fonction de l’ATR
  • On peut essayer de baisser la position pendant la période de tendance.
  • Optimiser le moment de l’entrée, comme le haut / bas de la première rupture, ou l’absorption de l’énergie
  • La réintégration peut être envisagée

Résumer

Cette stratégie intègre le suivi de la tendance et l’indicateur de surachat et de survente. Il suffit de deux indicateurs simples pour pouvoir juger et capturer la tendance. Grâce à l’optimisation des paramètres et à l’optimisation des règles, l’efficacité peut être considérablement améliorée tout en restant simple.

Code source de la stratégie
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
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/
//@author Alorse

//@version=5
// strategy(title='Tendency EMA + RSI [Alorse]', shorttitle='Tendece EMA + RSI [Alorse]', overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)

// Bollinger Bands
len = input.int(14, minval=1, title='Length', group='RSI')
src = input.source(close, 'Source', group='RSI')
rsi = ta.rsi(src, len)

// Moving Averages
len_a = input.int(10, minval=1, title='EMA A Length', group='Moving Averages')
out_a = ta.ema(close, len_a)
plot(out_a, title='EMA A', color=color.purple)

len_b = input.int(20, minval=1, title='EMA B Length', group='Moving Averages')
out_b = ta.ema(close, len_b)
plot(out_b, title='EMA B', color=color.orange)

len_c = input.int(100, minval=1, title='EMA C Length', group='Moving Averages')
out_c = ta.ema(close, len_c)
plot(out_c, title='EMA B', color=color.green)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
closeAfterXBars = input.bool(true, title='Close after X # bars', tooltip='If trade is in profit', group=stratGroup)
xBars = input.int(24, title='# bars')

entryLong = ta.crossover(out_a, out_b) and out_a > out_c and close > open
exitLong = rsi > 70

entryShort = ta.crossunder(out_a, out_b) and out_a < out_c and close < open
exitShort = rsi < 30


bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1]
entry_price = ta.valuewhen(bought, open, 0)
var int nPastBars = 0
if strategy.position_size > 0
    nPastBars := nPastBars + 1
    nPastBars
if strategy.position_size == 0
    nPastBars := 0
    nPastBars
if closeAfterXBars
    exitLong := nPastBars >= xBars and close > entry_price ? true : exitLong
    exitLong
    exitShort := nPastBars >= xBars and close < entry_price ? true : exitShort
    exitShort

// Long Entry
strategy.entry('Long', strategy.long, when=entryLong and showLong)
strategy.close('Long', when=exitLong)

// Short Entry
strategy.entry('Short', strategy.short, when=entryShort and showShort)
strategy.close('Short', when=exitShort)