MT4のプログラミング始めました。
MetaTraderに付属するMetaEditor(メタエディター)の使い方をご紹介します。
MetaEditor(メタエディター)の使い方
黄色いノートのアイコンをクリックするとMetaEditorが起動できます。
なお、ショートカットで「F4」でもMetaEditorが立ち上がります。メニューからはツール→メタエディターでも可能です。
言語が英語なので、日本語に変更します。
メタエディターの再起動を求められますので、Restartをクリックして再起動します。
MetaEditorで日本語が文字化けする場合
コメントで書かれている日本語などが文字化けして見えてしまう場合があるようです。そういう場合は、フォントを日本語フォントに設定することで、文字化けが解消する事ができます。
なお、以下の画像では、欧文フォントですが、特に日本語は文字化けしていません。MetaTrader4、MetaEditorのバージョン、buildなどによっても変わるのかもしれません。
※この記事での環境はMT Version:4.0 build:1065、MetaEditor Version:5.0 build 1562です。
日本語フォントにする場合には、ツール→オプション→フォントタブから、MS ゴシック(日本語フォントならなんでもいいです)を選び、スクリプトも日本語を選択できるようになっていたので、日本語を選んでOKにしています。
なお、MT4プログラミングで使うMQL4言語は、変数などにも日本語が使えるそうですが、個人的にはあんまり使わない方がいいかな~と思っています。
MetaEditorでプログラムを書いて動かしてみる
では、MetaEditorで書いたプログラムを実際にコンパイルして実行するまでの手順です。
ファイルを新規作成。新しいプログラムを新規で作成するときに使います。
ポップアップ画面が表示されて、MQL4ウィザードへようこそという画面になrので、
エキスパートアドバイザ(テンプレート)にチェックが入っているのを確認して次へ進みます。
名前のところに、作成するプログラムの名前をつけます。Experts\と最初に入っていますが、プログラムを入れるフォルダの場所になりますので、その後に、プログラム名を入力します。
とりあえずはじめとして、Print関数を使ったプログラムにするので、Printと入力し、次へをクリック。
次の画面には何もチェックを入れずに次へ
こちらの画面もチェックを入れずに、完了をクリックします。
Printのプログラムファイルが作成されました。
よくわからないと、うは…wとなりますが、とりあえず最初にあれこれ書かれているのはおまじない的な感じだと思っておきます。
ここで実際にPrint関数を使ってプログラムを書きたいのですが、どこに書けばいいんだと迷いますよね…。
とりあえずは、
void Ontick()の所に処理させたいプログラムを書く
で良いかと思います。
void OnTick()
{
※この中に書きます
}
//+——————————————————————+
とりあえずはじめてのプログラミングの勉強でお決まりのPrint関数を使います。
原則、コードは半角英数字です。” ” の中の出力などは日本語OKです。
プログラムを上記のように書いたら、プログラムはコンパイルしないと動かないので、コンパイルします。
[aside type=”normal”] コンパイルとはプログラミング言語(この場合MQL4)のコードをコンピューターがわかるように機械語に変換する事です。この作業はプログラムを書くごとに常に必要な作業です。修正等したら常にコンパイルが必要です。[/aside]
下の方にエラーが表示されました。
‘print’-function not defined
と表示されています。この意味は、「print~?そんな関数ないわ!!」って感じですかね。。
なんでよ!と思いますが、先程あげた画像をよくみてください。print(“~の所、ただの黒文字ですよね。
関数は定義されている正しいものを使っていれば、紫色になります。
ですので、関数を使う時に、まず紫色になっているかどうかを確認した方が良いでしょう。
なお、MetaEditorには関数等の補助入力機能があって、Pri まで入力すると下に、「これでは?」的な補助メニューが出ますので、そこから選べば入力ミスは減ります。
なお、関数って、一番最初の文字が全て「大文字」なのかな?と思ったのですが、printf関数は、小文字なんですよね~。ややこしい…って感じですね(汗)
エラーがなくなるまで、修正します。
エラーが出ていたら、
関数名は正しいか?
()カッコは半角か、最後に「;」セミコロンをつけるのを忘れてないか?
などチェックしていきます。
MetaEditorで書いたプログラムをMT4で実行してみる
では書いたプログラムをMT4で実際に動かしてみます。
MetaEditorを閉じて、MetaTrader4の画面から、ストラテジーテスターをクリックします。Ctrl+Rでもショートカットで可能です。
画面の一番下にこんな感じのテスター画面が出ます。が、このままでは狭くて全部が表示されていないので、幅を大きくします。
ターミナルとテスターの間の真ん中の境界線の所にマウスを当てると↑(矢印)が出るので幅を広げられます。
エキスパートアドバイザを選択し、先程保存した、プログラム名 Print.ex4を呼び出します。そしてスタートをクリックすると、プログラムが実行されます。
今回は売買などの命令文は書いていないですし、ただprint出力するという命令ですので、操作履歴のところにわちゃわちゃと、表示されていくだけです。
つまり今回のプログラムは、操作履歴のところに「MTのプログラミングの練習だよ」を表示させるプログラムになります。
なお、このプログラムは土日は動きません。
なぜならこのプログラムは価格が動くごとにプログラムが実行されるからです。土日にやろうとして「あれ?動かない」という事になりますので、平日に試してみてください。