//@version=5
indicator("Ichimoku with Buy/Sell Signals", overlay=true)

// 一目均衡表の設定
tenkan_len = input.int(9, "Conversion Line Length")
kijun_len = input.int(26, "Base Line Length")
senkou_span_b_len = input.int(52, "Leading Span B Length")
displacement = input.int(26, "Displacement")

// 計算
tenkan_sen = (ta.highest(high, tenkan_len) + ta.lowest(low, tenkan_len)) / 2
kijun_sen = (ta.highest(high, kijun_len) + ta.lowest(low, kijun_len)) / 2
senkou_span_a = (tenkan_sen + kijun_sen) / 2
senkou_span_b = (ta.highest(high, senkou_span_b_len) + ta.lowest(low, senkou_span_b_len)) / 2
chikou_span = close[displacement]

// プロット
plot(tenkan_sen, color=color.red, title="Tenkan-sen")
plot(kijun_sen, color=color.blue, title="Kijun-sen")
plot(close, offset=-displacement, color=color.green, title="Chikou Span")

// スパンAとBをplot → handleを取得
spanA_plot = plot(senkou_span_a, offset=displacement, color=color.orange, title="Senkou Span A")
spanB_plot = plot(senkou_span_b, offset=displacement, color=color.purple, title="Senkou Span B")

// 雲を塗る（fillを使用）
fill(spanA_plot, spanB_plot, color=senkou_span_a > senkou_span_b ? color.new(color.green, 80) : color.new(color.red, 80))

// 売買シグナル条件
buySignal  = ta.crossover(tenkan_sen, kijun_sen)
sellSignal = ta.crossunder(tenkan_sen, kijun_sen)

// 矢印を表示
plotshape(buySignal,  title="Buy Signal",  location=location.belowbar, color=color.green, style=shape.labelup,   text="BUY",  size=size.tiny)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red,   style=shape.labeldown, text="SELL", size=size.tiny)
