CopyTicks

틱을 MqlTick 구조에서 행렬 또는 벡터로 가져옵니다. 요소는 과거부터 현재까지 계산됩니다. 즉, 인덱스가 0인 틱이 가장 오래된 것입니다. MqlTick 구조에서 틱을 행렬 또는 벡터로 가져옵니다. 틱을 분석하려면 다음을 확인하십시오. flags는 틱에서 정확히 무엇이 변경되었는지 보여주는 필드로 이 부분을 �薦曠爛求�.

bool  matrix::CopyTicks(
   string           symbol,                // 심볼명
   ulong            flags,                 // 수신되어야 할 틱의 타입을 알려주는 flag
   ulong            from_msc,              // 틱이 요청된 시간부터 
   ulong            count                  // 수신되어야 할 틱의 수
   );

벡터 Method

bool  vector::CopyTicks(
   string           symbol,                // 심볼명
   ulong            flags,                 // 수신되어야 할 틱의 타입을 알려주는 flag
   ulong            from_msc,              // 틱이 요청된 시간부터 
   ulong            count                  // 수신되어야 할 틱의 수
   );

매개 변수

Symbol

[in]  심볼

flags

[in] 요청된 데이터의 내용을 나타내는 ENUM_COPY_TICKS 열거의 플래그 조합입니다.벡터로 복사할 때 ENUM_COPY_TICKS 열거형에서 하나의 값만 지정할 수 있습니다. 그렇지 않으면 오류가 발생합니다.

from_msc

[in]  틱이 요청되는 때부터 시작 시간. 시간은 1970년 1월 1일 이후부터 밀리초 단위로 지정됩니다. from_msc=0인 경우 'count'와 동일한 마지막 틱 수가 반환됩니다.

count

[in]  요청된 틱의 수 매개변수 'from_msc' 및 'count'가 지정되지 않은 경우 사용 가능한 모든 틱이 기록되지만 2000개 이하입니다.

 

반환값

성공 시 true를 반환하고 오류가 발생하면 false를 반환합니다.

참조

CopyTicks()의 첫 번째 호출때 하드 드라이브에 저장된 관련 심볼의 틱 데이터베이스와 동기화를 시작합니다. 로컬 데이터베이스가 요청된 모든 틱을 제공하지 않는 경우 누락된 틱은 거래 서버에서 자동으로 다운로드됩니다. CopyTicks()에 지정된 from_msc에서 현재까지의 틱이 동기화됩니다.. 그 후, 이 심볼에 대해 도착하는 모든 틱은 틱 데이터베이스에 추가되어 동기화된 상태로 유지됩니다.

from_msccount 매개변수가 지정되지 않은 경우 사용 가능한 모든 틱(2000 이하)은 행렬/벡터에 기록됩니다.

지표에서 CopyTicks() 메서드는 결과를 즉시 반환합니다: CopyTick()이 지표에서 호출되면 CopyTick()은 심볼의 사용 가능한 모든 틱을 즉시 반환하고 사용 가능한 데이터가 충분하지 않은 경우 틱 데이터베이스의 동기화를 시작합니다. 동일한 심볼에 있는 모든 지표는 하나의 공통 스레드에서 작동하므로 지표는 동기화의 완료를 기다릴 수 없습니다. 동기화 후 CopyTicks()는 다음 호출 중에 요청된 모든 틱을 반환합니다. 지표에서 OnCalculate() 함수는 각 틱이 도착한 후에 호출됩니다.

Expert Advisors 및 스크립트에서 CopyTicks()는 45초 동안 결과를 기다릴 수 있습니다. 지표와는 달리 모든 Expert Advisor 또는 스크립트는 별도의 스레드에서 작동하므로 동기화가 완료되기까지 45초 정도를 기다릴 수 있습니다. 필요한 양의 틱이 이 시간 동안 동기화되지 않으면 CopyTicks()는 시간 초과까지의 사용 가능한 틱을 반환하고 동기화를 계속합니다. Expert Advisors의 OnTick()은 시장에서 일어난 변화에 ​​대해서만 Expert Advisor에게 알립니다. 모든 틱을 처리하는 핸들러가 아닙니다. 이것은 일괄적인 변경일 수 있습니다: 터미널은 동시에 여러 틱을 수신할 수 있지만 OnTick()은 Expert Advisor에 최신 시장 상태를 알리기 위해 한 번만 호출되어 집니다.

Rate of data return: 터미널은 빠른 액세스 캐시에 각 상품에 대한 4096개의 마지막 틱을 저장합니다(시장 심도가 실행 중인 심볼의 경우 65536틱). 이 데이터와 관련한 요청이 가장 빠르게 실행됩니다. 현재 거래 세션에 대해 요청된 틱이 캐시의 외부에 있는 경우 CopyTicks()는 터미널 메모리에 저장된 틱을 호출합니다. 이러한 요청은 완료되는 데 더 많은 시간이 필요합니다. 이 경우 드라이브에서 데이터를 읽습니다. 그러므로 가장 느린 요청은 다른 날의 틱을 요청하는 요청입니다.

ENUM_COPY_TICKS

ENUM_COPY_TICKS 열거형에는 행렬 또는 배열에 전달할 데이터 유형을 지정하는 플래그가 포함되어 있습니다. 플래그 조합을 사용하면 하나의 요청으로 히스토리에서 여러 시리즈를 가져올 수 있습니다. 행렬의 행 순서는 ENUM_COPY_TICKS 열거형의 값 순서와 일치합니다. 즉, 높은 데이터가 있는 행은 낮은 데이터가 있는 행보다 매트릭스에서 항상 더 높습니다.

ID

Value

설명

COPY_TICKS_INFO

1

입찰 및/또는 요청 가격 변동을 포함하는 틱

COPY_TICKS_TRADE

2

Last 및/또는 Volume 가격 변동을 포함하는 틱

COPY_TICKS_ALL

3

모든 틱

COPY_TICKS_TIME_MS

1<<8

Tick time in milliseconds

COPY_TICKS_BID

1<<9

Bid price

COPY_TICKS_ASK

1<<10

Ask price

COPY_TICKS_LAST

1<<11

Last price (last deal price)

COPY_TICKS_VOLUME

1<<12

Last price Volume

COPY_TICKS_FLAGS

1<<13

Tick Flags

데이터 정렬

 

 

COPY_TICKS_VERTICAL

32768

틱은 수직 축을 따라 행렬에 복사됩니다. 수신된 틱은 행렬에서 수직으로 배열됩니다. 즉, 가장 오래된 틱은 첫 번째 행에 있고 가장 최근 틱은 마지막 행렬 행에 있습니다.

 

디폴트 복사를 사용하면 눈금이 가로 축을 따라 행렬에 추가됩니다.

 

플래그는 행렬에 복사할 때만 적용 가능합니다.

틱 플래그를 분석하여 어떤 데이터가 변경되었는지 확인합니다:

  • TICK_FLAG_BID — 틱이 bid 가격을 변경했습니다.
  • TICK_FLAG_ASK — 틱이 ask 가격을 변경했습니다.
  • TICK_FLAG_LAST — 틱이 마지막 거래 가격을 변경했습니다.
  • TICK_FLAG_VOLUME — 틱이 볼륨을 변경했습니다.
  • TICK_FLAG_BUY — 틱은 매수 거래의 결과입니다.
  • TICK_FLAG_SELL — 틱은 매도 거래의 결과입니다.

 

또다른 참조

시계열 및 지표에 대한 액세스,CopyTicks