首页 > 解决方案 > Python,获取特定日期的股票数据

问题描述

我正在研究从美国证券交易所获取一些 python 代码的数据,基本上我需要做的是及时导入股票名称和以前的日期,它将为我提供未来 10 天市场的所有数据打开,这可能吗?

market = input("Market:")
ticker = input("Ticker:")
ticker = ticker.upper()
ystartdate = (input("Start Date IN FORMAT yyyy-mm-dd:"))
day1=input("Day1 :")
day2=input("Day2 :")
day3=input("Day3 :")
day4=input("Day4 :")
day5=input("Day5 :")
day6=input("Day6 :")
day7=input("Day7 :")
day8=input("Day8 :")
day9=input("Day9 :")
day10=input("Day10:")

目前我必须自动输入所有数据,但这很痛苦,基本上我会输入一个像 2012-10-15 这样的股票和日期,它会查看那个日期和接下来 10 天的股票。如果可能的话,这将是一个救生员!谢谢

标签: pythonpandasstockstocks

解决方案


我认为您的需求包含在熊猫中。实际上,您想使用其中一个pandas.bdate_rangepandas.date_rangefreq参数设置为B(我认为两者或多或少相同)。这些创建工作日,即它们不包括周末。bdate_range还允许您指定假期,所以我认为它可能会更灵活一些。

>>> import pandas as pd
>>> dates = pd.bdate_range(start='2018-10-25', periods=10)  # Start date is a Thursday
>>> print(dates)
DatetimeIndex(['2018-10-25', '2018-10-26', '2018-10-29', '2018-10-30',
           '2018-10-31', '2018-11-01', '2018-11-02', '2018-11-05',
           '2018-11-06', '2018-11-07'],
          dtype='datetime64[ns]', freq='B')

请注意这不包括 27 日(星期六)和 28 日(星期日)。如果要指定假期,则需要指定freq='C'.

将这些日期放在单独的变量中有点难看,但如果你真的想要,你可以像这样去解压它们:

>>> day1, day2, day3, day4, day5, day6, day7, day8, day9, day10 = dates

推荐阅读