Stratégie de suivi de la tendance basée sur la moyenne mobile sur plusieurs délais et le RSI

Auteur:ChaoZhang est là., Date: 2024-01-08 16:57:29 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie identifie la direction de la tendance en fonction de la moyenne mobile sur plusieurs délais et juge la situation de surachat/survente avec le RSI pour générer des signaux de trading. Lorsque les lignes MA longues, moyennes et courtes sont dans le même sens, elle est considérée comme une tendance. À ce stade, le RSI est utilisé pour déterminer si elle est surachetée/survendue et des signaux de trading sont générés. En outre, la stratégie adopte également un stop loss pour contrôler les risques.

La logique de la stratégie

La logique de base consiste à juger de la tendance à travers la croix dorée et la croix de mort des moyennes mobiles rapides et lentes. Lorsque la ligne rapide traverse au-dessus de la ligne lente, c'est une croix dorée indiquant un marché haussier. Lorsque la ligne rapide traverse en dessous de la ligne lente, c'est une croix de mort indiquant un marché baissier. Cette stratégie applique une telle logique dans différents délais pour voir si les termes long, moyen et court sont dans le même sens. Si tous sont taureau ou ours, des signaux de trading sont générés. En outre, le RSI aide à éviter de manquer un stop loss aux points d'inflexion.

Analyse des avantages

  1. L'utilisation de plusieurs délais pour déterminer les tendances peut filtrer efficacement le bruit du marché à court terme et identifier les tendances à moyen et long terme.

  2. Le RSI aide à éviter d'insister sur la direction d'origine aux points d'inflexion et de manquer le stop loss.

  3. Le stop loss de suivi tient compte à la fois de la croissance des bénéfices et du contrôle des risques, ce qui conduit à un ratio rendement/risque élevé.

Analyse des risques

  1. La détermination de plusieurs délais peut avoir un décalage de temps, ce qui entraîne une entrée tardive et l'absence de phase précoce de la tendance.

  2. L'indicateur de volatilité ne juge que le statut de surachat/survente. Il ne fonctionne pas bien pour déterminer les points d'inflexion lorsque se produit un renversement brusque.

  3. Une configuration incorrecte de la compensation de perte d'arrêt peut entraîner des comportements trop agressifs ou conservateurs.

Directions d'optimisation

  1. Envisagez de combiner plus d'indicateurs tels que les bandes de Bollinger et KDJ pour générer des signaux de trading plus précis.

  2. Adopter un stop loss dynamique qui ajuste la compensation en fonction de la volatilité du marché et de l'appétit pour le risque.

  3. Appliquer une logique similaire dans des délais encore plus courts pour mieux utiliser le capital.

Résumé

En général, cette stratégie a plus de avantages que d'inconvénients. Elle détermine avec précision les tendances à moyen et long terme et offre un rendement/risque élevé.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Cryptocurrency Trading Tools by XMAXPRO
//ATA INDIKATORU
//Test 4.0v Tarih:23.02.2020
//

strategy("MTF+MA+RSI+TSL", overlay=false, shorttitle="ATA v4 Strategy")
src = input(title="kaynak", type=input.source, defval=close)
fast = input(title="hızlıbarlar", type=input.integer, defval=21)
slow = input(title="yavaşbarlar", type=input.integer, defval=34)

//MTF source
long = input(title="uzunvade", type=input.resolution, defval="240")
mid = input(title="ortavade", type=input.resolution, defval="60")
short = input(title="kısavade", type=input.resolution, defval="5")

//MTF Grafikleri
ln = security(syminfo.ticker, long, src)
md = security(syminfo.ticker, mid, src)
sh = security(syminfo.ticker, short, src)

//0
lnma = ema(ln, fast) - ema(ln, slow)
mdma = ema(sh, fast) - ema(md, slow)
shma = ema(sh, fast) - ema(sh, slow)

//Makeup
uzunrenk = lnma > 0 ? color.white : color.red
ortarenk = mdma > 0 ? color.white : color.red
kisarenk = shma > 0 ? color.white : color.red

l1 = 1
m1 = 2
s1 = 3

plot(l1, style=plot.style_line, color=uzunrenk, linewidth=25)
plot(m1, style=plot.style_line, color=ortarenk, linewidth=25)
plot(s1, style=plot.style_line, color=kisarenk, linewidth=25)

atarsi = rsi(close, 14)
rsiob = input(title="aşırıalım", type=input.integer, defval=60)
rsios = input(title="aşırısatış", type=input.integer, defval=25)

sell = atarsi > rsiob and lnma > 0 and mdma > 0 and shma > 0
buy = atarsi < rsios and lnma < 0 and mdma < 0 and shma < 0

barcolor(sell ? color.white : color.red)
barcolor(buy ? color.white : color.red)

//strateji
strategy.entry("long", strategy.long, comment = "BULL", when = sell)
strategy.entry("short", strategy.short, comment = "BEAR", when = buy)

//kompleks alarm
//alertcondition(sell, title = "ATA LONG SIGNAL", message = "btc/usd ata long sinyali")
//alertcondition(buy, title = "ATA SHORT SIGNAL", message = "btc/usd ata short sinyali")

//iz sürücü TSL
strategy.exit ("Bull TSL", "long", trail_points=close * 0.02 / syminfo.mintick, trail_offset=close * 0.02/syminfo.mintick)
strategy.exit ("Bear TSL", "short", trail_points=close * 0.02 / syminfo.mintick, trail_offset=close * 0.02/syminfo.mintick)

Plus de