Python, Получение биржевых данных в определенные дни - PullRequest
0 голосов
/ 20 октября 2018

Я собираюсь получить данные с американских бирж для некоторого кода на 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 дней.Если это возможно, это будет спасатель жизни!Спасибо

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я думаю, что ваша потребность включена в панд.Фактически, вы хотите использовать pandas.bdate_range или pandas.date_range с аргументом freq, установленным на 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
0 голосов
/ 20 октября 2018

Вы должны работать с правильным форматом времени, а не строками для этого.

Вы можете использовать панд, например, с datetime64.

import pandas as pd

input = ("Starting Date: ")
dates = pd.date_range(start=start_date, periods=10)

Существует также пакет datetime, который имеетконцепции timedelta, которые могут помочь вам, если вы не хотите использовать панд.

...