見出し画像

Pine Script™ (v5) の覚書 - 5 : boxを使って上位足のローソクを描く (3)

前回までの話。


lineを使って上位足のローソク(ヒゲ)を描く

lineを使うとチャート上に線を描くことができる。

lineとその引数

 line.new(x1, y1, x2, y2, xloc, extend, color, style, width) → series line

colorを使うと指定した色の透明度を設定できる。

colorとその引数

color.new(color, transp) → series color

ローソクの色を設定する

cTransparent=70
sColor=(open_D<close_D?cGreen:cRed)//陽線なら緑、陰線なら赤
pColor=color.new(sColor, cTransparent)//透過色

daycandle.set_border_color(na) // 枠線の色を削除
daycandle.set_bgcolor(pColor)

ヒゲのX座標は?
ヒゲは、ローソク本体の中央に描きたいので、X座標は上位足のtimeとtime_closeの中間とする。
ヒゲのY座標は?
上ヒゲは、陽線の場合「highからclose」、陰線の場合「highからopen」、
下ヒゲは、陽線の場合「lowからopen」、陰線の場合「lowからclose」となる。

画像1 ローソク足

ヒゲ部分のソースコードは以下となる。

// ローソク足のヒゲ
lineWidth=10

wickx=int(math.avg(time_D, time_close_D))//timeとtime_closeの中間をint化

var upperwick=line.new(wickx, na, wickx, na, xloc.bar_time)//最初の一回(ヒゲはあるかどうかわからないので、Y座標はna値
if new_bar
    upperwick:=line.new(wickx, na, wickx, na, xloc.bar_time)

upperwick.set_y1(high_D)
upperwick.set_y2(math.max(open_D, close_D))//openとcloseのうち大きい方を採用
upperwick.set_color(pColor)
upperwick.set_width(lineWidth)

var lowerwick=line.new(wickx, na, wickx, na, xloc.bar_time)//最初の一回(ヒゲはあるかどうかわからないので、Y座標はna値
if new_bar
    lowerwick:=line.new(wickx, na, wickx, na, xloc.bar_time)

lowerwick.set_y1(low_D)
lowerwick.set_y2(math.min(open_D, close_D))//openとcloseのうち小さい方を採用
lowerwick.set_color(pColor)
lowerwick.set_width(lineWidth)

ここまでのソースコードをまとめてチャートに反映すると図2となる。

図2 上位足のローソクとヒゲ


この記事が気に入ったらサポートをしてみませんか?