Les ressources ont été chargées... Je charge...

Han Yue - Stratégie de négociation basée sur des EMA multiples, ATR et RSI

Auteur:ChaoZhang est là., Date: 2024-05-14 16h37:52 Je vous en prie.
Les étiquettes:Le taux d'intérêtATRIndice de résistance

img

Résumé

Cette stratégie utilise trois moyennes mobiles exponentielles (EMA) avec des périodes différentes pour déterminer la tendance du marché, et combine l'indice de force relative (RSI) et la plage moyenne vraie (ATR) pour identifier les points d'entrée, les stop-loss et les niveaux de prise de profit. Lorsque le prix traverse le canal formé par les trois EMA et que le RSI traverse également sa moyenne mobile, la stratégie déclenche un signal d'entrée.

Principes de stratégie

  1. Calculer trois EMA avec des périodes différentes (à court terme, à moyen terme et à long terme) pour déterminer l'évolution globale du marché.
  2. Utilisez l'indicateur RSI pour confirmer la force et la durabilité de la tendance.
  3. Générer des signaux d'entrée basés sur la relation entre le prix et le canal EMA, ainsi que des signaux RSI: ouvrir une position dans le sens de la tendance lorsque le prix traverse le canal EMA et que le RSI traverse également sa moyenne mobile.
  4. Utiliser l'ATR pour déterminer la taille des positions et les niveaux de stop-loss, en contrôlant l'exposition au risque de chaque transaction.
  5. Définir des niveaux de prise de profit basés sur un ratio risque/rendement prédéfini (par exemple, 1,5:1) pour assurer la rentabilité de la stratégie.

Analyse des avantages

  1. Simple et efficace: la stratégie utilise seulement quelques indicateurs techniques communs, avec une logique claire et facile à comprendre et à mettre en œuvre.
  2. Suivi des tendances: en combinant le canal EMA et l'indicateur RSI, la stratégie peut suivre les tendances du marché et capturer des mouvements de prix plus importants.
  3. Contrôle des risques: l'utilisation de l'ATR pour définir les niveaux de stop-loss et contrôler la taille des positions limite efficacement l'exposition au risque de chaque transaction.
  4. Flexibilité: les paramètres de la stratégie (tels que les périodes EMA, les périodes RSI, les multiplicateurs ATR, etc.) peuvent être ajustés en fonction des différents marchés et styles de négociation afin d'optimiser les performances.

Analyse des risques

  1. Optimisation des paramètres: La performance de la stratégie dépend en grande partie du choix des paramètres, et des paramètres incorrects peuvent entraîner l'échec de la stratégie ou une mauvaise performance.
  2. Risque de marché: la stratégie peut subir des pertes importantes en cas d'événements inattendus ou de conditions de marché extrêmes, en particulier lors d'inversions de tendance ou de marchés volatils.
  3. Suradaptation: si la stratégie est suradaptée aux données historiques pendant le processus d'optimisation des paramètres, cela peut entraîner une mauvaise performance dans le trading réel.

