筆者目前是一名個人量化交易愛好者,以前有一些主觀交易的經驗,有數學和金融的背景,在買方干了兩年左右,14年7月判斷要來一波行情,就辭職出來,當了一個專職散戶。 我們這一類的量化愛好者,對金融市場有所了解,以前是主觀交易轉過來的。我之所以選擇量化,看重的還是量化的紀律性。克服貪婪和恐懼,僅從這點而言,量化交易有先天的優(yōu)勢。 就我這類人而言,數學背景有(學渣這么說是不是大言不慚),算法編程能力有,對金融和市場的經驗也算有,那么唯一的短板在于偏計算機的編程能力,比如怎么去搞底層的接口,下單通信問題怎么解決。學習一下當然是能學會的,但是感覺這樣學性價比較低。術業(yè)有專攻,有這個時間,不如多思考一下市場,多看看新聞。 當前的A股市場,由于這輪暴跌,程序化交易暫時受到嚴格的監(jiān)管。但長遠來看,量化是一個趨勢,重新開放是遲早的事情。從另一個方面講,在A股T+1的限制下,程序化下單其實并不是那么重要,完全可以程序化判斷,手動下單,打造一個半自動的系統(tǒng)。 因此,如果有一個好的一站式的解決平臺,確實能方便很多。 所以,看到中國的量化交易網站有了蓬勃發(fā)展苗頭,其實我心里還是很高興的。我跟其中的一些創(chuàng)始人也認識,對這種互聯網創(chuàng)業(yè)的精神非常的認可和佩服。 那么這里我也提提我關于策略開發(fā)流程標準化,尤其是回測流程標準化方面的一些思考和觀點。希望和各個平臺能多交流,同時也和身為個人量化交易愛好者的同好們多交流。 首先,量化的開發(fā),其實是一個比較有專業(yè)性的東西,不能完全屬于C端。所以,為了滿足功能的完全性,對于便捷性肯定要有所犧牲,不能像互聯網小白產品那樣。打個比方,市場相當于一個黃金產區(qū),地底可能埋著金子,那么量化策略相當于挖礦工具。那么量化平臺,其實相當于制造這類工具的車間,是為了制造一些生產資料(策略)而進行的。那么這個車間復雜度必然無法降低到消費品的等級。 這點上希望開發(fā)者能把握一下。最好的情況,自然是上手簡單,想要進一步深入,也能提供豐富的工具。但如果不能同時滿足上述兩條,則需要優(yōu)先滿足第二條,即功能全面性。復雜度高點也無所謂。另外一個原則,就是盡量讓用戶自決。也就是說,量化網站不要替用戶做出決定,比如回測的時候,強制用戶以收盤價,或者平均價來成交。可以提供一個參數,用戶自己決定。另外,有些股票可能不會成交,例如上證指數。但是如果用戶在回測中愿意使用上證指數作為標的物,也可以提供這方面的??傊诤侠硇院挽`活性的抉擇上,盡可能的提供靈活性。而合理性的判斷,交給用戶。 對于開發(fā)一個策略的完整流程,步驟應該比較標準,很多人都提到過,也不重復了,大概就是遵循:有一個idea(歷史數據統(tǒng)計,某些顯著的Alpha)->回測->實盤(模擬盤)這個過程。那么對應的平臺模塊呢,也需要滿足這三個模塊去對應三個功能。這次重點說說回測這個模塊。有關回測,個人認為,完整邏輯如下圖所示: 標準化的回測,就是在每個時間跨度下,將上述的流程進行一遍。這個時間跨度是給定的,可以按照分鐘,也可以按照交易日,也可以按照tick。 而在上述流程中,信號處理模塊和資金管理模塊,就是我們通常意義上所說的“策略”這里把策略定義一下:所謂的策略,就是一個函數,輸入的是各種信號,輸出的是倉位比例。這里,我們暫時將討論范圍限定到傳統(tǒng)技術分析所需要的信號上,也就是市場的價格、成交量和時間三要素,并稱其為市場信號。 那么,策略就是一個函數,記為S,則有倉位比例=S(市場信號的集合,當前的倉位)。 但是,從實際操作上出發(fā),對于策略S,我們又可以分為兩個函數,即信號處理函數,和資金管理函數。為什么要分為兩個函數?一方面,從邏輯上而言,人們就是這樣思考的:先找出市場信號,根據市場信號測算未來的收益率的分布函數,再根據未來收益率的分布函數推出資金管理比例。另外一方面,如果將策略函數S拆分成兩個函數,則會產生中間變量(往往是未來收益率的分布),有:中間變量=S1(市場信號的集合)倉位比例=S2(中間變量,當前的倉位)。 而對中間變量的考察和操作,也能更好對策略進行評估。寫上面這么一堆的意義在哪里呢?目的是把用戶的需求抽象化,標準化,然后在此基礎上,來說明用戶需要什么樣的服務。目前的量化平臺網站大體上也是按照這么一個流程開發(fā)的,只是沒有網站在用戶引導的時候,清楚的歸納一下,提出個標準化的東西罷了。 按照這個標準,其實回測函數可以分為三部分,當然如果策略本身不復雜,寫到一個函數中也可以。同時希望平臺也提供一下三個函數的回測模板,每個函數聚焦一個功能上。比如信號的函數就是信號函數,處理完了再傳遞給資金管理的函數,然后再傳遞給交易成功與否的函數。這樣邏輯可能更清晰一些。另外,我們需要的服務就是對每一步數據,能夠提供方便的保存,記錄和查看的功能。 也就是說,能方便的提供一個矩陣,將中間變量根據時間矩陣化,能導出到excel上。再此基礎上,如果能做到網頁上的數據可視化是加分項。舉個例子,如果策略是5日金叉10日,并且成交量大于金叉前5天的平均值時買入,倉位占比50%,10日均線死叉5日均線賣出,清倉。那么,我就需要將5日線和10日線金叉的信號全部記錄下來。首先,我要看看這個5日線金叉10日線的判斷在什么日期發(fā)生了。同時,我需要將成交量大于前5天平均值的交易日也全部記錄下來,然后再比較這兩者同時發(fā)生的情況。這個記錄下來是什么意思呢,就是說我肉眼要看到,在這一天,確實有信號發(fā)出來了??赡艿那闆r下,我還想驗證一下,這些信號發(fā)出的對不對,可能還需要跟原始數據比較一下。 在5日線金叉10日線這個策略中,可能矩陣不矩陣都沒關系,打出日志也是能查的,但是如果策略復雜了,表格化對分析探討是非常有幫助的。因此,這個的中間數據制表操作的簡化功能,是我認為目前網站可以稍微研究一下的功能,而對于用戶來說,確實能大大的方便開發(fā)進程。當然,以上的指標工具,是在歷史數據精確的前提下提出的。如果數據都不精確,那么皮之不存,毛之焉附。在資金管理模塊中,自然也涉及到制表的功能,其實上面的圖中,畫著方框的三個模塊,都需要一個簡化的對中間變量制表的操作。 而對于最后一個模塊,交易成功判斷與否,這個跟模擬盤有極大的關系,我們以后再討論。有一個滑點的問題是需要提一句的:滑點分為兩種,一種是市價單成交價格滑點,另外一種是限價單時間。兩種可以統(tǒng)稱為滑點。在回測中,滑點的判斷應該完全交給用戶,滑不滑,滑多少,用戶說了算。而且,在進行回測的時候,需要給用戶一個功能,就是每調用一次回測函數,用戶都可以隨時更改滑點參數的設置,應付不同的市場狀況。 責任編輯:張文慧 |
【免責聲明】本文僅代表作者本人觀點,與本網站無關。本網站對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。
本網站凡是注明“來源:七禾網”的文章均為七禾網 levitate-skate.com版權所有,相關網站或媒體若要轉載須經七禾網同意0571-88212938,并注明出處。若本網站相關內容涉及到其他媒體或公司的版權,請聯系0571-88212938,我們將及時調整或刪除。
七禾研究中心負責人:劉健偉/翁建平
電話:0571-88212938
Email:57124514@qq.com
七禾科技中心負責人:李賀/相升澳
電話:15068166275
Email:1573338006@qq.com
七禾產業(yè)中心負責人:果圓/王婷
電話:18258198313
七禾研究員:唐正璐/李燁
電話:0571-88212938
Email:7hcn@163.com
七禾財富管理中心
電話:13732204374(微信同號)
電話:18657157586(微信同號)
七禾網 | 沈良宏觀 | 七禾調研 | 價值投資君 | 七禾網APP安卓&鴻蒙 | 七禾網APP蘋果 | 七禾網投顧平臺 | 傅海棠自媒體 | 沈良自媒體 |
? 七禾網 浙ICP備09012462號-1 浙公網安備 33010802010119號 增值電信業(yè)務經營許可證[浙B2-20110481] 廣播電視節(jié)目制作經營許可證[浙字第05637號]