量化策略的大難題:該怎樣認識量化策略的參數?怎樣認識對參數的調整?怎樣認識調整和堅持的關係?
一個非常複雜、困難而深刻的問題,多少觸及到一些量化交易的本質。
問題本身分為以下多個子問題。
(1)為了簡單起見,這裡提到的量化策略是指能通過代碼進行表達或者建立、能進行性能評估和自動化交易的單個模型或者多個模型的固定組合,既包括常見的描述市場條件和指標條件的交易模型,也包括通過機器學習等各種方法進行擬合後轉換的交易模型。那麼,按照知乎的老傳統,先問是不是,或者有沒有,這裡就是問一個量化策略到底有沒有參數?恕孤陋寡聞,還真沒見過完全不需要參數的策略(有知道的請介紹一下開開眼),多少都有一些,固定的或可變的,區間長度、波動幅度、因子係數、組合係數等等都是。
(2)假定大家都認同策略有參數,那麼一個策略在同一個品種、同一個周期、只是參數不同的情況下,我們應當把它視為同一個策略還是不同的策略?參數相近很可能表現接近,但參數及其表現經過貌似連續的變化後有了距離,又可能表現出截然不同的效果,就像是兩種模型一樣。也就是說,策略邏輯和參數取值是否能分離對待?再引申一步,都說一個策略(正收益的)必須堅持下去才有效果,那麼我們堅持的究竟是策略邏輯而參數可調?還是堅持的策略邏輯和參數都不變?
(3)如果認同參數不變,優化沒有意義,那麼(3a)如何設置參數初始值?有什麼標準?完全是根據過去的交易經驗?還是撿一個眼緣不錯的,認定只要邏輯正確就行?如果認同參數可變,那麼一般是認為歷史回測和參數優化是有意義的,那麼(3b)根據什麼標準來選擇參數?調整參數時是否還是同樣的標準?
(4)無論是3a還是3b,無論是交易經驗還是歷史回測,都離不開一個共同的信念,那就是過去的市場規律在未來仍能適用,至少是在短期的未來是有用的。那麼當這個信念受到強有力的挑戰的時候,也就是它連續虧損、回撤很大的時候。這個挑戰是否一定會出現?一定會,或早或晚而已。那麼,首先,如何界定這個時機?憑感覺覺得不對的時候?當前回撤已經達到歷史最大回撤百分比多少甚至超過的時候?或者其它什麼規則?
(5b)不同的參數遭遇挑戰的時機可能不同。即使遵循同樣的參數挑選規則,仍然可能出現有的參數能在未來較長一段時間表現不錯,有的只有較短的蜜月期,有的長期徘徊不前,有的甚至剛開始就大幅回撤,這些都有可能。那麼是否一定要對參數進行調整?調整參數能算是堅持策略嗎?或者說算是堅持一套固定的策略邏輯和參數調整規則?
(6b)當你知道策略參數是需要調整的,並且在未來某個時候一定要進行調整,那麼實踐中該如何堅持這個策略呢?是不管策略表現如何,主動地定期進行參數調整?還是一看到苗頭不對就進行調整?這個苗頭不對該如何界定?還是不見棺材不落淚,一定要等到(4)定義的時機到來才進行調整?從心理上講,就是如何堅持一個明知道是要變的東西?如何對一個明知道是要變的東西建立信任?不建立信任,又何談執行?
(7)無論哪種堅持,都需要足夠長的時間來顯示出效果。對於不同的策略和不同的堅持,這個時間長度也是沒法預知的。當你面對需要在較短時間內做出成績的壓力時,比如一定量的資金或者一個有期限的資管賬戶,需要在一年內取得多少收益,而你選擇的初始模型組合在幾個月甚至半年多都沒什麼表現甚至還有不小回撤的時候,應該如何應對?是選擇調整參數、調整策略,還是繼續堅持?即使調整了,就能在未來相對原來更短的時間內做出相比原策略更好的成績?
(8)有人說不需要調整參數,只需要好的資金管理就行。這裡所說的資金管理和增減倉位不是指根據行情變化和浮盈浮虧的加倉減倉,那還是算在策略內部操作,而是根據策略權益的變化趨勢進行整體倉位的調整。不錯,交易不順利、連續虧損時削減倉位,盈利放大就增加倉位,這確實是個好方法。但這樣的資金管理在某種意義上,其實是給策略設置了一個更高一級的參數,那就是權重,作為更高一級組合之內的係數,依舊是廣義上的一種參數,甚至可以是完全主觀的。與(2)有完全同樣的問題,一個策略在同一個品種、同一個周期、同一個參數、甚至同樣的資金條件、只是倉位不同的情況下,我們應當把它視為同一個策略還是不同的策略?50%的倉位意味著50%的堅持?但也同樣意味著50%的放棄。極端地,0倉位事實上意味著完全放棄策略,放棄是否也算是一種堅持?
(9)題外話,本題主要是關於策略參數的,但資金管理無疑很重要,它和參數既無關,又相關。說它無關是因為它明顯和具體的參數並無直接關係,說它有關,則較為複雜。我們換個角度,其實可以把策略看作是將行情K線圖映射為資金曲線的一種變換,而權益曲線相對於行情曲線要簡單些。假如策略真是正收益,那麼可以看作是一個最終一定會向上但有不規則回調的曲線,這樣的話,回調做多是永遠正確的,區別只是時機和手法。因此,不同的資金管理方法就可以視作是針對權益曲線所做的交易策略,是高位減倉(降低倉位)、突破加倉(創新高增加倉位)、低位左側加倉(接近或超過最大回撤時反而增加倉位)、低位右側加倉((接近或超過最大回撤以後在有新的權益上升趨勢時才增加倉位)、先減倉後加倉、等等,不一而足。這樣,交易策略疊加資金管理的效果就像是一種複合映射,資金管理實際上是交易策略之上的策略。既然資金管理也是廣義上的策略,那麼自然也有參數,比如,回調多少,每次加減倉多少,等等。一個自然的問題就是,資金管理是否也可以進行量化?
這些問題的實質與核心是如何處理市場中所謂的regime change,首先是如何感知?被動通過策略性能的下降?下降到什麼時候是確認?然後是如何應變?是以不變應萬變?還是敵變我變?還是敵未變我已變?
下面會慢慢補充一些個人的實際樣例,有單一策略,有策略組合,都面臨類似的問題,該不該調整?什麼時候調整?怎樣調整?
市場是個時變的對象,量化優化出來的策略是個時不變的個體。以時不變個體去套在時變的對象身上,結果一定是時好時壞。策略是優化出來的東西,那麼它已經是對過去的「最優」的結果了,所以但凡變化,就絕大概率的朝著不利方向演進。所以,階段性的「失效」,是必然並無法避免會發生的。盈虧比大幅降低,是必然並無法避免會發生的。失效的時間和幅度超過你承受力的時候,就是失敗的時候。
那麼我們在堅持什麼?怎麼知道我們堅持的方向是正確的呢?單從理論上講,市場雖然是個時變對象,但是背後還是人,它的變化不是完全隨機的,而是符合人的規律的。比如,今天5元1斤的大米,明天大概率不會漲到50元1斤或者500元1斤,它的變化需要有個過程。「需要過程」這種特性,就已經不符合隨機數(比如白雜訊信號之類)的定義了。所以我們的策略構建,還是需要邏輯的,這種邏輯應該符合人類的行為特徵,比如追漲殺跌。這樣優化出來的策略,才敢於長期使用。咱們仔細看看,哪個市場能逃脫追漲殺跌的特徵?當然不同品種,有其獨特脾氣,你用追漲殺跌型策略,就往容易產生追漲殺跌型行情的品種上去做,也算一種減小失敗率的手段。
階段性的回撤怎麼辦?扛著。扛不住怎麼辦?運氣不好,重頭再來吧。自古英雄,成功者和失敗者,哪個不是運氣佔大多數?分散化理論,倉位控制方法等,都是技術層面的東西,是「運氣站在我這邊」或者「運氣不是特別背」的時候才會有效的東西。市場要neng4死誰的時候,誰擋得住呢?
瀉藥,這些問題很有價值,我說說我的經驗
①肯定是有參數的咯②邏輯框架相同,參數不同我認為是一個策略③初始參數的設定,我傾向於邏輯推理,用極值思維來算,假定這個參數是1-無窮大,那麼設太小肯定不對,可能來回次數很多,太大可能也不對,太大做過山車,那麼肯定存在一個合理的範圍,如何算?如果程序化的可以藉助參數優化功能看,但是別挑最優的參數,有可能是孤島,找範圍,我是用邏輯反推範圍的沒有用優化。④感覺啥時候不對了,或者回撤大,如果自己肉眼看明顯是一波不錯的行情你不賺錢那我認為策略不對,回撤大的前提是你資金管理科學合理,如果你100萬資金,倉位80%連續錯2-3次就回撤很大了,如果科學合理的資金管理導致回撤的會有一個歷史峰值,可以借鑒這個數據⑤⑥我不調整參數,我傾向於邏輯派的量化策略,靠優化出的策略不會去使用,而且我策略是自學習,自適應策略,十幾年不需要改參數,普適應要好⑦前提是基本上覆蓋了大部分的主力合約品種,如果明顯行情不錯,或者和你類似做法的人在賺錢而你虧錢那麼是需要停止下來的,如果別人也這樣,小虧,回撤,那不需要理會,今年的上半年cta就是一路回撤現在不也爬出來了,正確的堅持執行是很重要,這不是一句話是一種信仰⑧⑨資金管理是減少你最大回撤的頻次,並不能減少最大回撤,所以建議單獨回測每一個品種,一手測試看能不能賺錢,輸縮贏沖對於控制回撤和擴大盈利的確很重要,但是前提你的策略還不錯才行啊,如果單手回測下來不賺錢再怎麼優化量化沒用個人覺得
量化程序化只是工具而已,執行層面更比人厲害點而已,能不能賺錢還是靠策略本身的有效性的,以上是自己的一些理解,不一定對,輕拍,最後貼下策略的回測圖,我是做多品種,多周期組合的囊括了商品主流的品種,黑色系,化工工業品,農產品,金屬(沒有貴金屬)回答你的問題真的需要勇氣,因為看完問題都累慘了。
(1)量化策略肯定是有參數的。
市場漲漲跌跌,一片混沌,你要開天闢地,搞一個套路去應對市場,你把它叫做交易系統或者交易模型,其實就是為了明確開平倉條件、倉位等規則,用相對固定的模式從市場里賺錢。這個套路必然是有參數的,比如幾日的均線、幾日突破、幾日真實波動幅度等,如果沒有這些參數,就不存在套路了。
(2)我認為策略就是策略,參數就是參數,改變了參數,不影響這個策略的邏輯。
至於改變了參數,這個邏輯是不是還依然賺錢,那是另外一回事。你如果做過回測,應該知道同一個策略,某些範圍的參數是可以賺錢的,另外一些範圍的參數是虧損的。而且本質上,這是由模型與未來行情的適配度決定的,不是由你回測的結果決定的。如果你想靠同一個策略同一個參數決戰全球市場,走上人生巔峰,我只能說too young too naive,你這是在造永動機啊!
(3)參數優化是在優化過去,但優化不了未來。
選擇參數,一般人肯定都是選擇歷史回測里表現最好的一個。你可以說是過度擬合,也可以說是別無選擇,沒所謂。因為優化的本質意義不在於挑選一個最佳的參數,而是讓你知道這個策略能夠盈利的範圍,讓你知道在哪種市場這個參數可以盈利。如果你選擇了一個參數,未來剛好出現了這個範圍的行情,那就恭喜你。如果行情沒有出現,你能怪誰?未來依然是未知的。所以,具體怎麼選參數,你開心就好。再提供一個思路,如果你對未來的大方向有大致準確的判斷,可能會有所幫助,但是,主觀的判斷又會讓你覺得違背了量化交易和機械交易的初衷,這個問題在量化的範疇是無法解決的。
(4)資金曲線是最好的成績單。
你的資金曲線會告訴你,你的策略是不是在低潮期。至於最大回撤該如何設定,那取決於你的容忍度和你的收益預期。有些人要求最大回撤不超過5%,有些10%,有些20%,都有,看你自己。但是相應的,你不能要求最大回撤5%,預期年收益是50%,我認為這就是不切實際的。
……
後面那些小點我不想回答了,因為本質上都是一個問題,即交易系統里如何設定各種規則?未來市場變化了又該怎麼辦?
你必須要有宏觀的思維,也就是任何一個參數或者規則,無論你如何選擇,都可能讓你有賺錢的時候,也有虧錢的時候,但絕對不會讓你永遠都賺錢。量化策略絕對不是永動機,你永遠找不到一個模型可以在任意市場任意時期都賺錢。有舍才有得,正是因為在系統低潮期的堅守,才能在系統盈利期坐等收益。
我自己也經歷了「主觀交易——機械交易——主客觀結合」的過程。其實這世上哪有絕對的機械交易和量化交易,選擇參數不是一種主觀?倉位設定不是一種主觀?品種搭配不是一種主觀?其實不用騙自己,我不覺得機械交易就是高端大氣,也不覺得量化交易就是高端大氣。利弗莫爾說得好,陽光底下沒有新鮮事。這幾百年,金融市場從來就沒有變過,因為人性不變。
你如果看得懂這些廢話一樣的大道理,應該能解決你很多困惑。最後來個乾貨,建議看看金融帝國的《走出幻覺走向成熟》。不謝。
這個問題好複雜,試著答一下。
1.一定是有參數的
2.我傾向於認為算是類似風格不同的策略
3.雖然米筐上線了參數優化 的功能,但是我們認為「堅持」的東西應該是某一個邏輯,然後再考慮參數,在分工當中,這個邏輯可能更多需要一些經濟金融的理論支撐。
4.5.6.78.我的觀點不一定正確,我會認為量化某種程度上是一把尺子,我們能做的是用尺子去在不同維度衡量和刻畫一個市場。比如多因子體系里我們會用到很多不同的因子,這就像我們會有克,米等度量衡去刻畫某個物體類似。這個時候我們會嘗試通過不同維度對標的進行刻畫,比如大家使用較多的量價統計因子。米筐的績效分析就是在做類似的嘗試:RiceQuant米筐量化交易平台
但是這種時候你只得到了一些維度上的刻畫,就像你知道了一個藝術品的長寬高,顏色,生產日期,生產材料,歷史價格等等,這並不能夠幫助你去預測市場的收益。那麼往往會有兩種方向:
a.量化只是一個「藝術品研究員」檢測市場的工具,幫助下注的基金經理更好的刻畫這個市場,很多下注仍然基於基金經理自己的判斷。
b.我們會使用一些統計理論希望獲得某些「預測」方面的優勢,但是所有的統計理論都有一定的假設,這個時候所謂的「信念」就是對這些預先理論假設的堅持。比如收益是否符合某些分布。
最後,策略不是萬能的,你總要有堅定的信念堅信一些東西。比如說每當遇到回撤,我就相信在在習近平新時代中國特色社會主義思想指引下,我們國家有能力和信心防範系統性風險,同時保持經濟健康、穩定運行。默默的增加一些多頭頭寸。
最後,歡迎你來米筐社區參與量化話題的討論:
策略amp;研究
「我個人覺得最有趣的是證明了人類經驗由於樣本空間大小的限制,往往都收斂於局部最優而不自知(或無法發現),而機器學習可以突破這個限制。」 『今日Nature: 人工智慧從0到1, 無師自通完爆阿法狗100-0 | 深度解析』
建模找公式、調參數本質是在無窮的假設空間里尋優。正如上面那句話,無論從效率還是效果上,在大量的數據上,人的學習能力遠不如機器。這真是 https://bigquant.com/ (利益相關)給很多用戶帶來的價值。我個人認為:
.建立一個交易系統必須基於一個策略。
.基於一個策略建立的交易系統必然有參數。.策略可棄不可改,參數可以改。.策略不變,優化參數並不能優化交易結果。在策略不變的前提下,參數越敏感,則假信號越多,止損越頻繁,單次止損金額越低,反之亦然。構建交易系統的基礎策略,不需要改變,但是在不同的資金規模,不同的年紀精力情況下,對風險和交易頻率的也不同,可以適當通過調節參數來改變交易的頻率和止損頻率以及單次交易止損的幅度以適應不同時期的自己。
比如說,交易策略沒變,初時選擇5分鐘k線周期甚至更短的周期,日內交易,恨不得一天24小時都開盤,每天交易多次。之後,心太累,精力也不夠,同樣的交易策略,選擇15分鐘或者30分鐘k線周期,一天交易一次,甚至兩天交易一次。再後來對盈利的迫切感和對虧損的恐懼感越來越不敏感,不再那麼迫切的想賺錢,對自己的德能有了更清晰的認識,選擇了更緩慢的交易頻率。
迫切想快速盈利的心和執著於追求一個完美的交易策略,正是交易者虧損的魔鬼。想要一年賺100萬,最好的方法不是用10萬本金一年盈利1000%,而是用1000萬本金一年盈利10%(此處當有噴子。)嗯,不對其它大幅做出任何評價。
思路錯了。
有沒有各周期普適的無參數策略?有
我能和盤托出嗎?不能。量化是什麼?對行情信息進行數量化分析。
量化的目的是什麼?為什麼?應如何執行量化之結果?為什麼?量化需要參數嗎?為什麼?
這個演算法的核心是什麼?為什麼?參數與經驗間是否存在關係?為什麼?量化結論到底是什麼?有聖杯演算法嗎?路漫漫其修遠兮。由於問題字數限制,把補充示例寫在這裡。
1、先給一個策略組合的例子,單策略多品種單周期的組合。
單一策略本身並不複雜,可以看作是海龜的簡化和改版,不分長短周期,止損略有變化,並非ATR,且多數情況下止損即反向。策略參數共有8個,核心的5個,稍微次要用於增加績效的3個,算不上很多。各品種的策略參數通過歷史優化獲得,並不統一,歷史數據從2009年起(主要為了避開2008年有些品種盈利過大)至建立模型之時(2017年5月底),參數選擇標準主要是收益風險比,此外也看一下最大回撤和參數本身(相近參數也不錯,不是什麼怪異的參數肯定過擬合那種)。單一周期,都用1小時線。多品種,一共16個,組合係數即各品種手數主要看最大回撤(一般控制在1萬以內),充分考慮了分散風險,並且極度輕倉,每個品種基本都是1、2手,只有c/cs/bu/ma這些合約價值很低的才有3手,總的資金使用最大9.6萬,也就是無槓桿的總合約價值不到100萬。
各個參數確定於5月底,性能讓人非常滿意,收益風險比達到6:1以上,年化收益達到無槓桿價值的13.5%,最大回撤略高於2%,R平方值、夏普率、盈虧比、最大盈利、最大虧損、平均盈利周期/虧損周期等各個指標也都很漂亮。但悲催的是,入場就已經過了最高點,入場就是大幅回撤,樣本外運行到今天10月18日,再沒有突破過5月22日的權益最高點,先是在高位反覆振蕩,而在9月初以後隨著大行情回調也大幅回撤,創下歷史回撤的新高,而且大幅超越原來的幅度,達到無槓桿總合約價值的5%,也就是一下增大到2.5倍。要說它完全失效還難講,但至少沒有開始那麼吸引人了,收益風險比降到只有2.5了,還不如某個單一品種的高,已經看不出組合的效果和意義了。
下面幾張圖,一是策略建立時和現在的組合性能詳細比較,二是2009年來的權益曲線,三是2016年來的放大版。
2、再來一個略正面一點的例子,還是組合,雙策略多品種單周期的組合,這個表現好一點,建立模型後還能有5個月的蜜月期。
兩個策略都是純日內策略,不算複雜,分別通過近期區間或者成交量變化尋找入場點,再加一點過濾和驗證條件,避免假突破,出場無非是止損或收盤。策略參數都有10多個,算比較多了。各品種的策略參數通過歷史優化獲得,並不統一,歷史數據從2010年1月起至2016年9月初建立模型之時,參數選擇標準主要看收益風險比。單一周期,都用1分鐘線。多品種,一共11個,區間突破8個,放量3個,都有較長歷史,最新的也就螺紋和焦炭了。組合係數即各品種手數主要看最大回撤和總合約價值。
各個參數確定於2016年9月初,性能讓人滿意,最大回撤2.9萬,年化收益29萬多,收益風險比高達10:1以上。雖然參數很多,過擬合傾向較高,但仍然在未來的市場行情中保持了5個月的持續盈利,不斷創新高。直到2017年春節之後,回來第1天就開始回撤,直到5月底,最大回撤達到6.8萬,是歷史最大回撤的2.3倍,整體的收益風險比已經大大不如以前,吸引力大幅下降,也許要求太高?但它也沒有完全失效,5月31日到達回撤低點後逐漸向上,到9月底還創下了新高。
下面幾張圖,一是2010年到建立模型時的權益曲線,二是2016年1月以來的近期曲線。
3、由於一個想法,對上面的示例一進行了重新測試,結果正面。
比較兩個示例,第一個1小時的模型相對簡單,參數少,理應適應能力泛化能力強,但實際效果不行,第二個純日內的模型更複雜,參數很多,過擬合的傾向很嚴重,實際效果反而不錯,至少能有5個月的盈利期。猜測也許是1h周期過大,k線數據不夠多(雖然已經都是從2009年開始不可能再多了),參數擬合沒有達到效果?之所以這麼想,是因為最近設計的另一個模型也遇到類似的問題,這個新模型邏輯簡單清晰正確無可挑剔,參數也不多,適應性很強,各品種各周期都行,而且最大的優點是交易次數少,成功率較高,比較耐得住振蕩,當然劣勢就是右側交易,必然會有盈利回撤,有時也並不小。在回測中發現,如果以今年3月初為界分樣本內外進行測試(模型如果不適應未來行情大概率半年左右就會表現出來),1小時周期按收益風險比、R平方、最大回撤等方面綜合考慮得到的幾組參數在3月以後的行情中表現都不好,而15分鐘、5分鐘、1分鐘周期用同樣方法優化的參數在3月以後的行情中卻都還不錯,因此有了這樣的想法。
花時間重新進行了第一個模型在15分鐘周期下的回測,結果證實了這個想法。以5月20日為分界(這也大概是1h模型的建立日期,方便比較),16個品種都按同樣流程進行參數優化,而且就直接選收益風險比最高、過擬合傾向最強的那個,結果是組合的收益風險比要比1h的6.2差不少,只有3.8左右,原因是年化收益略有下降而最大回撤從2萬左右增大到3萬多。但樣本外的行情從5/20到現在,倒是15分鐘的表現更好,最大回撤雖然也增大到接近4萬,不過總的收益風險比只下降到3.0,反而比1h的更好,說明數據量的增大對於過擬合參數的穩定性還是有利的。
示例二和這個示例一的重測似乎說明,過擬合也不一定總是毒蛇猛獸,有數據量的支撐,加上適時的調整,仍然能作為一個不錯的更大的組合的一部分。而且這兩個結果還隱隱提示市場內在運行規律還是有一定延續性的,這比較有利於量化交易。
謝謝期貨程序化的邀請,誠惶誠恐。因為我除了會編輯幾個無用的指標以外,對計算機量化,高頻交易幾乎一無所知,也僅僅是請專業人士給我講了講其運作原理,而且也不打算再去深入的學習了解。
因為我覺得交易是藝術而不是數字化的科學技術,
所以,我選擇了主觀交易(當然我說的主觀交易並不是靠感覺看心情去交易),對,就是大家都認為虧貨缺心眼的才用的那種方法。 在我呼量化,機械,高頻的交易方法為正確,為高大上的大環境下,坦然承認自己是一個主觀交易者並不容易,要承受莫名的鄙視。
如果非要說出理由,那麼就是我認為市場價格的運行是人類集體有意識的一種博弈,而且這種博弈是一種循序漸進的過程,所以,行情並不是隨機波動是可以被觀察並捕捉到的。
以上。。。。。
你陷入了完美主義綜合症。
你是來賺錢的,不是來證明真理的。
你問的問題,除非你的認知能達到完全客觀的程度。否則是無解。因為你在追求絕對客觀的精確化(能做到這一點的,萬中無一)。你的問題我回答不了。(本人水平不夠)。
但我可以告訴你,交易中的錢是怎麼賺到的?
首先一個交易系統,必須三占其一(空倉,加倉,建倉)。如果都占,你的勝率會達到百分之五十以上,同時也能做到,賠率1:1.5以上。
這三個必占其一(不能具體量化,只能做到心中有數)。
然後你所有的行為動作,都是為了這個環節的順利實施。賺錢其實很簡單,就是把所有的注意力和行為,都集中到這個環節上。只要整體上盈利就可以。別去計較那些小事小節。
做交易要大氣。抓住主要矛盾即可。
我沒說你的思維方式和方向,是錯的。我只是說,追求精確化,這種做法難度大。
舉個例子。你如果把交易當成科學研究,你當然可以這麼做。如果只是為了賺錢,你走錯路了。謝邀,這個問題問得非常非常好,但不容易得到好答案,因為問題問得太好了,能所有問題都給好答案的人是不會說的,全答完了基本就變成裸奔了。
先佔個坑以後有時間慢慢答。
首先要搞清楚「量化」與程序化之間的關係,能量化的不一定可以程序化,程序化的要素不一定都是量化。
模糊量化,或者叫不精確量化的內容就只能主觀交易,沒法程序化,我的方法也是量化的方法(不只是量化),但包含了許多不精確量化,可能以後為了省事會拆出可程序化表達的量化來程序化交易,暫時還沒這麼做,因為程序化會導致大幅度降低效率。
其餘非量化的邏輯如果可以變成機器語言表達,也是可以用於程序化的,程序化並不等於量化,只是邏輯體系中可機器語言表達的部分。
我認為包括程序化在內的固定方法交易就是固化邏輯,所以程序化的關鍵是邏輯,而且要是固定的重複邏輯,這是程序化劣於追隨客觀的主觀交易的地方,範圍太窄。
那麼,其餘答案都可以從這裡派生,就是怎麼抓住確定性的固化邏輯,程序化就是解決這個問題你的所有問題問的都是這個。
量化交易包括了三個方面:
①要有邏輯。沒有邏輯就是賭運氣。②要是確定性的邏輯,有客觀基礎的,而不是虛幻的主觀邏輯,我看了很多人的交易邏輯都是沒有客觀基礎的,需要能夠回答為什麼這個邏輯是成立的,如果成立,會變化嗎?怎麼變?會消失嗎?什麼金叉死叉等等,看似基於客觀的圖表指標邏輯,但除非你找到客觀的原理回答為什麼可以賺錢,能獲得什麼確定性優勢,怎麼確保獲得這個確定性優勢,而不會因為倉位等問題被消滅,這樣才能獲得一個能賺錢的邏輯,不能回答為什麼成立的邏輯都是虛幻的虛假邏輯。邏輯變數變化了,參數就要隨著變化。邏輯消失了,策略棄用。③邏輯可固化,這也是我不太願意使用程序化以及固定方法交易的原因,絕大部分邏輯是不能固化的,行情的驅動力體系不停的在變化,只能跟隨。小部分的邏輯才能被固化,可固化邏輯中可用機器語言表達的才能程序化,程序化中可量化的邏輯才是量化交易。程序化交易和量化交易的範圍非常窄說的就是這個,舞台那麼大,非要在一個小圈裡跳舞,是很受限的一件事。對我來說,程序化是一個損失效率但節約時間精力的方法。其實我想說句大家不愛聽的實話,什麼回測,調優,樣本內,樣本外,各種策略,其實都沒什麼用,掙到了錢是運氣,掙到大錢是腦袋暫時拍對了。
所有的參數優化都是基於歷史的回測,而歷史是唯一的,過度優化只能變成與歷史數據的耦合。只要系統本身的底層邏輯正確,不同參數長期回測的數學期望都應該是正值。參數的不同更多情況會造成交易頻率的不同。
我覺得不應該是為系統優化參數,而應該是用不同的參數去驗證系統的邏輯是否正確,如果不同的參數下系統的數學期望都為正,才說明系統邏輯的可用,然後選取一個數學期望最大的參數作為參考。
前面有人推薦的《走出幻覺走向成熟 金融帝國》這本書是比較值得一看的。
這個問題問的非常好,這是CTA策略的核心問題,我每天都在思考,這個問題可以作為程序化交易的分級問題,能考慮到這個層面,算入門了
1.量化交易,我更願意稱為 程序化交易,沒有任何科學道理,所有回測都是刻舟求劍,對過去行情的擬合,趨勢策略大同小異,能不能賺錢全拼運氣,靠天賞飯
2. 參數擬合的痛苦根源:不同品種的波動率,槓桿數,minimove,交易人群都不一樣,試圖通過回測擬合來找到一個通用參數,這是不靠譜的,因為數據輸入的feature太少,最多兩個,price,volume
各種技術指標macd,kdj,之類,都是price的某種歸一化,這也是用機器學習來預測價格效果很差的原因,與之對比的圖片識別,一張100*100的小圖就有1萬個feature,這樣跑出來的結果安心多了
通過回測來選擇參數,其實都是基於一個假設「 行情波動率會有延續性」 ,這個假設是否成立呢?是否一直成立呢?,我也不知道,可能有
所以我的做法是
1. 策略盡量簡單,拼運氣的事情,再複雜也沒有用
2. 不同品種不同參數,實盤效果不好,馬上換參數。
3. 評估參數的時候,交易次數要盡量少
4. 控制好倉位
程序化交易的意義,不是在數理上找到了某個行情運動的客觀規律(套利算客觀規律),而是讓交易系統化,避免情緒干擾,解放看盤
不請自來。
首先,這個問題,凡是做模型的,都會碰到,而且想來基本也都被坑過。
1)涉及的所有策略都是有參數的,有一眼就能看到對模型表現有顯著影響的參量,也有些不是特別敏感的超參數。不過設計模型時最好能控制參數的個數,相同表現下,越少越好。個人經驗覺得,除去超參數外(一般超參數可能通過常識來選取合適的數值),主要參數如果超過5個,模型就值得懷疑是不是會有顯著過擬合。
2)相同邏輯,不同參數當然屬於同一策略。對同一邏輯的不同參數,經驗覺得要想法把合理的參數都使用上。無論參數是通過何種方法得來(樣本內優化或樣本外檢驗等等...),由於金融數據的高噪音和小樣本,都可以認為所有參數的表現都有一定的error,你永遠也不知道未來哪一組參數會存活下來,所以更傾向於都使用。
3)參數上首先必然需要優化的,優化的手段一般市面上的軟體或多或少都有類似的功能,至於使用何種標準優化,仁者見仁智者見智。而且,經驗上覺得不同類型的策略優化的標準還會不同。
4)這個問題同意樓上的回答,回撤大不大很多時候是相對的,而且與你的倉位控制有關。但如果一個策略持續回撤超過3個月,那個人覺得要對這個策略慎重分析下回撤的原因。
5)6)策略參數的調整問題更像一種信念的問題,有的人絕對策略的參數要根據行情的變動定期重新優化,即walkforward;有的人覺得一直使用同一組參數,並追求這一組參數穿越各種行情時段。無論哪一種,只要合適的管理這個策略(這裡不是管理參數),在有大把握策略已經無法適用當前行情時,這個策略就需要丟棄或重新開發、改進。
8)9)個人覺得資金管理比參數問題更難,很難玩轉,同關注是否有大神來分享經驗。
的確可以歸結為regime change的問題,這個問題個人嘗試也沒有有效的結果,但覺得可以嘗試著使用一些能夠近似描述「你為什麼覺得發生了regime change」的變數去測一下。個人覺得,對一個策略不要追求完美,要允許策略本身在不適應的行情中出現回撤;同時,精力應該花在開發另一類能夠在回撤期盈利的策略來對沖已有的策略。
這又是一個狗咬尾巴跳不出去的陷阱,無論你怎麼調都不會有任何進步,太敏感的觸發點錯誤太多,太鈍化的觸發點掐頭去尾吃的利潤太少,無論怎麼調其結果都是等效的,追溯其本質,就發現這個矛盾是無法解決的,既然無法解決,就吃屬於自己該吃的。
看到這麼長的問題,不請自來。俺家語文水平比較差,文路有點亂,別介意。回主題,我總結一下題主的問題,第一個,參數在模型中的作用,模型能不能沒有參數,為什麼?第二個問題,我的模型曲線這麼漂亮,為什麼還會虧錢?第一問,參數在模型的作用,這個要看做模型的人的思路,好像我自己做的模型,主要可調整參數只有交易頻率,起始的資金,交易的起止時間。模型能不能沒有參數,可以,我自己做的就是接近無參數。為什麼能無參數,統計長度如何設置。俺家模型就一個子塊用到20多條線,如果一個個優化,那不是想死。怎麼解決,3種方法,固定值,最常用,全部採用理論值。第二種,自動適應。第三種,機械學習根據數據自動擬合。第二問,你的回測數據中,最重要的數據沒有放出來,手續費和滑點,交易的費用。大家都知道這兩個參數能顛覆一個模型。然後,你啟動在最高點,正常,很可能你的參數出現過擬合,然後市場變了形態,也就是變態,那麼開始走下波路很正常。另外,好像你說這個數據是海龜的改版,其實很可能是一個老過氣的系統,我能用1小時,寫一個239分鐘的布林強盜改版模型或者多均線類模型,而且還是無參數的,或者參數不經優化,使用理論參數值。費用萬一一跳,無偷價,信號全程固定。10年所有回測數據能完爆你貼出來的數據,夏普7,回撤5%,盈虧比2+,綜合勝率50+%,單手雙向,無加倉,平均利潤200+,平均年有效收益50%+,34品種能做到30品種盈利。但是我不會用這些模型,為什麼?第一,容易失效,同質化嚴重。第二,單個品種曲線不好看,綜合頂點回撤時間長。第三,也是最重要的,俺家沒有這麼多錢做資金分散,只能單個品種擼。
我覺得做量化就跟談戀愛一樣(假如我們跟女朋友相處快樂幸福設為終極目標),很多問題轉換成找對象的問題好像就清晰多了。
1.策略是否有參數?
答:有。即使是主觀交易中也存在「參數」,比如說「看著覺得很強勢」。「強勢」的定義是有的,但是可能是一個模糊的標準。
戀愛版本:找妹子看不看相貌?看不看三觀?看不看高矮肥瘦?
2.參數修改是否算同一個策略?
答:不算。理論上來講,叫「相關性很高高高高」。
戀愛版本:你肯定記得女朋友18歲時候的青澀可愛,當她在28歲的時候變得更成熟大方的時候,她們還是不是同一個人?
3.參數相關的?
答:參數優化在一定範圍內是有意義的。(雖然更多的時候是應該考慮策略優化而不是參數優化...)
戀愛版本:是不是長得像高圓圓就一定能幸福快樂了...?
4.基於市場對過去市場的回顧而制定未來市場的策略,策略是不是一定會遭受連續回撤等等的挑戰?
答:如果策略是靜態的,一定會出現的。因為市場是動態的。
戀愛版本:能從高中談戀愛到結婚是不是就等於結婚之後一定幸福快樂?顯然只能說明談戀愛期間的碰到的問題能扛住,但碰到了新的問題的時候誰知道扛不扛得住?
5.那麼是否一定要對參數進行調整?調整參數能算是堅持策略嗎?或者說算是堅持一套固定的策略邏輯和參數調整規則?
答:不一定要,因為參數優化只是策略優化下的一個小分支。後面的兩個小問題請參考答案3....
戀愛版本:是不是一定要長得像高圓圓才能幸福快樂?堅持相親標準就一定能找到好對象嗎?堅持動態調整的相親標準就一定能找到好對象嗎?
後面的問題看得好累啊.....實在堅持不住了.......
總而言之,寫策略跟談戀愛都是結果導向事情。不要陷在一個地方出不來...
對了,好像應該打個廣告。Ricequant不一定能給找個好對象,啊不對,是好策略。但是我們有個叫策略英雄榜的東西,上面有挺多長得像「高圓圓」的策略...
策略英雄榜——尋找你的高圓圓
固定參數
隨便一答,賺錢了不用分給我,虧錢了別埋怨,先匿了。
1.有無參數不是關鍵(扔硬幣如果能賺錢也行,守住這個幸運幣而已),能賺錢才是關鍵,悶聲發大財最佳。
2.量化和累計數據是分析的基礎,比拍腦袋的決策靠譜些。時代在進步,代代出人才,結合新技術能找到靠譜的交易系統,從而超越前人。
3.市場是變化的,這個沒錯。交易系統和參數也可以是隨動變化的,這樣才能應對未來的變化。
4.市場是各種交易系統的競爭之地,賺錢的留下,虧錢的出去,優勝劣汰,適者生存。系統是否過擬合是否失效,跑起來才知道。砍掉差的,保留好的,不斷進化。
5.AI和機器學習,對提升系統收益有幫助的。
6.如果有交易系統是超賺的,那在逐漸為大眾熟知的情況下,超額利潤會不斷下降,最後歸於平淡。遠超平均收益之上的交易系統,一般是非主流的,如果你僥倖找到了,守住這個秘密,賺取最大利潤,等失效後再公諸於眾(賺講課費)。海龜啥的,忘了吧。
7.分析師悖論,如果是股神早就發財去了,何必分析給你聽,何必賺廣告費賺軟體費......所以分析師股神預測股市,就是講一些永遠正確或者模稜兩可的廢話而已,不會超過平均收益。
推薦閱讀:
※股票如何實現程序化交易和自動交易?
※在量化策略開發過程中,你都用到了哪些知識?
※怎樣讓高頻策略測試更貼近現實?
※演算法交易 (Algorithm trading) 與程序交易 (Program trading) 有什麼區別?
※手工交易和程序化交易比起來優勢在哪裡?