
Die Gleichgewichtsstrategie ist eine Trendbeobachtungsstrategie, die mit dem Ichimoku Kinko Hyo-Indikator umgesetzt wird. Die Strategie kombiniert mehrere Indikatoren, um die Richtung des Trends zu identifizieren, in den Bullen zu handeln und in den Bären zu handeln, um die langfristige Wertsteigerung des Kapitals zu erreichen.
Die Strategie basiert hauptsächlich auf dem Ichimoku Kinko Hyo-Indikator. Der Indikator besteht aus einer Wendelinie (Tenkan-Sen), einer Basislinie (Kijun-Sen), einer Vorlauflinie (Senkou-Span A), einer Vorlauflinie (Senkou-Span B) und einer Verzögerungslinie (Chikou-Span).
Die Handelssignale für diese Strategie stammen aus einer Kombination der folgenden Bedingungen:
Wenn die oben genannten mehrfachen Bedingungen gleichzeitig erfüllt sind, machen Sie mehrere Eintritte. Wenn die oben genannten leeren Bedingungen gleichzeitig erfüllt sind, machen Sie leere Eintritte.
Die Strategie kombiniert Trend-Tracking und Überkauf-Überverkauf-Indikatoren, um die Richtung von Trends zu erkennen. Die Hauptvorteile sind:
Die Strategie birgt auch einige Risiken, die beachtet werden müssen:
Entsprechende Lösungen:
Die Strategie kann in folgenden Richtungen optimiert werden:
Die Gleichgewichtsstrategie als Ganzes ist eine zuverlässige, robuste Trendverfolgungsstrategie. Sie löst wichtige Probleme im Trendhandel und stellt die Balance zwischen der Trendgenauigkeit und der Frequenz der Trades dar. Es gibt noch Optimierungsmöglichkeiten durch Parameteranpassung und Modulvergrößerung und ist eine Strategie, die langfristig eingesetzt werden kann.
/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Ichimoku Kinko Hyo: ETH 3h Strategy by tobuno", overlay=true)
//Inputs
ts_bars = input(22, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(60, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(120, minval=1, title="Senkou-Span B Bars")
cs_offset = input(30, minval=1, title="Chikou-Span Offset")
ss_offset = input(30, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")
//Volatility
vollength = input(defval=2, title="VolLength")
voltarget = input(defval=0.2, type=float, step=0.1, title="Volatility Target")
Difference = abs((close - open)/((close + open)/2) * 100)
MovingAverage = sma(Difference, vollength)
highvolatility = MovingAverage > voltarget
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////////////////////////////////////////////////////////
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)
//RSI
change = change(close)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))
// Plot Ichimoku Kinko Hyo
plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#459915, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=green, title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=red, title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? green : red, title="Cloud color")
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
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
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish and highvolatility
strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond)
strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond)
strategy.close("Long", when=bearish and not short_entry and time_cond)
strategy.close("Short", when=bullish and not long_entry and time_cond)