このセクションでは、トレード関数を使うための設定と新規の売買注文のためのMQL4組み込み関数について説明しています。
MT4の過去のビルドでは、注文の種別は「成行注文」か「指値注文」のどちらかでした。ただ、最近のビルドでは、スリッページを指定できる注文の種別を「ストリーミング注文」と表示するようです。
成行注文に変わりはないので、ストリーミング注文も成行注文と同じだという説明を追加しています。
トレード関数を使うための設定はMT4と同じです。MT5の**[ツール]ー[オプション]**の設定から「エキスパートアドバイザ」のタブ画面で、「アルゴリズム取引を許可」にチェックを入れるだけです。
MT5のツールバーの「アルゴリズム取引」のボタンを押して切り替えることもできます。
新規の売買注文を送信する関数は、MQL5でも**OrderSend()**です。しかし、書式が全く違うため、使い方も全く違います。
MQL5の**OrderSend()**関数の書式は以下のようになっています。
bool OrderSend(
MqlTradeRequest& request, // 取引リクエスト構造体
MqlTradeResult& result // 取引結果構造体
);
MQL4に比べてシンプルに見えるかもしれません。しかし、この関数は、本書で扱っている「引数を入力して戻り値で結果を返す」といった基本的な構造にはなっていません。専門的には、CやC++の構造体や関数の参照渡しなどの仕組みを使っています。
とりあえず、本書のex8_scr.mq4とex9_scr.mq4に対応するコードを紹介します。まずは、新規注文の画面が以下のようになっているケースです。
MT4と同じくタイプは成行注文と指値注文が選べますが、成行注文の表示が「成行注文」となっていて、「スリッページ」の指定ができるケースです。