- 配列、バッファ及び時系列における索引付けの方向
- データアクセスの整理
- SeriesInfoInteger
- Bars
- BarsCalculated
- IndicatorCreate
- IndicatorParameters
- IndicatorRelease
- CopyBuffer
- CopyRates
- CopySeries
- CopyTime
- CopyOpen
- CopyHigh
- CopyLow
- CopyClose
- CopyTickVolume
- CopyRealVolume
- CopySpread
- CopyTicks
- CopyTicksRange
- iBars
- iBarShift
- iClose
- iHigh
- iHighest
- iLow
- iLowest
- iOpen
- iTime
- iTickVolume
- iRealVolume
- iVolume
- iSpread
CopyBuffer
指標の指定されたバッファデータを取得します。
複製されたデータの要素は、開始位置から現在から過去に向かって数えられます(インデックス buffer_num を持つ指標バッファ)。すなわち、0 の開始位置は現在足(の指標値)を意味します。
CopyBuffer() 関数は受け取り側の配列のサイズの複製されたデータへの割り当てを試みるので、複製するデータ量が不明の場合、受け取り側の buffer[] 配列としての動的配列の使用が推奨されます。指標バッファ(SetIndexBufer() 関数で指標値を格納するために事前に割り当てられる配列)が受け取り側の buffer[] 配列として使用された場合、部分的な複製が許可されています。例は標準端末パッケージの Awesome_Oscillator.MQL5 カスタム指標に見られます。
別の配列(非指標バッファ)に指示値の部分的なコピーを作成する必要がある場合は、所望の数が複製される中間配列を使用する必要があります。その後、この中間配列から受け取り側の配列の必要な場所に必要な数の値の要素ごとのコピーを行います。
複製する必要があるデータの量がわかっている場合は、過剰なメモリの割り当てを防止するために静的に割り当てられたバッファを受け取り側の配列として使用するべきです。
受け取り側の配列が as_series=true であるか as_series=false であるかは関係ありません。データは、一番古い要素が配列に割り当てられた物理メモリの先頭に配置されるように複製されます。この関数の呼び出し方は 3 つあります。
1 番目の位置と必要な要素数によっての呼び出し
int CopyBuffer(
|
開始日と必要な要素数によっての呼び出し
int CopyBuffer(
|
必要な時間間隔の開始日と終了日によっての呼び出し
int CopyBuffer(
|
パラメータ
indicator_handle
[in] 対応する指標関数によって戻された指標ハンドル
buffer_num
[in] 指標バッファの番号
start_pos
[in] 1 番目の複製される要素の位置
count
[in] 複製する日数
start_time
[in] 最初の要素に対応するバーの時刻
stop_time
[in] 最後の要素に対応するバーの時刻
buffer[]
[out] double 型の配列
戻り値
複製されたデータ数(エラーの場合は -1 )
注意事項
指標からデータがリクエストされて、リクエストされた時系列がまだ構築されていないかサーバからダウンロードされる必要がある場合、この関数はすぐに -1 を返し、ダウンロード/構築のプロセスが開始されます。
エキスパートアドバイザーやスクリプトからデータがリクエストされて、端末が必要なデータをローカルに持っていない場合サーバからのダウンロードが開始されます。データがローカル履歴から構築することが出来るがまだされていない場合、必要な時系列の構築が開始します。この関数は、タイムアウトの有効期限までに準備されるデータの量を返します。
例:
//+------------------------------------------------------------------+
|
上記の例は、指標バッファが同じ銘柄/期間の指標から作られた別の指標バッファの値で記入される方法を示しています。
履歴データリクエストの詳細な例はオブジェクト結合の方法で参照出来ます。そのセクションで使用可能なスクリプトは iFractals 指標の最後の 1,000 足の値を取得して最後の各 10 の上向きと下向きのフラクタルをチャートに表示する方法を示しています。データ欠落時には、同様の技術が通常次のスタイルを使用して描画されている指標全てで使用することが出来ます。
参照