copy_ticks_range

MetaTrader 5 터미널에서 지정된 날짜 범위에 대한 틱을 가져옵니다.

copy_ticks_range(
   symbol,       // 심볼명
   date_from,    // 틱 요청 시작일
   date_to,      // 틱 요청 만료일
   flags         // 요청된 틱 유형을 정의하는 플래그 조합
   )

Parameters

symbol

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

date_from

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

date_to

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

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 시간이 있지만, Python은 출력을 시도할 때 로컬 시간 이동을 다시 적용합니다. 따라서 획득한 데이터도 시각적 표시를 위해 수정해야 합니다.

예:

from datetime import datetime
import MetaTrader5 as mt5
# MetaTrader 5 패키지에 데이터 표시
print("MetaTrader5 패키지 작성자: ",mt5.__author__)
print("MetaTrader5 패키지 버전: ",mt5.__version__)
 
# 표에서 얻은 데이터를 표시하기 위해 'pandas' 모듈을 불러옵니다
import pandas as pd
pd.set_option('display.max_columns', 500# 표시될 칼럼 수
pd.set_option('display.width', 1500)      # 표시할 최대 표 너비
# 표준 시간대 작업을 위한 pytz 모듈
import pytz
 
# establish connection to MetaTrader 5 terminal
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_to = datetime(2020, 1, 11, tzinfo=timezone)
# request AUDUSD ticks within 11.01.2020 - 11.01.2020
ticks = mt5.copy_ticks_range("AUDUSD"utc_from, utc_tomt5.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
 
수령한 틱: 37008
수집된 틱을 '있는 그대로' 표시
(1578614400, 0.68577, 0.68594, 0., 0, 1578614400820, 134, 0.)
(1578614401, 0.68578, 0.68594, 0., 0, 1578614401128, 130, 0.)
(1578614401, 0.68575, 0.68594, 0., 0, 1578614401128, 130, 0.)
(1578614411, 0.68576, 0.68594, 0., 0, 1578614411388, 130, 0.)
(1578614411, 0.68575, 0.68594, 0., 0, 1578614411560, 130, 0.)
(1578614414, 0.68576, 0.68595, 0., 0, 1578614414973, 134, 0.)
(1578614430, 0.68576, 0.68594, 0., 0, 1578614430188, 4, 0.)
(1578614450, 0.68576, 0.68595, 0., 0, 1578614450408, 4, 0.)
(1578614450, 0.68576, 0.68594, 0., 0, 1578614450519, 4, 0.)
(1578614456, 0.68575, 0.68594, 0., 0, 1578614456363, 130, 0.)
 
틱과 함께 dataframe 표시
                 time      bid      ask  last  volume       time_msc  flags  volume_real
0 2020-01-10 00:00:00  0.68577  0.68594   0.0       0  1578614400820    134          0.0
1 2020-01-10 00:00:01  0.68578  0.68594   0.0       0  1578614401128    130          0.0
2 2020-01-10 00:00:01  0.68575  0.68594   0.0       0  1578614401128    130          0.0
3 2020-01-10 00:00:11  0.68576  0.68594   0.0       0  1578614411388    130          0.0
4 2020-01-10 00:00:11  0.68575  0.68594   0.0       0  1578614411560    130          0.0
5 2020-01-10 00:00:14  0.68576  0.68595   0.0       0  1578614414973    134          0.0
6 2020-01-10 00:00:30  0.68576  0.68594   0.0       0  1578614430188      4          0.0
7 2020-01-10 00:00:50  0.68576  0.68595   0.0       0  1578614450408      4          0.0
8 2020-01-10 00:00:50  0.68576  0.68594   0.0       0  1578614450519      4          0.0
9 2020-01-10 00:00:56  0.68575  0.68594   0.0       0  1578614456363    130          0.0

더 보기

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range