在數學(xué)中,對于可導函數,可以完美的定義最優(yōu)化問(wèn)題:
對導數泰勒展開(kāi),相當于應用二階導數尋找極值方向,收斂速度更快。
和梯度下降法類(lèi)似,僅需要一階導數信息,但是克服了收斂慢的缺點(diǎn),算是解大型非線(xiàn)性最優(yōu)化最有效的算法之一。在各種優(yōu)化算法中,共軛梯度法是非常重要的一種。
由美國的J.Holland于1975年首先提出的啟發(fā)式算法。遺傳算法是一種智能隨機搜索算法。遺傳算法仿照自然界中生物的進(jìn)化過(guò)程,種群的進(jìn)化遵從自然選擇和適者生存,更適應環(huán)境的個(gè)體有更大機率存活和繁衍,適應性差的個(gè)體則會(huì )被淘汰,攜帶較高適應性基因的父母進(jìn)行繁殖可能產(chǎn)生適應性更強的后代。遺傳算法模擬上述過(guò)程,其一般流程如下:



其基本思想是把某類(lèi)優(yōu)化問(wèn)題的求解過(guò)程與統計熱力學(xué)的熱平衡問(wèn)題進(jìn)行對比,試圖通過(guò)模擬高溫物體退火的過(guò)程來(lái)找到優(yōu)化問(wèn)題的全局最優(yōu)解或近似全局最優(yōu)解。金屬退火原理是將金屬加溫至充分高,再讓其徐徐冷卻,加溫時(shí),金屬內部粒子隨溫升變?yōu)闊o(wú)序狀,內能增大,而徐徐冷卻時(shí)粒子漸趨有序,在每個(gè)溫度都達到平衡態(tài),最后在常溫時(shí)達到基態(tài),內能減為最小。


3.蟻群算法(Ant System, Ant Colony System)
是由意大利學(xué)者Dorigo、Maniezzo等人于20世紀90年代提出來(lái)的啟發(fā)式算法。
將蟻群算法應用于解決優(yōu)化問(wèn)題的基本思路為:用螞蟻的行走路徑表示待優(yōu)化問(wèn)題的可行解,整個(gè)螞蟻群體的所有路徑構成待優(yōu)化問(wèn)題的解空間。路徑較短的螞蟻釋放的信息素量較多,隨著(zhù)時(shí)間的推進(jìn),較短的路徑上累積的信息素濃度逐漸增高,選擇該路徑的螞蟻個(gè)數也愈來(lái)愈多。最終,整個(gè)螞蟻會(huì )在正反饋的作用下集中到最佳的路徑上,此時(shí)對應的便是待優(yōu)化問(wèn)題的最優(yōu)解。
螞蟻找到最短路徑要歸功于信息素和環(huán)境,假設有兩條路可從蟻窩通向食物,開(kāi)始時(shí)兩條路上的螞蟻數量差不多:當螞蟻到達終點(diǎn)之后會(huì )立即返回,距離短的路上的螞蟻往返一次時(shí)間短,重復頻率快,在單位時(shí)間里往返螞蟻的數目就多,留下的信息素也多,會(huì )吸引更多螞蟻過(guò)來(lái),會(huì )留下更多信息素。而距離長(cháng)的路正相反,因此越來(lái)越多的螞蟻聚集到最短路徑上來(lái)。比如下圖:

兩只螞蟻從A點(diǎn)出發(fā),一只走AD,一只走ACD,每個(gè)單位時(shí)間走一步,考慮9個(gè)單位時(shí)間之后,第一只走到了終點(diǎn)D,第二只剛走到C,僅僅是一半的路程。

第一只螞蟻開(kāi)始返回,等到第二只螞蟻走到D時(shí),第一只返回到了起點(diǎn),這時(shí)過(guò)了18個(gè)單位時(shí)間。這時(shí),AD中每一步的留下的信息素是ACD路徑中信息素的兩倍。36個(gè)單位時(shí)間后,第二只螞蟻剛返回起點(diǎn),ACD每個(gè)點(diǎn)上留下2個(gè)信息素,但是ABD上留下4個(gè)信息素。然后蟻群在A(yíng)D上增派螞蟻,ACD上依然一只螞蟻,再經(jīng)過(guò)36個(gè)單位時(shí)間后,兩條路線(xiàn)上的信息素比例為4:1,這樣隨著(zhù)時(shí)間的增加,蟻群在A(yíng)D上增派的螞蟻越來(lái)越多,信息素也越來(lái)越多,最終所有螞蟻都放棄ACD,選擇AD。
螞蟻具有的智能行為得益于其同時(shí)具有多樣性和正反饋的行為規則。在覓食時(shí),多樣性使螞蟻不會(huì )走進(jìn)死胡同而無(wú)限循環(huán),是一種創(chuàng )新能力;正反饋使優(yōu)良信息保存下來(lái),是一種學(xué)習強化能力。兩者的巧妙結合使智能行為涌現,如果多樣性過(guò)剩,系統過(guò)于活躍,會(huì )導致過(guò)多的隨機運動(dòng),陷入混沌狀態(tài);如果多樣性不夠,正反饋過(guò)強,會(huì )導致僵化,當環(huán)境變化時(shí)蟻群不能相應調整。
蟻群算法可以用來(lái)解決經(jīng)典的TSP(Travelling Salesman Problem)問(wèn)題。

