かんたんプログラミング②
前回から「かんたんプログラミング」と題して、誰でもカスタム指標が作成できることをゴールとして5回程度の内容で進めています。
前回の復習
まず、前回の復習です。
- テンプレート
今回の学習に使うテンプレート(ソースコード)は以下からダウンロードしてください。
http://www.ascendant.jp/mt4/HLB.zip - ソースコードの色
ソースコード内で//(ダブルスラッシュ)から始まる行はコメント行でプログラム上は無視される。コメント行はグレーで表示される。
プログラム内の文字色
さて、プログラムのソースコードをメタエディタで開くと色々な色があります。前回のグレー以外に、青、濃紺、青緑、緑、黒、茶色、紫、ピンクの全部で9色です。
ここで青は予約語で予めプログラム内で動作が決まっていて云々などと始めたら、もうダメとなってしまうので、ここではざっくりと以下のように覚えておきましょう。
- 青系統=青、濃紺、紫 =MT4で使い方が決められている
- 緑系統=青緑、緑 =文字や数値など自分で決めるもの
- 茶系統=茶色 =プログラム内で自分で決める変数
- 黒系統=黒 =その他のプログラムコード
色によって使い方が決まっているのですが、これからサンプルを編集していく中でイメージがつかめれば十分です。いまは色によって役目が違うのだ、と覚えておいてください。
記号
(1)セミコロン
MT4のソースコードは実はC言語と呼ばれるプログラミング言語の方言です。C言語にMT4操作に関係する機能を拡張したのが、MT4で使う言語MQL(MetaQuotes Language)です。
MQLではC言語と同じく「;」(セミコロン)で行末を示します。前回のサンプルコードを見ていただくとわかりますが、ほぼ全ての行の最後に「;」が付いています。もちろん例外はありますが、それは#propertyから始まる行(カスタム指標の大枠を決める)と、一連の動作を処理するブロックのスタート部分です。こうしたブロックを関数と呼びますが、エクセルなどの関数とごっちゃにならないよう、ここでは一連の動作を処理するブロックという押さえで十分です。
セミコロンを忘れてエラーとなることは意外と多いので、これは慣れてきてもチェックすべき部分でもあります。
(2)カッコ
上記の一連のブロックはカッコでくくられています。これは数学と同じで、ひとくくりに小カッコ()を使い、それを更にくくる場合には中カッコ{}を使います。主に一連の動作を処理するブロックは中カッコ、いわゆる関数や単純な指定を行う時は小カッコという常識通りのイメージで間違いありません。
また、MT4で拡張されたもので、今回最もよく使う関数にデフォルトのテクニカル指標がありますが、これらは全て指標名の後に続くカッコ内でそのパラメータが決められています。このあたりは、次回かその次あたりに見ることにします。
#property
それでは、上から見て行きましょう。今回は1行目から23行目までです。
1行目から4行目までは、誰が見てもわかるように指標名と作者がコメント行(//)で示されています。6行目から8行目までは注意事項が同様にコメント行で示されていますが、通常は不要な部分です。
そして、10行目、13行目、18行目もコメント行で示されていますが、これらの3行はそれ以下の行で何をしているのかを示しているコメント行です。テンプレートなので学習用に記述しました。
それでは#propertyの行を見て行きましょう。
11行目
#property copyright “Copyright Ascendant”
#property copyright は著作権表示をカスタム指標のバージョン情報に表示する部分です。ダブルクオーテーション内の文字が表示されますので、今回の指標では以下のように表示されていることが確認できます。
15行目
#property indicator_chart_window
これはカスタム指標を、メインチャートにオーバーレイするか、サブチャートに分けて表示するかを指定する部分です。どちらにも対応できるように2つの行を表示してあります。今回はHiLo Bandsでメインチャートに表示しますので、メインチャートの行を有効化して、サブチャートの行をコメント行としてあります。
サブチャートに表示する指標であれば、メインチャートの行をコメント行として、サブチャートの行を有効化します。
19行目
#property indicator_buffers 3
ここでは何本の線を指標で使うのかを指定します。今回は3つの線を指標で使うため、3という数字が入っています。これを5とすれば5本の線を表示するか、あるいは表示は3本でもプログラム内で残りの2つを計算用に使っているといったこともあります。今回のシリーズでは表示する線の数を数字のところに入れると覚えてください。
20~22行目
#property indicator_color1 Red
ここでは指標内で表示する線の色を示しています。上から順にRed(赤)、Green(緑)、Blue(青)となっていますが、使える色の名前は、テクニカル指標で自分の色を使いたい場合に「色の設定」タブで出て来るカラーパレットの上にマウスを乗せると出てくる色の名前です。
線の数に合わせて#property indicator_color2 Green・・・と増やしていくことになります。
今回のまとめ
さて今回からいよいよプログラムの中を見て行く段階に入りましたが、文字の色によって役割が決まっていること、記号の概要、そして#propertyでカスタム指標の大枠を決めるところまでを見ました。
今回の内容が理解できれば必ずゴールできますので、焦らずに進めていきましょう。
◆本稿は筆者の個人的見解に基づき、執筆されたものです。あくまでも個人ユーザー向けのコラムとして提供された参考記事であり、FXTFの見解、分析ではございません。