
La estrategia es un sistema de negociación dinámica basado en brechas en la nube y cruces de doble equinoccio. Combina varios componentes del indicador de la nube a simple vista para identificar la dirección de la tendencia del mercado y los cambios en la dinámica, generando señales de negociación a través de la relación de la posición de los precios con la nube y el cruce de la línea de conversión con la línea de referencia. La idea central de la estrategia es capturar oportunidades de dinámica en una tendencia fuerte.
La estrategia utiliza los siguientes componentes clave:
Condiciones de entrada:
Condiciones de salida: Posiciones cerradas cuando se produce una señal de negociación contraria
Sugerencias para el control de riesgos:
Es un sistema de estrategia integral que combina el seguimiento de tendencias y el comercio de volúmenes. La combinación de la brecha de la nube y el cruce de la línea uniforme permite capturar eficazmente las oportunidades de tendencia del mercado mientras se mantiene la estabilidad de la estrategia. La aplicación exitosa de la estrategia requiere una atención seria a los tres aspectos clave de la optimización de los parámetros, el control del riesgo y la adaptabilidad del mercado.
/*backtest
start: 2024-02-08 00:00:00
end: 2025-02-06 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud Strategy", shorttitle="IchimokuStrat", overlay=true)
//=== Užívateľské vstupy ===//
tenkanLen = input.int(9, "Tenkan-Sen Length")
kijunLen = input.int(26, "Kijun-Sen Length")
senkouSpanBLen = input.int(52, "Senkou Span B Length")
displacement = input.int(26, "Cloud Displacement")
//=== Výpočet Ichimoku liniek ===//
// Tenkan-Sen (Conversion Line)
tenkanHigh = ta.highest(high, tenkanLen)
tenkanLow = ta.lowest(low, tenkanLen)
tenkan = (tenkanHigh + tenkanLow) / 2.0
// Kijun-Sen (Base Line)
kijunHigh = ta.highest(high, kijunLen)
kijunLow = ta.lowest(low, kijunLen)
kijun = (kijunHigh + kijunLow) / 2.0
// Senkou Span A = (Tenkan + Kijun)/2, posunutý dopredu
spanA = (tenkan + kijun) / 2.0
// Senkou Span B = (highest high + lowest low)/2, posunutý dopredu
spanBHigh = ta.highest(high, senkouSpanBLen)
spanBLow = ta.lowest(low, senkouSpanBLen)
spanB = (spanBHigh + spanBLow) / 2.0
// Chikou Span (voliteľný) = current close, posunutý dozadu
chikou = close[displacement]
//=== Podmienky pre LONG / SHORT ===//
// Cena NAD oblakom => close > spanA a close > spanB
// Tenkan NAD Kijun => tenkan > kijun
longCondition = (close > spanA and close > spanB) and (tenkan > kijun)
// Cena POD oblakom => close < spanA a close < spanB
// Tenkan POD Kijun => tenkan < kijun
shortCondition = (close < spanA and close < spanB) and (tenkan < kijun)
//=== Vstup do pozícií ===//
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
//=== Výstup pri opačnom signáli ===//
if strategy.position_size > 0 and shortCondition
strategy.close("Long", comment="Exit Long")
if strategy.position_size < 0 and longCondition
strategy.close("Short", comment="Exit Short")
//=== Vykreslenie Ichimoku = vyplnený oblak ===//
// Najskôr si ulož premenne (plot) pre spanA, spanB
plotA = plot(spanA, title="Span A", offset=displacement, color=color.new(color.green, 0))
plotB = plot(spanB, title="Span B", offset=displacement, color=color.new(color.red, 0))
// Namiesto plotfill() použijeme fill()
fill(plotA, plotB, title="Cloud Fill", color=color.new(color.green, 80))