AS算法中,需要定義信息素強度,能見(jiàn)度,隨機選擇比例等一系列符號體系:
假








當






AS算法的大致步驟如下:

經(jīng)典蟻群算法可以輕松應對城市小于75的問(wèn)題,這些年,蟻群算法有大量的變種,越來(lái)越完善,可以解決更大型問(wèn)題。經(jīng)過(guò)對比,在大型TSP問(wèn)題中(最多包括132個(gè)城市),蟻群算法表現要優(yōu)于遺傳算法和模擬熄火。
對于一組隨機數據






2、對上述期望值直接用x領(lǐng)域附近的點(diǎn)進(jìn)行平均估計,比如

不管使用什么思路構造估計模型,估計的效果可以用平方損失進(jìn)行衡量,可以構造一個(gè)叫做均方誤差(Mean Squared Error,MSE)的指標衡量估計值和真實(shí)值之間的差距,假設訓練數據集為



其中



(三)CTA策略的尋優(yōu)難題
CTA策略的參數尋優(yōu)問(wèn)題,看起來(lái)很簡(jiǎn)單,但問(wèn)題的本質(zhì)其實(shí)和前面介紹的理論背景息息相關(guān),這個(gè)問(wèn)題是數學(xué)的,又是統計的,同時(shí)更是藝術(shù)的。
回到CTA策略的本質(zhì),想想我們在構造一個(gè)什么樣的東西。
1、變量
CTA策略中,最本質(zhì)的變量其實(shí)是價(jià)格,和數學(xué)問(wèn)題相比,這個(gè)價(jià)格變量是隨機的,和一般統計問(wèn)題相比,這個(gè)變量是個(gè)近似連續的隨機過(guò)程(每個(gè)tick都是一個(gè)隨機變量)。
當我們引入CTA這個(gè)語(yǔ)言體系,其實(shí)是已經(jīng)假設要對趨勢進(jìn)行刻畫(huà)和跟隨,tick層面的數據無(wú)法進(jìn)行有效的趨勢跟隨,因此把tick數據抽樣成給定周期的K線(xiàn)數據,就是非常重要的一步。因此我們的面對的變量,可以看做是個(gè)離散時(shí)間的隨機過(guò)程。但是,我們處理這個(gè)隨機過(guò)程的方法并不是追求平穩性變換,最終根據隨機過(guò)程各個(gè)變量在時(shí)間層面的穩定性,發(fā)掘出整體的概率結構。
2、目標
CTA最核心的假設是,大部分時(shí)候隨機過(guò)程在震蕩,少部分時(shí)候,出現明顯的方向性趨勢,我們的目標就是根據方向性趨勢的出現進(jìn)行趨勢研判的預測(gen sui),獲取收益,如果預測(gen sui)錯誤,或者方向回調,就止損出場(chǎng),等待新的信號。
針對這個(gè)假設我們構造的交易系統,其實(shí)就是一個(gè)用來(lái)解決上述問(wèn)題的函數,這個(gè)函數的輸入雖然是一維隨機過(guò)程,由于我們要使用隨機過(guò)程的時(shí)間信息,實(shí)際上是個(gè)高維向量,我們針對高維向量通過(guò)交易函數(入場(chǎng)、止損)計算出來(lái)對應的交易業(yè)績(jì)。

上面











CTA參數尋優(yōu)最尷尬的地方在于我們對

回到CTA參數尋優(yōu),我們面臨的問(wèn)題并不是數學(xué)優(yōu)化中梯度下降快速找到最優(yōu)解的問(wèn)題,也不是統計估計中根據隨機結構平衡方差和偏差得到最優(yōu)估計的問(wèn)題。真正的問(wèn)題在于我們面對一個(gè)數據隨機,但是我們對隨機結構并不知曉的估計,同時(shí)我們的估計損失函數是一個(gè)復雜的交易系統(哪怕最簡(jiǎn)單的均線(xiàn)系統,也不是一個(gè)簡(jiǎn)單的數學(xué)函數),如果我們在樣本內暴力尋優(yōu),可能可以讓估計偏差最小,但是這個(gè)交易系統的穩定性非常差,因此大邏輯上可以做到的只能是讓交易函數盡可能保持簡(jiǎn)單,

