Stratégie de suivi des tendances basée sur Ichimoku Kinko Hyo


Date de création: 2023-12-11 15:00:29 Dernière modification: 2023-12-11 15:00:29
Copier: 0 Nombre de clics: 666
1
Suivre
1621
Abonnés

Stratégie de suivi des tendances basée sur Ichimoku Kinko Hyo

Aperçu

Cette stratégie est basée sur la conception de l’indicateur technique Ichimoku, qui utilise un mode de négociation de suivi de tendance et de rupture équilibrée pour saisir les tendances des prix des lignes moyennes et longues et réaliser des bénéfices stables.

Principe de stratégie

La stratégie utilise les cinq lignes de l’équilibre à première vue - la ligne de virage, la ligne de référence, la ligne de front, la ligne de tête et la ligne de retard - pour juger de la tendance des prix et de la résistance de soutien. Les règles de jugement spécifiques sont les suivantes:

  1. Un signal d’achat est généré lorsque le prix de clôture traverse la ligne de référence et que la ligne de référence est inhabituelle.
  2. Un signal de vente est généré lorsque le prix de clôture est en dessous de la ligne de référence et que la ligne de référence est inhabituelle.
  3. La liquidité est meilleure lorsque le cours de clôture est supérieur au cours de clôture, ce qui permet la constitution d’une réserve.
  4. La liquidité est faible lorsque le cours de clôture est inférieur au cours de clôture du marché et la création d’entrepôts est interdite
  5. La ligne de décalage sur le prix de clôture génère un signal d’achat.
  6. Le retard sous la ligne de traversée du prix de clôture génère un signal de vente.

La date d’entrée définitive est déterminée après évaluation de tous les signaux de négociation ci-dessus.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’équilibre à première vue permet de détecter les tendances, de filtrer le bruit du marché et de localiser les tendances de la ligne moyenne et longue.
  2. En combinant le cloud avec la liquidité, il est possible d’éviter les risques de création de positions.
  3. La ligne de retard est utilisée comme signal de confirmation pour éviter les fausses percées.
  4. Les règles sont simples, claires et faciles à appliquer.

Analyse des risques

La stratégie présente également les risques suivants:

  1. Une mauvaise configuration des paramètres peut entraîner des opportunités de trading manquées.
  2. La tendance à la mutation est retardée et ne peut pas être arrêtée à temps.
  3. Il y a un risque de perte pour les détenteurs de positions multiples.

Les risques mentionnés ci-dessus peuvent être résolus par la définition de paramètres d’optimisation, en combinaison avec d’autres indicateurs pour juger des changements de tendance et des arrêts stricts.

Direction d’optimisation

Les stratégies peuvent également être optimisées dans les domaines suivants:

  1. Optimiser les paramètres d’un tableau d’équilibre à première vue pour trouver la combinaison optimale.
  2. Il a ajouté des filtres à l’indicateur de prix et de quantité afin d’éviter une déviation de tendance.
  3. Le point de basculement est déterminé en fonction de l’indicateur de volatilité.
  4. Les modèles d’apprentissage automatique sont utilisés pour déterminer l’état des tendances.

Résumer

Cette stratégie utilise un tableau d’équilibre à première vue pour déterminer la tendance des prix et la situation de la liquidité. Elle utilise un mode de suivi de la tendance, permettant de filtrer efficacement le bruit pour capturer la tendance de la ligne médiane, avec un risque de rétractation plus faible et adapté à la position de la ligne médiane.

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

//@version=3
strategy("My Ichimoku Strat", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.EUR)
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, 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

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8)
buy=buy2 and buy3 or (buy1 and sellCompteur <=8)
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))))