Python 实时盯盘并在股价突破时通过微信通知(tushare的使用)
新年伊始,國家鼓勵居民資產配置像權益類資產轉移。首個交易日新發基金一日售罄,大量資金進入二級市場。本韭菜也不甘寂寞,再次進入股市為國接盤。
由于一直盯盤太浪費精力,所以想著通過Python來監控股價波動,并在觸發閾值時微信通知我。
本來是考慮通過一些量化平臺實現的,但是覺得打開量化平臺(比如優礦)還是比較麻煩,還不如直接打開網站看,而且簡單看了一下,量化平臺主要是為了開發量化策略,主要是利用歷史數據進行回測,獲取實時數據相對比較麻煩。
經過調研還是選擇了tushare進行財經數據的獲取,優點是教程簡單明了,而且接口豐富,使用簡單,安裝方便。更重要的tushare pro的使用需要注冊并獲取積分,而學生可以免費獲取2000積分,足夠我們使用了。
注冊鏈接:https://tushare.pro/register?reg=415230?
接口文檔如下
?
接下來介紹我自己寫的Python例程
df = ts.get_realtime_quotes(code) e = df[['code','name','price','time']] p = df[u'price'] print (e)tushare提供的接口get_realtime_quotes可以得到某只股票的實時股價以及買賣盤。輸出參數列表如下:
# 0:name,股票名字 # 1:open,今日開盤價 # 2:pre_close,昨日收盤價 # 3:price,當前價格 # 4:high,今日最高價 # 5:low,今日最低價 # 6:bid,競買價,即“買一”報價 # 7:ask,競賣價,即“賣一”報價 # 8:volume,成交量 maybe you need do volume/100 # 9:amount,成交金額(元 CNY) # 10:b1_v,委買一(筆數 bid volume) # 11:b1_p,委買一(價格 bid price) # 12:b2_v,“買二” # 13:b2_p,“買二” # 14:b3_v,“買三” # 15:b3_p,“買三” # 16:b4_v,“買四” # 17:b4_p,“買四” # 18:b5_v,“買五” # 19:b5_p,“買五” # 20:a1_v,委賣一(筆數 ask volume) # 21:a1_p,委賣一(價格 ask price) # … # 30:date,日期; # 31:time,時間;?
整個程序的邏輯是用戶自定義想要監控的股票代碼 以及 設置是否開盤標志位(如果已經開盤就以當前實時價格作為初始價格,如果未開盤就以開盤價作為初始價格)
stocks_pool = ['601012','002460'] token = 'ec11b2ae74dc7de2ec18xxxxxxxxxxxxxxxxxxxxxd6dd9cfb9d9391' rate = 0.2 b_open = Truetoken是有tushare提供的標志用戶身份的信息,需要注冊tushare賬戶獲得。注冊鏈接看上文。
然后通過while循環檢測每只股票的實時價格是否突破了初始價格的2%波動值
如果突破了就想qq郵箱發送郵件,因為qq郵箱可以綁定微信賬號,所以變相實現微信通知的功能。
如果沒有突破就繼續檢測。
b_run = Truewhile b_run:for stock in code:time.sleep(2)up_threshold = ref[stock]*(1+rate)down_threshold = ref[stock]*(1-rate)if check2(stock, down_threshold, up_threshold):time.sleep(2)print('have noticed you by wechat!')b_run = False?
if float(p[0]) > high or float(p[0]) < low:user = 'xxxxxx@163.com' # 發件人,這里為163郵箱了pwd = '' # 163郵箱的SMTP授權碼to = '51111111111@qq.com' # 可以設置多個收件人,英文逗號隔開,如:'***@qq.com, ***@163.com'# 1.郵件正文內容msg = MIMEText('股票價格達到設定的價格')# 2.設置郵件主題、發件人、收件人msg['Subject'] = '股票價格達到設定的價格!'msg['From'] = usermsg['To'] = to# 3.發送郵件s = smtplib.SMTP_SSL('smtp.163.com', 465) # 選擇163郵箱服務,默認端口為465s.login(user, pwd) # 登錄163郵箱s.send_message(msg) # 發送郵件s.quit()return Trueelse :return False完整代碼有需要可以私信我。私信我的人太多,我上傳到了csdn(https://download.csdn.net/download/jerryzhai26/14141857),代碼需要自行配置Python開發環境以及pip install tushare
總結
以上是生活随笔為你收集整理的Python 实时盯盘并在股价突破时通过微信通知(tushare的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快乐二级域名分发程序-美化版源码
- 下一篇: 利用Python制作微信机器人(一)