背景

川大爷,常在twitter上吆喝美股多次创造历史高点。美股确实是一个资产配置的重要选项。

在进入市场之前,研究先行,作好功课。

获取数据

对于一个公司的股票的研究与分析有多个方面。这里只看股票的数据情况。 既然是分析数据,那么如何获取获取呢?

这个问题可以拆为以下问题:

  1. 从哪里找数据?
  2. 如何得到这些数据?

先从第一个问题开始:从哪里找数据?美股的数据来源来很多,这里我直接选择了yahoo财经数据。 主要原因如下:

  1. yahoo财经数据详细
  2. yahoo财经可以直接通过api获取,使用方便
  3. 最重要地一点,yahoo财经的api没有被墙,如果被墙了,也支持代理
  4. yahoo财经数据实时性也不错,除了交易日当天的数据无法获取,其他的都可以获取

下面我们就看如何调用api获取数据。不多说了,直接上代码。

1
2
3
4
5
6
7
8
9
import pandas as pd
import yfinance as yf

tsla_df = yf.download('TSLA', 
                      start='2020-01-01', 
                      end='2020-02-06', 
                      progress=False)

tsla_df.tail()

具体结果如下:

获取ticker数据:

1
2
3
4
5
6
%matplotlib notebook
ticker = yf.Ticker('TSLA')

tsla_df = ticker.history(period="max")
tsla_df.head()
tsla_df['Close'].plot(title="Telsa's stock price")

具体结果如下:

这些数据都可以股票软件都可以看到。 对的,下面说一下通过api获取原始数据的好处。

灵活地获取ticker数据:

1
2
3
%matplotlib notebook
tsla_df = yf.download("TSLA", start="2020-02-01", end="2020-02-06", interval = "15m")
tsla_df['Close'].plot(title="TSLA FROM  2020-02-01 TO 2020-02-06 ")

具体结果如下:

股票对比分析:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

from plotly.offline import download_plotlyjs, init_notebook_mode, iplot

import numpy as np
import cufflinks as cf

data_tam = yf.download(  # or pdr.get_data_yahoo(...
        # tickers list or string as well
        tickers = "TSLA AAPL MSFT",

        # use "period" instead of start/end
        # valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
        # (optional, default is '1mo')
        period = "5y",

        # fetch data by interval (including intraday if period < 60 days)
        # valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
        # (optional, default is '1d')
        interval = "1wk",

        # group by ticker (to access via data['SPY'])
        # (optional, default is 'column')
        group_by = 'ticker',

        # adjust all OHLC automatically
        # (optional, default is False)
        auto_adjust = True,

        # download pre/post regular market hours data
        # (optional, default is False)
        prepost = True,

        # use threads for mass downloading? (True/False/Integer)
        # (optional, default is True)
        threads = True,

        # proxy URL scheme use use when downloading?
        # (optional, default is None)
        proxy = None
    )

data_tam_close = data_tam.iloc[:, [3, 8, 13]]
data_tam_close = data_tam_close.dropna()

iplot(data_tam_close.iplot(asFigure=True, kind='line', title='TSLA VS MS VS APPLE', dimensions=(800,500)))

具体结果如下:

一眼可以看出在2020年前任何一个时间点买入telsa并持有是一个正确的选择,投资收益远超过了苹果与微软。

后记

本文主要解决了如何获取美股交易数据的问题,对于这些数据的分析及预测后面再展开。

欢迎关注

欢迎关注微信公众帐号:沉风网事(savewind)

沉风网事