![見出し画像](https://assets.st-note.com/production/uploads/images/142254546/rectangle_large_type_2_ecc25d2f6620004fca1f8487ba1afddb.png?width=800)
Pine Script™ (v5) の覚書 - 8 : UDTs(user-defined types)を使ってみる (4)
前回までの話
ローソク本体(box)と上ヒゲ下ヒゲ(line)も、ひとまとめに定義することができる。
以前に、boxを使って上位足のローソクを描いたが、ローソク本体(box)と上ヒゲ下ヒゲ(line)もひとまとめに定義することができる。
type htf_candle
box body
line wick
line tail
これを以下のように初期化する。
myCandle=htf_candle.new(
box.new(na,na,na,na,xloc=xloc.bar_time),
line.new(na,na,na,na,xloc=xloc.bar_time,width=4),
line.new(na,na,na,na,xloc=xloc.bar_time,width=4)
)
candle型, colors型, htf_candle型 を用いて日足のローソク足を描くと以下のようになる。
dayCandle=request.security(syminfo.tickerid,"D",candle.new(time,time_close,open,close,high,low))
bool newCandle=ta.change(dayCandle.t)!=0
myCandle=htf_candle.new(
box.new(na,na,na,na,xloc=xloc.bar_time),
line.new(na,na,na,na,xloc=xloc.bar_time,width=4),
line.new(na,na,na,na,xloc=xloc.bar_time,width=4)
)
if newCandle
myCandle:=htf_candle.new(
box.new(na,na,na,na,xloc=xloc.bar_time),
line.new(na,na,na,na,xloc=xloc.bar_time,width=4),
line.new(na,na,na,na,xloc=xloc.bar_time,width=4)
)
// ローソク本体
myCandle.body.set_lefttop(dayCandle.t,dayCandle.o)
myCandle.body.set_rightbottom(dayCandle.tc-timeframe.in_seconds(timeframe.period)*1000,dayCandle.c)
myCandle.body.set_border_color(dayCandle.o<dayCandle.c?myColor.lime70:myColor.red70)
myCandle.body.set_bgcolor(dayCandle.o<dayCandle.c?myColor.lime70:myColor.red70)
// ローソク上ヒゲ
myCandle.wick.set_xy1((dayCandle.t+dayCandle.tc)/2,math.max(dayCandle.o,dayCandle.c))
myCandle.wick.set_xy2((dayCandle.t+dayCandle.tc)/2,dayCandle.h)
myCandle.wick.set_color(dayCandle.o<dayCandle.c?myColor.lime80:myColor.red80)
// ローソク下ヒゲ
myCandle.tail.set_xy1((dayCandle.t+dayCandle.tc)/2,math.min(dayCandle.o,dayCandle.c))
myCandle.tail.set_xy2((dayCandle.t+dayCandle.tc)/2,dayCandle.l)
myCandle.tail.set_color(dayCandle.o<dayCandle.c?myColor.lime80:myColor.red80)
ローソク足の初期化部分が冗長だが、、、
続く
この記事が気に入ったらサポートをしてみませんか?