時系列配列をコピー ArrayCopySeries 関数

関数

配列関数

ArrayCopySeries 関数

 この関数は、時系列配列を指定した配列にコピーして、そのコピーした配列の要素数を取得します。

データ型と構成・戻り値

int ArrayCopySeries(①,②,③,④);

 戻り値は、コピーした配列の要素数を返します。失敗した場合は -1を返します。

引数 [4]

 ArrayCopySeries関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
array[]void&コピー先の配列(double型 or datetime型)。
series_indexintコピー先の配列にコピーする時系列配列。
時系列配列識別子の列挙値から選択。
symbolstringNULL通貨ペア名。
「NULL」は現在のチャートの通貨ペアです。
timeframeint0時間軸。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, ", …}");
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました