株価が同じ方向に連続して上昇(下落)している時に、その連続上昇日数(連続下落日数)を自動で表示してくれるインジケーターを作成してみました。
「いま、連続上昇(連続下落)が何日目か」をチャートで視認しやすくなるので、日々のチャート確認やストラテジー用ルールのアイデア探しに活用できるかと思います。
ラベル表示関数(label)などを利用したPine言語のサンプルコードも公開しておりますので、ぜひ参考にしてください。
Pineスクリプトのバージョン5(v5)に対応したサンプルコードも追加しました。
本インジケーターの概要
日足チャートに追加すると、株価連続で3日以上上昇または下落している足に、それぞれ連続発生日数を自動で表示してくれます。
初期設定
・株価(終値)が3日以上連続で上昇したら、その足までの連続上昇日数を足の上に数値表示
・株価(終値)が3日以上連続で上昇したら、その足までの連続下落日数を足の下に数値表示
設定変更可能なパラメータ
・何日の連続上昇から数値表示させるか?
・何日の連続下落から数値表示させるか?
回数増やせば表示は少なくなります。また分足などでも利用可能です。
注意点など
TradingViewの仕様上、数値の表示はチャート全体で500個までになります。そのため、パラメータの日数を小さくするほど、遡って表示できる数値は少なくなります。
サンプルコード
以下のコードをコピペしてお使いください。
サンプルコードを元にTradingViewインジケーターを作成する手順が分からない方は、以下の記事を参考にしてください。(記事内の手順3を今回のサンプルコードに置き換えて進めてみてください)
Pine(v5)バージョン
//@version=5
indicator("$TTOSample_ConsUpDn", overlay=true, max_labels_count=500)
over_counter_up = input.int(3, title="何回以上の連続上昇を表示するか?")
over_counter_down = input.int(3, title="何回以上の連続下落を表示するか?")
var counter_up = 0
var counter_down = 0
counter_up := close > close[1] ? nz(counter_up[1]) + 1 : 0
counter_down := close < close[1] ? nz(counter_down[1]) + 1 : 0
if counter_up >= over_counter_up
label_counter = label.new(bar_index, high, style=label.style_none, size=size.huge, text=str.tostring(counter_up), textcolor=color.orange, yloc=yloc.abovebar)
if counter_down >= over_counter_down
label_counter = label.new(bar_index, low, style=label.style_none, size=size.huge, text=str.tostring(counter_down), textcolor=color.aqua, yloc=yloc.belowbar)
Pine(v4)バージョン
//@version=4
study("$TTOSample_ConsUpDn", overlay=true, max_labels_count=500)
over_counter_up = input(3, title="何回以上の連続上昇を表示するか?")
over_counter_down = input(3, title="何回以上の連続下落を表示するか?")
var counter_up = 0
var counter_down = 0
counter_up := close > close[1] ? nz(counter_up[1]) + 1 : 0
counter_down := close < close[1] ? nz(counter_down[1]) + 1 : 0
if counter_up >= over_counter_up
label_counter = label.new(bar_index, high, style=label.style_none, size=size.huge, text=tostring(counter_up), textcolor=color.orange, yloc=yloc.abovebar)
if counter_down >= over_counter_down
label_counter = label.new(bar_index, low, style=label.style_none, size=size.huge, text=tostring(counter_down), textcolor=color.aqua, yloc=yloc.belowbar)
おわりに
今回は、株価の連続上昇日数/連続下落日数をカウントして数値表示するインジケーターをご紹介しました。
ぜひTradingViewのチャートに設定して動作確認してみてください。