Directions d'optimisation

  1. Paramètres dynamiques: Ajustez dynamiquement les paramètres de stratégie en fonction des changements des conditions du marché, par exemple en utilisant des périodes EMA plus longues lorsque la tendance est forte et des périodes plus courtes sur des marchés instables.
  2. Combiner d'autres indicateurs: introduire d'autres indicateurs techniques (tels que les bandes de Bollinger, le MACD, etc.) pour améliorer la fiabilité et la précision des signaux d'entrée.
  3. Incorporer le sentiment du marché: combiner des indicateurs du sentiment du marché (tels que l'indice de la peur et de la cupidité) pour ajuster l'exposition au risque et la gestion des positions de la stratégie.
  4. L'analyse de plusieurs délais: analyser les tendances et les signaux du marché à travers différents délais afin d'obtenir une perspective de marché plus complète et de prendre des décisions commerciales plus solides.

Résumé

Cette stratégie construit un système de trading de suivi de tendance simple et efficace en combinant plusieurs indicateurs techniques communs, tels que les EMA, RSI et ATR. Elle utilise le canal EMA pour déterminer les tendances du marché, RSI pour confirmer la force de la tendance et ATR pour contrôler le risque. Les avantages de la stratégie résident dans sa simplicité et son adaptabilité, car elle peut suivre les tendances et le commerce dans différentes conditions du marché. Cependant, la performance de la stratégie dépend en grande partie du choix des paramètres, et des paramètres inappropriés peuvent entraîner un échec de la stratégie ou de mauvaises performances.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
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/
// © hatnxkld

//@version=4
strategy("Win ha", overlay=true)

ss2 = input("0300-1700", title = "Khung thời gian")

t2 = time(timeframe.period,ss2)
c2 = #cacae6

bgcolor(t2 ? c2 : na, transp = 70)


//3ema
emangan=input(title="Ema ngắn", defval = 12)
ngan=ema(close, emangan)
a= plot(ngan, title="EMA ngắn", color=color.yellow)
ematb=input(title="Ema trung bình", defval = 100)
tb=ema(close, ematb)
b= plot(tb, title="EMA trung bình", color=color.blue)
//emadai=input(title="Ema dai", defval = 288)
//dai=ema(close,emadai)
//c= plot(dai, title="EMA dai", color=color.red)




// nhập hệ số nhân ATR
i=input(title="Hệ số nhân với ATR", defval=1.25)

// RSI
rsi=rsi(close, emangan)
marsi=sma(rsi, emangan)

// Kênh keltler
//heso=input(defval=1, title="Hệ số Kênh Keltler")
//atr=atr(emangan)
//tren=ngan+atr*heso
//d=plot(tren, title="Kênh trên", color=color.white)
//duoi=ngan-atr*heso
//e=plot(duoi, title="Kênh dưới", color=color.white)
//fill(d,e, color=color.rgb(48, 58, 53))

ban = ( close[1]>open[1] and (high[1]-close[1])>(close[1]-low[1]) and open>close and close<low[1]   ) 


//or (    open[1] > close[1] and (high[1]-open[1])>(open[1]-low[1]) and (open[1]-close[1])>(close[1]-low[1]) and open>close and close <low[1]     )   )  //and time(timeframe.period,"2200-1300")
//and (close[1]-open[1])>(open[1]-low[1]) 
//high > ngan and close < ngan and ngan<tb and 
// and time(timeframe.period,"1000-2300")
bgcolor(color = ban ? color.rgb(235, 106, 123) : na)
//bgcolor(color.rgb(82, 255, 154),transp = 100, offset = 1, show_last = 2)
//and time(timeframe.period,"2300-1500") and ((open>ngan and close<ngan) or (open>tren and close<tren))
plotshape(ban , style=shape.arrowdown, location=location.abovebar, color=#ff00ff, size=size.tiny, textcolor=color.rgb(255, 59, 213))
alertcondition(ban, "Ban", "Ban")

mua=  (  open[1]>close[1] and (close[1]-low[1])>(high[1]-close[1]) and close > open and close > high[1]  )  //and time(timeframe.period,"2200-1300")


//or  (  close[1]>open[1] and (open[1]-low[1]) > (high[1]-open[1]) and (close[1]-open[1])>(high[1]-close[1]) and close>open and close>high[1]      ) )
//and (open[1]-close[1])>(high[1]-open[1])
//low < ngan and close > ngan and ngan>tb and
//or  (  close[1]>open[1] and (open[1]-low[1]) > (high[1]-open[1]) and (close[1]-open[1])>(high[1]-close[1]) and close>open and close>high[1]      )

// and time(timeframe.period,"1000-2300")
bgcolor(color= mua? color.rgb(108, 231, 139):na)
//and time(timeframe.period,"2300-1500") and ((open<ngan and close>ngan)or (open<duoi and close>duoi) )
plotshape(mua , style=shape.arrowup, location=location.belowbar, color=#00ff6a, size=size.tiny, textcolor=color.rgb(83, 253, 60))
alertcondition(mua , "Mua", "Mua")


//len1 = ban==true and (high-low)>2*atr
//plotshape(len1 , style=shape.flag, location=location.abovebar, color=#ff00ff, size=size.tiny, title="Sell Signal", text="Xuong 1", textcolor=color.rgb(255, 59, 213))

//bann= ban==true and rsi < marsi and marsi[2]>marsi[1]
//plotshape(bann , style=shape.labeldown, location=location.abovebar, color=#ff00ff, size=size.tiny, title="Sell Signal", text="BAN 2", textcolor=color.rgb(240, 234, 239))

//bannn = mua==true and rsi>marsi and marsi[2]<marsi[1]
//plotshape(bannn , style=shape.labelup, location=location.belowbar, color=#00ff6a, size=size.tiny, title="Buy Signal", text="Mua 2", textcolor=color.rgb(237, 241, 236))

//a1= ban==true and (high - low)<atr 
//plotshape(a1 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text="<atr", textcolor=color.rgb(240, 95, 76))

//a2 = ban ==true and (high - low)>atr and (high - low)<(2*atr) 
//plotshape(a2 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text="<2atr", textcolor=color.rgb(237, 241, 236))

//a3= ban==true and (high - low)>(2*atr) 
//plotshape(a3 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text=">2atr", textcolor=color.rgb(234, 252, 74))


//b1= mua==true and (high - low)<atr 
//plotshape(b1 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text="<atr", textcolor=color.rgb(237, 241, 236))

//b2 = mua ==true and (high - low)>atr and (high - low)<(2*atr) 
//plotshape(b2 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text="<2atr", textcolor=color.rgb(237, 241, 236))

//b3= mua==true and (high - low)>(2*atr) 
//plotshape(b3 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text=">2atr", textcolor=color.rgb(237, 241, 236))

// Đặt SL TP ENTRY
risk= input(title="Rủi ro % per Trade", defval=0.5)
rr= input(title="RR", defval=1.5)
onlylong= input(defval=false)
onlyshort=input(defval=false)

stlong = mua and strategy.position_size<=0 ? low[1]:na
stoplong= fixnan(stlong)

stshort = ban and strategy.position_size>=0 ? high[1]:na
stopshort= fixnan(stshort)

enlong = mua and strategy.position_size<=0 ? close:na
entrylong =fixnan(enlong)

enshort = ban and strategy.position_size>=0 ? close:na
entryshort = fixnan(enshort)

amountL = risk/100* strategy.initial_capital / (entrylong - stoplong)
amountS = risk/100* strategy.initial_capital / (stopshort - entryshort)

TPlong= mua and strategy.position_size<=0? entrylong + (entrylong -stoplong)*rr:na
takeprofitlong =fixnan(TPlong)
TPshort = ban and strategy.position_size>=0? entryshort - (stopshort - entryshort)*rr:na 
takeprofitshort = fixnan(TPshort)

strategy.entry("Long", strategy.long , when = enlong and not onlyshort, qty= amountL )
strategy.exit("exitL", "Long", stop = stoplong, limit= takeprofitlong)

strategy.entry("Short", strategy.short , when = enshort and not onlylong, qty= amountS )
strategy.exit("exitS", "Short", stop = stopshort, limit= takeprofitshort)



Relationnée

Plus de