Stratégie de trading BTC basée sur le système de moyenne mobile Ichimoku


Date de création: 2023-12-20 13:34:08 Dernière modification: 2023-12-20 13:34:08
Copier: 1 Nombre de clics: 666
1
Suivre
1621
Abonnés

Stratégie de trading BTC basée sur le système de moyenne mobile Ichimoku

Aperçu

Cette stratégie est appelée la stratégie Ichimoku Kinko Hyo, ou stratégie du système de ligne moyenne à un œil. Il s’agit d’une stratégie de négociation de BTC basée sur la ligne moyenne à un œil, combinée à d’autres indicateurs techniques.

Principe de stratégie

La stratégie est basée sur le système de ligne moyenne, un système de stratégie de trading de tendance qui regroupe plusieurs indicateurs techniques. Il comprend principalement les indicateurs suivants:

Ligne de référence ((Kijun Sen): représentant la direction de la tendance du marché, elle est le milieu des hauts et des bas des 26 derniers jours, et peut servir de ligne de support et de résistance. Lorsque le prix de clôture franchit la ligne de référence, elle génère des signaux d’achat et de vente.

La ligne de conversion ((Tenkan Sen): représente la dynamique du cours de l’action, qui est le milieu des hauts et des bas des 9 derniers jours, et peut être utilisée pour déterminer le moment de l’achat ou de la vente.

SPAN futur A: ligne intermédiaire représentant la ligne de la moyenne, moyenne de la ligne de référence et de la ligne de conversion, qui peut servir de ligne d’alerte pour la ligne de la moyenne.

SPAN B: représente la ligne de tendance à long terme, est le point médian des 52 derniers jours, et peut constituer un nuage pour juger de la tendance à court terme.

En outre, la stratégie s’appuie sur l’indicateur RSI pour envoyer des signaux de négociation dans les zones de survente.

Un signal d’achat est généré lorsque le prix de clôture franchit la ligne de référence et se trouve au-dessus du nuage; un signal de vente est généré lorsque le prix de clôture tombe sous la ligne de référence et se trouve en dessous du nuage.

Avantages stratégiques

  1. Le système de ligne moyenne à un coup d’œil détermine les tendances avec précision et un taux de victoire plus élevé

  2. Combinez plusieurs indicateurs pour éviter de rater une occasion

  3. L’indicateur RSI est un bon indicateur de point de basculement.

  4. Le graphique de nuages montre les tendances à court et à long terme

Analyse des risques

  1. Le système de la ligne moyenne à un œil est en retard et doit être évalué en fonction d’autres indicateurs.

  2. Les marchés tendanciels ont bien fonctionné, mais les marchés volatiles se sont généralement bien comportés.

  3. Les paramètres RSI doivent être ajustés en fonction du marché

  4. La conception de la carte du nuage est complexe et nécessite une bonne maîtrise.

L’optimisation peut être effectuée en ajustant les paramètres de la ligne moyenne à vue d’œil ou en combinant plus d’indicateurs techniques.

Direction d’optimisation

  1. Optimiser les paramètres de la moyenne directe pour déterminer plus rapidement les tendances

  2. Augmentation des indicateurs tels que les moyennes mobiles pour améliorer la précision du signal

  3. Paramètres de réglage du RSI en fonction des différents marchés

  4. L’inclusion d’un mécanisme de prévention des pertes pourrait être envisagée pour contrôler les risques

Résumer

La stratégie utilise une approche globale de plusieurs indicateurs de jugement de tendance, tels que la ligne moyenne directe et le RSI, pour déterminer la tendance à la hausse avec une grande précision. Cependant, le système de ligne moyenne directe est en retard et ne peut pas déterminer les oscillations, ce qui est le principal risque de la stratégie.

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

//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===



//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur



//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
plotchar(buy,char='B',size=size.small,color=lime) 
plotchar(sell,char='S',size=size.small,color=orange)


//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))