EAの仕組み

EAとはExpert Advisorの略称です。MT4で自動売買をするプログラムのことです。MT4のチャートに埋め込むことで使います。チャートを複数表示しておけば、複数の通貨でEAを動かすことも可能です。一つのチャートに埋め込めるEAは一つです。同じ通貨で複数のEAを動かしたいなら、チャートを複数追加しましょう。

動作環境

Windows環境が必要です。(linux上でもwineを使えば動くかもしれません)
私は自宅のPCを24時間稼働させています。PCのスペックはそれほど必要ありません。むしろ安定したネットワーク環境が必須です。中古のノートPCとかでも十分です。自宅ではちょっと不安な方はお金はかかりますが、VPSをレンタルしましょう。MT4が使えるVPSなら設定はそれほど難しくありません。

定義済み変数

様々な情報にアクセスするため、あらかじめグローバル変数が定義されています。本来は関数で取得するべきですので、MQL5ではなくなっているものが多いです。変数の値を参照する(読む)だけで、書き換えられません。

変数
_Digits価格の小数点以下の桁数
_Point現在の通貨ペアでの、価格の小数点値
_LastError直近のエラーコード
_Period現在チャートの時間軸
_RandomSeed整数の疑似乱数
_StopFlagプログラム停止フラグ
_Symbol現在チャートの通貨ペア名
_UninitReasonUnInit理由コード
Ask現在の通貨ペアの買値(最新の売り手の価格)
Bars現在チャートのバー数
Bid現在の通貨ペアの売値(最新の買い手の価格)
Close現在チャートの各バーの終値配列
Digits現在の通貨ペアでの、価格の小数点以下の桁数
High現在チャートの各バーの高値配列
Low現在チャートの各バーの安値配列
Open現在チャートの各バーの始値配列
Point現在の通貨ペアでの、価格の小数点値
Time現在チャートの各バーの時間配列
Volume現在チャートの各バーの出来高配列

OnTick

EAのプログラムは常に動いているわけではなく、MT4から特定のタイミング(イベント発生)時に決められた関数(イベントハンドラー)がよびだされます。いくつかイベントが用意されていますが、EAの場合のメインはOnTick()です。新しいtickが発生するたびにこの関数が実行されます。tickはチャートの値動きを更新するタイミングだと思ってください。OnTickは引数も戻り値もありません。

書式

void OnTick(void);

void OnTick() {  
    int next = status;
	next = current.check();
	if (next != status) {
	   Print("ポジションチェックで状態変化:", status, "→", next);
	   status = next;
	}
	current = StatusArray[status];
	// 売りシグナルチェック
	if ( is_sell_signal() ) {
		next = current.sell_signal();
	}

	// 買いシグナルチェック
	if ( is_buy_signal() ) {
		next = current.buy_signal();
	}
	if (next != status) {
	   Print("シグナルで状態変化:", status, "→", next);
	   status = next;
	}
	current = StatusArray[status];
}

関数

EAの作成に便利な色々な関数が用意されています。各種テクニカルを取得したり、取引を行うには予め用意されている関数を呼び出します。詳細は英語ですがエディターのヘルプで確認できます。日本語だったら自作しちゃお~のリファレンスがおすすめです。

Amazonで好評発売中
EA作成なども承っております

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

アップロードファイルの最大サイズ: 20 MB。 添付可能なファイル:画像, 音声, 動画, 文書, スプレッドシート, 対話型, アーカイブ, その他 Youtube、Facebook、Twitter および他サービスへのリンクは自動的にコメント内に埋め込まれます。 ここにファイルをドロップ