A estratégia de tendência de equilíbrio é uma estratégia de tendência que utiliza o indicador Ichimoku Kinko Hyo. Identifica direções de tendência combinando vários indicadores, vai longo em um mercado de alta e vai curto em um mercado de baixa, para alcançar uma apreciação de capital a longo prazo.
O núcleo desta estratégia é baseado no indicador Ichimoku Kinko Hyo, que consiste no Tenkan-Sen (Linha de Conversão), Kijun-Sen (Linha de Base), Senkou Span A (Leading Span A), Senkou Span B (Leading Span B) e Chikou Span (Lagging Span).
Os sinais de negociação são gerados com base na combinação das seguintes condições:
Ele vai longo quando todas as condições de alta são atendidas e vai curto quando todas as condições de baixa são atendidas.
Esta estratégia combina indicadores de tendência e de sobrecompra-supervenda para identificar eficazmente as direcções da tendência.
Alguns riscos a ter em conta para esta estratégia:
Soluções correspondentes:
A estratégia pode ser melhorada nos seguintes aspectos:
No geral, esta estratégia de balanço de tendência é um sistema de seguimento de tendências confiável e robusto. Aborda o desafio fundamental na negociação de tendências - equilibrar a precisão de identificação de tendências e a frequência de geração de negócios.
/*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)