日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自己动手写股票数据分析软件之数据获取

發布時間:2024/3/12 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自己动手写股票数据分析软件之数据获取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本文旨在分享編程經驗,非炒股指導軟件。

一、Tushare數據介紹

Tushare是一個免費、開源的python財經數據接口包。主要實現對股票等金融數據從數據采集清洗加工?到?數據存儲的過程,能夠為金融分析人員提供快速、整潔、和多樣的便于分析的數據,為他們在數據獲取方面極大地減輕工作量,使他們更加專注于策略和模型的研究與實現上。

二、IDE環境介紹

1、python 3.7

tushare接口為python接口,為了比較方便的獲取數據,該系統為python+java環境。python主要用于股票數據獲取和數據分析,java主要用于網站的搭建及結果的展示。

2、mysql數據庫

用于存儲歷史股票數據(近3年)和新聞輿論信息。

注意:若mysql數據庫中存儲中文,請使用utf8的方式創建:

CREATE DATABASE tushare DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3、工具環境配置(pycharm + anaconda)

為了使用pyhton?tushare工具包,安裝了anaconda工具,在pycharm中需要配置anaconda所在的環境,如圖:

三、數據存儲

本博客主要使用3張表,股票列表、行業分類和歷史數據3張表

1、股票列表(滬深上市公司的基本情況)

code,代碼 name,名稱 industry,所屬行業 area,地區 pe,市盈率 outstanding,流通股本(億) totals,總股本(億) totalAssets,總資產(萬) liquidAssets,流動資產 fixedAssets,固定資產 reserved,公積金 reservedPerShare,每股公積金 esp,每股收益 bvps,每股凈資 pb,市凈率 timeToMarket,上市日期 undp,未分利潤 perundp, 每股未分配 rev,收入同比(%) profit,利潤同比(%) gpr,毛利率(%) npr,凈利潤率(%) holders,股東人數

將數據存儲到數據庫python代碼

def getStockBasic():df = ts.get_stock_basics()engine = create_engine('mysql://root:root@127.0.0.1/tushare?charset=utf8')df.to_sql('stock_basics', engine, if_exists='append')

注意1:若沒有提前建立數據表,該方法會自動在數據庫中創建表。但可能沒寫字段無法自動對應,需要后期修改數據表。

注意2:該數據庫請使用utf8的方式創建,否則在存儲中文的時候,會失敗。

CREATE DATABASE tushare DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2、行業分類表

  • code:股票代碼
  • name:股票名稱
  • c_name:行業名稱

行業分類信息如下

將數據存儲到數據庫python代碼

def getIndustryClassified():df = ts.get_industry_classified()engine = create_engine('mysql://root:root@127.0.0.1/tushare?charset=utf8')df.to_sql('industry_classified', engine, if_exists='append')

3、歷史數據表(該接口提供最近3年的歷史成交數據)

  • date:日期
  • open:開盤價
  • high:最高價
  • close:收盤價
  • low:最低價
  • volume:成交量
  • price_change:價格變動
  • p_change:漲跌幅
  • ma5:5日均價
  • ma10:10日均價
  • ma20:20日均價
  • v_ma5:5日均量
  • v_ma10:10日均量
  • v_ma20:20日均量
  • turnover:換手率[注:指數無此項]
#獲取所有股票的歷史數據 def getHistDataAll():#從數據庫讀取所有股票代碼# 打開數據庫連接db = MySQLdb.connect("localhost", "root", "root", "tushare", charset='utf8')# 使用cursor()方法獲取操作游標cursor = db.cursor()# 使用execute方法執行SQL語句sql = "select code from tushare.stock_basics"cursor.execute(sql)# 使用 fetchone() 方法獲取所有數據data = cursor.fetchall()for da in data:getHistData(da[0])# 關閉數據庫連接db.close()# 獲取每只股票的歷史數據 def getHistData(code):df = ts.get_hist_data(code)if df is not None:df.insert(0, 'code', code)engine = create_engine('mysql://root:root@127.0.0.1/tushare?charset=utf8')# 存入數據庫df.to_sql('hist_data', engine, if_exists='append')

該表大約有200W條數據,在獲取數據時,需要等待一段時間。

若考慮到每天自動同步歷史數據的話,需要寫一個定時任務,來自動同步每天數據。

(后續補充...)

若需要獲取其他數據,可以從tushare網站自主選擇添加。

相關問題,可QQ交流:1931969006

總結

以上是生活随笔為你收集整理的自己动手写股票数据分析软件之数据获取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。