copy_rates_from

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

copy_rates_from(
   symbol,       // 심볼명
   timeframe,    // 타임프레임
   date_from,    // 초기 막대 오픈일
   count         // 막대 수
   )

Parameters

symbol

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

timeframe

[in]  막대가 요청된 타임프레임. TIMEFRAME 열거값으로 값 설정. 이름이 지정되지 않은 필수 매개 변수.

date_from

[in]  요청된 샘플에서 첫 번째 막대를 연 날짜. 'datetime' 개체에 의해 또는 1970.01.01 이후 경과된 시간(초)으로 설정됨. 이름이 지정되지 않은 필수 매개 변수.

count

[in]  수령할 막대의 수. 이름이 지정되지 않은 필수 매개 변수.

반환 값

지정된 시간, 시가, 고가, 저가, 종가, tick_volume, spread 및 real_volume 열의 numpy 어레이로 막대를 반환합니다. 오류가 발생하면 None을 반환합니다. 오류에 대한 정보는 last_error()를 사용하여 얻을 수 있습니다.

참고

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

날짜가 지정된 날짜보다 작거나 같은 데이터만 반환됩니다. 즉, 막대의 오픈 시간 은 항상 지정된 막대의 오픈 시간보다 작거나 같습니다.

MetaTrader 5 터미널은 차트에서 사용자가 사용할 수 있는 내역 내의 막대를 제공합니다. 사용자가 사용할 수 있는 막대 수는 "최대. 막대, 차트에서의" 매개변수로 설정됩니다.

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

TIMEFRAME 는 가능한 차트 기간 값을 포함하는 열거값입니다.

ID

Description

TIMEFRAME_M1

1 분

TIMEFRAME_M2

2 분

TIMEFRAME_M3

3 분

TIMEFRAME_M4

4 분

TIMEFRAME_M5

5 분

TIMEFRAME_M6

6 분

TIMEFRAME_M10

10 분

TIMEFRAME_M12

12 분

TIMEFRAME_M12

15 분

TIMEFRAME_M20

20 분

TIMEFRAME_M30

30 분

TIMEFRAME_H1

1 시간

TIMEFRAME_H2

2 시간

TIMEFRAME_H3

3 시간

TIMEFRAME_H4

4 시간

TIMEFRAME_H6

6 시간

TIMEFRAME_H8

8 시간

TIMEFRAME_H12

12 시간

TIMEFRAME_D1

1 일

TIMEFRAME_W1

1 주

TIMEFRAME_MN1

1 달

 

예:

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()
 
# 표준 시간대를 UTC로 설정
timezone = pytz.timezone("Etc/UTC")
# 로컬 시간대 오프셋 구현을 방지하기 위해 UTC 표준 시간대에 'datetime' 개체를 생성합니다.
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# UTC 표준 시간대로 2020년 1월 10일부터 10개의 EURD H4 막대를 설치
rates = mt5.copy_rates_from("EURUSD"mt5.TIMEFRAME_H4utc_from10)
 
# MetaTrader 5 터미널 연결 종료
mt5.shutdown()
# 수집된 데이터의 각 요소를 새 줄로 표시
print("수집된 데이터를 '있는 그대로' 표시")
for rate in rates:
    print(rate)
 
# 가져온 데이터로 DataFrame 생성
rates_frame = pd.DataFrame(rates)
# 시간(초)을 날짜 시간 형식으로 변환
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
                           
# 데이터 표시
print("\n데이터와 함께 dataframe 표시")
print(rates_frame)  
 
 
결과:
MetaTrader5 패키지 작성자:  MetaQuotes Software Corp.
MetaTrader5 패키지 버전:  5.0.29
 
수집된 데이터를 '있는 그대로' 표시
(1578484800, 1.11382, 1.11385, 1.1111, 1.11199, 9354, 1, 0)
(1578499200, 1.11199, 1.11308, 1.11086, 1.11179, 10641, 1, 0)
(1578513600, 1.11178, 1.11178, 1.11016, 1.11053, 4806, 1, 0)
(1578528000, 1.11053, 1.11193, 1.11033, 1.11173, 3480, 1, 0)
(1578542400, 1.11173, 1.11189, 1.11126, 1.11182, 2236, 1, 0)
(1578556800, 1.11181, 1.11203, 1.10983, 1.10993, 7984, 1, 0)
(1578571200, 1.10994, 1.11173, 1.10965, 1.11148, 7406, 1, 0)
(1578585600, 1.11149, 1.11149, 1.10923, 1.11046, 7468, 1, 0)
(1578600000, 1.11046, 1.11097, 1.11033, 1.11051, 3450, 1, 0)
(1578614400, 1.11051, 1.11093, 1.11017, 1.11041, 2448, 1, 0)
 
데이터와 함께 dataframe 표시
                 time     open     high      low    close  tick_volume  spread  real_volume
0 2020-01-08 12:00:00  1.11382  1.11385  1.11110  1.11199         9354       1            0
1 2020-01-08 16:00:00  1.11199  1.11308  1.11086  1.11179        10641       1            0
2 2020-01-08 20:00:00  1.11178  1.11178  1.11016  1.11053         4806       1            0
3 2020-01-09 00:00:00  1.11053  1.11193  1.11033  1.11173         3480       1            0
4 2020-01-09 04:00:00  1.11173  1.11189  1.11126  1.11182         2236       1            0
5 2020-01-09 08:00:00  1.11181  1.11203  1.10983  1.10993         7984       1            0
6 2020-01-09 12:00:00  1.10994  1.11173  1.10965  1.11148         7406       1            0
7 2020-01-09 16:00:00  1.11149  1.11149  1.10923  1.11046         7468       1            0
8 2020-01-09 20:00:00  1.11046  1.11097  1.11033  1.11051         3450       1            0
9 2020-01-10 00:00:00  1.11051  1.11093  1.11017  1.11041         2448       1            0

더 보기

CopyRates, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range