python量化日記
⑴ python量化投資是什麼
量化投資是指通過數量化方式及計算機程序化發出買賣指令,以獲取穩定收益為目的的交易方式。在海外的發展已有30多年的歷史,其投資業績穩定,市場規模和份額不斷擴大、得到了越來越多投資者認可。從全球市場的參與主體來看,按照管理資產的規模,全球排名前四以及前六位中的五家資管機構,都是依靠計算機技術來開展投資決策,由量化及程序化交易所管理的資金規模在不斷擴大。
python是一種編程語言,python量化投資也就是通過使用Python編寫能夠發出買賣指令的程序來交易。
⑵ python量化交易半個月可以學會嗎
python量化交易半個月可以學會的。
如果已經有了Python基礎,半個月可以入門的,如果沒有Python基礎,就先學Python,學一兩個月有了基礎後,再結合量化交易的模型,邊學Python語言,邊學以Python實現量化模型,上手也會很快的。
大家可能覺得搞量化的人就是整天和大量數據打交道,用一行行代碼寫出復雜的模型,然後沒完沒了地Run,在回測和優化中掙扎,沉浸在數學和統計海洋里的一群人。
實際上,這只是表面現象。雖然每個搞量化的人必須會寫代碼,也必須具備扎實的數學功底,在開發策略的過程中,的確需要分析大量數據,不斷做回測和優化,但是,這一切的背後是強大的金融思維和對金融市場的深刻理解在支撐的。
換句話說,如果你沒有經濟、金融的完整知識體系和工作經驗,或者沒有正確的、科學的思維方式,無論數學多麼地好,也很可能在做無用功;即便編程多麼在行,也只能淪為碼農一枚(沒有歧視程序員的意思哦)。
反過來說,如果你具備科學的思維和邏輯,並發現了經濟、金融的某些規律,想做Quant就不難了。接下來,你只需花點時間學習編程工具,好好利用數據和代碼為你實現自己的想法。
⑶ python 為什麼適合做量化
python是一個完全面對對象的可腳本,可二進制編譯運行的高級語言。一般以腳本方式運行,運行調試完可生成二進制代碼來保證運行的速度。代碼非常簡潔
擁有無與倫比的配套標准庫。一般廣泛用於各種領域。尤其在科學界流行。
在python環境下,有科學運算庫,界面庫,各種演算法庫。非常適合用於科學研究。
matlab中的金融工具雖然比較全面,也比較好用,不過像我這種喜歡搞些新演算法。同時還要和交易介面編程的就非常喜愛python了。
python的演算法庫 :numpy ,scipy等,用於統計的庫。
python的數據可視化庫 matplotlib(上面那個貼圖就是例子),PyQt,pygtk,pyside等等,前面說的都是二維的。三維的VTK等等。
而且今後和CTP等交易平台對接的話,matlab就無能為力了,到時候再學python豈不是晚了。
⑷ 如何用python量化交易
用Python來進行量化交易大多是只能在平台上進行量化分析,具體到實際投資上很少的。
⑸ python 離散型數據怎麼量化
python 離散型數據量化的方法可以採用變數轉換方法來解決,分類數據和連續數據需要參與模型計算,並且通常會轉換為數值數據。
當然,某些演算法允許這些數據直接參與計算,例如分類演算法中的決策樹和關聯規則。將非數字數據轉換為數字數據的最佳方法是將所有類別或有序變數的范圍從一列多值形式轉換為僅包含真值的多列。可以將True值傳遞給True,False或0、1。這種符號轉換方法有時稱為真值轉換。
具體代碼是:
import pandas as pddata = [.
['yellow', 'S', 10.1, 'class1'].
['red', 'M', 13.5, 'class1'].
['red', 'M', 15.1, 'class2'].
['blue', 'XL', 15.3, 'class2'.
df = pd.DataFrame(.
data,columns=['color', 'size', 'prize', 'class'].
python 離散型數據用連續數據處理的方法是:
1、等寬法:若數據區間為0~20,設置箱子個數為4個,則等寬法會將數據裝入4個箱子:[0,5],(5,10],(10,15],(15,20],並且可以設置每個箱子的名字,如1、2、3、4。
等寬法缺點是分箱結果會受到最值影響。並且需要人為指定箱子個數,比較依賴於經驗。分箱結果會直接影響後續分類、聚類的結果。
2、等頻法:等頻法是指將一組數據分解成n個部分後,每個部分的記錄數量是一樣多的。等頻法常用pandas庫中的qcut()函數進行處理。
⑹ 怎麼學習python量化交易
下面教你八步寫個量化交易策略——單股票均線策略
1 確定策略內容與框架
若昨日收盤價高出過去20日平均價今天開盤買入股票
若昨日收盤價低於過去20日平均價今天開盤賣出股票
只操作一隻股票,很簡單對吧,但怎麼用代碼說給計算機聽呢?
想想人是怎麼操作的,應該包括這樣兩個部分
既然是單股票策略,事先決定好交易哪一個股票。
每天看看昨日收盤價是否高出過去20日平均價,是的話開盤就買入,不是開盤就賣出。每天都這么做,循環下去。
對應代碼也是這兩個部分
definitialize(context):
用來寫最開始要做什麼的地方
defhandle_data(context,data):
用來寫每天循環要做什麼的地方
2 初始化
我們要寫設置要交易的股票的代碼,比如 兔寶寶(002043)
definitialize(context):
g.security='002043.XSHE'#存入兔寶寶的股票代碼
3 獲取收盤價與均價
首先,獲取昨日股票的收盤價
#用法:變數=data[股票代碼].close
last_price=data[g.security].close#取得最近日收盤價,命名為last_price
然後,獲取近二十日股票收盤價的平均價
#用法:變數=data[股票代碼].mavg(天數,『close』)
#獲取近二十日股票收盤價的平均價,命名為average_price
average_price=data[g.security].mavg(20,'close')
4 判斷是否買賣
數據都獲取完,該做買賣判斷了
#如果昨日收盤價高出二十日平均價,則買入,否則賣出
iflast_price>average_price:
買入
eliflast_price<average_price:
賣出
問題來了,現在該寫買賣下單了,但是拿多少錢去買我們還沒有告訴計算機,所以每天還要獲取賬戶里現金量。
#用法:變數=context.portfolio.cash
cash=context.portfolio.cash#取得當前的現金量,命名為cash
5 買入賣出
#用法:order_value(要買入股票股票的股票代碼,要多少錢去買)
order_value(g.security,cash)#用當前所有資金買入股票
#用法:order_target(要買賣股票的股票代碼,目標持倉金額)
order_target(g.security,0)#將股票倉位調整到0,即全賣出
6 策略代碼寫完,進行回測
把買入賣出的代碼寫好,策略就寫完了,如下
definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔寶寶
defhandle_data(context,data):#每日循環
last_price=data[g.security].close#取得最近日收盤價
#取得過去二十天的平均價格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得當前的現金
#如果昨日收盤價高出二十日平均價,則買入,否則賣出。
iflast_price>average_price:
order_value(g.security,cash)#用當前所有資金買入股票
eliflast_price<average_price:
order_target(g.security,0)#將股票倉位調整到0,即全賣出
現在,在策略回測界面右上部,設置回測時間從20140101到20160601,設置初始資金100000,設置回測頻率,然後點擊運行回測。
7 建立模擬交易,使策略和行情實時連接自動運行
策略寫好,回測完成,點擊回測結果界面(如上圖)右上部紅色模擬交易按鈕,新建模擬交易如下圖。 寫好交易名稱,設置初始資金,數據頻率,此處是每天,設置好後點提交。
8 開啟微信通知,接收交易信號
點擊聚寬導航欄我的交易,可以看到創建的模擬交易,如下圖。 點擊右邊的微信通知開關,將OFF調到ON,按照指示掃描二維碼,綁定微信,就能微信接收交易信號了。
⑺ 用python做量化交易要學多久
5個月。
python憑借其突出的語言優勢與特性,已經融入到各行各業的每個領域。一般來說,python培訓需要脫產學習5個月左右,這樣的時長才能夠讓學員既掌握工作所需的技能,還能夠積累一定的項目經驗。當然如果你想要在人工智慧的路上越走越遠,則需要不斷的積累和學習。
python培訓的5個月時間里,有相當大一部分時間是在實戰做項目,第一階段是為期一個月學習python的核心編程,主要是python的語言基礎和高級應用,幫助學員獲得初步軟體工程知識並樹立模塊化編程思想。學完這一階段的內容,學員已經能夠勝任python初級開發工程師的職位。
(7)python量化日記擴展閱讀:
Python開發基礎課程內容包括:計算機硬體、操作系統原理、安裝linux操作系統、linux操作系統維護常用命令、Python語言介紹、環境安裝、基本語法、基本數據類型、二進制運算、流程式控制制、字元編碼、文件處理、數據類型、用戶認證、三級菜單程序、購物車程序開發、函數、內置方法、遞歸、迭代器、裝飾器、內置方法、員工信息表開發、模塊的跨目錄導入、常用標准庫學習,b加密 e正則logging日誌模塊等,軟體開發規范學習,計算器程序、ATM程序開發等。
⑻ 用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
⑼ 用python怎麼做量化投資
我目前也在學習量化,現在在學習Python,還有一些具體的模型,太多了!沒事可以多交流
⑽ 怎麼學習python量化交易
找一些含有Python量化分析、Python量化交易的教程,跟著學一學,如果自學難度大,可以報班學習,反正辦法總比困難多!