送書(shū) | 用Python實(shí)現(xiàn)股價(jià)的簡(jiǎn)單移動(dòng)平均值(SMA)
今天這篇文章來(lái)自本次所送書(shū)中的內(nèi)容。以下是來(lái)自讀者投稿的讀書(shū)筆記。

前不久收到清華大學(xué)出版社贈(zèng)送的《深入淺出Python量化交易實(shí)戰(zhàn)》一書(shū),也答應(yīng)了出版社要寫(xiě)一些讀書(shū)筆記,今天就來(lái)交作業(yè)了。
?
根據(jù)書(shū)中的內(nèi)容,我自己也做了一點(diǎn)改進(jìn)的工作——用Python繪制出股價(jià)的5日均線和20日均線。眾所周知,5日均線是短線交易的生死線,而20日均線是中長(zhǎng)線趨勢(shì)的分水嶺。因此,基于這兩條均線,可以設(shè)計(jì)出一些簡(jiǎn)單的交易策略。
?下面是我練習(xí)的代碼:
import pandas as pd
import numpy as np
from pandas_datareader import data
import datetime
import matplotlib.pyplot as plt
導(dǎo)入庫(kù)的部分,不解釋了,下面拉數(shù)據(jù):
end_date = datetime.date.today()
start_date = end_date - datetime.timedelta(days = 100)
price = data.DataReader('601127.ss','yahoo',
start_date,
end_date)
price.head()
這里我選擇從yahoo拉601127這支股票過(guò)去100天的行情數(shù)據(jù)。能夠看到最早的數(shù)據(jù)到2021年的10月8日:

然后我開(kāi)始添加5日和20日均線
price['ma5'] = price['Adj Close'].rolling(5).mean()
price['ma20'] = price['Adj Close'].rolling(20).mean()
price.tail()
數(shù)據(jù)中就可以看到了:
?
為了便于觀察,我用代碼畫(huà)了個(gè)圖:

fig = plt.figure(figsize=(16,9))
ax1 = fig.add_subplot(111, ylabel='Price')
price['Adj Close'].plot(ax=ax1, color='g', lw=2., legend=True)
price.ma5.plot(ax=ax1, color='r', lw=2., legend=True)
price.ma20.plot(ax=ax1, color='b', lw=2., legend=True)
plt.grid()
plt.show()
這樣就可以直觀看到圖像:
?

這樣就可以根據(jù)不同周期的均線來(lái)設(shè)計(jì)移動(dòng)平均策略了。
如果大家對(duì)類似的內(nèi)容感興趣,不妨也閱讀一下這本《深入淺出Python量化交易實(shí)戰(zhàn)》。我個(gè)人感覺(jué)跟著代碼敲一敲,自己動(dòng)手改進(jìn)一下,還是很有樂(lè)趣的。

點(diǎn)擊下方回復(fù):送書(shū)? 即可!
評(píng)論
圖片
表情
