yuya_takahashi_

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

教育
yuya_takahashi_ アップデート済   
FX:USDJPY   米ドル/円
やることが増えるごとにコードの行数も増えます。

追加したのは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日のそれよりも上にある状態を指しています。
コメント:
次の講座

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

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

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

関連のアイデア

免責事項

これらの情報および投稿は、TradingViewが提供または保証する金融、投資、取引、またはその他の種類のアドバイスや推奨を意図したものではなく、またそのようなものでもありません。詳しくは利用規約をご覧ください。