見出し画像

EBBXライブラリの使い方


EBBXのライブラリを公開します。TradingViewで使うライブラリです。
無料で15分足まで使えます。(登録も不要です。)
15分より短い足を使う方法はこちらにまとめました。

ライブラリ関数の引数と戻り値

ライブラリのパスは dig_dig_11/lib202408/1 です。EBBXの関数は次の形で定義されています。

// @function ebbxの計算をする
// @param o 始値
// @param h 高値
// @param l 安値
// @param c 終値
// @param g 指数重みの重心位置(バーの本数で指定)
// @param lic 発行されたライセンス(指定しなくても長い時間の足なら動く)
// @returns e0p 指数重み平均(0次近似値)、e0d 指数重み標準偏差、e1p 指数重み1次近似値
export ebbx(float o, float h, float l, float c, float g, string lic=na) =>
    [e0p, e0d, e1p] = dd11s.ebbx(o, h, l, c, g, lic)

引数

o、h、l、cはそれぞれ始値、高値、安値、終値を入れてください。

gは指数重みの重心(gravity point)の位置をbarの本数で指定してください。これまで使っていたτとは、g=τ-1の関係にあります。「重心の位置はだいたいτ(正確にはτ-1)」などと書いていたのを、「重心の位置はg」とシンプルに書くための変更です。

licは無料で試す場合、何も渡さないで大丈夫です。長さ0の文字列を渡しても構いません。ライセンス文字列を発行された場合には、その文字列を渡してください。

戻り値

戻り値は、e0p、e0d、e1pの組です。それぞれ、指数重み平均(0次近似値)、指数重み標準偏差、指数重み1次近似値です。

ライブラリを使ったインジケータの例

インジケータのソース

次のソースがインジケータとして使えます。
TradingViewにコピペして使ってください。

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dig_dig_11

//@version=5
indicator("simple ebbx", overlay=true)

import dig_dig_11/lib202408/1 as dd11

var g = input.float(120, title="​g", minval=1, tooltip="単位b(barの本数)で指数重みの重心を入れてください")
var lic = input.string("", title="​lic", tooltip="入力なしで15分足まで使えます\nより短い足で使うには https://x.com/dig_dig_11 のプロフィールから")

// ebbx計算
[e0p, e0d, e1p] = dd11.ebbx(open, high, low, close, g, lic)

// バンド描画
var col_line = color.rgb(180, 180, 180)
plot(e0p + e0d*2, color=col_line, title="+2σ")
plot(e0p + e0d*1, color=col_line, title="+1σ")
plot(e0p - e0d*1, color=col_line, title="-1σ")
plot(e0p - e0d*2, color=col_line, title="-2σ")

// 塗りつぶし描画
var col_bull1 = color.rgb(246, 123, 126) // 上昇
var col_bull0 = color.rgb(252, 189, 191) // 上昇開始
var col_bear0 = color.rgb(189, 220, 252) // 上昇開始
var col_bear1 = color.rgb(122, 183, 244) // 下降
col_fill = dd11.positive(e1p-e1p[1]) ? // e1pが右上がりなら強気
  dd11.positive(e1p-e0p) ? col_bull1 : col_bull0 : // e1p > e0pだとより強気
  dd11.negative(e1p-e0p) ? col_bear1 : col_bear0 // e1p < e0pだとより弱気
pe0p = plot(e0p, editable=false, display=display.none+display.price_scale, title="e0p")
pe1p = plot(e1p, editable=false, display=display.none+display.price_scale, title="e1p")
fill(pe0p, pe1p, color=col_fill)

import dig_dig_11/lib202408/1 as dd11
によってライブラリを指定し、
[e0p, e0d, e1p] = dd11.ebbx(open, high, low, close, g, lic)
でEBBXの計算を行い、残りでインジケータの描画をしています。

gの指定の単位はb(barの本数)です。
gの単位として他にわんわんは、s(秒)、m(分)、h(時間)、D(日)、W(週)、M(月)、Y(年)を使っています。取引が1日24時間、週5日の場合、
15分足なら、g=96bでg=1Dと同じ意味、
1時間足なら、g=120bでg=1Wと同じ意味、
4時間足なら、g=126bでg=1Mと同じ意味になります。

dd11.positive()、dd11.negative()は、それぞれ引数が正、負かどうかを厳密に調べる関数です。こちらで紹介したものです。

塗りつぶしの色分けは、強気から弱気の順で、色は赤、薄い赤、薄い青、青にしてあります。

このソースのままでは短い時間で色が切り替わったりします。変化がある程度累積してから色が変わるようにしたものも後日出します。

動作例

上のソースの動作例です。4時間足、g=126bの設定で、g=1Mに相当します。

エラーの例

次の図の左上「simple ebbx」とあるのがこのインジケータの名前ですが、その右にエラーを伝える赤い!マークがあります。この!をクリック(またはタップ)してエラー内容を表示させてあります。この場合、1分足を表示しているため、無料で使える範囲外になっています。

短い足で使うための情報として、エラーメッセージ内にx.comのURLが書いてありますが、最終的な誘導先はこちらです。(noteのランダム文字列URLを入力してもらうのは大変そうなのでこうしました。)

ここから先は

0字

メンバー特典記事、メンバー限定掲示板が、他のnoteメーンバーシップと同様にあります。 このメンバ…

スタンダードプラン

¥500 / 月
初月無料

プレミアムプラン

¥1,500 / 月

この記事が気に入ったらサポートをしてみませんか?