3、手段和方法
1)控制參數個(gè)數
一個(gè)優(yōu)秀的交易系統,可變的參數應該是2,最多不要超過(guò)3,這一方面控制了交易系統的復雜度防止高度擬合,也防止在更高維度估計參數引起的高維詛咒。因為交易系統本身對K線(xiàn)進(jìn)行了降維處理,參數的個(gè)數類(lèi)似于變量的個(gè)數。
2)避免業(yè)績(jì)孤島
對于


漫長(cháng)的技術(shù)分析發(fā)展史中,技術(shù)分析師們根據交易實(shí)踐矯正了很多有實(shí)際用途的參數,比如5/10/20這種或者7/14/21這種和周、兩周、月等歷法對應的實(shí)踐,又比如1/2/3/5/8/13/21/34/55這種Fibonacci數列,經(jīng)驗參數本身就是避免過(guò)度擬合的方法之一,如果經(jīng)典參數和平滑業(yè)績(jì)相對應,那一般是可以接受的。
常見(jiàn)算法是:

上述方法是量邦天語(yǔ)定義的后驗方法,運行時(shí)日志如下:

其輸出的熱力圖示意如下:

(二)局部線(xiàn)性估計
局部線(xiàn)性估計是一種非常重要的現代非參數統計方法,其核心思想是在每個(gè)局部用線(xiàn)性結構來(lái)擬合目標函數,但是整體上保持靈活性和動(dòng)態(tài)性,從而平衡估計函數的方差和偏差。我們將局部線(xiàn)性估計應用于參數尋優(yōu),最核心的思想是暴力尋優(yōu)后,把參數當做自變量,把業(yè)績(jì)當成函數值,然后對業(yè)績(jì)曲面進(jìn)行局部線(xiàn)性估計平滑,從而掌握參數曲面的整體形態(tài),更好應用前面提到的幾個(gè)參數尋優(yōu)原則。

局部線(xiàn)性估計的平滑結果受核權重函數的影響并不大,但是受平滑窗寬的影響非常大,包含進(jìn)平滑的樣本點(diǎn)個(gè)數決定了業(yè)績(jì)曲線(xiàn)的光滑度,會(huì )產(chǎn)生平滑不足或者過(guò)度平滑的問(wèn)題。
精確最優(yōu)的平滑窗寬需要知道模型隨機誤差的分布信息,實(shí)際上這些信息完全不可知。通常的窗寬用一種經(jīng)驗算法來(lái)確定,假設隨機誤差是正態(tài)分布,并用到業(yè)績(jì)樣本標準差信息

(三)移動(dòng)平滑估計
如果是抽樣解決效率和精度問(wèn)題,局部線(xiàn)性估計提高尋優(yōu)結果的可讀性,移動(dòng)平滑方法從根本上改變尋優(yōu)的思路,通過(guò)對樣本的切割,把尋優(yōu)數據和評估數據加以區分,沿著(zhù)樣本移動(dòng)若干次之后,對若干對參數的樣本外業(yè)績(jì)進(jìn)行綜合評估,這有些借鑒Cross Validation的統計學(xué)思想。
假設我們一共有





綜合考慮所有窗口中的結果來(lái)確定策略表現的有效性和參數的穩定性,輸出下表

我們對前面的優(yōu)化問(wèn)題進(jìn)行適當簡(jiǎn)化,以200天為樣本內數據滾動(dòng)尋優(yōu),可以得到下圖:

有些時(shí)候,人們喜歡把多參數和多策略、多品種、多周期并列為同一級別的四多,獲取實(shí)際意義上的分散。乍看參數尋優(yōu)并不屬于品種、策略思路和周期一個(gè)維度的問(wèn)題,是要通過(guò)尋找分個(gè)彼此高下的問(wèn)題,但是我們建議,不妨在一定的程度上,把參數也當做一個(gè)策略維度,進(jìn)行配置,對于兩個(gè)距離較大,但是業(yè)績(jì)都還不錯的參數取值而言,這種分散相當于更加穩健的策略結構,有些機器學(xué)習boosting的思路。最重要的是,多參數和多策略、多周期,其實(shí)也是一種平衡關(guān)系。

聯(lián)系客服