Ichimoku Kinko Hyo Baseado em BTC Estratégia de negociação

Autora:ChaoZhang, Data: 2023-12-20 13:34:08
Tags:

img

Resumo

Esta estratégia é chamada de Ichimoku Kinko Hyo Strategy. É uma estratégia de negociação de BTC baseada no sistema Ichimoku Kinko Hyo combinado com outros indicadores técnicos.

Estratégia lógica

A estratégia é baseada principalmente no sistema Ichimoku Kinko Hyo, que incorpora vários indicadores técnicos para negociação de tendências.

Kijun Sen: Representa a direção da tendência do mercado. É o ponto médio do preço mais alto e mais baixo nos últimos 26 dias, atua como linhas de suporte e resistência.

Tenkan Sen: Representa a dinâmica do preço. É o ponto médio do preço mais alto e mais baixo nos últimos 9 dias, ajuda a determinar os melhores pontos de entrada e saída.

Senkou Span A: representa a linha de meio prazo de Ichimoku. É a média de Kijun Sen e Tenkan Sen, atua como linha de aviso de Ichimoku.

Senkou Span B: representa a linha de tendência de longo prazo. É o ponto médio dos últimos 52 dias. Forma a nuvem Ichimoku para determinar tendências de longo e curto prazo.

Além disso, a estratégia também incorpora o indicador RSI para gerar sinais de negociação em zonas de sobrecompra e sobrevenda.

Os sinais de compra são gerados quando o preço de fechamento quebra acima de Kijun Sen e localiza acima da nuvem. Os sinais de venda são gerados quando o preço de fechamento quebra abaixo de Kijun Sen e localiza abaixo da nuvem.

Vantagens

  1. O sistema Ichimoku determina com precisão as tendências com uma taxa de ganhos relativamente elevada.

  2. A incorporação de múltiplos indicadores evita oportunidades perdidas.

  3. O RSI determina efetivamente os pontos de reversão.

  4. A nuvem apresenta intuitivamente tendências de longo e curto prazo.

Análise de riscos

  1. O sistema Ichimoku tem um certo atraso, precisa de incorporação de outros indicadores.

  2. Funciona muito bem em mercados de tendências, mas modestamente em mercados variados.

  3. Os parâmetros do RSI necessitam de ajustamentos com base nos mercados.

  4. A construção de nuvens é complexa, o que requer uma manipulação hábil.

Os parâmetros de Ichimoku podem ser otimizados ou mais indicadores podem ser adicionados.

Orientações de otimização

  1. Otimize os parâmetros do Ichimoku para determinar tendências mais rapidamente.

  2. Adicionar mais indicadores como médias móveis para melhorar a precisão do sinal.

  3. Ajustar o parâmetro RSI com base em diferentes mercados.

  4. Considerar a adição de mecanismos de stop loss para controlar os riscos.

Conclusão

O Ichimoku, combinado com indicadores como o RSI, tem alta precisão na captura de tendências de alta. O atraso do Ichimoku e a inadaptabilidade em mercados variados são grandes riscos.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===



//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur



//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
plotchar(buy,char='B',size=size.small,color=lime) 
plotchar(sell,char='S',size=size.small,color=orange)


//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

Mais.