//@version=5 indicator("Ichimoku with Strong Buy/Sell (3役好転/逆転)", 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(spanA_plot, spanB_plot, color=senkou_span_a > senkou_span_b ? color.new(color.green, 80) : color.new(color.red, 80)) // ────────────── // 3役好転・逆転の条件 // ────────────── // 転換線と基準線のクロス crossUp = ta.crossover(tenkan_sen, kijun_sen) crossDown = ta.crossunder(tenkan_sen, kijun_sen) // 価格と雲の位置 aboveCloud = close > math.max(senkou_span_a[displacement], senkou_span_b[displacement]) belowCloud = close < math.min(senkou_span_a[displacement], senkou_span_b[displacement]) // 遅行スパンの位置 chikouAbove = chikou_span > close chikouBelow = chikou_span < close // 3役好転(強い買い) strongBuy = crossUp and aboveCloud and chikouAbove // 3役逆転(強い売り) strongSell = crossDown and belowCloud and chikouBelow // ────────────── // 強い売買シグナルを矢印で表示 // ────────────── plotshape(strongBuy, title="Strong Buy", location=location.belowbar, color=color.lime, style=shape.labelup, text="強買", size=size.small) plotshape(strongSell, title="Strong Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="強売", size=size.small)