ホーム> 山中康司 >かんたんプログラミング⑤

かんたんプログラミング⑤

前回で「かんたんプログラミング」講座は終わりましたが、前回の計算部分こそが最重要部分でここさえ使いこなせれば、ちょっとしたカスタム指標は自分で簡単に作ることが出来るはずです。

テンプレートから次のステップへ

そこで、今回はこのテンプレートと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の見解、分析ではございません。

リスク警告 / 免責事項

  • 当サイトは、投資判断にあたり参考となる情報の提供を目的としており、金融商品の売買を勧めるものではありません。
    投資の最終的な判断はお客様ご自身の責任でされるようお願いいたします。
  • 当サイトは、当社が信頼できると判断した情報を掲載しておりますが、その情報の正確性、完全性を保証するものではありません。
    ご提供する情報を利用につき生じた何らかのトラブルや損失・損害等につきましては、当社及びブログ執筆者は一切責任を負うものではありません。
  • 当サイトでご提供する情報の著作権は、当社又はブログ執筆者で帰属します。許諾なく、コンテンツを翻案、公衆送信等いかなる目的、態様においても利用することはできません。