copy_ticks_from

지정된 날짜부터 MetaTrader 5 터미널에서 틱 가져옵니다.

copy_ticks_from(
   symbol,       // 심볼명
   date_from,    // 틱 요청 날짜
   count,        // 요청 틱 수
   flags         // 요청된 틱 유형을 정의하는 플래그 조합
   )

Parameters

symbol

[in]  금융상품명, 예를 들면, "EURUSD". 이름이 지정되지 않은 필수 매개 변수.

from

[in]  틱 요청 시작일. 'datetime' 개체에 의해 또는 1970.01.01 이후 경과된 시간(초)으로 설정됨. 이름이 지정되지 않은 필수 매개 변수.

count

[in]  수신할 틱 수. 이름이 지정되지 않은 필수 매개 변수.

flags

[in]  요청된 틱 유형을 정의하는 플래그. COPY_TICKS_INFO – 입찰 및/또는 요청 사항이 있는 틱, COPY_TICKS_TRADE – Last 및 Volume이 변경된 틱, COPY_TICKS_ALL – 모든 틱. 플래그 값은 COPY_TICKS 열거에 설명되어 있습니다. 이름이 지정되지 않은 매개 변수.

반환 값

지정된 시간, 입찰, 질문, 마지막 및 플래그 열의 숫자 배열로 틱을 반환합니다. 'flag' 값은 TICK_FLAG 열거의 플래그 조합일 수 있습니다. 오류가 발생하면 None을 반환합니다. last_error()를 사용하여 오류에 대한 정보를 얻을 수 있습니다.

참고

자세한 내용은 CopyTicks 함수를 참조하십시오.

'datetime' 객체를 생성할 때, Python은 로컬 표준 시간대를 사용하는 반면, MetaTrader 5는 UTC 표준 시간대에 (Shift 없이) 틱과 막대 오픈 시간을 저장합니다. 따라서 시간을 사용하는 기능을 실행하기 위해 UTC 시간으로 'datetime'을 생성해야 합니다. MetaTrader 5 단말기에서 수신된 데이터의 UTC 시간이 있습니다.

COPY_TICKScopy_ticks_from()copy_ticks_range() 함수를 사용하여 요청할 수 있는 틱 유형을 정의합니다.

ID

Description

COPY_TICKS_ALL

모든 틱

COPY_TICKS_INFO

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

COPY_TICKS_TRADE

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

TICK_FLAG 은 틱에 사용할 수 있는 플래그를 정의합니다. 이러한 플래그는copy_ticks_from()copy_ticks_range() 함수로 얻은 틱을 설명하는 데 사용됩니다.

ID

Description

TICK_FLAG_BID

입찰가 변경

TICK_FLAG_ASK

요청가 변경

TICK_FLAG_LAST

전날 종가 변경

TICK_FLAG_VOLUME

거래량 변경

TICK_FLAG_BUY

최근 매수가 변경

TICK_FLAG_SELL

최근 매도가 변경

 

예:

from datetime import datetime
import MetaTrader5 as mt5
# MetaTrader 5 패키지에 데이터 표시
print("MetaTrader5 패키지 작성자: ",mt5.__author__)
print("MetaTrader5 패키지 버전: ",mt5.__version__)
 
# 수집된 데이터를 표 형식으로 표시하기 위해 '수정' 모듈을 가져옵니다
import pandas as pd
pd.set_option('display.max_columns', 500# 표시될 칼럼 수
pd.set_option('display.width', 1500)      # 표시할 최대 표 너비
# 표준 시간대 작업을 위한 pytz 모듈
import pytz
 
# MetaTrader 5 터미널 연결 설정
if not mt5.initialize():
    print("initialize() 실패, 오류 코드 =",mt5.last_error())
    quit()
 
# set time zone to UTC
timezone = pytz.timezone("Etc/UTC")
# 로컬 시간대 오프셋 구현을 방지하기 위해 UTC 표준 시간대에 'datetime' 개체를 생성
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# UTC 표준 시간대로 2019.10.01.부터 시작하는 100 000 EURUSD 틱 요청
ticks = mt5.copy_ticks_from("EURUSD"utc_from100000, mt5.COPY_TICKS_ALL)
print("Ticks received:",len(ticks))
 
# MetaTrader 5 터미널 연결 종료
mt5.shutdown()
 
# 새 라인의 각 틱에 데이터 표시
print("수집된 틱을 '있는 그대로' 표시")
count = 0
for tick in ticks:
    count+=1
    print(tick)
    if count >= 10:
        break
 
# 가져온 데이터로 DataFrame 생성
ticks_frame = pd.DataFrame(ticks)
# 시간(초)을 날짜 시간 형식으로 변환
ticks_frame['time']=pd.to_datetime(ticks_frame['time'], unit='s')
 
# display data
print("\n틱과 함께 dataframe 표시")
print(ticks_frame.head(10))  
 
결과:
MetaTrader5 패키지 작성자:  MetaQuotes Software Corp.
MetaTrader5 패키지 버전:  5.0.29
 
틱 수령: 100000
수집된 틱을 '있는 그대로' 표시
(1578614400, 1.11051, 1.11069, 0., 0, 1578614400987, 134, 0.)
(1578614402, 1.11049, 1.11067, 0., 0, 1578614402025, 134, 0.)
(1578614404, 1.1105, 1.11066, 0., 0, 1578614404057, 134, 0.)
(1578614404, 1.11049, 1.11067, 0., 0, 1578614404344, 134, 0.)
(1578614412, 1.11052, 1.11064, 0., 0, 1578614412106, 134, 0.)
(1578614418, 1.11039, 1.11051, 0., 0, 1578614418265, 134, 0.)
(1578614418, 1.1104, 1.1105, 0., 0, 1578614418905, 134, 0.)
(1578614419, 1.11039, 1.11051, 0., 0, 1578614419519, 134, 0.)
(1578614456, 1.11037, 1.11065, 0., 0, 1578614456011, 134, 0.)
(1578614456, 1.11039, 1.11051, 0., 0, 1578614456015, 134, 0.)
 
틱과 함께 dataframe 표시
                 time      bid      ask  last  volume       time_msc  flags  volume_real
0 2020-01-10 00:00:00  1.11051  1.11069   0.0       0  1578614400987    134          0.0
1 2020-01-10 00:00:02  1.11049  1.11067   0.0       0  1578614402025    134          0.0
2 2020-01-10 00:00:04  1.11050  1.11066   0.0       0  1578614404057    134          0.0
3 2020-01-10 00:00:04  1.11049  1.11067   0.0       0  1578614404344    134          0.0
4 2020-01-10 00:00:12  1.11052  1.11064   0.0       0  1578614412106    134          0.0
5 2020-01-10 00:00:18  1.11039  1.11051   0.0       0  1578614418265    134          0.0
6 2020-01-10 00:00:18  1.11040  1.11050   0.0       0  1578614418905    134          0.0
7 2020-01-10 00:00:19  1.11039  1.11051   0.0       0  1578614419519    134          0.0
8 2020-01-10 00:00:56  1.11037  1.11065   0.0       0  1578614456011    134          0.0
9 2020-01-10 00:00:56  1.11039  1.11051   0.0       0  1578614456015    134          0.0

더 보기

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range