Strategi Trend Balancing adalah strategi trend following yang memanfaatkan indikator Ichimoku Kinko Hyo. Strategi ini mengidentifikasi arah tren dengan menggabungkan beberapa indikator, pergi panjang di pasar bull dan pergi pendek di pasar bear, untuk mencapai apresiasi modal jangka panjang.
Inti dari strategi ini didasarkan pada indikator Ichimoku Kinko Hyo, yang terdiri dari Tenkan-Sen (Garis Konversi), Kijun-Sen (Garis Dasar), Senkou Span A (Leading Span A), Senkou Span B (Leading Span B) dan Chikou Span (Lagging Span).
Sinyal perdagangan dihasilkan berdasarkan kombinasi dari kondisi berikut:
Ini pergi panjang ketika semua kondisi bullish terpenuhi dan pergi pendek ketika semua kondisi bearish terpenuhi.
Strategi ini menggabungkan indikator trend berikut dan overbought-oversold untuk secara efektif mengidentifikasi arah tren.
Beberapa risiko yang perlu diperhatikan untuk strategi ini:
Solusi yang sesuai:
Strategi ini dapat ditingkatkan dalam hal berikut:
Secara keseluruhan, strategi Balancing Trend ini adalah sistem trend yang dapat diandalkan dan kuat. Ini mengatasi tantangan utama dalam perdagangan tren - akurasi identifikasi tren dan frekuensi pembuatan perdagangan. Masih ada ruang untuk perbaikan melalui penyesuaian parameter dan perluasan modul. Ini adalah strategi yang dapat diterapkan untuk jangka panjang.
/*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)