アルティメットオシレーター(Ultimate Oscillator)|Trading Viewインジケーター

Trading Viewインジケーター「アルティメットオシレーター」

この記事ではTrading View独自のプログラム言語である「Pineスクリプト」を使ったインジケーターの記述例を紹介しています。オリジナルのインジケーターやストラテジー作成の参考にしてみてください。Pineスクリプトの知識がない方でもコピペするだけで使うこともできます。この記事を参考にして頂ける場合は、必ず免責事項をご確認ください。

アルティメットオシレーター(Ultimate Oscillator)

アルティメットオシレーターは0~100の数値で買い圧力を表すインジケーターです。

特徴は異なる3つの期間から値を計算する点です。一つの期間から算出されるインジケーター(例えばRSIやCCIなど)は価格が急変動した時にダイバージェンスが発生しやすくなります。アルティメットオシレーターは3つの異なる期間を計算に加えることで誤ったダイバージェンスの発生を少なくしています。

アルティメットオシレーターの計算式

アルティメットオシレーターは異なる3つの期間における、買い圧力(BP:Buying Pressure)とトゥルーレンジ(TR:True Range)の比率から計算します。

BP = 終値 – 最小値 (当日安値 or 前日終値の低い方)
TR = 最大値 (当日高値 or 前日終値の高い方) – 最小値 (当日安値 or 前日終値の低い方)
BT1 = L日間のBP合計 / L日間のTR合計
BT2 = M日間のBP合計 / M日間のTR合計
BT3 = N日間のBP合計 / N日間のTR合計

UO = 100 × [(4 × BT1)+(2 × BT2)+ BT3 ]/ (4 + 2 + 1)

※一般的にLは7、Mは14、Nは28が使われる

アルティメットオシレーターをPineスクリプトで書く

//アルティメットオシレーターをPineスクリプトで書く
//@version=4
study(title="アルティメットオシレーター", overlay=false)
len1 = input(7, title="期間1")
len2 = input(14, title="期間2")
len3 = input(28, title="期間3")
BP = close - min(low, close[1])
TR = max(high, close[1]) - min(low, close[1])
BT1 = sum(BP, len1) / sum(TR, len1)
BT2 = sum(BP, len2) / sum(TR, len2)
BT3 = sum(BP, len3) / sum(TR, len3)
UO = 100 * (4*BT1 + 2*BT2 + BT3)/7
plot(UO)

バージョン5は以下のコード。

//アルティメットオシレーターをPineスクリプトで書く
//@version=5
indicator(title='アルティメットオシレーター', overlay=false)
len1 = input(7, title='期間1')
len2 = input(14, title='期間2')
len3 = input(28, title='期間3')
BP = close - math.min(low, close[1])
TR = math.max(high, close[1]) - math.min(low, close[1])
BT1 = math.sum(BP, len1) / math.sum(TR, len1)
BT2 = math.sum(BP, len2) / math.sum(TR, len2)
BT3 = math.sum(BP, len3) / math.sum(TR, len3)
UO = 100 * (4 * BT1 + 2 * BT2 + BT3) / 7
plot(UO)

アカウントを作成する

おすすめチャートツールTrading View

  • 高性能チャートツール
  • オリジナルのインジケーターが作成できる
  • FX、仮想通貨、株、ETF、コモディティなど国内外問わず様々な銘柄に対応

コメント

タイトルとURLをコピーしました