Lấy Dữ liệu OHLC từ MetaTrader 5 bằng Python
· 2 min read
Giới thiệu
Bài viết này hướng dẫn cách sử dụng Python để lấy dữ liệu OHLC từ nền tảng MetaTrader 5 (MT5) bằng thư viện MetaTrader5
.
Mã nguồn
import MetaTrader5 as mt5
from datetime import datetime
import pandas as pd
# Kết nối tới MetaTrader 5
if not mt5.initialize():
print("Khởi tạo MT5 không thành công")
mt5.shutdown()
symbol = 'EURUSD.sml'
from_date_str = datetime.strptime('2025-03-01', '%Y-%m-%d')
to_date_str = datetime.strptime('2025-03-05', '%Y-%m-%d')
timeframe = mt5.TIMEFRAME_M1
# Lấy dữ liệu OHLC cho cặp tiền symbol trong khoảng thời gian đã xác định
ohlc_data = mt5.copy_rates_range(symbol, timeframe, from_date_str, to_date_str)
print('OHLC_Data')
print(ohlc_data)
Giải thích
-
Khởi tạo kết nối MT5
mt5.initialize()
: Kết nối với nền tảng MetaTrader 5.- Nếu không thành công, chương trình sẽ thoát.
-
Xác định tham số
symbol
: Cặp tiền tệ cần lấy dữ liệu (EURUSD.sml
).from_date_str
vàto_date_str
: Khoảng thời gian cần lấy dữ liệu.timeframe
: Khung thời gian (M1
- 1 phút).
-
Lấy dữ liệu OHLC
mt5.copy_rates_range(symbol, timeframe, from_date_str, to_date_str)
: Truy vấn dữ liệu giá.- In dữ liệu nhận được.
Cải tiến
✅ Chuyển đổi dữ liệu sang Pandas DataFrame
if ohlc_data is not None and len(ohlc_data) > 0:
df = pd.DataFrame(ohlc_data)
print(df.head())
else:
print("Không có dữ liệu OHLC")
✅ Xử lý lỗi khi lấy dữ liệu
if ohlc_data is None:
print("Lỗi: Không thể lấy dữ liệu OHLC từ MT5")
✅ Lưu dữ liệu vào CSV để phân tích sau
df.to_csv("ohlc_data.csv", index=False)
print("Dữ liệu đã được lưu vào ohlc_data.csv")
📌 Tham khảo thêm: Tài liệu MetaTrader5 Python API