下面代码是一个 Python 函数,用于从 MetaTrader 5 (MT5) 平台获取特定金融品种的历史行情数据。MT5 是一款广泛使用的在线交易平台,适用于外汇、股票和其他金融产品的交易。这个函数可以帮助交易者或金融量化分析师获取用于分析、交易策略开发或回测的历史数据。
# 获取mt5中的行情数据,参数有3个:品种(必要),时间框架,天数。
def get_mt5_data(symbol, timeframe=mt5.TIMEFRAME_D1, days_back=10):
# 连接到MetaTrader 5
if not mt5.initialize():
print("initialize() failed, error code =", mt5.last_error())
quit()
try:
# 设置时间范围
current_time = datetime.now()
time_ago = current_time - timedelta(days=days_back)
# 获取品种从指定时间前到当前时间的数据
rates = mt5.copy_rates_range(symbol, timeframe, time_ago, current_time)
# 如果成功获取到数据,进行数据转换
if rates is not None and len(rates) > 0:
# 将数据转换为Pandas DataFrame
df = pd.DataFrame(rates)
# 转换时间格式
df['time'] = pd.to_datetime(df['time']