ArrayCopySeries 関数
この関数は、時系列配列を指定した配列にコピーして、そのコピーした配列の要素数を取得します。
データ型と構成・戻り値
int ArrayCopySeries(①, ②, ③, ④);
戻り値は、コピーした配列の要素数を返します。失敗した場合は -1を返します。
引数 [4]
ArrayCopySeries関数は 4個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | array[] | void& | - | - | コピー先の配列(double型 or datetime型)。 |
② | series_index | int | - | - | コピー先の配列にコピーする時系列配列。 時系列配列識別子の列挙値から選択。 |
③ | symbol | string | - | NULL | 通貨ペア名。 「NULL」は現在のチャートの通貨ペアです。 |
④ | timeframe | int | - | 0 | 時間軸。Timeframe列挙値から選択。 「0」は現在のチャートの時間軸です。 |
使用例
ArrayCopySeries関数による時系列配列のコピー
現在のチャートのバーの始値を配列へコピーします。コピーされる要素数が多くなるので、直近から 5本のバーの始値のみをPrint関数で表示させます。
コード
// ArrayCopySeries関数による時系列配列のコピー
#property strict
void OnInit() {
int e,n,i;
string element;
double open_arr[]; // コピー先の配列
n=5; // Printで表示する要素数
e = ArrayCopySeries(open_arr, MODE_OPEN); // 時系列配列をopen_arr配列へコピーを実行
Print("コピーした要素数:", e);
element = (string)open_arr[0]; // 要素の内容を抽出
for(i=1; i<n; i++) {
element = element + ", " + (string)open_arr[i];
}
Print("配列の状態:open_arr[", e, "]={", element, ", …}");
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)