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」となる。
ヒゲ部分のソースコードは以下となる。
// ローソク足のヒゲ
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となる。
この記事が気に入ったらサポートをしてみませんか?