最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用python數(shù)據(jù)分析處理進(jìn)行炒股實(shí)戰(zhàn)行情

 更新時(shí)間:2021年08月31日 12:38:59   作者:不吃西紅柿丶  
這篇文章主要介紹了利用python數(shù)據(jù)分析進(jìn)行炒股實(shí)戰(zhàn)行情,本文主要介紹三部分:數(shù)據(jù)采集,數(shù)據(jù)預(yù)處理,利用SVM算法進(jìn)行建模,本文僅供參考借鑒

作為一個(gè)新手,你需要以下3個(gè)步驟:

1、用戶注冊(cè) > 2、獲取token > 3、調(diào)取數(shù)據(jù)

數(shù)據(jù)內(nèi)容:

包含股票、基金、期貨、債券、外匯、行業(yè)大數(shù)據(jù),

同時(shí)包括了數(shù)字貨幣行情等區(qū)塊鏈數(shù)據(jù)的全數(shù)據(jù)品類的金融大數(shù)據(jù)平臺(tái),

為各類金融投資和研究人員提供適用的數(shù)據(jù)和工具。

1、數(shù)據(jù)采集

我們進(jìn)行本地化計(jì)算,首先要做的,就是將所需的基礎(chǔ)數(shù)據(jù)采集到本地?cái)?shù)據(jù)庫(kù)里

本篇的示例源碼采用的數(shù)據(jù)庫(kù)是MySQL5.5,數(shù)據(jù)源是xxx pro接口。

我們現(xiàn)在要取一批特定股票的日線行情

部分代碼如下:

# 設(shè)置xxxxx pro的token并獲取連接
# 公眾號(hào):信息技術(shù)智庫(kù)
ts.set_token('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
pro = ts.pro_api()
# 設(shè)定獲取日線行情的初始日期和終止日期,其中終止日期設(shè)定為昨天。
start_dt = '20100101'
time_temp = datetime.datetime.now() - datetime.timedelta(days=1)
end_dt = time_temp.strftime('%Y%m%d')
# 建立數(shù)據(jù)庫(kù)連接,剔除已入庫(kù)的部分
db = pymysql.connect(host='127.0.0.1', user='root', passwd='admin', db='stock', charset='utf8')
cursor = db.cursor()
# 設(shè)定需要獲取數(shù)據(jù)的股票池
stock_pool = ['603912.SH','300666.SZ','300618.SZ','002049.SZ','300672.SZ']
total = len(stock_pool)
# 循環(huán)獲取單個(gè)股票的日線行情
for i in range(len(stock_pool)):
    try:
        df = pro.daily(ts_code=stock_pool[i], start_date=start_dt, end_date=end_dt)
        # 打印進(jìn)度
        print('Seq: ' + str(i+1) + ' of ' + str(total) + '   Code: ' + str(stock_pool[i]))

上述代碼的注釋部分已將每行代碼的功能解釋清楚了,實(shí)際上數(shù)據(jù)采集的程序主要設(shè)置三個(gè)參數(shù):獲取行情的初始日期,終止日期,以及股票代碼池。

當(dāng)我們獲取數(shù)據(jù)后,就要往本地?cái)?shù)據(jù)庫(kù)進(jìn)行寫入(存儲(chǔ))操作了,

本篇代碼用的是SQL語(yǔ)言,需提前在數(shù)據(jù)庫(kù)內(nèi)建好相應(yīng)的表,表配置和表結(jié)構(gòu)如下:

庫(kù)名:stock 表名:stock_all

其中 state_dt stock_code 是主鍵和索引。state_dt 的格式是 ‘yyyy-mm-dd'(例:'2018-06-11')。

這樣的日期格式便于查詢,且在MySQL內(nèi)部能夠進(jìn)行大小比較。

2、數(shù)據(jù)預(yù)處理

無(wú)論是量化策略還是單純的機(jī)器學(xué)習(xí)項(xiàng)目,數(shù)據(jù)預(yù)處理都是非常重要的一環(huán)。

以機(jī)器學(xué)習(xí)的視角來(lái)看,數(shù)據(jù)預(yù)處理主要包括

  • 數(shù)據(jù)清洗
  • 排序
  • 缺失值或異常值處理
  • 統(tǒng)計(jì)量分析
  • 相關(guān)性分析
  • 主成分分析(PCA)
  • 歸一化等

本篇所要介紹的數(shù)據(jù)預(yù)處理比較簡(jiǎn)單

只是將存在本地?cái)?shù)據(jù)庫(kù)的日線行情數(shù)據(jù)整合成一份訓(xùn)練集數(shù)據(jù),

