精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Python做股市數(shù)據(jù)分析(一)

開(kāi)發(fā) 后端
這篇博文是用Python分析股市數(shù)據(jù)系列兩部中的第一部,內(nèi)容基于我猶他大學(xué) 數(shù)學(xué)3900 (數(shù)據(jù)科學(xué))的課程。在這些博文中,我會(huì)討論一些基礎(chǔ)知識(shí)。比如如何用pandas從雅虎財(cái)經(jīng)獲得數(shù)據(jù), 可視化股市數(shù)據(jù),平局?jǐn)?shù)指標(biāo)的定義,設(shè)計(jì)移動(dòng)平均交匯點(diǎn)分析移動(dòng)平均線的方法,回溯測(cè)試, 基準(zhǔn)分析法。

這篇博文是用Python分析股市數(shù)據(jù)系列兩部中的第一部,內(nèi)容基于我猶他大學(xué) 數(shù)學(xué)3900 (數(shù)據(jù)科學(xué))的課程。在這些博文中,我會(huì)討論一些基礎(chǔ)知識(shí)。比如如何用pandas從雅虎財(cái)經(jīng)獲得數(shù)據(jù), 可視化股市數(shù)據(jù),平局?jǐn)?shù)指標(biāo)的定義,設(shè)計(jì)移動(dòng)平均交匯點(diǎn)分析移動(dòng)平均線的方法,回溯測(cè)試, 基準(zhǔn)分析法。最后一篇博文會(huì)包含問(wèn)題以供練習(xí)。第一篇博文會(huì)包含平局?jǐn)?shù)指標(biāo)以及之前的內(nèi)容。

注意:本文僅代表作者本人的觀點(diǎn)。文中的內(nèi)容不應(yīng)該被當(dāng)做經(jīng)濟(jì)建議。我不對(duì)文中代碼負(fù)責(zé),取用者自己負(fù)責(zé)。

引言

金融業(yè)使用高等數(shù)學(xué)和統(tǒng)計(jì)已經(jīng)有段時(shí)日。早在八十年代以前,銀行業(yè)和金融業(yè)被認(rèn)為是“枯燥”的;投資銀行跟商業(yè)銀行是分開(kāi)的,業(yè)界主要的任務(wù)是處理“簡(jiǎn)單的”(跟當(dāng)今相比)的金融職能,例如貸款。里根政府的減少調(diào)控和數(shù)學(xué)的應(yīng)用,使該行業(yè)從枯燥的銀行業(yè)變?yōu)榻裉斓哪印T谀侵螅鹑谲Q身科學(xué),成為推動(dòng)數(shù)學(xué)研究和發(fā)展的力量。例如數(shù)學(xué)上一個(gè)重大進(jìn)展是布萊克-舒爾斯公式的推導(dǎo)。它被用來(lái)股票定價(jià) (一份賦予股票持有者以一定的價(jià)格從股票發(fā)行者手中買(mǎi)入和賣(mài)出的合同)。但是, 不好的統(tǒng)計(jì)模型,包括布萊克-舒爾斯模型, 背負(fù)了部分導(dǎo)致2008金融危機(jī)的罵名。

近年來(lái),計(jì)算機(jī)科學(xué)加入了高等數(shù)學(xué)的陣營(yíng),為金融和證券交易(為了盈利而進(jìn)行的金融產(chǎn)品買(mǎi)入賣(mài)出行為)帶來(lái)了革命性的變化。如今交易主要由計(jì)算機(jī)來(lái)完成:算法能以人類難以達(dá)到的速度做出交易決策(參看光速的限制已經(jīng)成為系統(tǒng)設(shè)計(jì)中的瓶頸)。機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘也被越來(lái)越廣泛的用到金融領(lǐng)域中,目測(cè)這個(gè)勢(shì)頭會(huì)保持下去。事實(shí)上很大一部分的算法交易都是高頻交易(HFT)。雖然算法比人工快,但這些技術(shù)還是很新,而且被應(yīng)用在一個(gè)以不穩(wěn)定,高風(fēng)險(xiǎn)著稱的領(lǐng)域。據(jù)一條被黑客曝光的白宮相關(guān)媒體推特表明HFT應(yīng)該對(duì)2010 閃電式崩盤(pán) and a 2013 閃電式崩盤(pán) 負(fù)責(zé)。

不過(guò)這節(jié)課不是關(guān)于如何利用不好的數(shù)學(xué)模型來(lái)摧毀證券市場(chǎng)。相反的,我將提供一些基本的Python工具來(lái)處理和分析股市數(shù)據(jù)。我會(huì)講到移動(dòng)平均值,如何利用移動(dòng)平均值來(lái)制定交易策略,如何制定進(jìn)入和撤出股市的決策,記憶如何利用回溯測(cè)試來(lái)評(píng)估一個(gè)決策。

免責(zé)申明:這不是投資建議。同時(shí)我私人完全沒(méi)有交易經(jīng)驗(yàn)(文中相關(guān)的知識(shí)大部分來(lái)自我在鹽湖城社區(qū)大學(xué)參加的一個(gè)學(xué)期關(guān)于股市交易的課程)!這里僅僅是基本概念知識(shí),不足以用于實(shí)際交易的股票。股票交易可以讓你受到損失(已有太多案例),你要為自己的行為負(fù)責(zé)。

