
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.
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:
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é.
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:
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.
Les principaux risques de cette stratégie sont les suivants:
Les moyens de réduire les risques sont:
Cette stratégie peut être optimisée principalement dans les domaines suivants:
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.
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.
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.
Optimiser les indicateurs de filtrage. Vous pouvez tester plus d’indicateurs pour trouver une meilleure combinaison de signaux de filtrage.
Augmenter les règles pour détecter automatiquement les faux-semblants.
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.
/*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)