如何做到这一点以便提取所有可用数据而不是专门为此脚本输入日期范围?

How to make it so that all available data is being pulled instead of specifically typing out a date range for this script?

可用选项日期如下。我如何编写代码才能提取所有这些日期,而不必在单独的行中将它们全部输入?

2022-03-11, 2022-03-18, 2022-03-25, 2022-04-01, 2022-04-08, 2022-04-14, 2022-04-22, 2022-05-20, 2022-06-17, 2022-07-15, 2022-10-21, 2023-01-20, 2024-01-19

import yfinance as yf

gme = yf.Ticker("gme")

opt = gme.option_chain('2022-03-11')

print(opt)

首先,由于这些日期没有规律,您应该创建一个日期列表。

list1=['2022-03-11', '2022-03-18', '2022-03-25', '2022-04-01', '2022-04-08', '2022-04-14', '2022-04-22', '2022-05-20', '2022-06-17', '2022-07-15', '2022-10-21', '2023-01-20', '2024-01-19']

创建列表后,您可以像之前那样启动代码:

import yfinance as yf

gme = yf.Ticker("gme")

但是现在,由于您希望打印出所有内容,而且我假设您需要将其保存到文件中以便更好地查看(因为我已经检查了输出并且我个人更喜欢 csv yfinance), 你可以这样做:

for date in list1:
    df = gme.option_chain(date)
    df_call = df[0]
    df_put = df[1]
    df_call.to_csv(f'call_{date}.csv')
    df_put.to_csv(f'put_{date}.csv')