かんたんプログラミング⑤
前回で「かんたんプログラミング」講座は終わりましたが、前回の計算部分こそが最重要部分でここさえ使いこなせれば、ちょっとしたカスタム指標は自分で簡単に作ることが出来るはずです。
テンプレートから次のステップへ
そこで、今回はこのテンプレートとMT4に標準搭載されているテクニカル指標関数を用いて、新たなテクニカル指標を作ることに挑戦してみましょう。テンプレート(ソースコード)はこれまでと同じものを使いますので、以下からダウンロードしてください。http://www.ascendant.jp/mt4/HLB.zip
ボリンジャーバンド派生指標「%b」の作成
今回はテンプレートを使い部分的変更を加えることで新たな指標を作成します。作成する指標はボリンジャーバンドの派生指標である%bです。
計算方法は、ストキャスティクスの計算式にボリンジャーバンドをあてはめたものです。 ここでストキャスティクスの計算式は、
(終値-最安値)÷(最高値-最安値)
となりますので、ここにボリンジャーバンドの各値をあてはめると
(終値-上部バンド)÷(上部バンド-下部バンド)
となります。
百聞は一見に如かずということで、ドル円日足チャートに20日のボリンジャーバンド、そしてその%bを表示したチャートをご覧ください。
サブチャートに、ストキャスティクスのような動きをしている指標が表示されていることがわかります。これを作ります。
指標の見方としては、ひとことで言うとストキャスティクスの1本のラインの場合と同じような見方をしますが、%b自体は、終値がボリンジャーバンドのどこに位置しているのかを示す指標ですから、終値がバンド上部に重なる場合が1、終値がバンド株に重なる場合が0となり、バンドを超える場合には1以上も0以下もある指標です。
iBands関数
MT4には標準でテクニカル指標の関数が備わっていると書きましたが、これらの関数は「i」に指標の略称が付された関数となっています。移動平均であればiMA、RSIであればiRSIといった具合です。そして、それぞれの関数ごとに指定するパラメータが決まっています。iBandsを見てみましょう。
iBands(NULL,0,期間,標準偏差,0,適用価格,適用バンド,i)
日本語で書いた部分は、今回決めなくてはいけないパラメータで、それ以外はとりあえず、このままにしておきましょう。左から順番に説明すると以下のようになります。
NULL |
通貨ペア。NULLでチャート表示の通貨ペア(通常変更しない) |
0 |
時間枠。0でチャート表示の時間枠(通常変更しない) |
期間 |
ボリンジャーバンドの計算期間(通常20) |
標準偏差 |
ボリンジャーバンドの標準偏差(通常2) |
0 |
ボリンジャーバンドを右側にシフトする本数(今回は変更しない) |
適用価格 |
終値は0、始値は1、高値は2.安値は3(通常0) |
適用バンド |
上側=MODE_UPPER、下側=MODE_LOWER |
0 |
移動平均の計算位置(0は最新のバー) |
上記のパラメータを見ながら、後半の計算式を書くことになりますが、全体を見渡すために修正を加えたコードをご覧ください。変更箇所にラインマーカーを引いてあります。
テンプレートの変更
まず、テンプレートを開いて別名保存します。今回はPercent-bとします。
まずコメント行(//)が非常に増えていますが、これは今回のラインが1本しか無いため、2本目、3本目に相当する行をすべてコメント行としたためです。これらの行を除いて変更した行を見て行きます。
2行目 |
指標名です(コメント行) |
15・16行目 |
メインチャートからサブチャートに切り替えました |
19行目 |
使用するラインを1本と指定しました |
27行目 |
これまでの変数を標準偏差(BandsDeviations)に変更。 変数が整数でなく小数を使えるように doubleで宣言。 (変数が整数ならint、小数点以下もある場合はdoubleと覚える) |
30行目 |
指標名 |
73行目 |
今回の最重要行です。 1行で表示できていませんが、以下のように書かれています。 |
ExtMapBuffer0[i]=(Close[i]–iBands(NULL,0,BandsPeriod,BandsDeviations,0,PRICE_CLOSE,MODE_LOWER,i))/(0.0000000000001+(iBands(NULL,0,BandsPeriod,BandsDeviations,0,PRICE_CLOSE,MODE_UPPER,i)–iBands(NULL,0,BandsPeriod,BandsDeviations,0,PRICE_CLOSE,MODE_LOWER,i)));
左辺は今までと同じですが右辺が、先ほど紹介したiBandsのパラメータを使って書かれています。
いまいちど%bの計算式を色付きで書きます。
(終値-上部バンド)÷(上部バンド-下部バンド)
上の長~い式と同じ色で書いてありますのでわかりますね。黒の部分は記号部分です。
また割り算の分母部分に限りなくゼロに近い0.0000000000001を掛けてありますが、これは万が一の「ゼロ割り」によるエラーを防ぐ処理です。
どうでしょうか。これまでのテンプレートから少し変えるだけで全く異なるカスタム指標が作成できたと思います。是非、活用していただければ幸いです。
◆本稿は筆者の個人的見解に基づき、執筆されたものです。あくまでも個人ユーザー向けのコラムとして提供された参考記事であり、FXTFの見解、分析ではございません。