量化交易的書籍,《量化煉金術-中低頻量化交易策略研發》讀書筆記-序言,引言
量化交易的書籍,《量化煉金術-中低頻量化交易策略研發》讀書筆記-序言,引言
序言:
- 1.'圣杯’的找尋
2.策略復制性的強大
3.策略的時效性和解釋能力的周期性
4.量化的本質是將思維轉化為數理化規則,借由代碼為工具進行直觀表述
5.量化流程設計與思考,量化策略構建
6.本書大綱:
6.1量化的特征與歷史【國內發展不足】
6.2對研發流程,框架進行總領性論述
6.3問題以及處理辦法
6.4-6.14具體流程,相關案例【擇時,選股】
6.15量化策略評估報告
6.16全書總結,本書不足
筆者自身對于本書的感受:
1.書成系統,這個沒錯,而且有思路,有想法,但是要命的是都是依托于平臺開發的策略,這點《量化投資技術分析實戰》等都有這種毛病,數據的來源,數據的處理,數據的調用,交易運行等都沒有看到,這點是很不利于新手的,而且市面上的書這種情況非常嚴重,既然要仿真無限接近真實的市場,那么為什么不手動搭建這些東西呢?我知道平臺搭建非常難,但是這個是非常重要的,我不知道平臺會不會盜取自己的核心策略,但是將這種策略全部依托于平臺,一旦平臺垮塌或者轉型,很多東西就沒了。
2.受眾定義不清楚,一開始的閱讀還很友好,關鍵地方就上封裝完畢的代碼或者上高數等東西,一點過渡和鋪墊都沒有,這很難說是作者的寫作習慣或者是為了行文的標準,但是這有一種1+1=2到高數的這種過渡。代碼這種東西,展示出來,看多了就好了,封裝的東西只能是一時不是一世,更重要的是自己的搭建和要求不一定和平臺提供的相一致。
3.從目前來看,盡可能分拆交易步驟和環節,為后面的擴容和修改做好準備,也為自己未來的學習方向和資料分類進行準備。
數據源的解決【爬蟲,購買,API】以及數據維護是一個PY文檔,
賬戶建立是一個PY文檔【虛擬盤,實盤,止盈止損】,
股票池是一個py文檔
回測以及圖文展示是一個PY文檔,
策略池以及效果監控是一個py文檔,
投資回報報告是一個py文檔,
市場監控和分析是一個py文檔,【市場簡單分析,機器學習分析】
自動交易是一個py文檔
4.書看多了是好事也是壞事,尤其是重新做筆記的話,重復的東西太多了,其實還是要把基礎知識的東西搞清楚就行,看多了,如果無法歸納和總結,那么反而會被這種海量知識所淹沒。
5.代碼少,自說自的比較多。
第一章 引言:
1.1量化交易策略簡述:
1.量化的定義:
以數理化手段【底層基礎】,通過代碼具象化,構成分析,決策的交易策略。
【數理化將作為量化的基礎,尤其是策略開發的基礎,盡可能降低主觀的情緒干擾和投資沖動,一切的思考都必須通過數據化來處理】
2.量化定義二:
是通過數據的變形,來捕捉市場的變化和趨勢,周期。通過盡可能多的因子,參數來進行捕捉,從而提高當前的判斷能力,便于對未來進行決策。
3.案例一:
統計套利
量化交易的書籍、套利策略的重要部分就是對交易成本進行判斷,盡可能降低交易成本,從而保證足夠的套利空間。
4.案例二:
高頻交易
5.案例三:
【作者的】中低頻量化交易策略
1.2優缺點:
優點:
客觀,便于得出結論以及數據展示,便于移植
【剩下時間,便于集中精力開發,創新策略】
前沿:
神經網絡,支持向量機,隱馬爾科夫等機器學習模型,科學交叉,大勢所趨
缺點:
容易被復制,被盜竊,因子數量龐大只能做取舍,被小概率事件擊垮
第二章 量化交易策略的研發流程
2.1-1流程展示:
2.1-2設計思考:
1.核心策略【買賣持有】與數據處理,評估報告,虛擬盤以及實盤要合理切入。
2.核心策略開發的整體收益為正。
3.對于不同環境下的核心策略的調整【如1996年以前的T+0,如現在新股上市前5天漲跌幅無限制,如可轉債漲跌幅無限制,t+0交易,如個股帶帽,摘帽】,參數的設置,模型的健壯性。是否存在【賣空】機制。
4.回避必須解決“幸存者偏差”的問題。
5.風險控制,倉位計算【針對不同品種,不同的市場環境進行倉位變化和調整】,這里就不僅是賬戶初始化,銀行資金賬戶也需要進行初始化。
6.策略時效性引發的策略調整,多策略運行,市場監控
7.交易運行的交易報告閱讀和分析
8.基準對比【滬深300】
9.歷史數據以及新數據的獲取,更新,維護
一個負的策略可以馬上排除,但是一個正的策略并不意味著好,還需要進行監測,持續跑批,優化處理等。
國金量化多策略怎么樣。2.2量化交易策略研究流程的進一步論述
2.2.1量化選股策略的研發流程
- 不同的策略,不同的風險控制,不同的倉位設計
- 多投資品種間的并行和交易設計
- 無限貼近市場的真實交易
2.2.2量化策略研發流程的變化形式
流程的設計上應該是直線的傳導方式,而不是BABA這樣子的操作。因為個人投資者受限于數據,運算能力,計算能力,開發能力等,在設計上應該更加直接和緊湊,更多的應該是放在策略的開發和市場的分析,監控之上,并生成投資報告,便于及時發現市場的變化,策略的變化和有效性。
2.2.3量化交易策略的整體工作流程:
- 數據處理:
歷史數據下載和保存,
退市個股的停止循環【減少計算壓力】,
新上市個股要及時下載保存,
注意區分是否是ST,
是否是創業板
是否存在賣空機制
是否是創業板新上市的前五天【考慮到能否成交的細節】。
新數據的增加,導入,維護
配合策略的交易級別【分鐘級別,日線,周線,月線】的下載速度和獲取數據的及時性,便于當前交易和第二天交易的參考和需要【實時傳輸數據,收市以后傳輸數據】。
數據結構的前后一致性【分表管理】任何時間段的回測
市場監控以及市場風險/收益的報告
主板市場的風險【主板和構成指數】
指數市場的風險【構成指數和構成個股】
行業市場的風險【行業和行業個股】
強勢漲幅/跌幅的個股風險
別的交易品種的分析,監測
【通過市場監控和風險報告,篩選出交易的可選標的,減少對于系統的運行壓力,通過強勢漲幅來進行補充,執行策略交易,兩個環節來補充整個市場的可選標的,如果出現系統性風險,應當對于品種進行選擇,以規避市場的系統性風險】
品種選擇和倉位選擇
交易成本預判和估計
策略選擇
執行策略
實時監控和報告
交易結束的后交易報告和評估
報告載體:plt,csv,word,軟件展示等
策略的優化和改進
第三章 注意事項與應對
3.1未來信息的規避
- 未來函數的規避和限制【由于日線的數據不能實時拿到,所以當前的買點和賣點只能在收盤后才能夠形成并且發出信號,所以對此的處理是,1.在回測部分,將整體下移一位,2.在實盤中列入自選股】
量化投資書籍推薦?3.2過擬合與欠擬合
- 數學語言:殘差無限趨近于0或者無限趨近于無窮大
- 模型解釋:過于復雜或者簡單
- 市場表現:對于行情解釋能力較弱【泛化能力較差】
- 賬戶盈虧:交易出現風險的可能性很高
- 樣本影響:隨著數據的增加,策略效果會發生變化,尤其是先【小樣本】再【大樣本】再【總體】會發生策略額概率變化,因此合理的【選擇樣本】(choice_sample)是影響策略的使用情況。
先驗概率:這里我們要強調的是,策略是先驗概率,是通過觀察和分析得到的,是歷史的結果,它能否解釋未來,是需要未來的走勢能不能重復,或者貼近走勢,才能再次實現的。本身來講,策略有【先入為主】的觀點。
后驗概率:則是通過大數據挖掘,統計等方式發現其共同點,從而尋求交易的可能性。
**參數考慮:**參數越多,越會影響數據擬合交易的能力,從而導致整個策略失靈,但是這個要辯證的來看待。其次,我們最終要做的是將能夠解釋能力較強,有因果關系的【因子-股價】的關系進行分析,但實際上這種不現實,它不能像生物科學一樣物理假設一樣等情況,通過增加或者減少甚至抑制因子的情況下來進行重復檢驗,重復測試,這對于量化來講是很不友好的,我們不能去取消【成交量】、【均線】、【基本面】等情況來看待【股價】的變化,事實上也無法做到這一步,更重要的是無法進行重復試驗,還能夠得到同樣的結論和結果,在套用統計理論上,我們得到更多的應該是協方差,R2系數,卻不能解釋協方差,R2中品種之間,因子之間是否存在【因果關系】的情況。
設計考量:希望投資者能夠重視這個情況。
3.3回溯測試與真實環境的差異
- 當前交易上存在的差異與當天收盤數據的差異:當日最高價可能會觸發交易信號,然后收盤價格會低于最高價,信號消失。尤其是歷史回測中,這種情況很容易出現,如果一旦放開交易策略則很容易導致策略的效應失敗概率會進一步上升【提示:盤中交易存在風險】,圖例展示中,股價觸及信號點達到三次,但是最終也沒有形成信號:
均線交易解決問題:
(1)尾盤交易
(2)增加限制條件
(3)延緩交易日期,增強交易策略的健壯性,忽略騙線 - 實際交易:存在滑點,交易費,手續費,正手交易等交易成本,停牌,臨停等市場制度,不同的交易市場品種的漲跌幅交易限制,資金門檻等。
- 流動性:因為個股行情的變化,突然暴跌,突然暴漲封板,信號觸發,但無法買入或者賣出的情況。
- 股票價格:因為不同市場計算導致賬戶無錢買入同等金額,比如可轉債市場,滬市可轉債后面有兩位小數,深市,創業板等價格后面有三位小數。
盡可能謹慎相信回測的結果,增加回測的樣本,加強回測數據的健壯性。通過平均值等統計量進行分析。
第四章 簡單的擇時策略:
4.1基本框架:
基本框架:
- 單側做多
- 只涉及【買賣】-【收益評估】,其他不考慮
- 交易狀態【多頭】、【空頭】,資金賬面反映是【持幣】、【持股】兩個階段
- 跟隨系統,不做預測
量化策略qec策略量化平臺,基本框架2.0版本:
- 雙邊交易
- 涉及雙向買賣 交易周期拉長
- 成交機會增加
- 【多頭交易機會】、【空頭交易機會】、【持幣階段】
擇時上的策略調整,嵌套最容易,系統健壯性最強。
機器學習模型和量化模型不能【拿來主義】,要弄清楚內部的邏輯,尤其是針對策略核心而言,相比于數據處理,更重要是數據結構和處理內容必須保持一致,清洗數據是必然的。
4.2均線趨勢策略的簡單優化
- 策略內容:短期均線【N】,長期均線【M】,N>M,sign:buy,N<=M,sign:sell.
- 對象:全體數據
- 案例:滬深300股股指期貨主力合約
- 優化:N,M不限制特定值,可以通過窮舉法進行測算【這里就必須要求策略進行封裝,然后通過迭代進行測算】
- 優化1.0:通過斐波那契數列對N,M進行賦值,生成收益矩陣,并展示。
4.3均線反轉策略的簡單優化:
- 本章沒有寫清楚,筆者找了個案例
- 案例文章:《量化策略:如何用均線生成反轉信號》
- 地址:添加鏈接描述
#理論定義:
#均線交易的特點:1.把握趨勢,2.簡單可靠,3.確定支撐和阻力位,設置止損和止盈4.統計顯示,趨勢上升必然趨勢下降【理論的來源】,物極#必反。
#其實也就是和一般的均線交易策略進行相反交易,不同的是一般的均線交易策略是右側交易,而反轉交易則是左側交易。
#作者提出一個概念:移動平均寬度指標(moving average width indicator),簡稱MAWI。
#策略構建步驟:
#1.建立兩條不同的均線,
#2,計算不同均線之間的寬度【但是沒有看到有絕對值,負值的情況說明】,這里應該要取絕對值,根據后面策略的部署來看。
#4.歸一化處理
#5.數據展示:
#收盤價、MAWI(N,M)數據,歸一化數據MAWI(P)。
#6.邏輯判斷:
#歸一化的MAWI(P)[i]==0,歸一化的MAWI(P)[i-1] >0,做多。
#MAWI(P)[i]==100 and MAWI[i-1]<100,做空。
#7.運行并成果展示
4.4自回歸策略的簡單優化
1.理論介紹:
策略研發工程師、由于作者在這里一段都是大段文字說明,所以筆者搜索一下網上的相關資料進行補充,便于學習和加深印象,同時進行整理和歸納,為后面的統計學習深入奠定基礎。
引用文章一:
《時間序列預測基礎教程系列(7)_如何用自回歸模型(AR)預測時間序列預測(Python)》
【代碼后面再寫,先將讀書筆記整理出來】
第五章 簡單的選股策略
5.1因子選股的基本框架
筆者的感悟:
如果技術指標還有一點讓人相信的話,那么單因子,多因子的解釋上就差強人意,畢竟【價增量增】、【縮量上漲】等都是能夠讓人信服和解釋,而且重要的是,一旦量能的變化與個股的變化也一致,這里就解釋了一個關鍵,當終止一個因子的時候,或者限制一個因子的時候,股價就發生了變化。但是因子這種東西,原有的加上變化的因子,無法搞清楚這些因子對于股票的影響,同時由于數據上的跨度過大,還是需要進行歸一化處理才行。至少筆者沒有看到這種【因果關系】上的論證。
相比于技術面的分析,基本面的調用上更加復雜,相對于一般投資者而言,運行和維護多因子的推論上是一件很困難的事情,相反,單因子反而很好處理。
相關的數學說明就不寫了,因為筆者的統計學讀書筆記也寫到這里了,就不再廢話了。
5.2市值因子
- **舉例:**2009年開始的中小市值大漲,2017年的權重股大漲
- **法瑪的研究表明:**股價隨著市值變化而變化
- 作者驗證以及結論:
試驗對象:主板,中小企業板,創業板分類的全部A股【每個分類要抽取30個樣本以上才可以】,
試驗時間:1991-2010年【跨度牛熊市】,
交易周期:月調倉,
交易策略:按因子大小排序若干等分,進行交易
試驗目的:股價未來收益與因子的關聯程度
真實市場的考慮:存在停牌,漲跌停,臨時停牌等無法交易的情況以及無法做空
對策:先篩選,剔除,再交易
交易價格和倉位:每月收盤價,等金額買入。
評估參數:r.mean()
的開發策略、5.2.1市值因子選股3等分
就是將上面的按市值大小進行分類和迭代。
5.2.2市值因子選股10等分
進一步劃分,增加間隔,找出因子與股價的關聯
5.2.3市值因子選股30等分
同理
5.3反轉因子
筆者能夠理解的是【扭虧為盈】、【由盈到虧】。
5.4多因子選股策略的簡單優化
【多元線性回歸】
研發策略及關鍵技術,這里筆者說幾句,這里的多因子分析一定要將因子進行相關性分析,將能夠解釋價格的因子或者與因子變化關聯度高的進行多元線性回歸,不然很難得到正確的解釋,進行構建,迭代也是【差之毫厘謬以千里】。
【筆者回測過浦發銀行,反而發現另一個問題,主營業務收入和股價沒有關聯性,反而是跟主營業務增收率與股價反應一致】
第6章 推進分析
6.1推進分析框架
- 檢驗是否存在過擬合,欠擬合等情況
- 思路大體與機器學習高度重合,這里筆者就不展開學習了。
- 策略經過周期檢驗時長,增加策略的可靠性,但是不能忽略的是,策略有時效性,盡管建立在能夠解釋價格的基礎上,我們仍然要警惕這種解釋能力隨著時間的變化引發市場變化導致的衰退,失靈。
- 持續迭代和喂入數據的做法對個人投資者在部署上的計算機成本要求很高,尤其是面臨注冊制的環境下,這里就很能夠感受到市場變化,市場的復雜程度,我們的框架只能不斷逼近這個過程,無法完全模擬和仿真。
- 我們要對市場的走勢進行先期定義和標記,才能在封裝后出來的數據進行合理的判斷。
6.2多層推進分析
- 解釋策略的泛化能力
6.3推進分析下的驗證
作者這個完全就是機器學習的思路來對策略進行監測,但是分層抽樣需要嚴格定義,迭代周期長度需要嚴格定義【因此必須剔除停牌,退市的個股】,但是策略的泛化能力會大打折扣,畢竟我們的假設都是個股是【存續期間】,不同的環境定義和分割只會造成不同的篩選對象。從這點來講,要想真的做到這一點很難。只能縮短回測周期,降低【幸存者偏差】的概率,防止這種臨停存在對于策略的干擾和沖擊。
量化對沖、第七章 推進的擇時策略
7.1均線趨勢策略的推進分析
- 筆者還是那句話,均線這些都是存在滯后性的,只能用歷史、成本的角度來對于當前位置的分析和探索,是否可靠存在一定的偏差,用滯后性的東西來解釋當前和未來,必須要承認【歷史會影響到當前和未來】的邏輯關系上,如果我們否認這個關系,那么均線的策略交易是沒有意義的。更重要的是均線在年份不好的情況下,解釋能力極差,短線交易頻率上升,假信號,騙線等事項更多,似乎只有當前走勢強,才能帶動均線的強勢和可靠性,那么這樣子,均線又怎么能夠反過來解釋日線的走勢呢?這是一個非常矛盾的地方。而且由于不同市值的個股在突破,強勢突破的數據不相一致,則必須進行歸一化處理,將突破的成功的可能性進行處理,從而得到一個區間,必要的時候還要對這個區間進行再次分類,提高精度。
- 推進分析必須將周期長度的環境進行定義,或者說先將樣本與標的進行相關性分析
- 在這里,筆者思考到,如果我們的環境中只存在【平緩】、【周期】的情況下,是如何在數據關系緊湊的情況下得到一個穩定的收益的?我們更多還是通過捕捉到【市場的異常點】來發現市場的巨大變化,如同2015.4.20南北車合并開市以后,巨量,暴跌,連續暴跌,并導致人死亡以后,才發現牛市可能終結的情況?更為怪異的是,筆者曾經對2015年的各個行業指數進行復盤,發現,券商自2015.4就停止了上漲,開始不斷下跌的趨勢。如果我們還是依靠【平均值】等統計學上的認知來進行分析,監控市場,會得出很大的問題,造成認知上的巨大偏差的。
- 漲幅,巨大漲幅,跌幅,巨大跌幅都應該存在著異常,我們應該將離群點進行高度重視和認識,集中我們的精力來對待某些異常點,這里對于均線上的認識也是一樣,如果我們通過驗證,得到在股市背景環境下的定義的時候【即先行對市場,主板市場進行判斷牛、熊、猴】對于均線突破的點進行異常點判斷,同時進行歸一化處理,便于計算和數據展示,報告說明。
- 如果我們單對點進行背景分析,那么我們可能只會得到一個結論:行情好的時候,任何指標的突破都是真突破的概率更高,而行情差的時候,任何指標突破都是假,跌破反而真的概率更高的情況,而這種情況下,即便是爆發【風格】、【行業】等背景的個股的聯動,都會被這種解釋性的平均化所稀釋,從而導致整體市場觀念的破碎,這種分析是存在很可怕的認知偏差的,因此,在某種程度上來講,我認可作者在對于樣本分組上的不斷細化,從而找出更多的異常點與背景進行比較,從而找出關聯度較高的因子情況,并將這種解釋性的因子對其他個股進行迭代,從而進行證偽。我們無法阻止限制股市的因子或者取消這個要素,畢竟它的每一筆變化都在增加其他數據,這個是無法規避的,不能像生物科學一樣,物理實驗一樣。所以我們能夠得到的更多是相關性上的高度關聯,而不能得到相應的因果關系。這是任何模型建設和構建中必須注意和引起警惕的。
- 7.2均線反轉策略的推進分析
【略】
7.3均線回合策略的推進分析
- 從本書的作者的凈值走勢上來看,我們會發現統計學上的缺陷性認知和策略泛化上對于市場捕捉能力的嚴重偏差。
- 通過圖例我們可以看到,凈值變化中無法解釋2013年的上海自貿區的大漲,畢竟相對于整體而言,樣本的數量,體積占比實在是太少了,所以你幾乎看不到這種局部牛市存在的情況。
- 更多的是,牛市到來,帶來整體收益的上升,這也就是意味著不是均線解釋了牛市,而是牛市使得均線策略變得更加可靠。
- 如果這種關聯性建立起來,就會發現這種頗為荒謬的結論而陷入巨大的矛盾之中無法自拔。
7.4自回歸策略的推進分析
由于作者沒有給出嚴格的數學推理,代碼,我看不懂,對于時間序列這塊還沒有深入研究,所以只能忽略。
但是從圖例來看,自回歸的分析上有一定的解釋能力,但是在收益上的變現過于陡峭,高點的位置續存時間不長,突破前期收益的代價【回測】,耗時都有一定的距離,需要有很明顯的耐心和預測能力。
7.5自回歸策略的多層推進分析
策略。【略】