这是我正在尝试做的:
下面的代码从 mt5 调用每日时间帧。
mt5.TIMEFRAME_D1
我想在一个函数中制作这个模块的变量:
def symbol_data(symbol,timeframe):
mt5.initialize()
tf = mt5.TIMEFRAME_ + timeframe
symbol_rates = mt5.copy_rates_from(symbol, tf, datetime.now(),10**5)
mt5.shutdown()
return(symbol_rates)
所以我可以像这样调用函数:
sumbol_data("EURUSD",D1)
并在 D1 时间范围内从 EURUSD 获取汇率
我现在得到的错误是: 模块 'MetaTrader5' 没有属性 'TIMEFRAME_'
首先,D1
需要是一个字符串:'D1'
。 然后,您需要使用getattr
:
tf = getattr(mt5, f'TIMEFRAME_{timeframe}')
虽然getattr
的答案可能有效,但它不是很 Pythonic。Python 的方式是
import MetaTrader5 as mt5
def symbol_data(symbol,timeframe):
mt5.initialize()
symbol_rates = mt5.copy_rates_from(symbol, timeframe, datetime.now(),10**5)
mt5.shutdown()
return(symbol_rates)
symbol_data('EURUSD', mt5.TIMEFRAME_D1)
或者为了将来保存打字
H1 = mt5.TIMEFRAME_H1
symbol_data('EURUSD', H1)