Tableau d'équilibre mixte de l'Ichimoku

Auteur:ChaoZhang est là., Date: 2023-11-27 11h50 et 43 min
Les étiquettes:

img

I. Vue d'ensemble de la stratégie

Cette stratégie utilise de manière exhaustive des indicateurs techniques tels que Ichimoku Kinko Hyo, Macd, Chaikin Money Flow et Tsi Oscillator pour juger avec précision de l'orientation des tendances du marché pour les transactions à court terme.

II. Principe de stratégie

La stratégie utilise la ligne Tenkan-sen, la ligne Kijun-sen, les lignes Senkou Span A et Senkou Span B à Ichimoku pour juger des tendances des prix intraday. Dans le même temps, elle combine les signaux croisés des lignes moyennes mobiles rapides et lentes de Macd et l'indicateur de flux monétaire et l'indicateur d'oscillation pour déterminer l'afflux et l'afflux de fonds. Après le jugement complet de plusieurs indicateurs, les décisions d'achat et de vente sont prises.

Lorsque la ligne Tenkan-sen traverse au-dessus de la ligne Kijun-sen, le Chikou Span est au-dessus de l'axe 0, et le prix de clôture est au-dessus du nuage Ichimoku, c'est un signal haussier. Au contraire, lorsque la ligne Tenkan-sen traverse au-dessous de la ligne Kijun-sen, le Chikou Span est au-dessous de l'axe 0, et le prix de clôture est au-dessous du nuage, c'est un signal baissier. En même temps, la stratégie détecte si l'histogramme MACD est positif et si l'indicateur Chaikin Money Flow et l'oscillateur TSI sont positifs dans le même sens. Si les indicateurs sont haussiers dans le même sens, la position longue est ouverte en achetant, et si les indicateurs sont baissiers dans le même sens, la position courte est ouverte en vendant.

Lorsque l'indicateur émet un signal opposé à celui précédent, une transaction inverse est effectuée pour aplatir la position précédente.

III. Avantages de la stratégie

  1. L'utilisation d'une combinaison d'indicateurs multiples améliore la précision du jugement.

  2. Les opérations à court terme suivent les fluctuations du marché en temps réel.

  3. Pas d'intervention manuelle, trading algorithmique entièrement automatisé.

IV. Risques de la stratégie et solutions

  1. Le jugement combiné de plusieurs indicateurs étant en hausse ou en baisse en même temps présente un risque d'erreur de jugement.

  2. Les opérations à court terme à haute fréquence comportent des commissions relativement élevées et il est difficile de détecter les tendances.

  3. Aucun réglage de stop loss ne peut entraîner de plus grandes pertes.

V. Directions pour l'optimisation de la stratégie

  1. Optimiser les combinaisons de paramètres, ajuster les paramètres de moyenne mobile pour les adapter aux différents cycles et variétés.

  2. Augmenter le mécanisme de stop-loss et définir des lignes de stop-loss dynamiques associées à l'indicateur ATR.

  3. Augmenter la gestion des positions, ajuster dynamiquement les proportions du volume des transactions.

  4. Combiner la technologie d'apprentissage automatique pour optimiser les indicateurs et signaux.

VI. Conclusion

Cette stratégie utilise de manière complète plusieurs indicateurs techniques pour déterminer les fluctuations de tendance en temps réel pour le trading à court terme à haute fréquence. Bien qu'il existe certains risques, elle peut être améliorée grâce à l'optimisation.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
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)

Plus de