前回は取引についてのプログラムを作成してみました。
それでは取引を行うとき、どのような基準で売買を決定するのでしょうか?
現在の銘柄の予想価格、ポジションがオープンしてからの利益幅、テクニカル分析、様々な情報の取得が必要となります。

今回はプログラミングを通して、主要なデータ取得方法を確認してみましょう。

取得情報利用方法の例
現在の時間 指定経過時間で一度決済
現在のロウソク足チャートからの価格の変化率に基づいて取引を判断
現在の価格目的の値を判断して、決済・新規注文を実行

現在の時間

”時間”を管理することでどのようなことができるでしょうか?
取引時に係るスワップ等を考慮した取引期間を制限、特定の時間内のEA取引を設定(日本の株式市場オープン時間のみの取引EA)、時間というパラメータを考慮したルールに沿った取引をすること等が可能になります。

MQL5のドキュメントを参考に、”時間”を取得するプログラムを作成しましょう。

ドキュメント : https://www.mql5.com/ja/docs/dateandtime
日付と時刻 に関する関数を確認できます。

こちらの関数はMT4で使用できた関数と同じ関数です。同様の結果を得ることができます。

現在のチャート情報

履歴データであるチャート上のOpen/High/Low/Close情報から分析を行い、取引判断条件とすることができます。 チャートデータを取得して、過去の情報を分析することが可能です。

ドキュメント : https://www.mql5.com/ja/docs/series
時系列と指標データへの取得方法が確認できます。

こちらの関数はMT4で使用できた関数と同じ関数です。同様の結果を得ることができます。

一方MT4とは異なる点として、以下の予約関数が廃止されました。

これらの廃止された関数は、MT5上ではイベント処理関数であるOnCalculate関数 を使用する場合に、現在の値を処理するための情報としてMT4同様の方法で使用することが可能です。ただし、Indicatorのみで使用でき、EA、Scriptでは使用できませんのでご注意下さい。

※プログラム実行 – 指標及びエキスパートアドバイザーで使用出来ない関数を参照してください。 MQL5:https://www.mql5.com/ja/docs/runtime/running

現在の価格情報(Tick)

現在の価格を取得することで、注文、発注管理等を行うことができます。MetaTrader5で利用できるティック受信時間、Bid, Ask, Volumeを利用できます。


ドキュメント : https://www.mql5.com/ja/docs/constants/structures/mqltick
現在のティック情報を取得方法を確認できます。

こちらの関数はMT4と同じ関数です。同様の結果を得ることができます。

今回は簡単なデータ取得の話となりましたが、必要なデータを思いついたとき、MQL5.comにアクセスして検索をすることで、色々な関数、コードサンプルを見つけ、開発を進めやすくなるようになっています。
今後もMQL5のサイトでは日々新しく、便利な情報を更新していきます。