
Ichimoku Entries é uma estratégia quantitativa que usa o indicador de gráficos da nuvem Ichimoku para identificar a direção da tendência e emite sinais de negociação em combinação com os indicadores de Brin e RSI. A estratégia baseia-se principalmente na linha de dez giros e na linha de base para determinar se o mercado está em um mercado de ativos ou em um mercado de ativos vazios, gerando sinais de entrada para posições longas e curtas.
A estratégia usa principalmente as duas linhas importantes do gráfico da nuvem de Ichimoku, a linha de dez giros e a linha de base. A linha de dez giros é a média dos preços mais altos e mais baixos dos últimos 9 dias, representando a tendência de curto prazo. A linha de base é a média dos preços mais altos e mais baixos dos últimos 26 dias, representando a tendência de médio e longo prazo.
Além do gráfico da nuvem de Ichimoku, a estratégia também detecta os indicadores de Brin e RSI para emitir sinais de negociação. Somente quando o preço de fechamento quebra o Brin para cima ou para baixo, o preço é anormal.
Na lógica de saída, a estratégia julga se a ruptura da faixa de Brin foi bem sucedida, e se o indicador de ambiente de negociação TPO ocorreu na travessia do eixo zero, para determinar a saída de lucro ou parada de perda.
A maior vantagem da estratégia é que ela usa simultaneamente o julgamento de tendências e oscilações anormais para determinar a direção das negociações. O gráfico da nuvem de Ichimoku pode julgar claramente as tendências, enquanto a faixa de Bryn pode capturar oscilações anormais. O indicador RSI pode filtrar efetivamente as brechas falsas.
Apesar de ter a vantagem de identificar tendências e flutuações anormais, a estratégia ainda apresenta um certo risco. Como a tendência é seguida para negociar, é mais provável que ocorram falsos sinais em situações de turbulência. Além disso, a configuração inadequada de parâmetros também pode afetar o desempenho da estratégia.
A estratégia pode ser melhorada em vários aspectos:
A estratégia de Ichimoku Entries é uma estratégia de acompanhamento de tendências com a fusão de vários indicadores. Ela julga simultaneamente a direção da tendência e a anomalia de preços, capturando o ritmo do mercado de forma mais confiável. Embora ainda haja espaço para melhorias, é, em geral, uma estratégia de negociação quantitativa que apresenta desempenho estável e controle de risco.
/*backtest
start: 2023-01-30 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ichi strategy", overlay=true)
// Input parameters
rsiLength = input(14, title="RSI Length")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2, title="Bollinger Bands Multiplier")
stopLossPct = input(1, title="Stop Loss Percentage")
takeProfitPct = input(2, title="Take Profit Percentage")
// Calculate Ichimoku Cloud components
tenkan = ta.sma(high + low, 9) / 2
kijun = ta.sma(high + low, 26) / 2
senkouA = (tenkan + kijun) / 2
senkouB = ta.sma(high + low, 52) / 2
// Bollinger Bands
basis = ta.sma(close, bbLength)
upperBB = basis + bbMultiplier * ta.stdev(close, bbLength)
lowerBB = basis - bbMultiplier * ta.stdev(close, bbLength)
// RSI
rsiValue = ta.rsi(close, rsiLength)
// Trade Proximity Oscillator
length = input(14, title="Channels Length")
multiplier = input(2, title="Channels Multiplier")
atr_length = input(14, title="ATR Length")
threshold_percentage = input(1.5, title="Threshold Percentage (%)")
ma = ta.sma(close, length)
std_dev = ta.stdev(close, length)
upper_band = ma + multiplier * std_dev
lower_band = ma - multiplier * std_dev
distance_upper = close - upper_band
distance_lower = lower_band - close
atr_value = ta.atr(atr_length)
threshold = atr_value * threshold_percentage
oscillator = distance_upper - distance_lower
// Strategy logic
longCondition = close > upperBB and tenkan > kijun and ta.crossover(close, basis) and rsiValue < 70
shortCondition = close < lowerBB and tenkan < kijun and ta.crossunder(close, basis) and rsiValue > 30
strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)
// Exit logic
longExitCondition = close < upperBB and ta.crossover(oscillator, 0)
shortExitCondition = close > lowerBB and ta.crossunder(oscillator, 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=close - close * stopLossPct / 100, profit=close + close * takeProfitPct / 100, when = longExitCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=close + close * stopLossPct / 100, profit=close - close * takeProfitPct / 100, when = shortExitCondition)
// Plotting
plot(senkouA, color=color.green, title="Senkou A")
plot(senkouB, color=color.red, title="Senkou B")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")
// Additional Plots
plot(tenkan, color=color.orange, title="Tenkan")
plot(kijun, color=color.purple, title="Kijun")