MQL5.comを確認してみよう!

MQL5を使ってプログラムを作成するにあたって、MQL5.comというコミュニティサイトをご紹介します。特にドキュメントのページにはMQL5の関数ドキュメンテーションは最も頻繁に利用されるページでしょう。
また、下記のようにMQL5を作成するにあたって有効な情報が集約されています。

ドキュメント : https://www.mql5.com/ja/docs
MQL5言語に関する公式リファレンスです。MQL5の関数、構文と簡単なコーディングの例を確認できます。
コードベース : https://www.mql5.com/ja/code
無料のサンプルEA、インディケーター、スクリプトダウンロードでき、先輩たちが作ったプログラムをサンプルとして参考できます。
フォーラム : https://www.mql5.com/ja/forum
世界中のトレーダーと知識を共有し、情報交換の場です。困った時に、お互いに助け合いの場でもあります。過去の書き込みを調べたら、解決策が出てくるかもしれません。
記事 : https://www.mql5.com/ja/articles
プロのトレーダーによって投稿された研究記事からテクニカル指標やEAを作成する方法まで学ぶことができます。記事はカテゴリ毎に分類されており、様々な有益な情報をすばやく見つけることができます。
MQL5で取引操作をしてみよう!

それでは早速、コーディングで注文してみましょう。
新規注文と決済注文を一回ずつやります。

USDJPY を1 ロット成行買いで新規注文する場合(売 / 買)

MQL4ではOrderSend関数を使って、ロット数や注文タイプなど、色々な引数を入れていましたよね。
MQL5では 、MqlTradeRequest(取引要求)とMqlTradeResult(取引結果)という二つの構造体がOrderSend関数の引数になります。ロット数、注文タイプ、約定したチケット番号などは、全てこの二つの構造体の要素になっています。

※構造体の全ての要素はリンク先で確認して下さい。
MqlTradeRequest
MqlTradeResult

今回は次のような 内容をMqlTradeRequest(取引要求)に設定します。
 - action : 注文実行タイプの設定 : (成行 / 注文 / 変更 / 削除)
 - symbol : 銘柄
 - volume : 取引ロット
 - type : Buy / Sell
 - price : 注文価格
 - deviation : スリッページ許容幅

実行結果はMqlTradeRequest(取引結果)に格納されるので、確認できます。
 - retcode : 取引サーバのリターンコード
 - deal : 約定チケット(サーバー約定処理された場合)
 - order : 注文チケット (サーバー約定処理された場合)

※注文タイプによって使う要素が異なります。詳細、その他の要素はMQL5のページを参照して下さい。


実行結果 – USDJPY 0.1 ロットの買いポジションを建てました。

実行結果 – USDJPY 0.1ロットの 売りポジションを建てました

※どのEAが取引したか判別できるように、ユニークなMagicNumberをセットしましょう。

オープンしたポジションの決済注文を出します

ポジションを決済するには、以下の様にコーディングします。
取得した情報をMqlTradeRequestにセットして、OrderSend決済注文を出します。今回は買注文を実行してオープンしたポジションの決済注文を行います。

実行結果 – チケット番号301907が決済されました 。
※ チケット番号301910はチケット番号301907の決済注文となります。
MT4 : MQL4とMT5 : MQL5取引に関する関数の違い

再掲となりますが、MT5ではすべての注文処理が一つの関数に集約されました。 要するに、成行、指値、変更、決済、キャンセルといったリクエストは全てトレーダーから出した「注文」であり、其々「注文」の内容が異なると、MT5で見直した考えです。
MQL5: OrderSend関数に関して
https://www.mql5.com/ja/docs/trading/ordersend

今回使用したサンプルコートは下記のボタンからダウンロードいただけます。