Ichimoku Mischgleichgewichtstabelle Macd und Tsi Kombinationsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-27 11:50:43
Tags:

img

I. Überblick über die Strategie

Diese Strategie verwendet umfassend technische Indikatoren wie Ichimoku Kinko Hyo, Macd, Chaikin Money Flow und Tsi Oscillator, um die Richtung der Marktentwicklung für den kurzfristigen Handel genau zu beurteilen.

II. Strategieprinzip

Die Strategie verwendet die Tenkan-sen-Linie, Kijun-sen-Linie, Senkou Span A und Senkou Span B-Linien in Ichimoku, um den Intraday-Preistrend zu beurteilen. Gleichzeitig kombiniert sie die Kreuzsignale der schnellen und langsamen gleitenden Durchschnittslinien von Macd und den Geldflussindikator und den Schwingungsindikator, um den Geldzu- und Ausfluss zu bestimmen. Nach dem umfassenden Urteil mehrerer Indikatoren werden die Kauf- und Verkaufsentscheidungen getroffen.

Wenn die Tenkan-sen-Linie über die Kijun-sen-Linie kreuzt, ist der Chikou-Span über der 0-Achse und der Schlusskurs über der Ichimoku-Wolke, ein bullisches Signal. Im Gegenteil, wenn die Tenkan-sen-Linie unter der Kijun-sen-Linie kreuzt, ist der Chikou-Span unter der 0-Achse und der Schlusskurs unter der Wolke, ein bärisches Signal. Gleichzeitig erkennt die Strategie, ob das MACD-Histogramm positiv ist und ob der Chaikin-Geldflussindikator und der TSI-Oszillator in die gleiche Richtung positiv sind. Wenn die Indikatoren in die gleiche Richtung bullisch sind, wird eine Long-Position durch Einkaufen eröffnet, und wenn die Indikatoren in die gleiche Richtung bärisch sind, wird eine Short-Position durch Ausverkaufen eröffnet.

Wenn der Indikator ein Signal ausgibt, das dem vorherigen gegenübersteht, wird ein Umkehrhandel durchgeführt, um die vorherige Position zu ebnen.

III. Vorteile der Strategie

  1. Die Verwendung einer Kombination mehrerer Indikatoren verbessert die Richtigkeit des Urteils.

  2. Kurzfristige Operationen verfolgen die Marktschwankungen in Echtzeit.

  3. Kein manueller Eingriff, vollautomatisierter algorithmischer Handel.

IV. Risiken der Strategie und Lösungen

  1. Die Kombination von mehreren Indikatoren, die gleichzeitig bullisch oder bärisch sind, birgt das Risiko einer Fehleinschätzung.

  2. Der kurzfristige Handel mit hoher Frequenz hat relativ hohe Provisionsgebühren und es ist schwierig, Trends zu erfassen.

  3. Eine Einstellung des Stop-Loss kann zu größeren Verlusten führen. Angemessene Stop-Loss-Punkte oder bewegliche Stop-Loss-Punkte können basierend auf der ATR festgelegt werden.

V. Richtungen für die Optimierung der Strategie

  1. Optimierung der Parameterkombinationen, Anpassung der gleitenden Durchschnittsparameter an unterschiedliche Zyklen und Varianten.

  2. Steigern Sie den Stop-Loss-Mechanismus und setzen Sie dynamische Stop-Loss-Linien in Kombination mit dem ATR-Indikator ein.

  3. Erhöhen Sie die Positionsverwaltung, passen Sie dynamisch die Handelsvolumenproportionen an.

  4. Kombination von maschinellem Lernen zur Optimierung von Indikatoren und Signalen.

VI. Schlussfolgerung

Diese Strategie nutzt umfassend mehrere technische Indikatoren, um Trendschwankungen in Echtzeit für den Hochfrequenz-Kurzzeithandel zu bestimmen. Obwohl es einige Risiken gibt, kann sie durch Optimierung verbessert werden.


/*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)

Mehr