❶ 如何建立一個股票量化交易模型並模擬
研究量化投資模型的目的是找出那些具體盈利確定性的時空價格形態,其最重要手段的概率取勝,最重要的技術是概率統計,最主要的研究方向是市場行為心理。那麼我們在選擇用於研究的參數時,也應該用我們的經驗來確定是否把某技術參數放進去,因為一般來說定性投資比較好用的參數指標對量化投資同樣適用。
量化投資區別於傳統定性投資的主要特徵在於模型。我打個比方,我們看病,中醫與西醫的診療方法是不同,中醫是望、聞、問、切,最後判斷出的結果,很大程度上基於中醫的經驗,主觀定性程度大一些;西醫就不同了,先要病人去拍片子、化驗等,這些都要依託於醫學儀器,最後得出結論,對症下葯。中醫對醫生的經驗要求非常高,他們的主觀判斷往往決定了治療效果,而西醫則要從容得多,按事先規定好的程序走就行了。量化投資就是股票投資中的西醫,它可以比較有效地矯正理智與情緒的不兼容現象。
量化投資的一般思路:選定某些技術指標(我們稱之為參數,往往幾個組成一組),並將每一個參數的數據范圍進行分割,成幾等份。然後,用計算機編程寫出一段能對這些參數組對股票價格造成的影響進行數據統計的程序,連接至大型資料庫進行統計計算,自動選擇能夠達到較高收益水平的參數組合。但是選出這些參數組後還不能馬上應用,因為這里涉及到一個概率陷阱的問題,比如說,有1到100這一百個數字放在那裡,現在讓你選擇,請問你選到100的可能性是多大?是的,就是1/100,如果較幸運你選到了100並不能說明你比別人聰明,而是概率的必然。所以,在進行統計時要特別關注統計的頻率與選出的結果組數量之間的關系。在選出符合要求的參數組後我們還應留出至少三年的原始市場數據進行驗證,只有驗證合格後才能試用。
量化投資原始數據策略:我們選用96年後的市場數據,因為96年股市有過一次交易政策改革(你可以自己查詢了解一下),為了不影響研究結果我們不採納96年以前的數據進資料庫。
量化投資研究的硬設備:高計算性能電腦,家用電腦也可以,不過運算時間會很長,我曾經用家用電腦計算了三個月時間才得到想要的數據。
統計方法:可以選用遺傳演算法,但我在這里陪大家做的是比較簡單的模型,所以採用普通統計方法就可以了。
用於量化研究的軟體:我採用的是免費的大型資料庫MYSQL,ASP網路編程語言,以及可以設置成網路伺服器的旗艦版WIN7操作系統。
❷ 「基於數據挖掘的股票交易分析--模型分析」 這個題目,是什麼意思 哪位哥們,能給點具體解釋么
很難寫,主要牽涉到數據挖掘(軟體)和股票交易兩方面的專業。數據挖掘需要設計軟體進行建模,而股票交易需要進行實證(博士論文都可以寫了)。
建議:可以寫基於統計挖掘的股票交易分析--模型分析,這樣就簡單多了,只需要在股票軟體上得出一些統計數據,然後進行驗證就可以了,可操作性強。
❸ python的量化代碼怎麼用到股市中
2010 ~ 2017 滬深A股各行業量化分析
在開始各行業的量化分析之前,我們需要先弄清楚兩個問題:
第一,A股市場上都有哪些行業;
第二,各行業自2010年以來的營收、凈利潤增速表現如何?
第一個問題
很好回答,我們使用JQData提供的獲取行業成分股的方法,輸入get_instries(name='sw_l1')
得到申萬一級行業分類結果如下:它們分別是:【農林牧漁、採掘、化工、鋼鐵、有色金屬、電子、家用電器、食品飲料、紡織服裝、輕工製造、醫葯生物、公用事業、交通運輸、房地產、商業貿易、休閑服務、綜合、建築材料、建築裝飾、電器設備、國防軍工、計算機、傳媒、通信、銀行、非銀金融、汽車、機械設備】共計28個行業。
第二個問題
要知道各行業自2010年以來的營收、凈利潤增速表現,我們首先需要知道各行業在各個年度都有哪些成分股,然後加總該行業在該年度各成分股的總營收和凈利潤,就能得到整個行業在該年度的總營收和總利潤了。這部分數據JQData也為我們提供了方便的介面:通過調用get_instry_stocks(instry_code=『行業編碼』, date=『統計日期』),獲取申萬一級行業指定日期下的行業成分股列表,然後再調用查詢財務的數據介面:get_fundamentals(query_object=『query_object』, statDate=year)來獲取各個成分股在對應年度的總營收和凈利潤,最後通過加總得到整個行業的總營收和總利潤。這里為了避免非經常性損益的影響,我們對凈利潤指標最終選取的扣除非經常性損益的凈利潤數據。
我們已經獲取到想要的行業數據了。接下來,我們需要進一步分析,這些行業都有什麼樣的增長特徵。
我們發現,在28個申萬一級行業中,有18個行業自2010年以來在總營收方面保持了持續穩定的增長。它們分別是:【農林牧漁,電子,食品飲料,紡織服裝,輕工製造,醫葯生物,公用事業,交通運輸,房地產,休閑服務,建築裝飾,電氣設備,國防軍工,計算機,傳媒,通信,銀行,汽車】;其他行業在該時間范圍內出現了不同程度的負增長。
那麼,自2010年以來凈利潤保持持續增長的行業又會是哪些呢?結果是只有5個行業保持了基業長青,他們分別是醫葯生物,建築裝飾,電氣設備,銀行和汽車。(註:由於申萬行業在2014年發生過一次大的調整,建築裝飾,電氣設備,銀行和汽車實際從2014年才開始統計。)
從上面的分析結果可以看到,真正能夠保持持續穩定增長的行業並不多,如果以扣非凈利潤為標准,那麼只有醫葯生物,建築裝飾,電氣設備,銀行和汽車這五個行業可以稱之為優質行業,實際投資中,就可以只從這幾個行業中去投資。這樣做的目的是,一方面,能夠從行業大格局層面避免行業下行的風險,繞開一個可能出現負增長的的行業,從而降低投資的風險;另一方面,也大大縮短了我們的投資范圍,讓投資者能夠專注於從真正好的行業去挑選公司進行投資。
「2010-2017」投資於優質行業龍頭的收益表現
選好行業之後,下面進入選公司環節。我們知道,即便是一個好的行業也仍然存在表現不好的公司,那麼什麼是好的公司呢,本文試圖從營業收入規模和利潤規模和來考察以上五個基業長青的行業,從它們中去篩選公司作為投資標的。
3.1按營業收入規模構建的行業龍頭投資組合
首先,我們按照營業收入規模,篩選出以上5個行業【醫葯生物,建築裝飾,電氣設備,銀行和汽車】從2010年至今的行業龍頭如下表所示:
結論
通過以上行業分析和投資組合的歷史回測可以看到:
先選行業,再選公司,即使是從2015年股災期間開始投資,至2018年5月1號,仍然能夠獲得相對理想的收益,可以說,紅杉資本的賽道投資法則對於一般投資者還是比較靠譜的。
在構建行業龍頭投資組合時,凈利潤指標顯著優於營業收入指標,獲得的投資收益能夠更大的跑贏全市場收益率
市場是不斷波動的,如果一個投資者從股災期間開始投資,那麼即使他買入了上述優質行業的龍頭組合,在近3年也只能獲得12%左右的累計收益;而如果從2016年5月3日開始投資,那麼至2018年5月2日,2年時間就能獲得超過50%以上的收益了。所以,在投資過程中選擇時機也非常重要。
出自:JoinQuant 聚寬數據 JQData
❹ 怎樣用 Python 寫一個股票自動交易的程序
方法一
前期的數據抓取和分析可能python都寫好了,所以差這交易指令介面最後一步。對於股票的散戶,正規的法子是華寶,國信,興業這樣願意給介面的券商,但貌似開戶費很高才給這權利,而且只有lts,ctp這樣的c++介面,沒python版就需要你自己封裝。
方法二
是wind這樣的軟體也有直接的介面,支持部分券商,但也貴,幾萬一年是要的。
方法三
滑鼠鍵盤模擬法,很復雜的,就是模擬鍵盤滑鼠去操作一些軟體,比如券商版交易軟體和大智慧之類的。
方法四
就是找到這些軟體的關於交易指令的底層代碼並更改,不過T+1的規則下,預測准確率的重要性高於交易的及時性,花功夫做數據分析就好,交易就人工完成吧
❺ 有沒有會用Python編寫一個簡單的建模股票價格的小程序能夠對股票數據進行簡單預測即可!求助!
雖然懂python 但是不懂股票,
採用random()可以么,哈哈
❻ 股票估價的股票估價的模型
股票估價的基本模型
計算公式為:
股票價值
估價
R——投資者要求的必要收益率
Dt——第t期的預計股利
n——預計股票的持有期數
零增長股票的估價模型
零成長股是指發行公司每年支付的每股股利額相等,也就是假設每年每股股利增長率為零。每股股利額表現為永續年金形式。零成長股估價模型為:
股票價值=D/Rs
例:某公司股票預計每年每股股利為1.8元,市場利率為10%,則該公司股票內在價值為:
股票價值=1.8/10%=18元
若購入價格為16元,因此在不考慮風險的前提下,投資該股票是可行的
二、不變增長模型
(1)一般形式。如果我們假設股利永遠按不變的增長率增長,那 么就會建立不變增長模型。 [例]假如去年某公司支付每股股利為 1.80 元,預計在未來日子 里該公司股票的股利按每年 5%的速率增長。因此,預期下一年股利 為 1.80×(1 十 0.05)=1.89 元。假定必要收益率是 11%,該公司的 股票等於 1. 80×[(1 十 0. 05)/(0.11—0. 05)]=1. 89/(0. 11—0. 05) =31.50 元。而當今每股股票價格是 40 元,因此,股票被高估 8.50 元,建議當前持有該股票的投資者出售該股票。
(2)與零增長模型的關系。零增長模型實際上是不變增長模型的 一個特例。特別是,假定增長率合等於零,股利將永遠按固定數量支 付,這時,不變增長模型就是零增長模型。 從這兩種模型來看, 雖然不變增長的假設比零增長的假設有較小 的應用限制,但在許多情況下仍然被認為是不現實的。但是,不變增 長模型卻是多元增長模型的基礎,因此這種模型極為重要。
三、多元增長模型 多元增長模型是最普遍被用來確定普通股票內在價值的貼現現 金流模型。這一模型假設股利的變動在一段時間內並沒有特定的 模式可以預測,在此段時間以後,股利按不變增長模型進行變動。因 此,股利流可以分為兩個部分。 第一部分 包括在股利無規則變化時期的所有預期股利的現值 第二部分 包括從時點 T 來看的股利不變增長率變動時期的所有預期股利的現 值。因此,該種股票在時間點的價值(VT)可通過不變增長模型的方程 求出
[例]假定 A 公司上年支付的每股股利為 0.75 元,下一年預期支 付的每股票利為 2 元,因而再下一年預期支付的每股股利為 3 元,即 從 T=2 時, 預期在未來無限時期, 股利按每年 10%的速度增長, 即 0:,Dz(1 十 0.10)=3×1.1=3.3 元。假定該公司的必要收益 率為 15%,可按下面式子分別計算 V7—和認 t。該價格與目前每股 股票價格 55 元相比較,似乎股票的定價相當公平,即該股票沒有被 錯誤定價。
(2)內部收益率。零增長模型和不變增長模型都有一個簡單的關 於內部收益率的公式,而對於多元增長模型而言,不可能得到如此簡 捷的表達式。雖然我們不能得到一個簡捷的內部收益率的表達式,但 是仍可以運用試錯方法,計算出多元增長模型的內部收益率。即在建 立方程之後,代入一個假定的伊後,如果方程右邊的值大於 P,說明 假定的 P 太大;相反,如果代入一個選定的盡值,方程右邊的值小於 認說明選定的 P 太小。繼續試選盡,最終能程式等式成立的盡。 按照這種試錯方法,我們可以得出 A 公司股票的內部收益率是 14.9%。把給定的必要收益 15%和該近似的內部收益率 14.9%相 比較,可知,該公司股票的定價相當公平。
(3)兩元模型和三元模型。有時投資者會使用二元模型和三元模 型。二元模型假定在時間了以前存在一個公的不變增長速度,在時間 7、以後,假定有另一個不變增長速度城。三元模型假定在工時間前, 不變增長速度為身 I,在 71 和 72 時間之間,不變增長速度為期,在 72 時間以後,不變增長速度為期。設 VTl 表示 在最後一個增長速度開始後的所有股利的現值,認-表示這以前 所有股利的現值,可知這些模型實際上是多元增長模型的特例。
四、市盈率估價方法 市盈率,又稱價格收益比率,它是每股價格與每股收益之間的比 率,其計算公式為反之,每股價格=市盈率×每股收益 如果我們能分別估計出股票的市盈率和每股收益, 那麼我們就能 間接地由此公式估計出股票價格。這種評價股票價格的方法,就是 「市盈率估價方法」
五、貼現現金流模型 貼現現金流模型是運用收入的資本化定價方法來決定普通股票 的內在價值的。按照收入的資本化定價方法,任何資產的內在價值是 由擁有這種資產的投資 者在未來時期中所接受的現金流決定的。 由於現金流是未來時期的預 期值,因此必須按照一定的貼現率返還成現值,也就是說,一種資產 的內在價值等於預期現金流的貼現值。對於股票來說,這種預期的現 金流即在未來時期預期支付的股利,因此,貼現現金流模型的公式為 式中:Dt 為在時間 T 內與某一特定普通股相聯系的預期的現金 流,即在未來時期以現金形式表示的每股股票的股利;K 為在一定風 險程度下現金流的合適的貼現率; V 為股票的內在價值。 在這個方程里,假定在所有時期內,貼現率都是一樣的。由該方 程我們可以引出凈現值這個概念。凈現值等於內在價值與成本之差, 即 式中:P 為在 t=0 時購買股票的成本。 如果 NPV>0,意味著所有預期的現金流入的凈現值之和大於投 資成本,即這種股票被低估價格,因此購買這種股票可行; 如果 NPV<0,意味著所有預期的現金流入的凈現值之和小於投 資成本,即這種股票被高估價格,因此不可購買這種股票。 在了解了凈現值之後,我們便可引出內部收益率這個概念。內部 收益率就是使投資凈現值等於零的貼現率。如果用 K*代表內部收益 率,通過方程可得 由方程可以解出內部收益率 K*。把 K*與具有同等風險水平的股 票的必要收益率(用 K 表示)相比較:如果 K*>K,則可以購買這種股 票;如果 K*<K,則不要購買這種股票。 一股普通股票的內在價值時存在著一個麻煩問題, 即投資者必須 預測所有未來時期支付的股利。 由於普通股票沒有一個固守的生命周 期,因此建議使用無限時期的股利流,這就需要加上一些假定。 這些假定始終圍繞著勝利增長率,一般來說,在時點 T,每股股 利被看成是在時刻 T—1 時的每股股利乘上勝利增長率 GT,其計 例如,如果預期在 T=3 時每股股利是 4 美元,在 T=4 時每股股利 是 4.2 美元,那麼不同類型的貼現現金流模型反映了不同的股利增 長率的假定
❼ 如何利用Python預測股票價格
預測股票價格沒有意義。
單支股票價格,多股組合,大盤這些都可以使用神經網路來學習,02年就做過了,漲跌預測平均能達到54%到57%的准確率,但是只能定性,無法定量,因此,在扣除印花稅之後無利可圖。
純粹使用股票交易數據來預測並保證總體獲利不是程序能辦到的,人也辦不到。
目前世界上最先進的炒股機器也只能利用網路時差那微不可計的零點幾秒在歐洲與美國證券間倒來倒去,那套系統研發費用數千萬,硬體(主要是獨立光纜)費用以億計。
❽ 怎樣用 Python 寫一個股票自動交易的程序
概率炒股法:
下面方法買漲不買跌,同時避免被套,缺點,手續費比較高,但完全可以吃完整個牛市,熊市不會被套。
用python獲取股票價格,如tushare,如果發現股票當天漲幅在大盤之上(2點30到2點50判斷),買入持有一天,下跌當天就別買,你可以用概率論方法,根據資金同時持有5支,10支或20支,這樣不怕停盤影響,理論上可以跑贏大盤。好處:避免人為沖動,缺點手續費高
還有一種是操作etf,如大盤50etf,etf300,中小板etf,創業板etf,當天2.30分判斷那個etf上漲就買入那支,買入漲幅最大的,不上漲什麼都不買,持有一天,第二天上午判斷一下,如果下跌超過2%賣掉。好處:不會踩地雷,缺點:漲隨大盤,我比較推薦這個方法,外圍的風險比較小。
具體的python程序我有,比上面復雜,有止贏止損位,資金管理,監視管理,我用在實盤當中,自動化下單也已解決。
我覺得程序的成敗不在一日之功,在於長期穩定賺錢,如運行十年,過多的數據分析也無意義,因為預測未來永遠是一個概率問題,不是百分之百確定的,如果你的程序能在長時間多次數上戰勝市場,你的程序就能趨向大數定理。
否則一時的回撤會讓你停止程序自動執行,而無法趨向大數定理中的穩定概率。
如果有一個程序能百分之99確定,那麼基本上肯定是分析了內幕交易數據,和徐x一樣,每次重倉一支股,這種手法應該是得到了內幕,也就不需要什麼程序來交易了。
巴菲特的交易模式實質上也是內幕交易的一種,因為他靠的是外在分析,實地考查,估計這是尋找內幕的手段,現在做大了,這種效果就不靈了,收益也下降了,美國經濟也下滑了,所以巴菲特的未來是必定是暗淡的,因為內幕交易的池子有限,資金量大了不好操作。
想想如果巴菲特生在蘇聯,印度,日本等等其他國家,他可能在街頭要飯,美國二戰後經濟環境加傾向內幕造就了他,而不是炒股技術有多神。所以巴菲特不屑於程序化交易。
巴菲特及不少美國式的股神實際上是倖存者偏差造成的,你想想蘇聯的股神在那裡?為什麼一個都沒有?(「沉默的數據」、「死人不會說話」)
我覺得未來真正能成股神必定是程序,不是人,因為一個好的程序策略可以用一輩子,實現長期穩定增長,當然前提是社會經濟環境穩定,不會出現類似蘇聯的動亂,也不會出現日本式的惡性通脹(對貨幣m2有點擔心)。
太多的股票讓股民每天沉浸在選股的游戲中,選股造就了券商的行情軟體,實際上很多數據都是沒有用的,所有的關鍵是按操作方法永遠執行下去才能趨向穩定概率,否則今天換一種明天換一種方法,今天按kdj,明天按macd,後天按boll,大後天按ddx,大大後天按自編指標,多條件選股,最後錢都交手續費或止損不及時被套牢了。這時券商收傭金的目的也就達到了,每年券商收的傭金比股市分紅要高。不管行情如何,只要多請幾個股評員,總有方向說對的,玩個概率游戲讓大家頻繁交易,券商的收入只會增不會降。所以千萬別信股評,玩的是概率游戲,如同預測硬幣的正反,請十個股評師必定有個能預測三次正確的神股評。你信這個神股評,後面可能是三次都不準,呵呵。所以券商和行情軟體總會在收盤或午休時彈出各種消息或評價,說實在的這種東西沒有一分錢的價值。可能早就寫好了上漲的說法是模塊a,下跌的說法是模板b,平市的說法是模板c,只是填上當天數據即可,都是八股文,都是馬後炮,一樣的事件上午說成是上漲理由,下午說成是下跌理由。
程序的策略經過測試後的關鍵在於穩定執行,長期穩定執行,長期長期穩定穩定執行執行,重要的事說三遍。
人性無法戰勝的弱點是執行力,小學生都懂的天天向上,每日進步,世間有幾人能做到?而穩定幾十年執行更是難上加難,如同背英語單詞一樣,理論上一天背一百個,一百天就可以一萬詞,但十年,二十年過去了,你可能還是三千詞以下。
用程序的目的就是百分之百執行到位,沒有折扣,真正戰勝人性的弱點,和t+1沒有關系。
另外通過一定方法降低手續費也可以使你的資金活得更久,如把上面的日模型改為周或月模型。
❾ python量化哪個平台可以回測模擬實盤還不要錢
Python量化投資框架:回測+模擬+實盤
Python量化投資 模擬交易 平台 1. 股票量化投資框架體系 1.1 回測 實盤交易前,必須對量化交易策略進行回測和模擬,以確定策略是否有效,並進行改進和優化。作為一般人而言,你能想到的,一般都有人做過了。回測框架也如此。當前小白看到的主要有如下五個回測框架: Zipline :事件驅動框架,國外很流行。缺陷是不適合國內市場。 PyAlgoTrade : 事件驅動框架,最新更新日期為16年8月17號。支持國內市場,應用python 2.7開發,最大的bug在於不支持3.5的版本,以及不支持強大的pandas。 pybacktest :以處理向量數據的方式進行回測,最新更新日期為2個月前,更新不穩定。 TradingWithPython:基於pybacktest,進行重構。參考資料較少。 ultra-finance:在github的項目兩年前就停止更新了,最新的項目在谷歌平台,無奈打不開網址,感興趣的話,請自行查看吧。 RQAlpha:事件驅動框架,適合A股市場,自帶日線數據。是米筐的回測開源框架,相對而言,個人更喜歡這個平台。 2 模擬 模擬交易,同樣是實盤交易前的重要一步。以防止類似於當前某券商的事件,半小時之內虧損上億,對整個股市都產生了惡劣影響。模擬交易,重點考慮的是程序的交易邏輯是否可靠無誤,數據傳輸的各種情況是否都考慮到。 當下,個人看到的,喜歡用的開源平台是雪球模擬交易,其次是wind提供的模擬交易介面。像優礦、米筐和聚寬提供的,由於只能在線上平台測試,不甚自由,並無太多感覺。 雪球模擬交易:在後續實盤交易模塊,再進行重點介紹,主要應用的是一個開源的easytrader系列。 Wind模擬交易:若沒有機構版的話,可以考慮應用學生免費版。具體模擬交易介面可參看如下鏈接:http://www.dajiangzhang.com/document 3 實盤 實盤,無疑是我們的終極目標。股票程序化交易,已經被限制。但對於萬能的我們而言,總有解決的辦法。當下最多的是破解券商網頁版的交易介面,或者說應用爬蟲爬去操作。對我而言,比較傾向於食燈鬼的easytrader系列的開源平台。對於機構用戶而言,由於資金量較大,出於安全性和可靠性的考慮,並不建議應用。 easytrader系列當前主要有三個組成部分: easytrader:提供券商華泰/傭金寶/銀河/廣發/雪球的基金、股票自動程序化交易,量化交易組件 easyquotation : 實時獲取新浪 / Leverfun 的免費股票以及 level2 十檔行情 / 集思路的分級基金行情 easyhistory : 用於獲取維護股票的歷史數據 easyquant : 股票量化框架,支持行情獲取以及交易 2. 期貨量化投資框架體系 一直待在私募或者券商,做的是股票相關的內容,對期貨這塊不甚熟悉。就根據自己所了解的,簡單總結一下。 2.1 回測 回測,貌似並沒有非常流行的開源框架。可能的原因有二:期貨相對股票而言,門檻較高,更多是機構交易,開源較少; 去年至今對期貨監管控制比較嚴,至今未放開,只能做些CTA的策略,另許多人興致泱泱吧。 就個人理解而言,可能wind的是一個相對合適的選擇。 2.2 模擬 + 實盤 vn.py是國內最為流行的一個開源平台。起源於國內私募的自主交易系統,2015年初啟動時只是單純的交易API介面的Python封裝。隨著業內關注度的上升和社區不斷的貢獻,目前已經一步步成長為一套全面的交易程序開發框架。如官網所說,該框架側重的是交易模塊,回測模塊並未支持。 能力有限,如果對相關框架感興趣的話,就詳看相關的鏈接吧。個人期望的是以RQAlpha為主搭建回測框架,以雪球或wind為主搭建模擬框架,用easy系列進行交易。
❿ python k-means模型怎麼評估
需要選擇一個k值,也就是我們希望把數據分成多少類,這里k值的選擇對結果的影響很大,Ng的課說的選擇方法有兩種一種是elbow method,簡單的說就是根據聚類的結果和k的函數關系判斷k為多少的時候效果最好。
另一種則是根據具體的需求確定,比如說進行襯衫尺寸的聚類你可能就會考慮分成三類(L,M,S)等!