定義:量化投資就是利用數學、資訊學、統計學等領域的技術對投資物件進行量化分析和優化,從而進行精確投資的行為
-
特點:
- 基于市場是非有效的或弱有效的基礎,
- 紀律性:絕對相信模型,
- 系統性:多層次、多角度、多資料,
- 妥善運用套利的思想,找估值洼地,低估買,高估賣,
- 靠概率取勝,
-
核心----量化模型
- 多因子選股模型:打分法、回歸法
- SVM擇時模型
以上基礎知識為博客申請以前所學,每日分享一點,
以下內容為今日所學:
首先,我使用了python作為我的資料分析語言,這里簡單說一下我的理由,
- 雖然我的參考書《量化投資--資料挖掘技術與實踐》是基于matlab,但是matlab雖然相比于python有一些作圖上的優勢,但常用的基本資料分析能力二者是相差不大的,而且python語法簡單易懂,
- python使用人數是多余matlab的,這里不要去特立獨行,使用的人多代表它的錯誤更少,功能也更齊全,
- python節省了我的時間成本,matlab我需要從頭了解,
所以我基于python,今天主要分享一些獲取資料的方法:
python這邊有許多介面都可以獲得金融相關資料,當然其他資料應該也有,墨默并沒有去了解他們,
這些股市相關資料的介面封裝在pandas內部,有的朋友們可能了解過,之前是在pandas.io.data里面封裝的,但是現在早已經換地方了,再次通過pandas.io.data匯入會報錯,
現在我們可以在 pandas_datareader.data 匯入:
1 import pandas_datareader.data as web
在這里我們以在雅虎中讀取資料為例:
代碼十分簡單:
1 start = datetime.datetime(2019,8,1) #開始時間 2 end = datetime.date.today() #結束時間 3 4 apple = web.DataReader("AAPL","yahoo",start,end) #在雅虎獲取蘋果公司(AAPL) 5 #2019年8月1日以來的資料 6 type(apple) #查看資料型別:pandas.core.frame.DataFrame 7 apple.head() #列印前5行代碼 8 9 apple.to_csv("url/apple.csv") #將資料存盤到名為apple 的csv檔案
運行結果:

apple.csv:

對于資料分析而言可視化是必不可少的,畢竟我們在資料預處理階段不能拿著一張海量資料的表去看那一條資料有問題……
我簡單的做了一條折線圖:
1 import matplotlib.pyplot as pl 2 %pylab inline 3 4 pylab.rcParams['figure.figsize'] = (15,9) #定義畫布大小 5 apple.plot(grid = True) #

除了雅虎之外我們的python還可以通過tushare獲取資料
Tushare是一個免費、開源的python財經資料介面包,主要實作對股票等金融資料從資料采集、清洗加工 到 資料存盤的程序,能夠為金融分析人員提供快速、整潔、和多樣的便于分析的資料,為他們在資料獲取方面極大地減輕作業量,使他們更加專注于策略和模型的研究與實作上,考慮到Python pandas包在金融量化分析中體現出的優勢,Tushare回傳的絕大部分的資料格式都是pandas DataFrame型別,非常便于用pandas/NumPy/Matplotlib進行資料分析和可視化,
1 import tushare as ts 2 import matplotlib.pyplot as plt 3 import mpl_finance as mpf 4 import numpy as np 5 6 data = https://www.cnblogs.com/ambdyx/p/ts.get_k_data('600519', ktype='D', autype='qfq', start='2017-09-17', end='') #資料獲取 7 8 prices = data[['open', 'high', 'low', 'close']] 9 dates = data['date'] 10 11 candleData =https://www.cnblogs.com/ambdyx/p/ np.column_stack([list(range(len(dates))), prices]) 12 13 fig = plt.figure(figsize=(10, 6)) #畫布 14 ax = fig.add_axes([0.1, 0.3, 0.8, 0.6]) 15 16 mpf.candlestick_ohlc(ax, candleData, width=0.5, colorup='r', colordown='b') 17 18 plt.show()#展示View Code
運行結果:

今天的分享暫且到這里,明天持續更新!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/115722.html
標籤:其他
上一篇:java8-計算時間差的方法
下一篇:Canny演算法檢測邊緣
