CopyRates
MqlRate의 지정된 양의 지정된 기호 기간의 구조를 행렬 또는 벡터로 변환한 것의 역사적인 시리즈를 가져옵니다.. 요소는 현재부터 과거까지 카운트다운됩니다. 즉 시작 위치가 0이면 현재 바를 의미합니다.
가장 오래된 요소가 행렬/벡터의 시작 부분에 배치되도록 데이터가 복사됩니다. 세 가지 함수 옵션이 있습니다.
초기의 포지션 및 필요한 요소 수에 의한 액세스
bool matrix::CopyRates(
|
초기 날짜 및 필수 요소 수에 의한 액세스
bool matrix::CopyRates(
|
요청되는 시간 간격의 초기 및 최종 날짜까지 액세스
bool matrix::CopyRates(
|
벡터 방법
초기의 포지션 및 필요한 요소 수에 의한 액세스
bool vector::CopyRates(
|
초기 날짜 및 필수 요소 수에 의한 액세스
bool vector::CopyRates(
|
요청되는 시간 간격의 초기 및 최종 날짜까지 액세스
bool vector::CopyRates(
|
매개 변수
Symbol
[in] 심볼
period
[in] 주기.
rates_mask
【in】 요청된 시리즈의 유형을 지정하는 플래그의 ENUM_COPY_RATES 열거형 조합입니다. 벡터로 복사할 때 ENUM_COPY_RATES 열거형에서 하나의 값만 지정할 수 있으며 그렇지 않으면 오류가 발생합니다.
start
[in]처음 복사된 요소 인덱스.
count
[in】 복사된 요소의 수
from
【in】 첫 번째 요소에 해당하는 바 시간입니다.
to
【in】 마지막 요소에 해당하는 막대 시간입니다.
반환값
성공하면 true를 반환하고 그렇지 않고 오류.이면 false를 반환합니다.
참조
요청된 데이터의 간격이 서버에서 사용 가능한 데이터를 완전히 벗어나면 함수는 다음을 반환합니다.false. 데이터가 외부에 있는 경우TERMINAL_MAXBARS (차트의 최대 바의 수)가 요청되면 함수도 다음을 반환합니다.false.
EA 또는 스크립트에서 데이터를 요청할 때,서버에서 다운로드는 터미널에 로컬에 적절한 데이터가 없는 경우 시작되거나 로컬 기록에서 데이터를 구성할 수 있지만 아직 준비되지 않은 경우 필요한 시계열 구성이 시작됩니다. 함수는 제한 시간이 만료될 때까지 준비될 양을 반환하지만 기록 다운로드는 계속되고 함수는 이후 유사한 요청 중에 더 많은 데이터를 반환합니다.
시작 날짜와 필요한 항목 수로 데이터를 요청할 경우 (전에) 지정된 날짜보다 이전 또는 같은 날짜의 데이터만 반환됩니다. 인터벌이 설정되고 최대 1초로 간주됩니다. 즉, 값이 반환되는 바(볼륨, 스프레드, 시가, 고가, 저가, 종가 또는 시간)의 개장일은 항상 지정된 날짜보다 작거나 같습니다.
지정된 날짜 범위의 데이터를 요청할 때 요청된 인터벌에 해당하는 데이터만 반환됩니다. 인터벌이 설정되고 최대 1초로 간주됩니다. 즉, 값이 반환되는 바(볼륨, 스프레드, 인디케이터 버퍼 값, 시가, 고가, 저가, 종가 또는 시간)의 시작 시간은 항상 요청된 인터벌에 있습니다.
예를 들어 현재 요일이 토요일인 경우 설정을 통해 주간 시간대에 데이터 복사를 시도하면 함수는 0을 반환합니다.start_time=마지막_화요일 그리고stop_time=Last_Friday 주간 시간대의 개장 시간은 항상 일요일이지만 지정된 범위에 속하는 주간 바는 하나도 없기 때문입니다.
현재 완성되지 바에 해당하는 값을 가져와야 하는 경우 다음을 나타내는 첫 번째 호출 형식을 사용할 수 있습니다. start_pos=0 및count=1.
ENUM_COPY_RATES 열거형에는 행렬 또는 배열에 전달할 데이터 유형을 지정하는 플래그가 포함되어 있습니다. 플래그 조합을 사용하면 하나의 요청으로 히스토리에서 여러 시리즈를 가져올 수 있습니다. 행렬의 행 순서는 ENUM_COPY_RATES 열거형의 값 순서와 일치합니다. 즉, 높은 데이터가 있는 행은 낮은 데이터가 있는 행보다 매트릭스에서 항상 더 높습니다.
ID |
Value |
설명 |
---|---|---|
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 |
계열은 세로 축을 따라 행렬에 복사됩니다. 수신된 계열 값은 행렬에서 수직으로 정렬됩니다. 즉, 가장 오래된 데이터가 첫 번째 행에 있고 가장 최근 데이터가 마지막 행렬 행에 있습니다.
기본 복사를 사용하면 시리즈가 가로 축을 따라 행렬에 추가됩니다.
플래그는 행렬에 복사할 때만 적용 가능합니다. |
예:
//+------------------------------------------------------------------+
|
또다른 참조