- 配列、バッファ及び時系列における索引付けの方向
- データアクセスの整理
- 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)에 관계 없음 가장 오래된 요소가 어레이에 할당된 물리적 메모리의 시작 부분에 위치하도록 데이터가 복사됩니다. 함수 호출에는 세 가지 종류가 있습니다.
첫 번째 포지션과 필요한 요소 수에 따라 호출
int CopyBuffer(
|
시작 날짜 및 필요한 요소 수에 따라 호출
int CopyBuffer(
|
필요한 시간 간격의 시작 및 종료 날짜로 호출
int CopyBuffer(
|
Parameters
indicator_handle
[in] 지표 핸들, 해당 지표 함수에 의해 반환됩니다.
buffer_num
[in] 지표 버퍼 번호.
start_pos
[in] 복사할 첫 번째 요소의 포지션.
count
[in] 복사할 데이터 수.
start_time
[in] 첫 번째 요소에 해당하는 막대 시간.
stop_time
[in] 마지막 요소에 해당하는 막대 시간.
buffer[]
[out] double 유형의 배열.
반환 값
오류 발생 시 복사된 데이터 개수 또는 -1을 반환합니다.
참고
지표에서 데이터를 요청할 때, 아직 구축되지 않았거나 서버에서 다운받아야 할 경우, 함수는 즉시 -1을 반환하지만 다운로드/구축 과정이 시작됩니다.
Expert Advisor 또는 스크립트에서 데이터를 요청할 때 터미널에 이러한 데이터가 로컬에 없으면 서버에서 다운로드가 시작되거나 로컬 기록에서 데이터를 빌드할 수 있지만 아직 준비되지 않은 경우 필수 시계열의 구축이 시작됩니다. 이 함수는 시간 초과 만료 순간까지 준비될 데이터 양을 반환합니다.
예:
//+------------------------------------------------------------------+
|
위의 예에서는 지표 버퍼가 동일한 심볼/주기에 있는 지표의 다른 지표 버퍼 값으로 채워지는 방법을 보여 줍니다.
데이터를 요청하는 내역의 자세한 예는 객체 바인딩 방법 섹션에서 참조하십시오. 이 섹션에서 사용할 수 있는 스크립트에서는 마지막 1000개의 막대에서 지표 iFractals의 값을 가져오는 방법과 마지막 10개의 위쪽 및 아래쪽 프랙탈을 차트에 표시하는 방법을 보여 줍니다. 누락 데이터가 있으며 일반적으로 다음 스타일을 사용하여 그려진 모든 지표에도 유사한 기법을 사용할 수 있습니다:
더 보기