Optimisation de la stratégie de bande de nuages ​​Ichimoku


Date de création: 2024-01-19 14:45:21 Dernière modification: 2024-01-19 14:45:21
Copier: 0 Nombre de clics: 641
1
Suivre
1617
Abonnés

Optimisation de la stratégie de bande de nuages ​​Ichimoku

Aperçu

Cette stratégie est une stratégie de suivi de la tendance qui combine un indicateur de diagramme de nuage et plusieurs indicateurs auxiliaires. La direction de la tendance est principalement déterminée par un diagramme de nuage, avec des filtres complémentaires sur des indicateurs tels que MACD, CMF et TSI pour améliorer la qualité du signal.

Principe de stratégie

Cette stratégie utilise principalement la variation d’un diagramme de nuage pour déterminer la direction de la tendance. Lorsque l’antenne passe par la bande de nuage, faites plus et laissez vide lorsque vous passez par la bande de nuage.

Plus précisément, les conditions de déclenchement de la multiplication des signaux sont les suivantes:

  1. Une bande de nuages à l’antenne
  2. La bande de nuage est plus large, la ligne de virage est au-dessus de la ligne de référence
  3. La ligne de décalage est au-dessus de l’axe 0
  4. Le prix de clôture est au-dessus des nuages
  5. La colonne MACD est située au-dessus de l’axe 0
  6. CMF est supérieur à 0,1
  7. TSI au dessus de l’axe 0

Les conditions de déclenchement des signaux de dégagement sont les contraires à celles décrites ci-dessus. Ainsi, grâce à un jugement global de plusieurs indicateurs, il est possible de filtrer efficacement la plupart des faux signaux et de bloquer les principales tendances du marché.

Avantages stratégiques

Le plus grand avantage de cette stratégie réside dans le fait que la combinaison de plusieurs indicateurs élimine les faux signaux et saisit les tendances fortes. Plus précisément, il y a principalement les avantages suivants:

  1. Une carte nuageuse pour déterminer la direction des tendances dominantes et s’assurer que la direction générale est correcte
  2. Les indicateurs auxiliaires filtrent davantage les signaux et réduisent le risque de transaction
  3. Les signaux sont plus fiables en prenant en compte tous les facteurs liés aux cycles de temps.
  4. Les conditions sont strictes, négociez uniquement des signaux de haute qualité et évitez les marchés pauvres.
  5. Le suivi des tendances et le profit maximisé de la tendance

Grâce à ces jugements globaux, la stratégie peut effectivement saisir les secteurs chauds de la ligne moyenne et longue du marché boursier, suivre la tendance et tirer un profit supplémentaire considérable.

Risque stratégique

Les principaux risques de cette stratégie sont les suivants:

  1. Risque de fausse rupture. Lorsque le prix est en fausse rupture, il est facile de générer de faux signaux.
  2. Le risque de renversement de la tendance. Les actions ont un mouvement régulier, il y a toujours un retour en arrière à long terme, il y a une possibilité de perdre tout le profit.
  3. La fréquence de négociation est faible, le risque est faible. Les conditions sont plus strictes, il est possible de rater certaines opportunités.

Les moyens de réduire les risques sont:

  1. Une plus grande flexibilité dans les conditions de filtrage et une plus grande fréquence des transactions.
  2. Augmenter les conditions de stop-loss pour éviter l’expansion des pertes
  3. Optimisation des paramètres et amélioration de la précision du signal.

Orientation de l’optimisation de la stratégie

Cette stratégie peut être optimisée principalement dans les domaines suivants:

  1. Optimisation des paramètres. Les paramètres peuvent être optimisés avec plus de données de retour pour trouver une meilleure combinaison de paramètres.

  2. Augmentation du mécanisme de stop-loss. Laxation appropriée des conditions d’entrée, mais la mise en place d’un stop-loss pour contrôler les risques.

  3. Augmentation des arrêts mobiles. Utilisez les arrêts de suivi de tendance pour verrouiller les bénéfices et éviter les pertes inversées.

  4. Optimiser les indicateurs de filtrage. Vous pouvez tester plus d’indicateurs pour trouver une meilleure combinaison de signaux de filtrage.

  5. Augmenter les règles pour détecter automatiquement les faux-semblants.

Résumer

Cette stratégie utilise un diagramme en nuage et plusieurs indicateurs auxiliaires pour évaluer l’efficacité. Par l’optimisation des paramètres, l’amélioration du mécanisme de stop-loss et l’optimisation des indicateurs, la stabilité de la stratégie peut être encore améliorée, la qualité du signal peut être améliorée et les gains stables peuvent être plus élevés.

Code source de la stratégie
/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-13 14:00:00
period: 1m
basePeriod: 1m
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/
// © exlux99

//@version=4
strategy("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0)



//Inputs
ts_bars = input(10, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(30, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(52, minval=1, title="Senkou-Span B Bars")
cs_offset = input(26, minval=1, title="Chikou-Span Offset")
ss_offset = input(26, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)


ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
fast_length = input(title="Fast Length", type=input.integer, defval=17)
slow_length = input(title="Slow Length", type=input.integer, defval=28)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(close, cs_offset-1) > 0
cs_cross_bear = mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low


//CMF
lengthA = input(8, minval=1, title="CMF Length")
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthA) / sum(volume, lengthA)


//TSI
long = input(title="Long Length", type=input.integer, defval=8)
short = input(title="Short Length", type=input.integer, defval=8)
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)



bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0  and mf < -0.1 and tsi_value < 0



strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.entry("Short", strategy.short, when=bearish and short_entry)

strategy.close("Long", when=bearish and not short_entry)
strategy.close("Short", when=bullish and not long_entry)