
トレンド系インジケーター関数を紹介した記事やオシレーター系インジケーター関数を紹介した記事に続いて、今回はOBVやMFIなどの出来高を使たインジケーター関数を紹介します。
オンバランスボリューム「obv()」
OBVは出来高から値動きの強弱を示すインジケーターです。前日終値を更新するとOBVが上昇し、前日終値よりも低いとOBVが低下します。OBVは出来高を示す値なので、OBVが上昇していると出来高を伴って価格が上昇していることになります。
OBVの計算方法は以下3つの中から選択します。
当日終値が前日終値よりも高い場合: OBV = 前日OBV + 当日の出来高
当日終値が前日終値よりも低い場合: OBV = 前日OBV – 当日の出来高
本日終値が前日終値と同じ場合: OBV = 前日OBV
Pineスクリプトでは、OBVを以下のように書きます。
obv()
OBVは使用する値、期間が決まっているので引数内は何も書く必要がありません。
マネーフローインデックス「mfi()」
MFIはその名の通り、資金の流れ(売りと買いどちらに向いているか)を示すインジケーターです。類似のインジケーターとしてRSIがありますが、RSIとの違いは出来高を考慮した計算式になっている点です。
代表価格:TP = (高値 + 安値 + 終値)÷ 3
出来高:Volume
マネーフロー:MF = TP * Volume
期間Nで前日MFがプラスの日のMF合計値:PMF
期間Nで前日MFがマイナス又は同値の日のMF合計値:NMF
MFI = 100 – 100 ÷ (1 + PMF ÷ NMF)
Pineスクリプトでは、MFIのコードを以下のように書きます。
mfi(series, length)
- series:hlc3、(高値 + 安値 + 終値)÷ 3を表す値です。
- length:計算に使用する期間(ロウソク足の数)を入力。一般的には14を使います。
例えば、期間14におけるMFIのコードは以下のように書きます。
mfi(hlc3, 14)
ネガティブボリュームインデックス「nvi()」
NVIは強気相場、弱気相場を判断するのに使用するインジケーターです。前日よりも少ない出来高で価格が上がるとNVIは上昇し、前日よりも少ない出来高で価格が下がるとNVIは低下します。出来高が前日よりも大きいとNVIは変化しません。
・当日出来高 < 前日出来高の場合
NVI = (当日終値 – 前日終値) ÷ 前日終値 × 100 + 前日NVI
・当日出来高 ≧ 前日出来高の場合
NVI = 前日NVI
Pineスクリプトでは、NVIを以下のように書きます。
NVI()
ポジティブボリュームインデックス「pvi()」
PVIはNVIと対の関係にあり、前日よりも多い出来高で価格が上がるとPVIは上昇し、前日よりも多い出来高で価格が下がるとPVIは低下します。NVIと同様に出来高が前日よりも大きいとPVIは変化しません。
・当日出来高 > 前日出来高の場合
PVI = (当日終値 – 前日終値) ÷ 前日終値 × 100 + 前日PVI
・当日出来高 ≦ 前日出来高の場合
PVI = 前日PVI
Pineスクリプトでは、PVIを以下のように書きます。
PVI()
出来高加重平均「vwap()」
VWAP(Volume Weighted Average Price)は出来高を加味して平均価格を算出するインジケーターです。出来高を考慮していることから市場参加者の平均ポジション価格ともとらえることができます。現在の価格がVWAPよりも高い場合、ロングポジションを持つ市場参加者の半数以上が含み益、VWAPよりも低い場合は含み損を抱えていることになります。
VWAP = 当日の累積売買代金 ÷ 当日の累積出来高
Pineスクリプトでは、VWAPのコードは以下のように書きます。
VWAP(hlc3)
引数は基本的に価格の平均値を用いるので、「hlc3」を使用します。
今回はPineスクリプトの出来高を使うインジケーター関数をご紹介しました。
Trading ViewのPineスクリプトはチャート分析に特化したプログラミング言語なので、他にも様々なインジケーター関数があります。他にもトレンド系インジケーター関数を紹介した記事やオシレーター系インジケーター関数を紹介した記事もありますので是非参考にしてみてください。
コメント