細かい条件指定も可能!赤三兵/黒三兵にマーク表示する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/PineScriptを
使いこなしたい方へ

チャート分析に便利なプログラム、
銘柄スクリーニング、
トレードルールの検証・・

TradingViewを日本株投資に
フル活用する方法、教えます。

全10種類のサンプルプログラムもプレゼント中:

  • ・損切ライン自動表示
  • ・トレンドの”見える化”
  • ・チャートの 「山」と「谷」
  • ・移動平均線ゴールデンクロスなどのトレードルール検証
目次