Stratégie quantique du nuage Ichimoku

Auteur:ChaoZhang est là., Date: 2023-11-24 10:15:15 Je vous en prie.
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de long-only Ichimoku cloud quant. La stratégie juge la direction de la tendance à travers l'indicateur Ichimoku, combiné avec des modèles de ligne K, des moyennes mobiles et l'indicateur RSI stochastique pour filtrer les signaux et aller long à de meilleurs points d'entrée lorsque la tendance monte.

Principe de stratégie

Les principaux critères d'appréciation de la stratégie sont les suivants:

  1. La ligne 1 de Ichimoku traverse la ligne 2 indiquant une tendance à la hausse.
  2. Le prix de clôture de la ligne K dépasse la ligne de pointe 1, ce qui permet de suivre la tendance.
  3. La ligne K est une bougie verte, la tendance monte
  4. Lorsque les moyennes mobiles sont activées, une MA rapide traverse une MA lente
  5. Lorsque le RSI stochastique est activé, la ligne %K traverse la ligne %D

Lorsque toutes les conditions ci-dessus sont remplies en même temps, la stratégie ouvrira des positions longues.

La stratégie utilise principalement le nuage Ichimoku pour déterminer la direction de la tendance principale, combinée à des indicateurs auxiliaires pour filtrer les signaux et aller long à de meilleurs points lorsque la tendance monte.

Les avantages de la stratégie

  1. Utilisez le nuage Ichimoku pour déterminer la tendance principale, le backtest montre une grande précision
  2. Combiné à plusieurs indicateurs auxiliaires pour filtrer les points d'entrée, peut améliorer considérablement le taux de profit
  3. Stratégie à long terme, adaptée aux devises jugées en hausse
  4. Grand espace pour l'optimisation des paramètres, peut ajuster les paramètres de l'indicateur pour une optimisation ultérieure

Risques liés à la stratégie

  1. Il y a une probabilité que le nuage Ichimoku juge mal la tendance
  2. Le point stop-loss peut être rompu lors de changements soudains du marché, ce qui entraîne des pertes accrues.
  3. Conçu pour les marchés haussiers, non adapté aux devises présentant des signes cachés d'inversion de tendance
  4. Des paramètres mal réglés peuvent entraîner des entrées trop agressives ou des actions trop prudentes.

Les contre-mesures:

  1. Combiner plus d'indicateurs pour juger de la tendance, améliorer la précision
  2. Définir des points d'arrêt de perte raisonnables pour contrôler strictement les pertes individuelles
  3. Sélectionner les stratégies appropriées en fonction des conditions de marché des différentes monnaies
  4. Tester et optimiser soigneusement les paramètres pour rendre la stratégie plus stable

Directions pour l'optimisation de la stratégie

  1. Optimiser les paramètres des indicateurs auxiliaires pour améliorer encore la stabilité
  2. Ajouter des mécanismes de stop loss tels que le stop loss de suivi, le stop loss de moyenne mobile exponentielle, etc.
  3. Ajoutez la gestion des positions comme la taille des positions fixes, la moyenne des positions, etc.
  4. Faire des ajustements et des optimisations de paramètres pour des devises spécifiques

Résumé

Cette stratégie Ichimoku Cloud Quant réalise un taux de gain élevé mais une stratégie à long terme contrôlable par le risque en jugeant les directions de la tendance.


/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Ichimoku only Long Strategy", shorttitle="Ichimoku only Long", overlay = true, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=10000, currency=currency.USD)

// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2017,title="FromYear",minval=2017)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true
// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false

//Enable RSI
enableema = input(true, title="Enable EMA?")
enablestochrsi = input(false, title="Enable Stochastik RSI?")

//EMA
emasrc = close, 
len1 = input(24, minval=1, title="EMA 1")
len2 = input(90, minval=1, title="EMA 2")

ema1 = ema(emasrc, len1)
ema2 = ema(emasrc, len2)

col1 = color.lime
col2 = color.red

//EMA Plots
plot(ema1, title="EMA 1", linewidth=1, color=col1)
plot(ema2, title="EMA 2", linewidth=1, color=col2)

//STOCH RSI
smoothK = input(3, minval=1, title="RSI K Line")
smoothD = input(3, minval=1, title="RSI D Line")
lengthRSI = input(14, minval=1, title="RSI Length")
lengthStoch = input(14, minval=1, title="Stochastik Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

//Ichimoku
conversionPeriods = input(9, minval=1, title="Ichi Conversion Line Length")
basePeriods = input(26, minval=1, title="Ichi Base Line Length")
laggingSpan2Periods = input(52, minval=1, title="Ichi Lagging Span 2 Length")
displacement = input(1, minval=0, title="Ichi Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=color.green,
	 title="Lead 1")
p2 = plot(leadLine2, offset = displacement - 1, color=color.red,
	 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red)


//Long Condition
crossup = k[0] > d[0] and k[1] <= d[1]
ichigreenabovered = leadLine1 > leadLine2
ichimokulong = close > leadLine1
greencandle =  close > open
redcandle = close < open
emacond = ema1 > ema2
longcondition = ichigreenabovered and ichimokulong and greencandle

//Exit Condition
ichimokuexit = close < leadLine1

exitcondition = ichimokuexit and redcandle

//Entrys

if (enablestochrsi == false) and (enableema == false) and (longcondition) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)
    
if (enablestochrsi == true) and (enableema == false) and (longcondition) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == false) and (longcondition) and (emacond) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == true) and (longcondition) and (emacond) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)


//Exits
if (afterStartDate)
    strategy.close(id = "Long", when = exitcondition)









Plus de