您现在的位置: 比特财富网 >> 财经 >  >> 外匯
如何尋找好的交易模型
外_匯_邦 WaiHuiBang.com   我覺著,對於一個相對成熟的交易者來說,程序化的切入點,往往會選先把自己的現有系統客觀化程序化的道路。www.emoneybtc.com對於一個新手或現有系統難以量化的交易者來說,程序化的切入點是從模仿一些簡單但經典的模型入手。

  之後就是測試。測試什麼?

  應該每個常見平台上都能看到參數優化相關的界面。至少在國內,“參數優化”——可能這是一個大家普遍關心並有爭議的問題。很多新人首先會對此困惑,因為很多程序化大家,是反對參數優化的。其實我最開始聽到的是過度擬合的弊端,道理很容易接受——對某段時期擬合得越充分,那麼在另一段時期背離的可能性也越大,因為我們總是只對某些特征進行擬合,即我們的擬合注定是不完全的,所以未來的背離是必然的。但後來我聽到的是“反對參數優化”。我覺著這有點陷入一種狹隘。是反對軟件上的這個按鈕功能嗎?那麼多軟件公司要設這麼個功能,總有其價值所在。是反對試圖優化的思路嗎?但是如果不去優化,參數怎麼定?“靠常識”?常識怎麼來?新人有多少常識?

  比如,我舉個例子,說說溴化N-乙基吡啶的性狀。別說顏色、比重這些參數,就是連室溫下是固體還是液體,你都不知道。如果你不是搞室溫離子液體研究的,你怎麼可能知道?程序化交易又不是吃喝拉撒人人從小就有經驗和體會的事物,對新人來說是一件全新的事物,對老人來說也還有很多沒有弄懂的東西。所以我覺得靠常識來定參數,完全違背了人腦的認知規律。新人腦袋空空,拍不出多少常識。我覺著,這未必有益於程序化交易,因為縱然對某個時期的過度擬合會在另個時期產生過大背離,但如果在某個時期認可過大背離的存在,一定會在未來換來一個相對擬合的優異結果嗎?有這種必然性嗎?恐怕隨便定出來的參數,這段不擬合,那段居然也不擬合,還沒等到優異業績,本金就已經大打折扣了,而且又何以讓交易者能擁有長期堅持的信念呢?關注某組參數的具體表現的細節特征,並理解它對未來可能的涵意,才是硬道理。

  我認為,參數往往是系統的特征值,並且主要是度量市場波動性的特征值。參數測試的主要目的是試圖尋找有意義的特征值,而有意義的特征值的衡量標准是參數的依附穩定性、歷史穩定性,以及跨周期普適性和跨品種普適性。我舉個例子說明這幾句抽象的話。首先,理論前提是,市場的波動性是各種頻率的波的合成的結果。有點物理基礎的人應該知道,合成波的描述可以通過將波分解為基波和各級諧波,通過分別描述每個正弦波的頻率、幅值、相位來解決;或者說我們知道了基波和諧波的頻率、幅值、相位,我們可以重現當初的合成波。這些頻率、幅值、相位的表征,在程序化交易中就體現為參數,如果你找到的是這種參數,當然有很高的穩定性和普適性。這些分解波的由來,非常多樣非常復雜,甚至可以說是難以窮盡(因為其非線性的市場本質),但我們仍可明顯觀察到一部分線性特征對應的諧波。

  比如對於工業品,需求通常是穩步增長的,而且需求的多樣性意味著需求端的多變。但供給端相對簡單。在經濟周期或政策周期下,往往會出現投資高峰,投資高峰在若干時間後會變成投產高峰,造成一波下跌。從原油礦產這樣的原材料到PTA這樣的中間工業品,都是非常明顯的,而且由於在國內,政府的宏觀調控,其實加劇了這種投資的不均衡性。對於很多品種來說,天然地有淡旺季。比如服裝有春夏和秋冬兩大季。每年某個時裝發布會後,就是大規模的量產,量產之後是布匹采購的增加,布匹采購增加繼續向上游傳導,就對應紗和棉的采購增加。

  另幾個方向就是滌綸短纖、滌綸長絲、氨綸、腈倫、黏膠纖維等的采購的增加,再往上就是聚酯工廠采購PTA和MEG了,還有再往上,PTA工廠采購冰醋酸和PX,芳烴工廠采購石腦油……這些采購的時間不可能相差太懸殊(庫存成本的制約),也不可能完全均分在每天(物流的規模經濟性的考量),那麼,注定會體現為一波波的采購高峰。所有產業中都存在采購周期,只是強弱不同。這些采購周期受物流效率、信息系統、管理方式所決定。目前都是電子化網絡化時代了,通常2個月;但在網絡化之前(十年前),那時候公路鐵路也有很多地方網絡不能覆蓋,加上路況也差,那時候倉儲采購周期肯定要長,3-6個月;再往前,兩百年前的馬車帆船時代,肯定更長,一次越洋跨國貿易(比如從南洋群島運香料到鹿特丹)都在一年以上,采購的量也可以用個兩三年。

  總之,這個周期是由經濟發展水平決定的,這是一個波。這個波是一個中期波,而且非線性特征比較弱,也就是說比較容易發現和度量,它的變化非常慢,沒有5年你是看不出它的明顯變化的,並且一旦變化了,也很難變回去了。但另一個往往與之疊加的波就是心理預期產生的波動。采購方總是希望逢低采購,銷售方總是希望囤積居奇待價而沽。所以采購方往往傾向於把這個波的相位往前提,而銷售方則希望把這個波盡可能變成一個方波——就是在高位的時間越長越好。每年的供求關系和宏觀環境有差異,加上各方都習慣於以前兩年的節奏為參照,所以你會發現,每年的價格高點雖然都有一個范圍,但卻一定不同(孢子理論)。比如若前一年銅的高點出現在4月,而且只一個明顯的高點。采購方就會想著那我在3月底就采購,就可以買得比競爭對手便宜。而銷售方一看到 3月底詢價就增加,馬上就在3月底就把價格提上來,結果在3月形成一個價格高點。由於提前采購,4月可能就沒量了,就下跌。

  當然,如果該品種在那年比較緊缺,那麼提前采購也會導致提前用完,同時加上前期踏空的需求,所以在4月跌下來之後,可能還會有一波5月補庫存的集中采購動作。這樣,在春季可能就出兩個高點。這就是心理預期的起落,對原始采購周期的疊加,導致的。心理預期也有節奏,但它易變,而且自反饋,所以具有很強的非線性特征。但這還不是你看到的最終行情節奏,因為還有許許多多大的小的因素導致的波動疊加在上面。最後還有一道無時無刻不存在的背景噪音……

  以上我只是舉例子說明,我們找到幾個有穩定性和普適性的參數值是有可能的,找到的值是有現實意義的,但由於現實是已經被反復扭曲的,所以直接通過觀察現實去猜想一個有意義的參數值,卻無法實現。但參數測試卻可以幫我們找到它們的值,通過穩定性和普適性的檢測,來最終確定它們的值。大體上它與那個我們猜想的有現實意義的值具有相同的數量級。參數測試還能告訴我們這些有意義的參數,他們的普適性和穩定性的程度。比如有些跨品種普適,但跨時間周期卻沒有等比例關系。

  而另一個可能歷史穩定性尚可,但既不能跨品種,也不能跨周期。甚至,有些歷史穩定性也不行,但其在歷史上的反應,和某個關聯特征具有單一的聯動規律。參數測試還能讓我們知道哪幾個參數雖未找到確定的現實意義,但卻依附於另一個動態變量(往往是品種特異性、季節特異性等的體現)上。這份認識,可以讓我們在對待不同品種不同時間周期不同行情風格時,對某幾個關聯參數采取特定的調整方向,並且這是自適應參數法和動態參數表方法的基礎;即使你堅持半自動的道路,那這份認識也給你在執行層面進行主觀篩選提供堅實的現實依據。而不至於出現想起要改模型了,但不知道從何入手、或隨手亂改的窘狀。真正難以琢磨的是那些穩定性差、普適性差,關聯性沒有單一方向的參數。不過也沒關系。打個折即可。

  我們可以定性地判斷一下該模型是否是個正收益模型。如果它能得到30%的年化收益率,最大回撤20%,但內部卻有兩個參數無法找到現實意義和變化規律,我們就認為它未來可能不能賺錢,但畢竟它賺過錢,所以堅持下去,它有望成為一個保本的模型。如果有辦法把它變成一個日內短線模型,風險就可控,炒手續費就再合適不過了。就算不看重這塊,那麼至少先把它當成用來平滑其他策略業績波動的組合對象吧。其實,也許有朝一日將來你就會發現參數的現實意義或規律,然後就可以更大膽地用它。先把它留在自己的策略原型庫中好嘞。一個程序化交易者每天琢磨什麼?很大程度上是在研究這個。

  除此之外的時間在琢磨什麼?邏輯測試。其實邏輯測試比參數測試更重要,改進效果也更好。若說參數測試考驗計算機硬件水平,那麼邏輯測試考驗策略設計者對市場的理解和創造力。但兩者不可分。其實,有些參數當取到極值時,就相當於把某個邏輯屏蔽起來。

  邏輯測試的切入點:是對行情的微觀結構分析和對邏輯本身的微觀結構分析。前者的關鍵詞是捕捉,後者的關鍵詞是拆分。

  捕捉有主動和被動之分,現有的常用平台和本人的數理知識還難以做到主動捕捉。而且我們的個人電腦配現有程序化平台,是不可能跑過於繁復的算法和邏輯的,否則會讓計算變成電腦的休克。但舉個例子能讓大家明白主動捕捉的意思,人機語音對話其實就是通過每個音節的聲學規律通過主動捕捉來識別特征完成詞匯還原的。讓從事波形分析的模式識別專家來做這個事是最恰當不過了。被動捕捉是個笨辦法,卻未必多走彎路,只是會常常讓測試者覺著不可思議,結果的不確定性時而令人崩潰時而令人驚喜。被動捕捉其實是用邏輯和參數去量取某一特征,邏輯和參數基本已經限定,行情形態的微觀結構也是確定的,我們只有找到一個高的數學期望的穩定值,才說明成功量取到了有現實意義的特征。就好像閉著眼睛拿杯子在水裡撈魚,撈到一條是一條,沒撈到的時候誰也不知道杯子裡能有什麼。

  我身上就有現成的例子,有些品種常有多重頂底,但不規則,要識別這些復雜而不規則的K線組合形態,真的不是通過簡單的邏輯就能實現的——這是一開始試圖直接實現的時候,想想就放棄了。但後來在研究某個參數是如何控制模型的行為的時候,在分拆和優化之後,發現了一種簡單邏輯就可以實現不算很充分的捕捉這種形態特征,而當初這個參數的引入又是出於一個完全無關的思路。在這個層次上,我充分體會到了世界的混沌性:如果試圖以精確的設定達成精確的結果,往往會失敗。不過模糊的設定,應該還是有別於盲目試錯的,對形態和邏輯本身的認識,仍是必要的前提,各種軟件平台提供的和平台以外(如通過EXCEL或MATLAB)的測試,是獲得這種認識的手段,“優化”測試,不過是設置了某種導向(收益率、最大回撤等)的數學期望測試而已。

  邏輯的拆分。這是一個原則,在設計時就應該盡可能把每個環節設計成可以單獨測量。屏蔽其他參數與邏輯的關聯,只在確定現實意義之後,才使用這種關聯。以便我們後面要提到的排列組合以及再後面要提到的跨邏輯組合。

  邏輯測試的方向:有查漏補缺和排列組合兩種。

  查漏補缺往往著眼於極端行情的處理,比如停板、連續停板、巨大的隔夜跳空等。尤其是分鐘線交易策略。除非是外匯交易,否則行情的連續性總被周期性破壞,給短周期策略的測試的有效性帶來相當的考驗。排列組合是對自己能理解的和不能理解的邏輯進行反復嘗試,這事兒做起來沒底。有很多似是而非的東西,也有很多似非而是的東西。我的體驗進一步告訴我拍腦袋設計的不可行。找到一個實戰可用的策略沒有捷徑,就是不停地嘗試。本想程序化可以解放人腦於信息海洋,沒想到搞程序化也是個體力活——從基本面研究的信息海洋出來,一頭扎進了程序化研究的邏輯海洋裡。

外_匯_邦 WaiHuiBang.com

  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com