如何在 python 中的模块内创建一个带有变量的函数



这是我正在尝试做的:

下面的代码从 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)

相关内容

  • 没有找到相关文章

最新更新