Login1
Login1 личный блог
23 августа 2022, 09:07

Нужна помощь с загрузкой котировок

Добрый день,

Мне необходимо загрузить исторические котировки (дневки) по большому списку акций. Например, все по площадке NASDAQ. Вид результата:

 
TICKER DATE TIME HIGH OPEN LOW CLOSE VOLUME
AAPL 21.07.2022            
AAPL 22.07.2022            
GOOG 21.07.2022            
GOOG 22.07.2022            
NFLX 21.07.2022            
NFLX 22.07.2022            
             

Зачем так — хочу сделать нечто вроде скринера.

Нужна помощь, не знаю, как это осуществить. Втч за разумное вознаграждение

Благодарю заранее
17 Комментариев
  • Replikant_mih
    23 августа 2022, 10:37
    Ну на питоне код строчек 5-10 будет). Если какой-нибудь yahoo finance как источник данных подойдет.
      • Replikant_mih
        23 августа 2022, 10:49
        Login1, Автоматическую выгрузку можно. Про остальные типы активов не знаю — надо смотреть дает ли этот источник такие данные, если не дает, искать другой.
          • Replikant_mih
            23 августа 2022, 11:37
            Login1, Лучше не стоит)
              • Replikant_mih
                23 августа 2022, 12:03
                Login1, В простом варианте можно было бы в охоточку написать, а тут вы фичей добавили, а это уже надо будет подольше посидеть, позамороченней. А для не своих задач это делать влом).
                  • Replikant_mih
                    23 августа 2022, 12:24

                    Login1, 

                     

                    !conda install yfinance
                    !conda install pandas

                    from time import sleep
                    import yfinance as yf
                    import pandas as pd

                     

                    tickers = ['MSFT', 'AAPL']
                    pauseSeconds = 0.5

                    for ticker in tickers:
                       ticker_ = yf.Ticker(ticker)
                       df = ticker_.history(period=«max»)
                       df.drop(columns=['Dividends', 'Stock Splits'], inplace=True)
                       df.to_csv(f'{ticker}.csv')
                       print(f'{ticker} — DONE')
                       sleep(pauseSeconds)

                    • Replikant_mih
                      23 августа 2022, 12:25

                      Replikant_mih, Первые две строчки — если через Jupyter запускать чтобы пакеты установить. Запускать через Jupyter или как обычный python код. 

                       

                      Если тебе эти слова ни о чем не говорят)), то надо поставить Miniconda или Anaconda.

                        • Replikant_mih
                          23 августа 2022, 12:47

                          Login1, Ожидаемо)).

                           

                          import requests
                          import io

                          from time import sleep
                          import yfinance as yf
                          import pandas as pd

                          url=«pkgstore.datahub.io/core/nasdaq-listings/nasdaq-listed_csv/data/7665719fb51081ba0bd834fde71ce822/nasdaq-listed_csv.csv»
                          s = requests.get(url).content
                          tickers = pd.read_csv(io.StringIO(s.decode('utf-8')))['Symbol'].unique()

                          pauseSeconds = 0.5

                          for ticker in tickers:
                             try:
                                ticker_ = yf.Ticker(ticker)
                                df = ticker_.history(period=«max»)
                                df.drop(columns=['Dividends', 'Stock Splits'], inplace=True)
                                df.to_csv(f'{ticker}.csv')
                                print(f'{ticker} — DONE')
                                sleep(pauseSeconds)
                             except:
                                print(f'{ticker} — ERROR')

    • Kot_Begemot
      23 августа 2022, 15:23

      Replikant_mih, а в чем проблема Yahoo finance? Задержка?

      В скором времени планирую решать схожую задачу. Нужны данные по фьючам и без задержек, запросы раз в минуту, например, не подскажите откуда легче вязть?

      • Replikant_mih
        23 августа 2022, 15:37
        Kot_Begemot, Не знаю, открытый бесплатный источник, такие часто грешат косяками в данных или чем-то таким. Только на этом основывал сомнения в источнике. А так хз, может и норм. По ограничениям и где лучше брать не подскажу — я на MOEX специализируюсь щас).

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн