溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng)

發(fā)布時(shí)間:2021-04-25 10:35:08 來(lái)源:億速云 閱讀:335 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

python有哪些常用庫(kù)

python常用的庫(kù):1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

使用萬(wàn)能的Python寫(xiě)一個(gè)量化股票系統(tǒng)!下面是一個(gè)小馬的迷你量化系統(tǒng)。

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

這個(gè)小迷小量化系統(tǒng),麻雀雖小但是五臟俱全,我們今天先從實(shí)時(shí)提醒這個(gè)模塊做起,提醒系統(tǒng)分下面幾個(gè)部分:

  • 實(shí)時(shí)獲取股票數(shù)據(jù)

  • 連接郵件服務(wù)器

  • 預(yù)警配置管理

  • 監(jiān)控?cái)?shù)據(jù)并發(fā)送郵件

希望通過(guò)實(shí)時(shí)提醒,來(lái)提高交易的收益率,試試看,萬(wàn)一有用呢,反正寫(xiě)代碼對(duì)碼農(nóng)來(lái)說(shuō),so easy!

01.

實(shí)時(shí)獲取股票價(jià)格

為了更準(zhǔn)確的獲取股票的價(jià)格,我們這里用比較有名的金融庫(kù)tushare來(lái)獲取,里面封裝了大量的股票的數(shù)據(jù)Api,非常好用!

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

1).首先設(shè)計(jì)一個(gè)stock類(lèi),這個(gè)類(lèi)第一件大事:

查詢(xún)股票的實(shí)時(shí)價(jià)格和k線數(shù)據(jù)比如(5min,15min),然后把數(shù)據(jù)返回出來(lái),為了提高效率,我們肯定是用并發(fā)出來(lái),所以start_run函數(shù)會(huì)成為一個(gè)線程函數(shù)

2).第二件大事:

我們獲取的實(shí)時(shí)的數(shù)據(jù),需要傳遞給外邊的模塊調(diào)用,子線程和主線程間通信的話(huà),最簡(jiǎn)單的方法用queue來(lái)搞定,所以我們stock類(lèi)會(huì)init里面?zhèn)魅胍粋€(gè)queue

3).控制線程:

這個(gè)stock我們希望外邊能控制它的運(yùn)行和停止,在stock類(lèi)的入口,我們加入了一個(gè)_terminal變量

4).神奇的tushare庫(kù)

利用tushare這個(gè)神奇的API,構(gòu)造兩個(gè)類(lèi)函數(shù)分布query_stock_real_price和get_kline_data獲取數(shù)據(jù):

def query_stock_real_price(self):
    df = ts.get_realtime_quotes(self.stock_num)
    df=df[['price','time']]
    price=df['price'].values[0]
    time=df['time'].values[0]
    return price,time

  def get_kline_data(self, ktype='ma5'):
    today=datetime.now().strftime('%Y-%m-%d')
    df = ts.get_hist_data(self.stock_num, start='2018-08-08', end=today)
    return (df[[ktype]])

02.

郵件系統(tǒng)

簡(jiǎn)單實(shí)時(shí)提醒系統(tǒng),我們用郵件,比如你的qq郵箱,是可以實(shí)時(shí)的收到一些郵件提醒的信息,我們這里用Python自帶的 SMTP和EMAIL模塊處理:

1). 連接郵件服務(wù)器

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

為了方便擴(kuò)展和復(fù)用,也用一個(gè)類(lèi)來(lái)封裝郵件server!構(gòu)造一些郵件服務(wù)器的地址和密碼,然后連接就可以了,非常簡(jiǎn)單。

2).構(gòu)造郵件內(nèi)容

服務(wù)器連接好了,之后我們需要發(fā)送郵件,需要寫(xiě)一個(gè)郵件標(biāo)題和內(nèi)容,比如 xx股票,現(xiàn)在價(jià)格多少之類(lèi)的。

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

1).為了更好的封裝數(shù)據(jù),用類(lèi)裝飾器對(duì)titel和content進(jìn)行封裝,這樣外邊無(wú)法直接訪問(wèn)這兩塊內(nèi)容。

2).mail類(lèi)會(huì)初始化一些信息,比如要發(fā)送到郵件地址,而且要把前面構(gòu)造好的SMTP服務(wù)器對(duì)象傳進(jìn)來(lái),方便發(fā)送郵件。

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

3).初始化一個(gè)MIMEText對(duì)象,填充一些郵件的內(nèi)容比如from,to,subject等等。為了有時(shí)間性,我們?cè)卩]件的開(kāi)頭加一個(gè)時(shí)間戳。

03.

預(yù)警系統(tǒng)

我們需要有一個(gè)配置文件,里面不停的修改我們對(duì)股票的價(jià)格的設(shè)置, 比如到了你的止損或者止盈的位置,或者到了你的一些量化策略的地方 ,需要提醒你注意等等。這里我們只是簡(jiǎn)單的說(shuō)明,只寫(xiě)最大和最小的股價(jià)預(yù)警,示例一下:

setting 文件:

{
  "high_price": 15,
  "low_price": 10
}

1).死循環(huán)監(jiān)控?cái)?shù)據(jù)

我們啟動(dòng)一個(gè)線程,用一個(gè)死循環(huán)來(lái)不停的從隊(duì)列里面獲取股票的數(shù)據(jù),然后進(jìn)行一些監(jiān)聽(tīng)的邏輯判斷,先看一下核心代碼:

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

因?yàn)楣善庇薪灰讜r(shí)間,我們這里簡(jiǎn)單粗暴的讓程序只在交易時(shí)間運(yùn)行,當(dāng)然如果要把程序放在遠(yuǎn)端服務(wù)器上的話(huà),需要進(jìn)一步優(yōu)化,不然每一天都要啟動(dòng)一下!

死循環(huán)里面會(huì)不停的讀區(qū)預(yù)警 設(shè)置里面的股價(jià)的漲到多少最高價(jià)和最低價(jià) ,一旦觸達(dá)這個(gè)價(jià)格,立刻發(fā)送郵件提醒!

寫(xiě)了這么久,看一下效果吧:

如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng) 

以上是“如何使用Python寫(xiě)一個(gè)量化股票提醒系統(tǒng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI