Sponsored Links
MQL5でOHLC(Open High Low Close)の値を取得する手順です。
次の3行のコードで、任意の数のOHLCデータが取得できます。
1 2 3 4 5 6 7 8 9 10 11 12 | MqlRates prices[]; // 取得したOHLC値を格納するための配列 ArraySetAsSeries(prices,True); // 配列の先頭から新しいデータを格納するように指定 // 最新のデータを取得してくる。 // -- 引数 -- // 通貨ペア, // 時間足(0を指定すると現在のチャートの時間足), // 取得するデータの開始インデックス // 取得するデータの数 // 取得したデータの格納先 int numDatas =CopyRates(_Symbol,0,0,3,prices); |
やっていることは
- 取得したデータ用の配列の用意
- データの格納方向の設定
- データの取得
です。
また、構造体メンバへのアクセスは.(ドット)で行えます。
1 | prices[0].close |
目次
レート情報の格納-MqlRates構造体
MqlRates構造体は、ある時間足での一区切りごとのレート情報を保持します。
定義は次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 | struct MqlRates { datetime time; // 対象の時間足の開始時間 double open; // 始値 double high; // 高値 double low; // 安値 double close; // 終値 long tick_volume; // ティックボリューム int spread; // スプレッド long real_volume; // 出来高 }; |
データの格納方向の指定-ArraySetAsSeries()
ArraySetAsSeries()は指定した動的配列のAS_SERIESフラグを設定する関数とのことですが、Trueにすると新しいデータが配列の先頭から、Falseにすると古いデータが配列の先頭から格納されます。
レート情報を取得する-CopyRates()
CopyRates()関数で実際のデータの取得を行います。引数のパターンは3種類あって、取得したいデータの通貨ペアや時間足、取得するデータの開始位置と数(あるいは取得期間)と取得したデータの格納先を渡します。
現在のチャートの通貨ペアを取得する-_Symbol
コード例で使っている_Symbol変数はMQL5で予め定義されているもので、現在のチャートの通貨ペアを格納しています。
Sponsored Links