• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Python工具的價(jià)格走勢(shì)選股策略研究及優(yōu)化

      2020-07-17 16:21:39金城滿
      現(xiàn)代營銷·經(jīng)營版 2020年5期

      摘 要:隨著2020年3月1日新《中華人民共和國證券法》的正式落地及其證券發(fā)行注冊(cè)制的全面實(shí)行,中國資本市場的開放度將會(huì)空前提高,股票市場無疑會(huì)注入一批新活力。面對(duì)這種大趨勢(shì),采用傳統(tǒng)的人工選股帶來的低效率、高成本、高風(fēng)險(xiǎn)的弊端可能會(huì)被逐漸放大,造成資源的浪費(fèi)。通過借鑒在西方國家發(fā)展起來的業(yè)績穩(wěn)定、投資理性的量化投資技術(shù)及擁有廣泛的第三方科學(xué)計(jì)算庫的Python編程工具,對(duì)著名的威廉·歐奈爾先生創(chuàng)作的《How to make money in stocks》一書中所記載的技術(shù)分析方面“杯底”價(jià)格走勢(shì)圖進(jìn)行量化,并結(jié)合RPS(股價(jià)相對(duì)強(qiáng)度)和交易量的綜合判斷進(jìn)行智能篩選,可以提升選股效率和可靠性。

      關(guān)鍵詞:量化投資;Python;歐奈爾

      隨著我國經(jīng)濟(jì)的快速發(fā)展、金融制度的不斷完善,我國的股票市場也處在蓬勃發(fā)展的歷史進(jìn)程中。2020年3月1日,《中華人民共和國證券法》的修訂預(yù)示了我國股票市場在接下來數(shù)年內(nèi)將帶來巨大的變革,首當(dāng)其沖的是企業(yè)入市門檻的大幅度降低,會(huì)帶來我國股票市場股票數(shù)量的大幅度增加。而在愈來愈錯(cuò)綜復(fù)雜的股票市場中,我國證券投資機(jī)構(gòu)及部門也將會(huì)面臨嚴(yán)峻的考驗(yàn)。量化投資是指利用計(jì)算機(jī)程序通過數(shù)學(xué)、統(tǒng)計(jì)學(xué)知識(shí)進(jìn)行自動(dòng)發(fā)送買賣指令的一種交易方式,源于美國,在海外已經(jīng)發(fā)展了有30余年,其優(yōu)點(diǎn)在于業(yè)績穩(wěn)定及風(fēng)險(xiǎn)較小,且反應(yīng)速度遠(yuǎn)比傳統(tǒng)盯盤速度要快很多。近幾年隨著我國大數(shù)據(jù)、機(jī)器學(xué)習(xí)的發(fā)展,量化投資的也漸漸在我國國內(nèi)展露苗頭。

      隨著資本市場的快速發(fā)展,愈來愈多投資者嘗試通過股票歷史數(shù)據(jù)來預(yù)測股票的漲跌,可以看到我國對(duì)量化投資方向的研究也是比較豐富的。曾武序等人通過爬取股票數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行解析,對(duì)數(shù)據(jù)歸一化處理,最后利用BP神經(jīng)網(wǎng)絡(luò)對(duì)股票進(jìn)行預(yù)測。此方法具有重要現(xiàn)實(shí)意義和經(jīng)濟(jì)價(jià)值,但必須進(jìn)行定性預(yù)測且預(yù)測精確度也尚待提升。

      陳文穎利用大數(shù)據(jù)分布式計(jì)算平臺(tái)Hadoop中的聚類分析對(duì)股票進(jìn)行分類預(yù)測,被聚在一類中的股票走勢(shì)有很大的相似性。但此方法還需要在聚類的基礎(chǔ)上,對(duì)同一類的股票信息進(jìn)行進(jìn)一步的分析從而提高實(shí)用性。黃敏健等人在sklearn框架下分析清洗股票歷史數(shù)據(jù),后通過機(jī)器訓(xùn)練來預(yù)測股價(jià)。機(jī)器學(xué)習(xí)算法可以通過一定范圍的指標(biāo)評(píng)估從而輔助交易策略。然而在實(shí)際環(huán)境中,模型預(yù)測的準(zhǔn)確率具有數(shù)據(jù)依賴性,無法適用于所有場景。

      郝知遠(yuǎn)在MATLAB上用數(shù)據(jù)挖掘方法進(jìn)行股票預(yù)測,投資者可以利用這個(gè)過預(yù)測系統(tǒng)獲得股票上漲概率和選股方面的建議。但是由于計(jì)算機(jī)性能的制約和獲取股票數(shù)據(jù)渠道的限制,此原理還是具有一定的局限。

      本文基于Python編程工具,以威廉·歐奈爾先生的投資理念為實(shí)踐對(duì)象,對(duì)歐奈爾先生的著作《How to make money in stocks》中提到的著名價(jià)格走勢(shì)圖進(jìn)行量化并應(yīng)用于Python編程工具,從而對(duì)具有漲幅潛力的股票進(jìn)行篩選。

      一、歐奈爾選股模型概述

      二級(jí)市場的研究方法一般來說有基本面分析和技術(shù)面分析,基本面分析是對(duì)公司的基本信息及財(cái)務(wù)數(shù)據(jù)等的分析,技術(shù)面分析是分析股市數(shù)據(jù)信息,判斷買賣時(shí)機(jī)。威廉·歐奈爾先生在著作《How to make money in stocks》中對(duì)基本面分析與技術(shù)面分析進(jìn)行了巧妙結(jié)合,其中技術(shù)面分析中歐奈爾通過對(duì)美國歷史上的股票進(jìn)行歸納統(tǒng)計(jì)得出幾種價(jià)格走勢(shì)圖。本文對(duì)此著作中的最著名的價(jià)格走勢(shì)圖——“杯柄”價(jià)格走勢(shì)圖進(jìn)行研究。

      (一)歐奈爾“杯柄”價(jià)格走勢(shì)圖

      歐奈爾先生選股一般先是進(jìn)行基本面的分析,基本面包括公司基本業(yè)務(wù)、基本發(fā)展方向、基本財(cái)務(wù)狀況數(shù)據(jù)等等,對(duì)這些多方面的統(tǒng)計(jì)數(shù)據(jù)展開綜合性的統(tǒng)計(jì)分析。基本面分析囊括了很多的文字性、抽象性、前瞻性分析,在這一方面的分析上現(xiàn)在的計(jì)算機(jī)分析水平還沒有達(dá)到聘美專業(yè)人士通過大量經(jīng)驗(yàn)進(jìn)行的分析水平,因此本文不打算對(duì)基本面分析展開深入探討。但是歐奈爾另一方面也很重視技術(shù)面分析即股票買入時(shí)機(jī)的選擇,這一方面的分析其實(shí)在西方國家?guī)资甑牧炕顿Y經(jīng)驗(yàn)來看已經(jīng)遠(yuǎn)超人們的手動(dòng)擇時(shí),在我國日益壯大的資本市場引導(dǎo)下,有必要借鑒西方市場的經(jīng)驗(yàn),合理選擇程序量化方案并自動(dòng)擇時(shí)。

      歐奈爾先生對(duì)美國股票市場中絕大部分的上漲股票進(jìn)行了統(tǒng)計(jì)歸納,總結(jié)出幾種價(jià)格走勢(shì)圖。股票一直有一種歷史相似性,其供求關(guān)系往往也會(huì)呈現(xiàn)出驚人的一致性,因此借助于價(jià)格走勢(shì)圖的技術(shù)面分析也不枉為一種可靠的分析方法。歐奈爾選股走勢(shì)圖中屬“杯柄”走勢(shì)圖最為著名,如下圖所示。

      (二)“杯柄”價(jià)格走勢(shì)圖的運(yùn)作機(jī)制及其量化

      首先將U型杯底的時(shí)間跨度即橫向跨度設(shè)定為20天或60天,茶杯形態(tài)的深度設(shè)定為33%以內(nèi),歐奈爾先生在著作中設(shè)定形態(tài)深度是為了防止反彈幅度過大導(dǎo)致突破杯柄的概率提升,提升模型的穩(wěn)定性。根據(jù)以上描述,可以設(shè)定四個(gè)數(shù)值,以時(shí)間跨度為20天為例,分別為倒數(shù)第20天價(jià)格d0、倒數(shù)第2天到倒數(shù)第19天之間的最高價(jià)d1、倒數(shù)第1天價(jià)格d2、倒數(shù)第2天到倒數(shù)第19天之間的最低價(jià)d3。設(shè)定完畢后,篩選d1

      (三)價(jià)格走勢(shì)圖選股策略的可行性條件

      我國A股市場新股上市之時(shí)往往會(huì)出現(xiàn)一字漲停然后下跌調(diào)整進(jìn)而再輕微反彈的初期趨勢(shì),這一走勢(shì)和“杯柄”價(jià)格走勢(shì)圖的走勢(shì)有一定的相似性,但并沒有后期繼續(xù)走漲的保證。因此為了保證選股策略的可行性及資金的安全性,應(yīng)當(dāng)剔除新股和次新股,采用業(yè)績穩(wěn)定、上市時(shí)間較長的股票來進(jìn)行分析選股。

      二、基于Python的實(shí)現(xiàn)流程及選取的第三方庫

      (一)股票數(shù)據(jù)來源和第三方庫及交互平臺(tái)的選擇

      1.數(shù)據(jù)來源——Tushare財(cái)經(jīng)數(shù)據(jù)接口包

      做任何分析之前的第一步一直是數(shù)據(jù)的收集與清洗,本文所使用到的股票數(shù)據(jù)來源于國內(nèi)免費(fèi)開放的Tushare財(cái)經(jīng)數(shù)據(jù)接口。Tushare數(shù)據(jù)覆蓋面甚廣,涵蓋了公司股票、期貨期權(quán)、指數(shù)、數(shù)字貨幣等一系列金融相關(guān)數(shù)據(jù),能夠?qū)崿F(xiàn)對(duì)金融數(shù)據(jù)進(jìn)行采集、清洗、加工及儲(chǔ)存的功能。Tushare pro的數(shù)據(jù)可供校園用戶免費(fèi)使用,因此本文將應(yīng)用Tushare pro數(shù)據(jù)接口來進(jìn)行數(shù)據(jù)的采集儲(chǔ)存工作。

      2.數(shù)據(jù)科學(xué)及可視化——Numpy、Pandas及Matplotlib庫

      Numpy是Python語言的一個(gè)拓展程序庫,常見于大量的數(shù)組與矩陣運(yùn)算。Pandas是Python語言的一個(gè)數(shù)據(jù)分析包,是基于Numpy研發(fā)的一個(gè)強(qiáng)大的研究結(jié)構(gòu)化數(shù)據(jù)的工具集,常見于數(shù)據(jù)挖掘與數(shù)據(jù)分析。Matplotlib是Python語言的一個(gè)繪圖庫,內(nèi)含包括散點(diǎn)圖、K線、回歸線等的繪圖函數(shù),在數(shù)據(jù)分析上常常搭配前面提到的Numpy、Pandas使用。

      3.數(shù)據(jù)框架——SQLAlchemy庫

      SQLAlchemy是一種ORM框架,采用關(guān)系對(duì)象映射的方式運(yùn)行數(shù)據(jù)庫系統(tǒng)操作。

      4.交互平臺(tái)——Jupyter Notebook

      Jupyter Notebook是一種交互式web筆記本,常用于創(chuàng)建、調(diào)試、共享程序文檔,支持實(shí)時(shí)代碼、數(shù)學(xué)方程、可視化,可以實(shí)現(xiàn)數(shù)據(jù)整理、統(tǒng)計(jì)建模、機(jī)器學(xué)習(xí)等功能。

      5.量化實(shí)現(xiàn)思路及流程

      基本思路為首先利用tushare pro財(cái)經(jīng)接口,輸入個(gè)人token碼,獲取股票歷史每日行情數(shù)據(jù)。利用SQLAlchemy建立數(shù)據(jù)框架,遍歷所有上市股票數(shù)據(jù)并添加到數(shù)據(jù)框架,設(shè)定好時(shí)間跨度,利用pandas庫對(duì)database完成擇優(yōu),最終使用matplotlib繪圖庫對(duì)篩選出來的個(gè)股進(jìn)行K線繪制,從而最為直觀地進(jìn)行最后的人工篩選。

      三、將量化思路進(jìn)行代碼編制并實(shí)際運(yùn)行及優(yōu)化

      (一)股票數(shù)據(jù)的采集及數(shù)據(jù)框架的建立

      首先對(duì)tushare庫、sqlalchemy庫進(jìn)行導(dǎo)入及設(shè)置,核心代碼如下。

      借助stock_basic接口得到基本數(shù)據(jù)信息,包括股票代碼、名稱等,之后利用daily接口獲取歷史日線行情,核心代碼如下。

      #只選擇還在上市中的企業(yè)股票,并做出股票代碼列表

      codes = pro.stock_basic(list_status = ‘L).ts_coded.values

      #從codes列表中對(duì)沒一個(gè)股票代碼進(jìn)行遍歷

      for code in codes:

      df = pro.daily(ts_code = code,start_date = ‘20100101,? ? end_date = ‘20191113

      df.to_sql(name = ‘daily_data, engine, index = False, if_exists = ‘a(chǎn)ppend)

      到此就完成了對(duì)數(shù)據(jù)庫的初步建立及股票歷史數(shù)據(jù)的采集,在此之后開始對(duì)數(shù)據(jù)展開處理及分析。

      (二)將基本量化思路應(yīng)用到Python當(dāng)中

      在前文中已經(jīng)提到,可以設(shè)置四個(gè)參數(shù)值從而實(shí)現(xiàn)對(duì)“茶杯”形狀走勢(shì)圖進(jìn)行一個(gè)簡單的篩選,因此我們可以利用pandas中自帶的函數(shù)來對(duì)DataFrame進(jìn)行數(shù)據(jù)操作。以時(shí)間跨度20天為例,核心代碼如下。

      #設(shè)定一個(gè)空列表用于裝填符合條件的代碼

      stock_list = []

      for c in data.columns:

      d0 = data[c][-20]

      d1 = data[c][-(n-1):-2].max()

      d2 = data[c][-1]

      d3 = data[c][-(n-1):-2].min()

      #篩選出符合條件d1

      if d1

      stock_list.append(c)

      (三)為提升程序篩選的穩(wěn)定性及可靠性加入RPS指標(biāo)

      RPS指標(biāo)全名為Relative Price Strength Rating,即股價(jià)相對(duì)強(qiáng)度,是由威廉·歐奈爾設(shè)想并運(yùn)用于美國股票市場研究的一種指標(biāo)。RPS指標(biāo)是指在一段時(shí)間內(nèi),個(gè)股在所有股票漲幅中的位列。RPS指標(biāo)背后的邏輯在于,歐奈爾對(duì)股票歷史數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析時(shí)發(fā)現(xiàn),漲幅靠前的股票往往隨后的表現(xiàn)也不會(huì)令人失望,這種強(qiáng)者恒強(qiáng)的現(xiàn)象,也許不難用馬太效應(yīng)與二八法則來解釋。下面使用Python來計(jì)算RPS。首先為了排除掉新股次新股的上市后的連續(xù)上漲情況,要先對(duì)數(shù)據(jù)進(jìn)行精準(zhǔn)剔除。核心代碼如下。

      #設(shè)定參數(shù)為上市公司,獲取股票列表

      datalist = pro.stock_basic(list_status = ‘L)

      #排除掉2018年1月1日之后上市的股票及帶有ST和*ST的股票

      datalist = datalist[datalist[‘list_date].apply(int).values<20180101]

      datalist = datalist[-datalist[‘name].apply(lambda x:x.startswitch(‘*ST))]

      datalist = datalist[-datalist[‘name].apply(lambda x:x.startswitch(‘ST))]

      code_list = df.ts_code.values

      接下來對(duì)進(jìn)行過濾后的數(shù)據(jù)進(jìn)行RPS指標(biāo)計(jì)算并進(jìn)一步篩選,核心代碼如下。

      data = pd.read_sql(engine)

      time_list = [5,20,60,120,250]

      df = pd.DataFrame()

      for time in time_list:

      return = (data/data.shift(time)-1).iloc[time:].fillna(0)

      df = pd.DataFrame(ser.sort_values(ascending=False))

      df[‘n] = range(1,len(df)+1)

      df[‘rps] = (1-df[‘n]/len(df))*100

      (四)對(duì)篩選出來的股票進(jìn)行K線可視化

      使用Pyecharts庫可以生成Echarts圖表——百度開源的一種數(shù)據(jù)可視化圖表,其可視化效果不輸其他可視化工具,可以實(shí)現(xiàn)在Python中直接使用數(shù)據(jù)生成圖。本文將利用其內(nèi)部擁有的Kline函數(shù)對(duì)篩選出來的股票進(jìn)行K線的繪制。

      (五)程序?qū)嶋H運(yùn)行并輸出結(jié)果

      首先根據(jù)RPS指標(biāo)進(jìn)行初步篩選,剔除新股及劣質(zhì)股票,在優(yōu)質(zhì)股票當(dāng)中進(jìn)行后續(xù)價(jià)格走勢(shì)的篩選??梢钥吹匠醪胶Y選的結(jié)果一共有3306只股票,接下來對(duì)這些股票進(jìn)行威廉·歐奈爾的“杯柄”價(jià)格走勢(shì)的判斷。運(yùn)行上文中所述代碼可得到如下結(jié)果:[‘寶塔實(shí)業(yè)‘天和防務(wù)‘熊貓金控‘粵泰股份‘中恒電氣‘道道全]最后一共得到五個(gè)“杯柄”類價(jià)格走勢(shì)的股票,對(duì)其進(jìn)行可視K線繪制,以天和防務(wù)股票為例。

      天和防務(wù)的近20日價(jià)格走勢(shì)已經(jīng)很接近于“杯柄”走勢(shì)圖了,在杯底左側(cè)有一點(diǎn)小波動(dòng),但是不妨礙整個(gè)價(jià)格走勢(shì)的連貫性,且其價(jià)格走勢(shì)的上漲伴隨有成交量的明顯放大,屬于優(yōu)質(zhì)股。

      四、實(shí)驗(yàn)結(jié)果評(píng)估及未來發(fā)展方向

      本文基于美國著名投資大師——威廉·歐奈爾的著作《How to make money in stocks》中的技術(shù)面分析即價(jià)格走勢(shì)圖的分析,挑選其中最著名的“杯柄”走勢(shì)圖進(jìn)行量化,并基于Python實(shí)現(xiàn)了自動(dòng)選股策略的實(shí)現(xiàn)。基于股票歷史數(shù)據(jù),在2019年11月13日,進(jìn)行自動(dòng)選股的結(jié)果,一共有五只股票,分別是寶塔實(shí)業(yè)、天和防務(wù)、熊貓金控、粵泰股份、中恒電氣以及道道全,通過人工二次觀察,得出天和防務(wù)在未來一段時(shí)間內(nèi)具有相當(dāng)大的上漲潛,其隨后的一段時(shí)間內(nèi)也確實(shí)可以看出此股票有一定的上漲情況??梢钥闯觯瑲W奈爾的技術(shù)面分析方法應(yīng)用于Python自動(dòng)程序算法具有一定的有效性。當(dāng)然,歐奈爾的選股方法并不局限于技術(shù)面分析,其基本面分析工作將會(huì)比技術(shù)面分析更加重要,量化投資的發(fā)展也一定不會(huì)局限于技術(shù)面的分析,基于大數(shù)據(jù)的財(cái)報(bào)、信息源的分析也一定會(huì)為量化投資的發(fā)展增添一份力量。隨著量化投資技術(shù)的發(fā)展,基于量化所進(jìn)行的投資收益會(huì)呈現(xiàn)收益率逐漸增高、抗風(fēng)險(xiǎn)能力逐漸增強(qiáng)的情況,這與我國持續(xù)防范重大金融風(fēng)險(xiǎn)的總基調(diào)一致。

      結(jié)束語:

      隨著我國股票市場等金融市場的逐步開放,市場中的資本量必定會(huì)只增不減,未來我國的防范重大金融風(fēng)險(xiǎn)的總基調(diào)也不會(huì)改變,因此本文旨在通過歐奈爾的技術(shù)面分析結(jié)合Python自動(dòng)量化模型選股策略,通過遍歷A股中所有上市公司的股票,進(jìn)行RPS指標(biāo)、價(jià)格走勢(shì)圖判斷、成交量判斷的三重篩選手段,最終選出合適的具有上漲潛力的股票,從而降低投資風(fēng)險(xiǎn)。

      在未來,將會(huì)基于此模型,嘗試添加基本面分析的量化選股思路,并嘗試將基本面分析與技術(shù)面分析進(jìn)行結(jié)合,并對(duì)眾多變量進(jìn)行權(quán)重的分配,從而達(dá)到更加優(yōu)秀的選股模型策略,這將會(huì)大大提高選股的可靠性、穩(wěn)定性、收益性以及抗風(fēng)險(xiǎn)性。另外,政策導(dǎo)向與產(chǎn)業(yè)分析也會(huì)對(duì)選股產(chǎn)生比較大的影響,而文本分析往往進(jìn)行機(jī)器分析非常困難,還是需要加以人工引導(dǎo),并在程序運(yùn)行過程中,需要進(jìn)行在旁監(jiān)督,以防止大型交易事故的發(fā)生。但是,股票投資到頭來還是具有一定風(fēng)險(xiǎn)的,任何股票投資策略都不能將這種風(fēng)險(xiǎn)化為0,量化投資選股能做的只有適當(dāng)降低這種風(fēng)險(xiǎn)以及量化這種風(fēng)險(xiǎn),從而給投資者和投資機(jī)構(gòu)以更加明顯的風(fēng)險(xiǎn)提示,從而使資本金得以進(jìn)行更加有效率的分配,提高金融市場資源分配的效率,也為廣大投資者提供了一套非??茖W(xué)而系統(tǒng)的投資思路,可以適當(dāng)減少我國A股市場的亂投資、投機(jī)性的風(fēng)氣。

      參考文獻(xiàn):

      [1]張鑫.量化投資發(fā)展趨勢(shì)及其對(duì)中國的啟示[J].中國商論,2018(01):31-32.

      [2]曾武序,錢文彬,王映龍,楊文姬,柳軍.一種基于Python和BP神經(jīng)網(wǎng)絡(luò)的股票預(yù)測方法[J].計(jì)算機(jī)時(shí)代,2018(06):72-75+80.

      [3]陳文穎.基于Hadoop的股票數(shù)據(jù)聚類分析[D].浙江大學(xué),2018.

      [4]黃敏健,劉鈺萱.基于機(jī)器學(xué)習(xí)的股票趨勢(shì)預(yù)測方法研究[J].現(xiàn)代鹽化工,2019,46(05):74-76.

      [5]郝知遠(yuǎn).基于數(shù)據(jù)挖掘方法的股票預(yù)測系統(tǒng)[D].南京理工大學(xué),2017.

      [6]陳航.歐奈爾選股模型實(shí)證研究[D].上海交通大學(xué),2015.

      [7]劉利.基于技術(shù)指標(biāo)的量化選股實(shí)證研究[D].對(duì)外經(jīng)濟(jì)貿(mào)易大學(xué),2019.

      [8]黎爽.基于Python科學(xué)計(jì)算包的金融應(yīng)用實(shí)現(xiàn)[D].江西財(cái)經(jīng)大學(xué),2017.

      [9]李雪蓮.基本面與技術(shù)面相結(jié)合的A股量化選股模型設(shè)計(jì)[D].河北經(jīng)貿(mào)大學(xué),2015.

      作者簡介:金城滿(1997-),男,朝鮮族,吉林省延吉市人,本科,山東大學(xué)商學(xué)院。研究方向:金融學(xué)。

      卓尼县| 建湖县| 南昌市| 北辰区| 无极县| 若尔盖县| 凭祥市| 灵川县| 饶阳县| 简阳市| 宁蒗| 呼和浩特市| 炉霍县| 库尔勒市| 朝阳县| 昌邑市| 凌云县| 巧家县| 仲巴县| 安国市| 新巴尔虎右旗| 田阳县| 梓潼县| 马尔康县| 桐城市| 绥棱县| 桐庐县| 黑河市| 肥东县| 潍坊市| 玉溪市| 天柱县| 宣威市| 思茅市| 新乡市| 榆树市| 缙云县| 苗栗县| 田东县| 茂名市| 闽侯县|