A. 選股策略回測用 Matlab 好還是用 Python 好
都是工具,也都可以開發選股策略的回測,推薦Python.理由:Python免費且開源Python編程語言簡潔優美Python有眾多的量化包,包括獲取數據、處理數據、回測、風險分析。目前國外、國內很多平台和項目都是使用PythonPython開發策略,簡潔高效,這里舉幾個例子:1.[量化學堂-策略開發]金叉死叉策略2.[量化學堂-策略開發]海龜策略3.[量化學堂-策略開發]淺談小市值策略4.[量化學堂-策略開發]多頭排列回踩買入策略5.[量化學堂-策略開發]藉助talib使用技術分析指標來炒股6.[量化學堂-策略開發]大師系列之價值投資法7.[量化學堂-策略開發]事件驅動策略(基於業績快報)8.[量化學堂-策略開發]基於協整的配對交易9.[量化學堂-策略開發]使用cvxopt包實現馬科維茨投資組合優化:以一個股票策略為例這些策略涵蓋了股票量化主要的策略類型,但是使用Python語言,每個策略代碼都不多。
B. 用Python怎麼做量化投資
本文將會講解量化投資過程中的基本流程,量化投資無非這幾個流程,數據輸入------策略書寫------回測輸出
其中策略書寫部分還涉及到編程語言的選擇,如果不想苦惱數據輸入和回測輸出的話,還要選擇回測平台。
一、數據
首先,必須是數據,數據是量化投資的基礎
如何得到數據?
Wind:數據來源的最全的還是Wind,但是要付費,學生可以有免費試用的機會,之後還會和大家分享一下怎樣才Wind里摘取數據,Wind有很多軟體的借口,Excel,Matlab,Python,C++。
預測者網:不經意間發現,一個免費提供股票數據網站 預測者網,下載的是CSV格式
TB交易開拓者:Tradeblazer,感謝@孫存浩提供數據源
TuShare:TuShare -財經數據介麵包,基於Python的財經數據包,利用Python進行摘取
如何存儲數據?
Mysql
如何預處理數據?
空值處理:利用DataFrame的fill.na()函數,將空值(Nan)替換成列的平均數、中位數或者眾數
數據標准化
數據如何分類?
行情數據
財務數據
宏觀數據
二、計算語言&軟體
已經有很多人在網上詢問過該選擇什麼語言?筆者一開始用的是matlab,但最終選擇了python
python:庫很多,只有你找不到的,沒有你想不到,和量化這塊結合比較緊密的有:
Numpy&Scipy:科學計算庫,矩陣計算
Pandas:金融數據分析神器,原AQR資本員工寫的一個庫,處理時間序列的標配
Matplotlib:畫圖庫
scikit-learn:機器學習庫
statsmodels:統計分析模塊
TuShare:免費、開源的python財經數據介麵包
Zipline:回測系統
TaLib:技術指標庫
matlab:主要是矩陣運算、科學運算這一塊很強大,主要有優點是WorkSpace變數可視化
python的Numpy+Scipy兩個庫完全可以替代Matlab的矩陣運算
Matplotlib完克Matlab的畫圖功能
python還有很多其他的功能
pycharm(python的一款IDE)有很棒的調試功能,能代替Matlab的WorkSpace變數可視化
推薦的python學習文檔和書籍
關於python的基礎,建議廖雪峰Python 2.7教程,適合於沒有程序基礎的人來先看,涉及到python的基本數據類型、循環語句、條件語句、函數、類與對象、文件讀寫等很重要的基礎知識。
涉及到數據運算的話,其實基礎教程沒什麼應用,python各類包都幫你寫好了,最好的學習資料還是它的官方文檔,文檔中的不僅有API,還會有寫實例教程
pandas文檔
statsmodels文檔
scipy和numpy文檔
matplotlib文檔
TuShare文檔
第二,推薦《利用Python進行數據分析》,pandas的開發初衷就是用來處理金融數據的
三、回測框架和網站
兩個開源的回測框架
PyAlgoTrade - Algorithmic Trading
Zipline, a Pythonic Algorithmic Trading Library
C. 怎樣使用tushare的提供的數據與庫talib計算macd
安裝TuShare
方式1:pip install tushare
方式2:訪問https://pypi.python.org/pypi/tushare/下載安裝
方式3:將源代碼下載到本地python setup.py install
升級TuShare
1、先查看本地與線上的版本版本號:
pip search tushare
2、升級TuShare:
pip install tushare --upgrade
確認安裝成功
import tushare as ts
print ts.__version__
獲取歷史交易數據
import tushare as ts
df = ts.get_hist_data('600848')
ts.get_hist_data('600848',ktype='W') #獲取周k線數據
ts.get_hist_data('600848',ktype='M') #獲取月k線數據
ts.get_hist_data('600848',ktype='5') #獲取5分鍾k線數據
ts.get_hist_data('600848',ktype='15') #獲取15分鍾k線數據
ts.get_hist_data('600848',ktype='30') #獲取30分鍾k線數據
ts.get_hist_data('600848',ktype='60') #獲取60分鍾k線數據
ts.get_hist_data('sh')#獲取上證指數k線數據,其它參數與個股一致,下同
ts.get_hist_data('sz')#獲取深圳成指k線數據 ts.get_hist_data('hs300')#獲取滬深300指數k線數據
ts.get_hist_data('sz50')#獲取上證50指數k線數據
ts.get_hist_data('zxb')#獲取中小板指數k線數據
ts.get_hist_data('cyb')#獲取創業板指數k線數據
Python財經數據介麵包TuShare的使用
獲取歷史分筆數據
df = ts.get_tick_data('000756','2015-03-27')
df.head(10)
Python財經數據介麵包TuShare的使用
獲取實時分筆數據
df = ts.get_realtime_quotes('000581')
print df[['code','name','price','bid','ask','volume','amount','time']]
返回值說明:
0:name,股票名字
1:open,今日開盤價
2:pre_close,昨日收盤價
3:price,當前價格
4:high,今日最高價
5:low,今日最低價
6:bid,競買價,即「買一」報價
7:ask,競賣價,即「賣一」報價
8:volumn,成交量 maybe you need do volumn/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,時間
D. Hi-Tek&Talib Kweli的《On My Way》 歌詞
歌曲名:On My Way
歌手:Hi-Tek&Talib Kweli
專輯:Reflection Eternal [Train Of Thought]
俺達はどこへ行くのだろう
それぞれの命の時を過ごし
俺達のたどり著く先は
自分次第さOn My Way
On My Way
ミュージカル『テニスの王子様』 The Imperial Match 氷帝學園 in winter 2005-2006 ALL CAST
三千代さま製作
コートを蹴って握りしめるラケット
打ち込むボール地球を割るほどSharp&Strong
受けて立つぜどんな勝負だって
ひるみはしない燃え盡きるまでGuts&Fight
戦い続けるのは生きてる證なのさ
悲しみも涙も人には見せず
銳い視線で見據えた未來
俺は負けないOn My Way
On My Way On My Way On My Way...
閃光(1)を放ち凍りつくぜスマッシュ
切り裂く空気時間止めるほどSharp&Strong
攻めて行くぜ追いつめられたって
立ち止まらない前進あるのみGuts&Fight
試合でつながるのさ俺とお前の絆
苦しみも挫折も心に秘めて
競い合い行こうおのれのゴール
勝ち進むだけOn My Way
戦い続けるのは生きてる證なのさ
悲しみも涙も人には見せず
銳い視線で見據えた未來
俺は負けないOn My Way
On My Way On My Way On My Way...
On My Way On My Way On My Way...
On My Way On My Way On My Way...
On My Way On My Way On My Way...
http://music..com/song/8541221
E. talib 計算RSI怎麼和炒股軟體不一樣
RSI我是深度研究者,這個問題我的理解是。
公式一樣的前提下,結果存在差異的可能性有以下幾種。
(1)起算點不同:必須同一交易日起算,周期最好是在180個交易日最合適。周期越長不同程序下計算結果越相近。
不要說talib和炒股軟體不一樣,就是使用度最高的同花順和東方財富也有很多不一樣。
(2)小數點不同:比如同花順,價格取小數點後兩位,但rsi值是取6位後再四捨五入。
為了避免認為我的回答沒有依據,放張我計算的rsi結果圖。