介紹
首先我不是量化工程師,我只是個后端工程師;其次我對量化也不感興趣,自己有幾把刷子還是了解的,自己不適合做量化交易:
- 自己沒有優秀的模型設計能力
- 自己是個長線投資,一般一個股票都是至少拿一年以上,短線的漲跌無所謂
- 99%的量化模型,現實其實沒什么價值,看看K線圖也不錯。優秀的模型比拼的是網絡延時和算力。
但通過編程來改善選股還是有其一定的價值。
語言的選擇
Python/ target=_blank class=infotextkey>Python! 實在是太方便了,你只要有一丟丟的編程基礎就可以了。如下幾行代碼就可以獲得某個股票最近一段時間的5日均值和收盤價格:
# ctp接口,通過tushare接口獲取信息
import tushare as ts
import datetime as dt
import matplotlib.pyplot as plt
# 無效的key,請自行去官網申請
ts.set_token('xxxxxxxxxxxx3036b50fd47b983bf51dc843fe3d')
def getHistoryTrade(pro, code, lastDay):
"""
查找到最近的數據
code:股票代碼
lastDay: 最近幾日
"""
end_dt = dt.datetime.now().strftime('%Y%m%d')
time_temp = dt.datetime.now() - dt.timedelta(days=lastDay)
start_dt = time_temp.strftime('%Y%m%d')
df = pro.daily(ts_code=code, start_date=start_dt, end_date=end_dt)
# 倒序
df = df.iloc[::-1]
# 計算5日ma值
df['ma5'] = df['close'].rolling(window=5).mean()
# 圖表方式呈現
plt.plot(df['trade_date'], df['close'],label='close')
plt.plot(df['trade_date'], df['ma5'],label='5ma')
plt.show()
if __name__ == "__main__":
pro = ts.pro_api()
# 顯示新城控股 最新40個交易日的信息
getHistoryTrade(pro,'601155.SH',40)
說明
- python 環境的安裝
我建議在windows下安裝,可以使用, anaconda這個安裝包,安裝python環境的同時,并安裝大量和計算相關的庫,方便后續使用。
- 可視化開發工具
- vscode
- pycharm
都可以
- 股票信息的獲取
我使用的是Tushare數據,當然你也可以使用其他的接口。
你只要在官網注冊一個免費等級的賬號,就能夠滿足你的需求;記得獲取api的token。
在使用前需要pip 安裝
pip install tushare
幾個接口調用方法:具體Tushare數據
def getStock(pro):
"""
獲取stock信息,保存ts_code , symbol 的對應關系
"""
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
# 寫入文件
f = open('log.txt','w',encoding='utf-8')
for i in data.values:
f.write(str(i)+'n')
f.close()
def getMA(code,lastDay):
"""
獲取n日均線和均量
"""
end_dt = dt.datetime.now().strftime('%Y%m%d')
time_temp = dt.datetime.now() - dt.timedelta(days=lastDay)
start_dt = time_temp.strftime('%Y%m%d')
# 通用行情接口
df = ts.pro_bar(ts_code=code, start_date=start_dt, end_date=end_dt,ma=[5,6,18,30,36,60])
dic = df.to_dict('records')
print(dic[0])
- pandas庫學習
- Pandas是Python的一個數據分析包,該工具為解決數據分析任務而創建。
- Pandas納入大量庫和標準數據模型,提供高效的操作數據集所需的工具。
- Pandas提供大量能使我們快速便捷地處理數據的函數和方法。
- Pandas是字典形式,基于NumPy創建,讓NumPy為中心的應用變得更加簡單
比如我們要計算最近10日收盤價的5日均線:
df['ma5'] = df['close'].rolling(window=5).mean()
10日均線:
df['ma10'] = df['close'].rolling(window=10).mean()
- matplotlib庫學習
有了計算數據,我們也需要直觀的表格圖方便我們看出效果。
matplotlib 是python繪圖領域使用最廣泛的套件。它能讓使用者很輕松地將數據圖形化,并且提供多樣化的輸出格式,通過學習各種圖表的接口,可以做出讓你滿意的效果。
最后
事實上,你只需要很基本的python基礎就可以完成一些量化模型:
數據的來源只要熟悉幾個api接口的使用;
矩陣的數據計算需要你熟悉pandas庫;
可視化需要你了解matplotlib 。這些你都可以在1周的時間完全掌握。