【お知らせ】TradingViewのバックテストをプログラミング不要で体験できる新講座作りました。(詳細はクリック)

細かい条件指定も可能!赤三兵/黒三兵にマーク表示するTradingView用インジケーター【PineScriptサンプルコード付き(v5対応済)】

赤三兵/黒三兵は酒田五法の中でも特に人気のあるローソク足パターンです。

今回はTradingViewのチャート上で赤三兵/黒三兵が発生している足に自動でマークを付けてくれるインジケーターを作成してみました。「最低値幅」などの細かい条件設定も可能です。

Pine言語のサンプルコード付きで公開しますので、ぜひご利用ください。

【2022年3月12日 追記】
Pineスクリプトのバージョン5(v5)に対応したサンプルコードも追加しました。

目次

本インジケーターの概要

以下のような条件で赤三兵/黒三兵をそれぞれ判定し、マーク表示しています。

判定条件と表示マーク

赤三兵/黒三兵の判定条件と表示されるマークは以下の通りです。

赤三兵(赤色のクロスマーク)

(1) 直近3本の足がすべて陽線
(2) 直近3本の足の高値がすべて切り上がっている
(2) 直近3本の足の安値がすべて切り上がっている

黒三兵(緑色の丸マーク)

(1) 直近3本の足がすべて陰線
(2) 直近3本の足の高値がすべて切り下がっている
(2) 直近3本の足の安値がすべて切り下がっている

設定変更可能なパラメータ

インジケーターの設定画面は、以下のような構成となっております。

パラメータ

赤三兵を有効化チェックを外すと赤三兵マークが表示されなくなります。
黒三兵を有効化チェックを外すと黒三兵マークが表示されなくなります。
最低値幅%チェックを入れると、最低値幅を条件に加えます。

「最低値幅%」条件について

直近3本の足について各値幅が前日終値の何%になっているかを計算し、3本すべてがパラメータ指定した%を超えているものだけがマーク表示されるようになります。

値幅はトゥルーレンジで計算しているので、前日からのギャップアップ/ギャップダウンも加味した値幅になります。

マークの色と形状

「スタイル」タブの方で、マークの色と形状を変更できます。

形状については「クロス」または「円」を選んでください。それ以外はグラフ用の形状なので今回のような条件判定インジケーターでは挙動がおかしくなります。

サンプルコード

以下のコードをコピペしてお使いください。

サンプルコードを元にTradingViewインジケーターを作成する手順が分からない方は、以下の記事を参考にしてください。(記事内の手順3を今回のサンプルコードに置き換えて進めてみてください)

Pine(v5)バージョン

//@version=5
indicator(title="$TTOSample_AkaKuroSanpei", shorttitle="赤三兵/黒三兵", overlay=true)

in_enable_aka = input.bool(true, "赤三兵を有効化")
in_enable_kuro = input.bool(true, "黒三兵を有効化")
in_enable_range_min = input.bool(false, "", inline="最低値幅%")
in_cond_range_min_pct = input.float(1, "最低値幅%", inline="最低値幅%")
in_linewidth = input.int(5, "マークの大きさ")

cond_aka_basic = close[2] > open[2] and close[1] > open[1] and close > open and
                 high[2] < high[1] and high[1] < high and
                 low[2] < low[1] and low[1] < low

cond_kuro_basic = close[2] < open[2] and close[1] < open[1] and close < open and
                  high[2] > high[1] and high[1] > high and
                  low[2] > low[1] and low[1] > low

cond_range_min = if in_enable_range_min
    ta.lowest(ta.tr / close[1], 3) >= in_cond_range_min_pct/100
else
    true

plot(in_enable_aka and cond_aka_basic and cond_range_min ? high*1.01 : na, title="赤三兵", style=plot.style_cross, color=color.orange, linewidth=in_linewidth)
plot(in_enable_kuro and cond_kuro_basic and cond_range_min ? low*0.99 : na, title="黒三兵", style=plot.style_circles, color=color.lime, linewidth=in_linewidth)

Pine(v4)バージョン

//@version=4
study(title="$TTOSample_AkaKuroSanpei", shorttitle="赤三兵/黒三兵", overlay=true)

in_enable_aka = input(true, "赤三兵を有効化", type=input.bool)
in_enable_kuro = input(true, "黒三兵を有効化", type=input.bool)
in_enable_range_min = input(false, "", type=input.bool, inline="最低値幅%")
in_cond_range_min_pct = input(1, "最低値幅%", type=input.float, inline="最低値幅%")
in_linewidth = input(5, "マークの大きさ")

cond_aka_basic = close[2] > open[2] and close[1] > open[1] and close > open and
                 high[2] < high[1] and high[1] < high and
                 low[2] < low[1] and low[1] < low

cond_kuro_basic = close[2] < open[2] and close[1] < open[1] and close < open and
                  high[2] > high[1] and high[1] > high and
                  low[2] > low[1] and low[1] > low

cond_range_min = if in_enable_range_min
    lowest(tr / close[1], 3) >= in_cond_range_min_pct/100
else
    true

plot(in_enable_aka and cond_aka_basic and cond_range_min ? high*1.01 : na, title="赤三兵", style=plot.style_cross, color=color.orange, linewidth=in_linewidth)
plot(in_enable_kuro and cond_kuro_basic and cond_range_min ? low*0.99 : na, title="黒三兵", style=plot.style_circles, color=color.lime, linewidth=in_linewidth)

おわりに

今後も「かゆいところに手が届く」「日本語表記で分かりやすい」インジケーターのサンプルコードを色々と作ってみようと思っています。

ブログの記事更新はTwitter(@eltraders)または本ページ右から登録できる「メルマガTTO通信」でお知らせしているので、ぜひフォローorご購読よろしくお願いします。

TradingViewの
基本操作を覚えたい方へ

約1時間でTradingViewの基本操作をマスターできるオンライン講座を用意しました。アカウント開設からチャートの使い方まで動画でサクッと学べます。

講座を受講する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次