Stratégie de percée rapide et lente de l'EMA

Auteur:ChaoZhang est là., Date: 12-01-2023 à 18h02h24
Les étiquettes:

img

Résumé

La stratégie de percée rapide et lente de l'EMA est une stratégie simple et efficace pour suivre les tendances du marché. Elle utilise des croisements d'EMA de différents cycles pour générer des signaux d'achat et de vente. L'idée de base est la suivante: lorsque l'EMA de cycle court traverse au-dessus de l'EMA de cycle plus long, un signal d'achat est généré; lorsque l'EMA de cycle court traverse en dessous de l'EMA de cycle plus long, un signal de vente est généré.

Principe de stratégie

La stratégie repose principalement sur la comparaison des EMA à 5 cycles, 8 cycles et 13 cycles pour générer des signaux de trading.

  1. Calculer l'EMA à 5 cycles, à 8 cycles et à 13 cycles.
  2. Lorsque l'EMA à 5 cycles dépasse les EMA à 8 cycles et à 13 cycles, un signal d'achat est généré.
  3. Lorsque l'EMA à 5 cycles passe sous les EMA à 8 cycles et à 13 cycles, un signal de vente est généré.
  4. Dans le même temps, combiner l'indicateur ADX pour déterminer la force de la tendance, uniquement lorsque la tendance est suffisamment forte pour générer des signaux.

Cela réalise l'effet du suivi des tendances à moyen et à long terme. Lorsque la moyenne mobile à court cycle dépasse la moyenne mobile à long cycle, cela signifie que la tendance à court terme est devenue haussière et peut être achetée; lorsque la moyenne mobile à court cycle dépasse la moyenne mobile à long cycle, cela signifie que la tendance à court terme est devenue baissière et doit être vendue.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Opération simple, facile à mettre en œuvre.
  2. Utiliser pleinement l'effet de lissage de l'EMA pour suivre efficacement les tendances.
  3. Les combinaisons de plusieurs EMA mettent en œuvre un croisement pour éviter les faux signaux.
  4. Combiné avec l'indicateur ADX, le signal est plus fiable.
  5. Réduction relativement faible et baisse maximale.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. Le stop loss peut être plus important lorsque la tendance s'inverse brusquement.
  2. Les paramètres de l'EMA peuvent être ajustés de manière appropriée pour réduire la fréquence des transactions.

Direction de l'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres EMA pour trouver la meilleure combinaison de paramètres.
  2. Ajouter d'autres indicateurs de filtrage, tels que KDJ, BOLL, etc., pour améliorer la qualité du signal.
  3. Ajuster la gestion des positions pour optimiser le contrôle des risques.
  4. Utilisez des méthodes d'apprentissage automatique pour trouver de meilleures règles d'entrée et de sortie.

Résumé

En résumé, le fonctionnement de la stratégie de rupture rapide et lente de la EMA est fluide, les signaux sont plus fiables, le retrait n'est pas élevé et il convient au suivi des tendances à moyen et long terme.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
// @It is modified by ttsaadet.
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 

//
strategy(title="EMA Crossover Strategy by TTS", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
short_period = input(type=input.integer,defval=5,minval=1,title="Length")
mid_period = input(type=input.integer,defval=8,minval=1,title="Length")
long_period = input(type=input.integer,defval=13,minval=1,title="Length")
rsi_period = input(type=input.integer,defval=14,minval=1,title="Length")
longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(close,short_period)
midEma = ema(close,mid_period)
longEma = ema(close,long_period)

rsi = rsi(close, rsi_period)

[diplus, diminus, adx] = dmi(short_period, short_period)
plot(shortEma,linewidth=2,color=color.red,title="Fast")
plot(midEma,linewidth=2,color=color.orange,title="Fast")
plot(longEma,linewidth=2,color=color.blue,title="Slow")

longEntry = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25)
shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma))

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    longEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    crossunder(shortEma,longEma) or crossunder(close, longEma)

strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())


// === STRATEGY - SHORT POSITION EXECUTION ===

enterShort() =>
    not longOnly and shortEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    crossover(shortEma,longEma)

strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())

Plus de