第一章:簡介
我們如果把金融市場的價格走勢進行歸類的話,那么它是一種非線性的時間序列,第一:屬於時間序列,因此可以用信號處理及計量經濟學的一些模型來進行分析;第二:又是一種非線性的,所謂可以直觀的理解為並不是具有一眼可以看得出的一種規律走勢。
圖1-1是一段K線圖的價格走勢,一般需要把復雜的問題簡單化一些方便我們分析。因此只取他們的close價格並且把他們進行連線,像圖1-2這樣,close價格在進行量化投資分析時是具有比較重要的意義,close價格可以表示一段時刻具有重要參考意義的一種價格;順便說一下。當天的結算價也是具有重要參考意義的。
(圖1-1)
(圖1-2)
那么問題就來了,分析這種非線性的時間序列有各種各樣的方式,這里試圖用信號處理中的相位分析方式來做一下研究,也給大家帶來一種新的思路。在這里也借用廣發金工的研究報告為藍本進行分析(廣發證券_金融工程年度論壇系列報告之十:相位指標在短線擇時中的應用)
第二章:相位是什么?
百度百科的解釋如下:
“所謂相位(phase)是對於一個波,特定時刻在它循環中的位置;一種它是否在波峰、波谷或者他們之間某點的標度。相位描述信號波形變化的度量,通常以度(角度)做為單位,也稱作相角。當信號波形以周期的方式變化,波形循環一周記為360°。”。這種解釋有點兒太抽象了。在知乎中也有相關的解釋,解釋的是比較直觀的。具體可以參考鏈接:https://www.zhihu.com/question/31104681。形象的,如果現在一段波的走勢是一個正弦波如圖2-1。
(圖2-1)
因此任何一種波,我們都可以把它看做在一個圓中進行逆時針旋轉的而形成的一個圓(波是正向走勢,而通過相位變換形成一種圓的逆時針形成相位圖),更加形象點兒的表示就是想水井打水一樣,轆轤轉輪控制着水桶的走勢(圖2-2)
(圖2-2)
當然在后面我們需要把這個正弦波進行推廣到非線性的時間序列,實際的時間序列並不是走的這么規整。
在形象的理解了相位之后,這里要問為什么要用相位。當然答案就是為了更好的分析嘛,我們在(圖2-1)中可以看到在進行相位角旋轉的時候,它會處於四個象限中;比如:
起漲時:處於第一象限
由漲起跌時:處於第二象限
處於完全跌勢時:處於第三象限
由跌轉漲時:處於第四象限
這樣通過相位角的變化,我們可以看出,處於不同的象限內的數據點,非常直觀的被投射到相位圖中表示現在的走勢處於那種狀態中。
第三章:相位有關的幾個術語和知識點
分別通過兩張圖來表示:
(圖3-1)
(圖3-2)
第一章圖反映某一時刻的相位變化,第二章圖是對應的相關計算公式。其實公式也不難我們試着解釋一下。
假設某一個時刻:現在數據(物體)處於P點,對應轉軸運動上的小球位與圖中的P',它與圓心的連線表示為OP',與水平向右方向的家教為θ,那么這個θ就成為相位角或者相位。
相位角會隨着時間而發生變化。如果最初的t=0時θ=φ,那么φ成為初相位。隨着P'點以角速度ω旋轉,相位角會變為θ=ωt+φ。
這樣,物體P'的水平坐標就可以求出來, x=Acos(ωt+φ),這就是運動質點P點的位移隨時間的變化規律。
這里看起來是有一點兒讓人懵逼了。我們在下面進行試着建模看一下是否能夠解決上面的問題。
第四章:建模(根據:廣發證券_金融工程年度論壇系列報告之十:相位指標在短線擇時中的應用)
第一步:初始數據消噪
時間序列A = 長期趨勢 + 短期波動 + 噪聲;這一步是去除噪聲的工作。
時間序列是由長期趨勢、短期波動和噪聲三者疊加。拿到初始數據后,首先要把噪聲處理掉。原文用的MA進行消除噪聲,這里采用DMA,系數暫定位0.25。
第二步:去除長期趨勢
時間序列B = 長期趨勢 + 短期波動;這一步是取其中的短期波動用於構建希爾伯特變化。
這里需要保留所需要的短期波動時間序列。后面的希爾伯特變換的數學對象需要是一個窄帶隨機過程。帶有長期趨勢的時間序列頻帶寬度太大,無法滿足希爾伯特變換的要求。這也是希爾伯特變化為什么只能做短期擇時的本質元音。穩重索索是將通過信號處理中的二階高通濾波器計算得到去出去時候短期波動時間序列。
二階高通濾波器的公式如下:
SF(T) = (1-α/2)^2 * (price(T) - 2price(T-1) + price(T-2)) + 2(1-α) * SF(T-1) - (1-α)^2 * SF(T-2)
此時:
T:為時間序列T表示單簽時刻,T-1表示回溯上一期一次類推。
ST:為二階高通濾波器
0<α<1:此處默認為0.25
price:表示為第一步降噪后的長期趨勢。
通過公式的計算我們獲取短期波動,也就是一個窄帶隨機過程。
第三步:希爾伯特變換構建同相正交空間
下面來進行希爾伯特變換,具體的希爾伯特變換公式可以參考金工報告,重點是需要進行兩個向量的卷積運算。在這里利用TBQuant的強大功能實現希爾伯特變換,在這里主要是為了獲得:同相分量(Inphase component)和正交分量(Quadrature Component),下面簡稱I和Q。再直觀點兒說是為了使通過二階高通濾波器分解的窄帶信號映射在復平面空間上,也就是相量空間,如圖:
通過TBQuant的希爾伯特變換我們將分解到實部和虛部。Q = 虛部;I = 實部。
分步分解序列入下:
在這里我們采用的是窗口分解方式,數據的取值是隨着窗口移動進行的。在這里我們不斷取近期最新的5個值。發現這樣一個現象,最新分解的虛部最后一個值是變動的且在當期不是固定的(實部一樣,因為就是實際的窄帶信號值)。我們會看金工報告。
在這里找到出處:希爾伯特變化用到了未來的M時刻的數據點。也就是希爾伯特變化存在M個數據點的數據延遲。在這里表現為下一期。原文是需要對原數據推遲M個時刻,其實在這里可以用回溯的方式也是可以的。不過好處是在這里的當期值用上一期的值,實際交易和計算時並不需要采用回溯的方式了。
我們把實部和虛部分別畫出來,也就是I和Q的值。
我們這樣看的話看不太清楚,其實這就是兩點的坐標,分別表示X軸和Y軸,在復平面上表示的是實軸和虛軸。我們把這些點畫出來,標准以下他們的走勢。分別對應K線的走勢。基本上來說表示的是非常對應的關系。“價格運動軌跡”也就是我們所說的相量空間,其實在這里是看的比較清晰,價格是圍繞着以0為原點進行逆時針的旋轉運動。
第四步:計算並處理每個時刻的瞬時周期
在上面的就不能中我們已經計算出同相和正交兩個變量。在這里我們已經可以得出同相正交空間中所處的位置。其實在上的Excel表格已經畫出這些點。I和Q兩個值已知的情況下,我們就可以計算出相量的P值。
其實在這里的P值就是相量值,也就是上面由I和Q兩個點標識出的位置,這個位置也叫做相量值。相量值P可以根據相量的數學表達形式求出:
其中A(t)指的是振幅,也是隨時間變化的。其實我們並不想求這個值,我們重要的是得到瞬時的動態相交。
第五步:傅里葉變換計算動態相角
動態相交在這類我們定義為θ。這個公式也是非常簡單的如下公式。
我們只需要用第一個公式即可。分子為虛部I,分母為實部R。然后我們求一個arctan反正切,就能求出瞬時動態的相交,也就是θ。這里求出的θ是為了構建相位和延遲相位,剝離出來的θ是我們最終想要的值。
根據TBQuant,這個值也是非常容易求出的。如下圖:
第六步:樣本內估計最優相位延遲
第七步:根據相位指標確定多空信號
在這一步我們就求出最終的相位指標,示意圖如下:
當然,這是一個線性的的表示,實際過程是一個非線性的過程。在這里我們規定兩個變量:相位指標(Phase_response)和領先相位(Phase_lead),在這里我們發現延遲相位差一個π/4。
其實這里發現,這些指標並不明顯,這是因為我們需要有一個尋優參數,也就是最相位延遲,φ。因此我們的相位指標和領先相位的公式變換為:sin(θ + φ) 和 sin(θ + φ + π/4)。示意圖如下:
這里有一個問題就是就是φ的取值范圍是多少?我們知道一個sin的一個完整的周期是2π(過零點然后再回到0點的位置),九十度為1/2π,負一百八十度為π,負九十度是3/2π,三百六十度為2π,這里就比較容易得到這個φ的取值了。因為在計算的時候我們知道采用的是弧度制,而領先一個完整的周期是360度,我們這里用一個變換取值。這樣我們的尋優可以在1~360+的范圍取值了。
φ = 角度 ÷ 180 × π
這里尋優參數就是角度。
因此相位指標和領先公式可以變化為如下形式:
integer rad; //角度
Phase_response = sin(θ + rad/180*π) //相位指標
Phase_lead = sin(θ + rad/180*π + π/4 ) //領先指標
相位指標最終結果如下:
第三章:簡單的測試
簡單的及交叉策略:
從bu的日線回測結果來看是還可以進行再改進的情況。我們這里設置兩個參數,一個是φ最優相位領先,我們在設置會看樣本內周期lenght的長度,再來看看,無止損的情況,連續交易狀態。
如下是螺紋鋼在加1條下最優參數下的結果:
當然,這種連續交易的方式有時也並不可取,不過這個模型是由比較值得開發的潛力。
=================================================
本篇文章借用出處如下:
https://baike.baidu.com/item/%E7%9B%B8%E4%BD%8D/2391710?fr=aladdin
https://www.zhihu.com/question/31104681
之前的文章感謝大家的轉載,希望轉載時請注明出處,本人轉自其它網站的圖表一並感謝,謝謝~!
https://www.cnblogs.com/noah0532/