以用于后續(xù)的機(jī)器學(xué)習(xí)建模和訓(xùn)練。

在介紹具體的示例代碼之前,我們需要先思考一個(gè)問(wèn)題,

應(yīng)用有監(jiān)督學(xué)習(xí)的算法對(duì)個(gè)股進(jìn)行建模

  • 我們的輸入數(shù)據(jù)有哪些,
  • 我們期望得到的輸出數(shù)據(jù)又是什么?

這個(gè)問(wèn)題的答案因人而異,因策略而異。

這個(gè)問(wèn)題本身是將市場(chǎng)問(wèn)題轉(zhuǎn)化為數(shù)學(xué)問(wèn)題的一個(gè)過(guò)程。

依賴的是量化寬客自己的知識(shí)體系和對(duì)市場(chǎng)的理解。

回到正題,本篇示例我們將以最簡(jiǎn)單的數(shù)據(jù)進(jìn)行分析,

我們輸入端的數(shù)據(jù)是個(gè)股每日基礎(chǔ)行情,輸出端數(shù)據(jù)是股價(jià)相較前一交易日的漲跌狀態(tài)。

簡(jiǎn)單點(diǎn)說(shuō)就是,我們向模型輸入今天的基礎(chǔ)行情,讓模型預(yù)測(cè)明天股價(jià)是漲還是跌。

在代碼實(shí)現(xiàn)方式上,

  • 采用面向?qū)ο蟮乃枷耄?/li>
  • 將整個(gè)數(shù)據(jù)預(yù)處理過(guò)程和結(jié)果,封裝成一個(gè)類,每次創(chuàng)建一個(gè)類實(shí)例,
  • 就得到了特定條件下的一份訓(xùn)練集。

示例代碼如下:

class data_collect(object):
     def __init__(self, in_code,start_dt,end_dt):
        ans = self.collectDATA(in_code,start_dt,end_dt) 
    def collectDATA(self,in_code,start_dt,end_dt):
        # 建立數(shù)據(jù)庫(kù)連接,獲取日線基礎(chǔ)行情(開(kāi)盤價(jià),收盤價(jià),最高價(jià),最低價(jià),成交量,成交額)
        db = pymysql.connect(host='127.0.0.1', user='root', passwd='admin', db='stock', charset='utf8')
        cursor = db.cursor()
        sql_done_set = "SELECT * FROM stock_all a where stock_code = '%s' and state_dt >= '%s' and state_dt <= '%s' order by state_dt asc" % (in_code, start_dt, end_dt)
        cursor.execute(sql_done_set)
        done_set = cursor.fetchall()
        if len(done_set) == 0:
            raise Exception
        self.date_seq = []
        self.open_list = []
        self.close_list = []
        self.high_list = []
        self.low_list = []
        self.vol_list = []
        self.amount_list = []
        for i in range(len(done_set)):
            self.date_seq.append(done_set[i][0])
            self.open_list.append(float(done_set[i][2]))
            self.close_list.append(float(done_set[i][3]))
            self.high_list.append(float(done_set[i][4]))
            self.low_list.append(float(done_set[i][5]))
            self.vol_list.append(float(done_set[i][6]))
            self.amount_list.append(float(done_set[i][7]))
        cursor.close()
        db.close()
        # 將日線行情整合為訓(xùn)練集(其中self.train是輸入集,self.target是輸出集,self.test_case是end_dt那天的單條測(cè)試輸入)
        self.data_train = []
        self.data_target = []

最終這個(gè)類實(shí)例化后是要整合出三個(gè)數(shù)據(jù):

1. self.train :訓(xùn)練集中的輸入端數(shù)據(jù),本例中是每日基礎(chǔ)行情。

2. self.target :訓(xùn)練集中的輸出數(shù)據(jù),本例中相較于前一天股價(jià)的漲跌,漲為1,不漲為0。并且在排序上,每條 t 交易日的self.train里的數(shù)據(jù)對(duì)應(yīng)的是 t+1 天股價(jià)的漲跌狀態(tài)。

3. self.test_case :在 t 末交易日的基礎(chǔ)行情數(shù)據(jù),作為輸入端,用于模型訓(xùn)練完成后,對(duì)第二天的漲跌進(jìn)行預(yù)測(cè)。

3、SVM建模

機(jī)器學(xué)習(xí)中有諸多有監(jiān)督學(xué)習(xí)算法

SVM是比較常見(jiàn)的一種,本例采用SVM算法進(jìn)行建模。

關(guān)于SVM的理論原理本篇不做詳述,以下僅從實(shí)踐角度進(jìn)行建模介紹。