獲取并可視化股市數(shù)據(jù)

從雅虎金融獲取數(shù)據(jù)

在分析數(shù)據(jù)之前得先得到數(shù)據(jù)。股市數(shù)據(jù)可以從Yahoo! Finance、 Google Finance以及其他的地方拿到。同時(shí),pandas包提供了輕松從以上網(wǎng)站獲取數(shù)據(jù)的方法。這節(jié)課我們使用雅虎金融的數(shù)據(jù)。

下面的代碼展示了如何直接創(chuàng)建一個(gè)含有股市數(shù)據(jù)的DataFrame。(更多關(guān)于遠(yuǎn)程獲取數(shù)據(jù)的信息,點(diǎn)擊這里(http://pandas.pydata.org/pandas-docs/stable/remote_data.html))

  1. import pandas as pd 
  2.  
  3. import pandas.io.data as web   # Package and modules for importing data; this code may change depending on pandas version 
  4.  
  5. import datetime 
  6.  
  7.   
  8.  
  9. # We will look at stock prices over the past year, starting at January 1, 2016 
  10.  
  11. start = datetime.datetime(2016,1,1) 
  12.  
  13. end = datetime.date.today() 
  14.  
  15.   
  16.  
  17. # Let's get Apple stock data; Apple's ticker symbol is AAPL 
  18.  
  19. First argument is the series we want, second is the source ("yahoo" for Yahoo! Finance), third is the start date, fourth is the end date 
  20.  
  21. apple = web.DataReader("AAPL""yahoo", start, end
  22.  
  23.   
  24.  
  25. type(apple)  
  1. C:\Anaconda3\lib\site-packages\pandas\io\data.py:35: FutureWarning: 
  2.  
  3. The pandas.io.data module is moved to a separate package (pandas-datareader) and will be removed from pandas in a future version. 
  4.  
  5. After installing the pandas-datareader package (https://github.com/pydata/pandas-datareader), you can change the import ``from pandas.io import data, wb`` to ``from pandas_datareader import data, wb``. 
  6.  
  7.   FutureWarning) 
  8.  
  9.   
  10.  
  11.   
  12.  
  13.   
  14.  
  15.   
  16.  
  17.   
  18.  
  19. pandas.core.frame.DataFrame  
  1. apple.head() 

讓我們簡(jiǎn)單說(shuō)一下數(shù)據(jù)內(nèi)容。Open是當(dāng)天的開(kāi)始價(jià)格(不是前一天閉市的價(jià)格);high是股票當(dāng)天的最高價(jià);low是股票當(dāng)天的最低價(jià);close是閉市時(shí)間的股票價(jià)格。Volume指交易數(shù)量。Adjust close是根據(jù)法人行為調(diào)整之后的閉市價(jià)格。雖然股票價(jià)格基本上是由交易者決定的,stock splits (拆股。指上市公司將現(xiàn)有股票一拆為二,新股價(jià)格為原股的一半的行為)以及dividends(分紅。每一股的分紅)同樣也會(huì)影響股票價(jià)格,也應(yīng)該在模型中被考慮到。

可視化股市數(shù)據(jù)

獲得數(shù)據(jù)之后讓我們考慮將其可視化。下面我會(huì)演示如何使用matplotlib包。值得注意的是appleDataFrame對(duì)象有一個(gè)plot()方法讓畫(huà)圖變得更簡(jiǎn)單。 

  1. import matplotlib.pyplot as plt   # Import matplotlib 
  2.  
  3. # This line is necessary for the plot to appear in a Jupyter notebook 
  4.  
  5. %matplotlib inline 
  6.  
  7.   
  8.  
  9. # Control the default size of figures in this Jupyter notebook 
  10.  
  11. %pylab inline 
  12.  
  13.   
  14.  
  15. pylab.rcParams['figure.figsize'] = (15, 9)   # Change the size of plots 
  16.  
  17. apple["Adj Close"].plot(grid = True) # Plot the adjusted closing price of AAPL  
  1. Populating the interactive namespace from numpy and matplotlib 

 

線段圖是可行的,但是每一天的數(shù)據(jù)至少有四個(gè)變量(開(kāi)市,股票最高價(jià),股票最低價(jià)和閉市),我們希望找到一種不需要我們畫(huà)四條不同的線就能看到這四個(gè)變量走勢(shì)的可視化方法。一般來(lái)說(shuō)我們使用燭柱圖(也稱為日本陰陽(yáng)燭圖表)來(lái)可視化金融數(shù)據(jù),燭柱圖最早在18世紀(jì)被日本的稻米商人所使用。可以用matplotlib來(lái)作圖,但是需要費(fèi)些功夫。

你們可以使用我實(shí)現(xiàn)的一個(gè)函數(shù)更容易地畫(huà)燭柱圖,它接受pandas的data frame作為數(shù)據(jù)來(lái)源。(程序基于這個(gè)例子, 你可以從這里找到相關(guān)函數(shù)的文檔。)

  1. from matplotlib.dates import DateFormatter, WeekdayLocator,\ 
  2.  
  3.     DayLocator, MONDAY 
  4.  
  5. from matplotlib.finance import candlestick_ohlc 
  6.  
  7. def pandas_candlestick_ohlc(dat, stick = "day", otherseries = None): 
  8.  
  9.     ""
  10.  
  11.     :param dat: pandas DataFrame object with datetime64 indexand float columns "Open""High""Low"and "Close", likely created via DataReader from "yahoo" 
  12.  
  13.     :param stick: A string or number indicating the period of time covered by a single candlestick. Valid string inputs include "day""week""month"and "year", ("day" default), and any numeric input indicates the number of trading days included in a period 
  14.  
  15.     :param otherseries: An iterable that will be coerced into a list, containing the columns of dat that hold other series to be plotted as lines 
  16.  
  17.     This will show a Japanese candlestick plot for stock data stored in dat, also plotting other series if passed. 
  18.  
  19.     ""
  20.  
  21.     mondays = WeekdayLocator(MONDAY)        # major ticks on the mondays 
  22.  
  23.     alldays = DayLocator()              # minor ticks on the days 
  24.  
  25.     dayFormatter = DateFormatter('%d')      # e.g., 12 
  26.  
  27.     # Create a new DataFrame which includes OHLC data for each period specified by stick input 
  28.  
  29.     transdat = dat.loc[:,["Open""High""Low""Close"]] 
  30.  
  31.     if (type(stick) == str): 
  32.  
  33.         if stick == "day"
  34.  
  35.             plotdat = transdat 
  36.  
  37.             stick = 1 # Used for plotting 
  38.  
  39.         elif stick in ["week""month""year"]: 
  40.  
  41.             if stick == "week"
  42.  
  43.                 transdat["week"] = pd.to_datetime(transdat.index).map(lambda x: x.isocalendar()[1]) # Identify weeks 
  44.  
  45.             elif stick == "month"
  46.  
  47.                 transdat["month"] = pd.to_datetime(transdat.index).map(lambda x: x.month) # Identify months 
  48.  
  49.             transdat["year"] = pd.to_datetime(transdat.index).map(lambda x: x.isocalendar()[0]) # Identify years 
  50.  
  51.             grouped = transdat.groupby(list(set(["year",stick]))) # Group by year and other appropriate variable 
  52.  
  53.             plotdat = pd.DataFrame({"Open": [], "High": [], "Low": [], "Close": []}) # Create empty data frame containing what will be plotted 
  54.  
  55.             for namegroup in grouped: 
  56.  
  57.                 plotdat = plotdat.append(pd.DataFrame({"Open"group.iloc[0,0], 
  58.  
  59.                                             "High"max(group.High), 
  60.  
  61.                                             "Low"min(group.Low), 
  62.  
  63.                                             "Close"group.iloc[-1,3]}, 
  64.  
  65.                                            index = [group.index[0]])) 
  66.  
  67.             if stick == "week": stick = 5 
  68.  
  69.             elif stick == "month": stick = 30 
  70.  
  71.             elif stick == "year": stick = 365 
  72.  
  73.     elif (type(stick) == int and stick >= 1): 
  74.  
  75.         transdat["stick"] = [np.floor(i / stick) for i in range(len(transdat.index))] 
  76.  
  77.         grouped = transdat.groupby("stick"
  78.  
  79.         plotdat = pd.DataFrame({"Open": [], "High": [], "Low": [], "Close": []}) # Create empty data frame containing what will be plotted 
  80.  
  81.         for namegroup in grouped: 
  82.  
  83.             plotdat = plotdat.append(pd.DataFrame({"Open"group.iloc[0,0], 
  84.  
  85.                                         "High"max(group.High), 
  86.  
  87.                                         "Low"min(group.Low), 
  88.  
  89.                                         "Close"group.iloc[-1,3]}, 
  90.  
  91.                                        index = [group.index[0]])) 
  92.  
  93.     else
  94.  
  95.         raise ValueError('Valid inputs to argument "stick" include the strings "day", "week", "month", "year", or a positive integer'
  96.  
  97.     # Set plot parameters, including the axis object ax used for plotting 
  98.  
  99.     fig, ax = plt.subplots() 
  100.  
  101.     fig.subplots_adjust(bottom=0.2) 
  102.  
  103.     if plotdat.index[-1] - plotdat.index[0] < pd.Timedelta('730 days'): 
  104.  
  105.         weekFormatter = DateFormatter('%b %d')  # e.g., Jan 12 
  106.  
  107.         ax.xaxis.set_major_locator(mondays) 
  108.  
  109.         ax.xaxis.set_minor_locator(alldays) 
  110.  
  111.     else
  112.  
  113.         weekFormatter = DateFormatter('%b %d, %Y'
  114.  
  115.     ax.xaxis.set_major_formatter(weekFormatter) 
  116.  
  117.     ax.grid(True
  118.  
  119.     # Create the candelstick chart 
  120.  
  121.     candlestick_ohlc(ax, list(zip(list(date2num(plotdat.index.tolist())), plotdat["Open"].tolist(), plotdat["High"].tolist(), 
  122.  
  123.                       plotdat["Low"].tolist(), plotdat["Close"].tolist())), 
  124.  
  125.                       colorup = "black", colordown = "red", width = stick * .4) 
  126.  
  127.     # Plot other series (such as moving averages) as lines 
  128.  
  129.     if otherseries != None: 
  130.  
  131.         if type(otherseries) != list: 
  132.  
  133.             otherseries = [otherseries] 
  134.  
  135.         dat.loc[:,otherseries].plot(ax = ax, lw = 1.3, grid = True
  136.  
  137.     ax.xaxis_date() 
  138.  
  139.     ax.autoscale_view() 
  140.  
  141.     plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right'
  142.  
  143.     plt.show() 
  144.  
  145. pandas_candlestick_ohlc(apple)   

 

燭狀圖中黑色線條代表該交易日閉市價(jià)格高于開(kāi)市價(jià)格(盈利),紅色線條代表該交易日開(kāi)市價(jià)格高于閉市價(jià)格(虧損)。刻度線代表當(dāng)天交易的最高價(jià)和最低價(jià)(影線用來(lái)指明燭身的哪端是開(kāi)市,哪端是閉市)。燭狀圖在金融和技術(shù)分析中被廣泛使用在交易決策上,利用燭身的形狀,顏色和位置。我今天不會(huì)涉及到策略。

我們也許想要把不同的金融商品呈現(xiàn)在一張圖上:這樣我們可以比較不同的股票,比較股票跟市場(chǎng)的關(guān)系,或者可以看其他證券,例如交易所交易基金(ETFs)。在后面的內(nèi)容中,我們將會(huì)學(xué)到如何畫(huà)金融證券跟一些指數(shù)(移動(dòng)平均)的關(guān)系。屆時(shí)你需要使用線段圖而不是燭狀圖。(試想你如何重疊不同的燭狀圖而讓圖表保持整潔?)

下面我展示了不同技術(shù)公司股票的數(shù)據(jù),以及如何調(diào)整數(shù)據(jù)讓數(shù)據(jù)線聚在一起。

  1. microsoft = web.DataReader("MSFT""yahoo", start, end
  2.  
  3. google = web.DataReader("GOOG""yahoo", start, end
  4.  
  5. # Below I create a DataFrame consisting of the adjusted closing price of these stocks, first by making a list of these objects and using the join method 
  6.  
  7. stocks = pd.DataFrame({"AAPL": apple["Adj Close"], 
  8.  
  9.                       "MSFT": microsoft["Adj Close"], 
  10.  
  11.                       "GOOG": google["Adj Close"]}) 
  12.  
  13. stocks.head() 

  

  1. stocks.plot(grid = True

 

這張圖表的問(wèn)題在哪里呢?雖然價(jià)格的絕對(duì)值很重要(昂貴的股票很難購(gòu)得,這不僅會(huì)影響它們的波動(dòng)性,也會(huì)影響你交易它們的難易度),但是在交易中,我們更關(guān)注每支股票價(jià)格的變化而不是它的價(jià)格。Google的股票價(jià)格比蘋(píng)果微軟的都高,這個(gè)差別讓蘋(píng)果和微軟的股票顯得波動(dòng)性很低,而事實(shí)并不是那樣。

一個(gè)解決辦法就是用兩個(gè)不同的標(biāo)度來(lái)作圖。一個(gè)標(biāo)度用于蘋(píng)果和微軟的數(shù)據(jù);另一個(gè)標(biāo)度用來(lái)表示Google的數(shù)據(jù)。

  1. stocks.plot(secondary_y = ["AAPL""MSFT"], grid = True

 

一個(gè)“更好”的解決方法是可視化我們實(shí)際關(guān)心的信息:股票的收益。這需要我們進(jìn)行必要的數(shù)據(jù)轉(zhuǎn)化。數(shù)據(jù)轉(zhuǎn)化的方法很多。其中一個(gè)轉(zhuǎn)化方法是將每個(gè)交易日的股票交個(gè)跟比較我們所關(guān)心的時(shí)間段開(kāi)始的股票價(jià)格相比較。也就是:

 

這需要轉(zhuǎn)化stock對(duì)象中的數(shù)據(jù),操作如下:

  1. # df.apply(arg) will apply the function arg to each column in df, and return a DataFrame with the result 
  2.  
  3. # Recall that lambda x is an anonymous function accepting parameter x; in this case, x will be a pandas Series object 
  4.  
  5. stock_return = stocks.apply(lambda x: x / x[0]) 
  6.  
  7. stock_return.head()  

 

 

  1. stock_return.plot(grid = True).axhline(y = 1, color = "black", lw = 2)  

[[195993]] 

 

這個(gè)圖就有用多了。現(xiàn)在我們可以看到從我們所關(guān)心的日期算起,每支股票的收益有多高。而且我們可以看到這些股票之間的相關(guān)性很高。它們基本上朝同一個(gè)方向移動(dòng),在其他類型的圖表中很難觀察到這一現(xiàn)象。

我們還可以用每天的股值變化作圖。一個(gè)可行的方法是我們使用后一天$t + 1$和當(dāng)天$t$的股值變化占當(dāng)天股價(jià)的比例: 

 

我們也可以比較當(dāng)天跟前一天的價(jià)格:

 

以上的公式并不相同,可能會(huì)讓我們得到不同的結(jié)論,但是我們可以使用對(duì)數(shù)差異來(lái)表示股票價(jià)格變化:

 

(這里的 

  

是自然對(duì)數(shù),我們的定義不完全取決于使用 

 

 還是 

 

.) 使用對(duì)數(shù)差異的好處是該差異值可以被解釋為股票的百分比差異,但是不受分母的影響。

下面的代碼演示了如何計(jì)算和可視化股票的對(duì)數(shù)差異:

  1. # Let's use NumPy's log function, though math's log function would work just as well 
  2.  
  3. import numpy as np 
  4.  
  5. stock_change = stocks.apply(lambda x: np.log(x) - np.log(x.shift(1))) # shift moves dates back by 1. 
  6.  
  7. stock_change.head() 

 

 

  1. stock_change.plot(grid = True).axhline(y = 0, color = "black", lw = 2)  

 

你更傾向于哪種轉(zhuǎn)換方法呢?從相對(duì)時(shí)間段開(kāi)始日的收益差距可以明顯看出不同證券的總體走勢(shì)。不同交易日之間的差距被用于更多預(yù)測(cè)股市行情的方法中,它們是不容被忽視的。

移動(dòng)平均值

圖表非常有用。在現(xiàn)實(shí)生活中,有些交易人在做決策的時(shí)候幾乎完全基于圖表(這些人是“技術(shù)人員”,從圖表中找到規(guī)律并制定交易策略被稱作技術(shù)分析,它是交易的基本教義之一。)下面讓我們來(lái)看看如何找到股票價(jià)格的變化趨勢(shì)。

一個(gè)q天的移動(dòng)平均值(用 

 

來(lái)表示)定義為:對(duì)于某一個(gè)時(shí)間點(diǎn)t,它之前q天的平均值。

 

移動(dòng)平均值可以讓一個(gè)系列的數(shù)據(jù)變得更平滑,有助于我們找到趨勢(shì)。q值越大,移動(dòng)平均對(duì)短期的波動(dòng)越不敏感。移動(dòng)平均的基本目的就是從噪音中識(shí)別趨勢(shì)。快速的移動(dòng)平均有偏小的q,它們更接近股票價(jià)格;而慢速的移動(dòng)平均有較大的q值,這使得它們對(duì)波動(dòng)不敏感從而更加穩(wěn)定。

pandas提供了計(jì)算移動(dòng)平均的函數(shù)。下面我將演示使用這個(gè)函數(shù)來(lái)計(jì)算蘋(píng)果公司股票價(jià)格的20天(一個(gè)月)移動(dòng)平均值,并將它跟股票價(jià)格畫(huà)在一起。

  1. apple["20d"] = np.round(apple["Close"].rolling(window = 20, center = False).mean(), 2) 
  2.  
  3. pandas_candlestick_ohlc(apple.loc['2016-01-04':'2016-08-07',:], otherseries = "20d"

 

注意到平均值的起始點(diǎn)時(shí)間是很遲的。我們必須等到20天之后才能開(kāi)始計(jì)算該值。這個(gè)問(wèn)題對(duì)于更長(zhǎng)時(shí)間段的移動(dòng)平均來(lái)說(shuō)是個(gè)更加嚴(yán)重的問(wèn)題。因?yàn)槲蚁M铱梢杂?jì)算200天的移動(dòng)平均,我將擴(kuò)展我們所得到的蘋(píng)果公司股票的數(shù)據(jù),但我們主要還是只關(guān)注2016。

  1. start = datetime.datetime(2010,1,1) 
  2.  
  3. apple = web.DataReader("AAPL""yahoo", start, end
  4.  
  5. apple["20d"] = np.round(apple["Close"].rolling(window = 20, center = False).mean(), 2) 
  6.  
  7. pandas_candlestick_ohlc(apple.loc['2016-01-04':'2016-08-07',:], otherseries = "20d"

 

你會(huì)發(fā)現(xiàn)移動(dòng)平均比真實(shí)的股票價(jià)格數(shù)據(jù)平滑很多。而且這個(gè)指數(shù)是非常難改變的:一支股票的價(jià)格需要變到平局值之上或之下才能改變移動(dòng)平均線的方向。因此平均線的交叉點(diǎn)代表了潛在的趨勢(shì)變化,需要加以注意。

交易者往往對(duì)不同的移動(dòng)平均感興趣,例如20天,50天和200天。要同時(shí)生成多條移動(dòng)平均線也不難: 

  1. apple["50d"] = np.round(apple["Close"].rolling(window = 50, center = False).mean(), 2) 
  2.  
  3. apple["200d"] = np.round(apple["Close"].rolling(window = 200, center = False).mean(), 2) 
  4.  
  5. pandas_candlestick_ohlc(apple.loc['2016-01-04':'2016-08-07',:], otherseries = ["20d""50d""200d"]) 

 

20天的移動(dòng)平均線對(duì)小的變化非常敏感,而200天的移動(dòng)平均線波動(dòng)最小。這里的200天平均線顯示出來(lái)總體的熊市趨勢(shì):股值總體來(lái)說(shuō)一直在下降。20天移動(dòng)平均線所代表的信息是熊市牛市交替,接下來(lái)有可能是牛市。這些平均線的交叉點(diǎn)就是交易信息點(diǎn),它們代表股票價(jià)格的趨勢(shì)會(huì)有所改變因而你需要作出能盈利的相應(yīng)決策。

更新:該文章早期版本提到算法交易跟高頻交易是一個(gè)意思。但是網(wǎng)友評(píng)論指出這并不一定:算法可以用來(lái)進(jìn)行交易但不一定就是高頻。高頻交易是算法交易中間很大的一部分,但是兩者不等價(jià)。 

責(zé)任編輯:龐桂玉 來(lái)源: Python開(kāi)發(fā)者
相關(guān)推薦

2020-05-15 15:09:51

R語(yǔ)言數(shù)據(jù)分析

2019-06-26 11:10:47

Python數(shù)據(jù)分析Excel

2017-09-01 09:52:20

PythonPandas數(shù)據(jù)分析

2017-02-09 15:46:09

數(shù)據(jù)分析互聯(lián)網(wǎng)

2024-04-22 10:33:18

物聯(lián)網(wǎng)數(shù)據(jù)科學(xué)智慧城市

2023-12-29 10:04:47

數(shù)據(jù)分析

2025-07-14 07:21:00

Pandas數(shù)據(jù)分析Python

2017-08-03 15:20:19

大數(shù)據(jù)數(shù)據(jù)分析

2017-05-19 08:45:34

R用戶Python數(shù)據(jù)分析

2018-09-26 16:07:15

2020-07-22 07:49:14

數(shù)據(jù)分析技術(shù)IT

2024-12-29 19:36:04

2016-09-30 01:04:45

數(shù)據(jù)分析數(shù)據(jù)

2018-05-18 09:18:00

數(shù)據(jù)分析報(bào)告數(shù)據(jù)收集

2012-05-31 09:33:28

數(shù)據(jù)分析

2021-04-30 15:34:23

Python 開(kāi)發(fā)編程語(yǔ)言

2021-04-29 22:38:04

Python數(shù)據(jù)庫(kù)SQL

2017-05-02 17:22:05

數(shù)據(jù)

2019-08-05 13:35:10

數(shù)據(jù)分析Python分析工具

2015-11-20 10:38:58

數(shù)據(jù)分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

搞av.com| 3atv一区二区三区| 国产成人精品福利一区二区三区| 久久久久久久伊人| 欧洲激情综合| 超碰在线亚洲| 中日韩av电影| 成人欧美一区二区| 亚洲AV无码乱码国产精品牛牛| 亚洲福利影视| 亚洲综合色在线| huan性巨大欧美| 婷婷综合电影| 欧美日韩一区成人| 国产精品日韩三级| 日本亚洲欧美| 国产福利精品一区二区| 日本欧美中文字幕| 久草成人在线视频| 国产精品一区二区三区av麻 | 国产一国产二国产三| 国产精品一在线观看| 日韩亚洲欧美综合| 亚洲国产精品毛片av不卡在线| 成人影院在线观看| 久久久精品国产免费观看同学| 成人午夜小视频| 国产suv精品一区二区33| 香蕉视频一区| 精品久久国产97色综合| 欧美日韩精品区别| 少妇一区视频| 精品久久久久久久久国产字幕| 免费观看国产视频在线| 国产高清美女一级毛片久久| 成人丝袜高跟foot| 91美女福利视频高清| 久久精品偷拍视频| 在线观看视频日韩| 精品少妇v888av| 午夜国产小视频| 国产欧美日韩精品一区二区三区| 欧美爱爱视频| 亚洲精品少妇30p| 亚洲三级一区| 成年人在线视频免费观看| 国产不卡视频在线观看| 亚洲在线免费看| 91激情在线观看| 日韩二区在线观看| 国产成人精品一区二区三区| 久久精品视频1| 国产亚洲综合精品| 97人人爽人人喊人人模波多| 久久免费在线观看视频| 国产精品大片免费观看| 久久精品久久久久电影| 亚洲二区在线播放| 欧美成人嫩草网站| 日韩精品久久一区二区| 色视频在线观看| 成人av免费在线观看| 97久久人人超碰caoprom欧美| 国产伦精品一区二区三区四区| 美女精品自拍一二三四| 成人av电影天堂| 国产精品主播一区二区| 国产精品中文有码| 成人午夜电影在线播放| 人妻精品无码一区二区| 99精品欧美一区二区三区小说| 狠狠综合久久av| 三级国产在线观看| 国产亚洲欧洲997久久综合| 五月婷婷一区| free性欧美hd另类精品| 亚洲一区精品在线| 国产精品97在线| 国产成人福利夜色影视| 91精品国产欧美一区二区成人 | 玖玖在线播放| 91黄色小视频| 992kp免费看片| 国产亚洲欧美在线视频| 丰满人妻一区二区三区免费视频 | 91偷拍精品一区二区三区| 国产高清免费观看| 99视频精品全部免费在线| 欧美婷婷久久| 99在线视频观看| 精品国产成人在线| 中文字幕国产免费| 日韩欧美中文在线观看| 亚洲人成绝费网站色www| 毛片久久久久久| 国产精品激情电影| 国产精品99蜜臀久久不卡二区| 91女人18毛片水多国产| 97se亚洲国产综合自在线| 天天色天天综合| 欧美黄色免费| 欧美最猛性xxxx| 91国产免费视频| av中文字幕不卡| 一本久久a久久精品vr综合| 大香伊人中文字幕精品| 欧美最新大片在线看| 精品国产一二区| 第一sis亚洲原创| 97国产suv精品一区二区62| 国产一级精品毛片| 成人免费高清视频在线观看| 亚洲国产精品综合| 黄色软件视频在线观看| 91精品国产综合久久蜜臀| 亚洲av无码国产精品久久| 欧美黑吊大战白妞| 久久伦理在线| 热久久这里只有| 亚洲精品久久久久avwww潮水| 亚洲国产高清在线| 青青草视频在线免费播放| 亚洲视频资源| 一区二区欧美日韩视频| 日韩欧美大片在线观看| 国产麻豆91精品| 亚洲一区三区在线观看| 波多野结衣亚洲| 亚洲第一精品夜夜躁人人爽 | 97在线日本国产| 国产欧美综合视频 | 亚洲二区三区四区| 日韩不卡免费高清视频| 亚洲精品www久久久| 久久久精品视频在线| 国内精品视频一区二区三区八戒| 五月天国产一区| 精品欧美一区二区三区在线观看 | 久久久久久久综合色一本| 日日噜噜噜噜夜夜爽亚洲精品| 欧洲黄色一区| 91精品婷婷国产综合久久竹菊| av首页在线观看| 精品久久久久久久久久久下田| 欧美激情按摩在线| 国产精品久久久久久69| 国产精品区一区二区三区| 国产免费视频传媒| 国产剧情在线观看一区| 欧美在线观看网址综合| 三级在线观看| 成人国产在线激情| 天天干天天插天天射| 91捆绑美女网站| 久久久999视频| 色哟哟精品丝袜一区二区| 7777免费精品视频| 视频一区二区在线播放| 欧美午夜无遮挡| 亚洲av综合一区二区| 天天操天天插天天射| 亚洲一区在线观看视频| 性高潮免费视频| 精品电影一区| 狼狼综合久久久久综合网| 一级毛片久久久| 国产一区二区三区久久精品| 国产情侣呻吟对白高潮| 国产精品色呦呦| 91丝袜超薄交口足| 国产精品v亚洲精品v日韩精品| 国产精品二区在线| 蜜臀久久精品| 中文字幕精品视频| www.av在线.com| 精品久久久精品| 国产精品成人无码免费| 国产www免费观看| 久久se精品一区二区| 久久久久久久久久久久久国产| 日韩视频一区二区三区四区| 亚州欧美日韩中文视频| 大胆av不用播放器在线播放| 69久久夜色精品国产69蝌蚪网| 国产性一乱一性一伧一色| 久久久五月婷婷| 精品福利av导航| 欧美黑人一级片| 成人黄色在线网站| 嫩草av久久伊人妇女超级a| 国产精品国内免费一区二区三区| 99视频国产精品免费观看| 黑人精品一区| 欧美精品午夜视频| 毛片在线免费| 日韩一区二区免费电影| av大片在线免费观看| 中文字幕一区视频| 色天使在线视频| 国产自产v一区二区三区c| 无码粉嫩虎白一线天在线观看| 国产一区二区在线| 成人自拍网站| 国产三级一区| 97香蕉久久超级碰碰高清版| 欧美一区二区三区| 日韩精品亚洲元码| av中文字幕播放| 天天综合网91| 中文字幕亚洲图片| 俄罗斯嫩小性bbwbbw| 欧美影视一区二区三区| 日产精品久久久久| 中文字幕一区二区三区蜜月 | 24小时成人在线视频| 国产91精品视频在线观看| 51xtv成人影院| 一区二区亚洲欧洲国产日韩| 色婷婷av一区二区三区之红樱桃 | 久国产精品视频| 免费看亚洲片| 亚洲熟妇无码一区二区三区导航| 久久婷婷蜜乳一本欲蜜臀| 欧美国产一二三区| 开心激情综合| 国产精品国产三级欧美二区 | 欧美videossex| 日韩一区二区福利| av资源种子在线观看| 亚洲乱码一区av黑人高潮| 欧美一区二区在线观看视频| 欧美一区二区视频网站| 成人免费视频毛片| 无码av免费一区二区三区试看 | 欧美在线观看你懂的| 日韩精品在线免费看| 亚洲美女偷拍久久| 精品一区二区电影| 欧美自拍偷拍第一页| 欧美一区二区三区播放老司机| 日韩欧美一级大片| 色噜噜狠狠色综合中国| 欧美精品一二三四区| 欧美日韩亚洲高清| 九九热在线视频播放| 无吗不卡中文字幕| 天天综合网入口| 欧美日韩国产色| 国产精品午夜影院| 一本大道久久精品懂色aⅴ| 国产尤物在线视频| 色欧美片视频在线观看| 一级片在线观看免费| 一本在线高清不卡dvd| 要久久爱电视剧全集完整观看| 日本特黄久久久高潮| 一区二区在线中文字幕电影视频| 狠狠色狠狠色综合婷婷tag| 秋霞在线观看一区二区三区| 国产在视频线精品视频www666| 日本成人三级| 水蜜桃精品av一区二区| 宅男在线精品国产免费观看| 91tv官网精品成人亚洲| 大地资源网在线观看免费官网| 欧美黄在线观看| 免费一级特黄特色毛片久久看| 国产精品婷婷| 九九视频精品在线观看| 九一九一国产精品| 中文字幕1区2区| 99久久综合色| 久久久精品成人| 亚洲精品乱码久久久久久久久| 国产精品日日夜夜| 色偷偷久久一区二区三区| 中文字幕在线观看精品| 日韩三级视频中文字幕| 外国精品视频在线观看| 亚洲精品乱码久久久久久按摩观| 久草在线青青草| 久久综合色88| 手机在线观看av网站| 国产精品美女www爽爽爽视频| 麻豆一二三区精品蜜桃| 久久综合久久久| 日韩精品欧美激情一区二区| 91麻豆天美传媒在线| 亚洲一区网站| 亚洲高清视频免费| 久久综合资源网| 国产免费久久久久| 欧美性xxxx| www.精品久久| 一区二区欧美激情| av在线私库| 91久久中文字幕| 国产日产精品_国产精品毛片| 亚洲色婷婷久久精品av蜜桃| 久久久久看片| 国产亚洲精品成人a| 国产精品情趣视频| 国产精品suv一区| 日韩欧美色综合网站| 福利成人在线观看| 海角国产乱辈乱精品视频| 九九久久国产| 欧美日韩国产综合在线| 韩国精品一区二区三区| 欧美激情第3页| 久久精品一区蜜桃臀影院| 国产亚洲欧美精品久久久www| 欧美天堂亚洲电影院在线播放| 欧美一区二区三区激情| 另类色图亚洲色图| 日本肉肉一区| 欧美日韩精品久久| 国产三级伦理片| 91福利区一区二区三区| 农村少妇久久久久久久| 久久福利网址导航| 美女视频一区| 色视频一区二区三区| 亚洲欧美日本视频在线观看| 亚洲成人精品在线播放| 亚洲色图在线视频| 亚洲网站在线免费观看| 亚洲人成网站在线播| 国产精品一区二区av影院萌芽| 亚洲国产精彩中文乱码av| fc2在线中文字幕| 欧美一性一乱一交一视频| 精品国产麻豆| 性欧美videosex高清少妇| 欧美成人手机在线| 在线heyzo| 91精品久久久久久久久久久| 国产探花在线精品| 欧美 国产 综合| av不卡在线观看| 日本熟妇乱子伦xxxx| 岛国大片在线观看| 欧美亚洲伦理www| 美女一区二区在线观看| 青青青在线观看视频| 国产精品一区二区三区乱码| 精品亚洲乱码一区二区| 欧美理论电影在线| 成人在线网址| 99久久免费国| 1024日韩| 国产十八熟妇av成人一区| 亚洲电影一区二区| 亚洲日本香蕉视频| 日本成人免费在线| 精品毛片免费观看| 狠狠躁狠狠躁视频专区| 国产精品麻豆视频| 国产精品视频一二区| 久久国产色av| julia中文字幕一区二区99在线| 国产资源在线免费观看| 97久久人人超碰| 波多野结衣视频观看| 中文字幕亚洲二区| 久久久久久亚洲精品美女| 免费网站永久免费观看| 99re在线精品| 中文字幕乱码视频| 久久视频精品在线| 国产亚洲成av人片在线观黄桃| 男人日女人bb视频| 国产精品乱码一区二三区小蝌蚪| 国产免费福利视频| 色综合久久天天综线观看| 全球av集中精品导航福利| 欧美精品成人网| 亚洲欧美二区三区| 污视频网站免费观看| 国产精品欧美激情| 午夜激情一区| 在哪里可以看毛片| 欧美一区二区在线看| 松下纱荣子在线观看| 久久av资源网| 人妻久久一区二区| 日韩精品欧美国产精品忘忧草 | 真实国产乱子伦精品一区二区三区| 三上悠亚 电影| 一本在线高清不卡dvd| av大大超碰在线| 欧美重口乱码一区二区| 国产成人一区在线| 亚洲精品久久久久久久蜜桃| 欧美成aaa人片在线观看蜜臀| 亚洲精品国模| 久久aaaa片一区二区| 91国偷自产一区二区使用方法| 香蕉成人app免费看片| 麻豆成人av|