CopyRates
指定された量の指定された銘柄期間のMqlRates構造体の履歴シリーズを行列/ベクトルに取得します。要素は現在から過去までカウントダウンされます。つまり、開始位置が0の場合は現在足を意味します。
最も古い要素が行列/ベクトルの先頭に配置されるように、データがコピーされます。3つの関数オプションがあります。
初期位置と必要な要素数によるアクセス
bool CopyRates(
|
初期日付と必要な要素数によるアクセス
bool CopyRates(
|
必要な時間の開始日と終了日によるアクセス
bool CopyRates(
|
パラメータ
symbol
[in] 銘柄
period
[in] 期間
rates_mask
[in] 要求されたシリーズのタイプを指定するフラグのENUM_COPY_RATES列挙の組み合わせ。 ベクトルにコピーする場合、ENUM_COPY_RATES列挙から1つの値のみを指定できます。そうしないと、エラーが発生します。
start
[in] 最初に複製された要素のインデックス
count
[in] 複製された要素の数
from
[in] 最初の要素に対応するバーの時刻
to
[in] 最後の要素に対応するバーの時刻
戻り値
成功の場合はtrue、エラーの場合はfalse
注意事項
要求されたデータがサーバ上で利用可能なデータに含まれていない場合、この関数はfalseを返します。TERMINAL_MAXBARS(チャートでのバーの最大数)以外のデータが要求された場合も、この関数はfalseを返します。
EAまたはスクリプトからデータを要求するとき、端末が適切なデータをローカルに持っていない場合、またはデータがローカル履歴から構築できるがまだ準備ができていない場合、サーバからのダウンロードが開始されます。 この関数は、タイムアウトが終わるまでに準備ができているデータの量を返します。ただし、履歴のダウンロードは続行されるため、次の同様の要求ではさらに多くのデータを返します。
開始日及び必要な要素の数によってデータが要求された場合、指定された日付以前のデータのみが戻されます。間隔が設定され秒まで数えられます。つまり、値(ボリューム、スプレッド、始値、高値、安値、終値、時刻)が返されたバーの開始日は常に指定された日付以前です。
日付の指定された範囲のデータを要求した場合、この区間からのデータのみが返されます。間隔が設定され秒まで数えられます。つまり、値(ボリューム、スプレッド、指標バッファの値、始値、高値、安値、終値、時刻)が返されたバーの開始時刻は常に指定された区間内にあります。
例えば、現在の曜日が土曜日の場合、start_time=Last_Tuesdayとstop_time=Last_Fridayが指定されると、関数は0を返します。週足は常に日曜日に開始され、指定された範囲内には週足が1つもないためです。
現在の未完成のバーに対応する値を返す必要がある場合、start_pos=0及びcount=1を指定して1 番目の呼び出し方法を用います。
ENUM_COPY_RATES列挙には、行列または配列に渡されるデータの型を指定するフラグが含まれています。フラグの組み合わせにより、1回の要求で履歴から複数のシリーズを取得できます。行列の行の順序は、ENUM_COPY_RATES列挙の値の順序に対応します。言い換えれば、行列内でHighデータを含む行は常にLowデータを含む行よりも高くなります。
ID |
値 |
説明 |
---|---|---|
COPY_RATES_OPEN |
1 |
始値のシリーズ |
COPY_RATES_HIGH |
2 |
高値のシリーズ |
COPY_RATES_LOW |
4 |
低値のシリーズ |
COPY_RATES_CLOSE |
8 |
終値のシリーズ |
COPY_RATES_TIME |
16 |
時系列(バーの開く時間)
ベクトルと行列(vectordとmatrixf)で floatで時間を取得すると約100秒の損失が発生します。float精度は厳しく制限されており、1<<24より大きい整数はfloatで正確に表現できないためです。 |
COPY_RATES_VOLUME_TICK |
32 |
ティック数量 |
COPY_RATES_VOLUME_REAL |
64 |
取引高 |
COPY_RATES_SPREAD |
128 |
スプレッド |
組み合わせ |
|
|
COPY_RATES_OHLC |
15 |
始値、高値、安値、終値のシリーズ |
COPY_RATES_OHLCT |
31 |
始値、高値、安値、終値、時間のシリーズ |
データ配置 |
|
|
COPY_RATES_VERTICAL |
32768 |
受信した系列値は行列内で垂直に配置されます。最も古いデータが行列の最初の行に配置され、最新のデータが最後の行に配置されます。
デフォルトのコピーでは、系列が横軸に沿って行列に追加されます。
このフラグは、行列にコピーする場合にのみ適用されます。 |
例:
//+------------------------------------------------------------------+
|
参照