先貼一段建模、訓(xùn)練并進(jìn)行預(yù)測(cè)的代碼大家感受一下:)

model = svm.SVC()               # 建模
model.fit(train, target)        # 訓(xùn)練
ans2 = model.predict(test_case) # 預(yù)測(cè)

三行代碼,讓人想起了把大象裝冰箱分幾步的冷笑話……

不過(guò)這側(cè)面也說(shuō)明Python在數(shù)據(jù)挖掘方面的強(qiáng)大之處:簡(jiǎn)單,方便,好用。

本例用的機(jī)器學(xué)習(xí)框架是scikit-learn是個(gè)非常強(qiáng)大的算法庫(kù)。

熟悉算法原理的朋友可以查閱官方API文檔,可修改模型參數(shù),進(jìn)一步調(diào)優(yōu)模型;

亦可嘗試其他算法比如決策樹,邏輯回歸,樸素貝葉斯等。

以上就是利用python數(shù)據(jù)分析進(jìn)行炒股實(shí)戰(zhàn)行情的詳細(xì)內(nèi)容,更多關(guān)于python數(shù)據(jù)分析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入淺析python3中的unicode和bytes問(wèn)題

    深入淺析python3中的unicode和bytes問(wèn)題

    在python3中,有兩種字符串類型,默認(rèn)的就是str,即unicode,也叫做文本類型。這篇文章主要介紹了python3中的unicode和bytes問(wèn)題,需要的朋友可以參考下
    2019-07-07
  • Pytest中conftest.py的用法

    Pytest中conftest.py的用法

    conftest.py文件到底該如何使用呢,下面我們就來(lái)詳細(xì)了解一下conftest.py文件的特點(diǎn)和使用方法吧,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 列舉Python中吸引人的一些特性

    列舉Python中吸引人的一些特性

    這篇文章主要介紹了Python中吸引人的一些特性,有助于初學(xué)者或者開(kāi)發(fā)者在選擇編程語(yǔ)言時(shí)用作參考或入門指引,需要的朋友可以參考下
    2015-04-04
  • 基于python log取對(duì)數(shù)詳解

    基于python log取對(duì)數(shù)詳解

    今天小編就為大家分享一篇基于python log取對(duì)數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • uwsgi+nginx部署Django項(xiàng)目操作示例

    uwsgi+nginx部署Django項(xiàng)目操作示例

    這篇文章主要介紹了uwsgi+nginx部署Django項(xiàng)目操作,結(jié)合實(shí)例形式簡(jiǎn)單介紹了uwsgi的概念、原理、安裝、項(xiàng)目創(chuàng)建、配置、調(diào)試運(yùn)行等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件

    Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件

    這篇文章主要給大家介紹了關(guān)于Python跨文件調(diào)用函數(shù)以及在一個(gè)文件中執(zhí)行另一個(gè)文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12
  • 詳談python3 numpy-loadtxt的編碼問(wèn)題

    詳談python3 numpy-loadtxt的編碼問(wèn)題

    下面小編就為大家分享一篇詳談python3 numpy-loadtxt的編碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python3+dlib實(shí)現(xiàn)人臉識(shí)別和情緒分析

    python3+dlib實(shí)現(xiàn)人臉識(shí)別和情緒分析

    本文通過(guò)具體代碼不步驟給大家詳細(xì)講述了python3+dlib實(shí)現(xiàn)人臉識(shí)別以及情緒分析的方法,有需要的朋友參考下。
    2018-04-04
  • 使用python制作一個(gè)壓縮圖片小程序

    使用python制作一個(gè)壓縮圖片小程序

    這篇文章主要為大家詳細(xì)介紹了如何使用python制作一個(gè)壓縮圖片小程序,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下
    2023-10-10
  • python統(tǒng)計(jì)字符串中字母出現(xiàn)次數(shù)代碼實(shí)例

    python統(tǒng)計(jì)字符串中字母出現(xiàn)次數(shù)代碼實(shí)例

    這篇文章主要介紹了python統(tǒng)計(jì)字符串中字母出現(xiàn)次數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

荆州市| 湘潭市| 昆山市| 葵青区| 安化县| 北辰区| 商城县| 镇原县| 潜江市| 诸暨市| 三亚市| 闵行区| 凤山县| 清丰县| 兴宁市| 海口市| 白沙| 尼木县| 恭城| 始兴县| 大名县| 会理县| 图片| 中超| 启东市| 海林市| 安新县| 庆阳市| 普兰县| 博客| 盐城市| 准格尔旗| 宜都市| 道真| 财经| 肇州县| 板桥市| 万全县| 龙泉市| 原平市| 晴隆县|