yuya_takahashi_

Pine講座④ EMAの間を塗りつぶす

Education
FX:USDJPY   U.S. Dollar / Japanese Yen
やることが増えるごとにコードの行数も増えます。

追加したのはEMAの間を塗りつぶす機能。
EMAのクロスで塗りつぶす色を切り替えます。


=====
//@version=3
study( "EMAの間を塗りつぶす" ,overlay=true )

price = input( close ,title="EMAの対象" )

length1 = input( 5 ,title="EMA1の期間" )
length2 = input( 20 ,title="EMA2の期間" )
length3 = input( 40 ,title="EMA3の期間" )

// 変更点①
ema1 = ema( price ,length1 )
ema2 = ema( price ,length2 )
ema3 = ema( price ,length3 )

// 変更点②
p1 = plot( ema1 ,color=red )
p2 = plot( ema2 ,color=blue )
p3 = plot( ema3 ,color=green )

// 変更点③
fill( p2 ,p3 ,color = ema2 > ema3 ? blue : green )
=====


< 変更点① >

今まで plot( ) の中で実行していた ema( ) を外に出しました。

ema1 = ema( ) という形にすることで、
・ema1 として何度も使える
・計算の実行が1回で済む
というメリットがあります。

上の例での「ema1」を変数と言います。
変数を使うことで読みやすくて動作の軽いコードにすることができます。


< 変更点② >

plot( ) も変数に格納しておきます。


< 変更点③ >

fill( ) という、線の間を塗りつぶす関数を使います。
p2 と p3 は plot( ) で出力したEMAの線ですね。この2本の間を塗りつぶします。

同時に以下の箇所で色の指定を行っています。クロスで色を変更する機能ですね。
color = ema2 > ema3 ? blue : green

2本の計算値を比較するので、使う変数は ema2 と ema3。
{条件} ? {条件を満たす場合} : {条件を満たさない場合}
という形で、場合分けを行っています。

ema2は20日のEMA、ema3は40日のEMAですから、
ema2 > ema3 は 20日のEMAが40日のそれよりも上にある状態を指しています。
Comment:
次の講座

小次郎講師公式インジケーターのお申込
bit.ly/2vdSV4Q

小次郎講師のLINE@
bit.ly/2VZQFu3

小次郎講師のチャート情報局
bit.ly/2GvLAEp

Related Ideas

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.