Skip to main content

One post tagged with "ohlc"

View All Tags

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

  1. 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.
  2. Xác định tham số

    • symbol: Cặp tiền tệ cần lấy dữ liệu (EURUSD.sml).
    • from_date_strto_date_str: Khoảng thời gian cần lấy dữ liệu.
    • timeframe: Khung thời gian (M1 - 1 phút).
  3. 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