Отказ от ответственности: я довольно плохо знаком с python, поэтому заранее сожалею о недостатке знаний в области кодирования.
Я беру исторические данные из Yahoo Finance и хочу провести через них торговую стратегию. Я получил тестирование на работу по большей части, но для эффективности и читабельности я решил попытаться создать класс с более четко определенными переменными. Когда я получаю данные, я хочу загрузить их в виде CSV-файла, поэтому мне не нужно повторно выбирать данные каждый раз, когда я запускаю их. При этом, когда я пытаюсь использовать свои переменные при создании имени файла CSV, я получаю FileNotFoundError. Но если я просто жесткий код в имени, это работает, создает CSV без проблем. Я пробовал несколько разных способов использования моих переменных для имени файла, но ни один из них не работает, кроме жесткого кодирования. Может ли кто-нибудь помочь мне понять, что происходит?
##Working Code:
class backtest:
def __init__(self, ticker):
start = '1/3/2000'
end = '1/3/2019'
sdate = pd.to_datetime(start)
edate = pd.to_datetime(end)
if os.path.islink('{}_{}_to_{}.csv'.format(ticker, start, end)) == True:
self.df = pd.read_csv('{}_{}_to_{}.csv'.format(ticker, start, end), parse_dates=True)
else:
##Failed attempt 1
##self.filename = '{}_{}_to_{}.csv'.format(ticker, start, end)
##self.df.to_csv(self.filename)
##Failed attempt 2
##self.filename = str(ticker) + '_' + start + '_to_' + end + '.csv'
##self.df.to_csv(self.filename)
self.df = web.DataReader(ticker, 'yahoo', sdate, edate)
self.df.to_csv('amzn_1/3/2000_to_1/3/19.csv')
amzn = backtest('amzn')
print(amzn.df.head(1))