
Esta estratégia é conhecida como a Estratégia Ichimoku Kinko Hyo, uma estratégia de negociação de BTC baseada na linha média de um olho em combinação com outros indicadores técnicos.
A estratégia baseia-se principalmente no sistema de linhas médias de um olho, que é um sistema de estratégia de negociação de tendências que integra vários indicadores técnicos. Inclui principalmente os seguintes indicadores:
Linha de referência ((Kijun Sen): representa a direção da tendência do mercado, é o ponto médio entre os altos e baixos dos últimos 26 dias, e pode servir como linha de suporte e resistência. Quando o preço de fechamento quebra a linha de referência, gera um sinal de compra e venda.
Linha de conversão ((Tenkan Sen): representa a dinâmica do preço das ações, que é o ponto médio entre os altos e baixos dos últimos 9 dias, que pode ser usado para determinar o momento de compra e venda.
SPAN FUTURO A: representa a linha intermédia da linha de visão média, é o valor médio da linha de referência e da linha de conversão, pode ser usado como linha de alerta da linha de visão média.
SPAN B Futuro: representa a linha de tendência de longo prazo, é o ponto médio dos últimos 52 dias, que pode constituir um gráfico de nuvem para julgar a tendência de longo prazo.
Além disso, a estratégia combina com o RSI para emitir sinais de negociação em áreas de sobrecompra e sobrevenda.
Quando o preço de fechamento quebra a linha de referência e está acima do gráfico da nuvem, gera um sinal de compra; e quando o preço de fechamento cai abaixo da linha de referência e está abaixo do gráfico da nuvem, gera um sinal de venda.
O sistema de linha média de um olho é preciso para avaliar a tendência e tem uma maior taxa de vitória
Combinando vários indicadores para evitar oportunidades perdidas
O indicador RSI pode ser um bom indicador de um ponto de inflexão.
A nuvem mostra tendências de curto e longo prazo
O sistema de linha média de um olho está atrasado e precisa ser avaliado com outros indicadores.
Mercado de tendência é bom, mas os mercados de turbulência são comuns
A configuração dos parâmetros do RSI precisa ser ajustada de acordo com o mercado
A construção do mapa de nuvem é mais complexa e requer habilidade de uso.
Pode-se ajustar os parâmetros da linha média de visão, ou combinar mais indicadores técnicos de otimização.
Parâmetros da linha média de visão foram otimizados para que ela possa avaliar tendências mais rapidamente.
Aumentar indicadores como a média móvel para melhorar a precisão do sinal
Parâmetros de ajuste do RSI para diferentes mercados
A inclusão de mecanismos de prevenção de perdas pode ser considerada para controlar os riscos
A estratégia utiliza um conjunto de vários indicadores de julgamento de tendências, como a linha de média, o RSI, etc., com alta precisão no julgamento de tendências ascendentes. No entanto, o sistema de linha de média está atrasado e não pode julgar oscilações, o principal risco da estratégia. Otimizando a configuração de parâmetros ou adicionando outros indicadores, pode compensar essa deficiência, tornando a estratégia mais estável e confiável.
/*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))))