//@version=6
indicator("±5%scale_line_and_SMA5,10,20,50,100", overlay=true)

//移動平均線をプロット
//plot(ta.sma(close, 3),color=color.red,linewidth = 2)
plot(ta.sma(close, 5),color=color.red,linewidth = 2)
//plot(ta.sma(close, 7),color=color.yellow,linewidth = 2)
plot(ta.sma(close, 10),color=color.green,linewidth = 2)
plot(ta.sma(close, 20),color=color.rgb(109, 182, 242),linewidth = 2)
//plot(ta.sma(close, 30),color=color.blue,linewidth = 2)
plot(ta.sma(close, 50),color=color.purple,linewidth = 2)
plot(ta.sma(close, 100),color=color.orange,linewidth = 2)

// チャートの一番右端のバーかどうか
isLastBar = (bar_index == last_bar_index)

// ラインを一度だけ描画するためのフラグ
var bool linesDrawn = false

// 比率目盛の比率とライン数
ratio=0.05
linesCount = 20

// ラインの色とスタイル
lineColorRed = color.red
lineColorBlue = color.blue
lineColorGreen = color.green
lineStyle = line.style_solid
lineWidth = 1

// 終値の基準（右端バーで取得）
var float basePrice = na
if isLastBar and na(basePrice)
    basePrice := close
   // 終値のライン
    line.new(x1=bar_index-1, y1=basePrice, x2=bar_index, y2=basePrice,color=lineColorGreen, style=lineStyle, width=lineWidth, extend=extend.both)
//比率目盛ライン
// ライン描画（右端バーで1回だけ）
if isLastBar and not linesDrawn and not na(basePrice)
    for i = 1 to linesCount
        levelUp = basePrice * (1 + ratio * i)
        levelDown = basePrice * (1 - ratio * i)

        // 上側（赤）のライン
        line.new(x1=bar_index-1, y1=levelUp, x2=bar_index, y2=levelUp,
                 color=lineColorRed, style=lineStyle, width=lineWidth, extend=extend.both)

        // 下側（青）のライン
        line.new(x1=bar_index-1, y1=levelDown, x2=bar_index, y2=levelDown,
                 color=lineColorBlue, style=lineStyle, width=lineWidth, extend=extend.both)

    linesDrawn := true
