從平穩序列構建檢驗,到簡單理解套利邏輯(3)

2021-03-02 量化投資訓練營

  昨天我們談到了如何檢驗平穩序列(使用ADF),之前我們談了平穩序列的重要性(越平穩,越好低買高賣)。在明天講解模型的邏輯之前,可以再加一個小的部分,來介紹Hurst指數,這個用于衡量平穩性的工具。

  大家查閱資料可知,Hurst指數的名字來自,H.E.HURST(赫斯特),他是英國水文學家。可想而知他在水文工作中發現了一定運動規律,並總結出來,他發現用有偏的隨機遊走能夠更好地描述水庫的長期存貯能力。

  水文知識如何被現在的人應用到金融領域?因為時間序列數據遵從隨機遊走還是有偏的隨機遊走過程,也可以用Hurst指標判定,並且可以判定隨機遊走和均值回復的強度。

  Hurst指數體現了時間序列的自相關性,尤其反映了序列中隱藏的長期趨勢,統計學上稱為長期記憶(long-term memory)。從這一點入手,我們一定要清晰,hurst指數是用來衡量時間序列記憶性的工具,它告訴我們:你構造的這個序列,以多大的強度進行隨機遊走,或者以多大的強度進行均值回復。

  通過圖片可以看出,上證指數存在長期記憶性,移動區間(我們常說的滑動窗)hurst指數長時間在0.5以上。所以hurst指數可以是一個數字,對全段數據做完分析得到的結果,也可以是一個時間序列,按滑動窗推進的結果。

  所以我們並不贊成使用Hurst指數擇時,你之前看到的一切關於Hurst指數直接擇時的報告,我們都認為並不穩定。

  這個檢測工具下載地址在:http://cn.mathworks.com/matlabcentral/fileexchange/30076-generalized-hurst-exponent 你也可以按照其代碼,翻譯成python或其他語言。

  我們在檢測時,直接用這段代碼,其中y是你構造的序列,價差、價比、線性回歸殘差等等都可以。

% 具有hurst統計特性的系統(如價格序列),不需要通常概率統計學的獨立隨機事件假設。

% 它反映的是一長串相互聯繫事件的結果。今天發生的事將影響未來,過去的事也會影響現在。

% H=0.5,表明時間序列可以用隨機遊走來描述;

% 0.5<H<1,表明時間序列存在長期記憶性(長期趨勢);

% 0≤H<0.5,表明粉紅噪聲(反持續性)即均值回復過程。

% Hurst函數是三個輸入,三個輸出:[mH,sH]=genhurst(S,q,maxT)

% S是一個N*1序列

% q是常數,默認值是1

% maxT是窗口長度,默認是19

% mH是Hurst指數值

% sH是q的標準差的估計值,q值的確定,可以用統計實驗獲得

% q的取值範圍是大於0的自然數

plot(log(y)); % 繪製y

legend('log(y)');

H=genhurst(log(y), 1);

fprintf(1, '廣義Hurst指數H1 = %f\n', H);


  我們測試了螺紋鋼2010年至今的1小時線數據,得到H1 = 0.526595

2017年8月1日~2017年9月29日,5分鐘線數據。

  螺紋1801 1805跨期價差H1 = 0.381276

  螺紋1801 1805跨期價比H1 = 0.360018

  螺紋1801 1805跨期殘差H1 = 0.232863

  我們當然是希望Hurst越來越趨近於0,這樣能夠獲得近似白噪聲的高度回復的數據。

  移動hurst的測試代碼如下:

% 計算移動hurst指數,窗口期=1000個時間序列

span = 1000;

movhurst = [];

for i = 1:length(y)

    try

        movhurst(i,1)=genhurst(y(i:span+i));

    catch

        movhurst(i,1)=genhurst(y(i:end));

    end

end

% 繪製移動hurst,加入H=0.5基準線,觀察數據在哪些階段內是hurst值低於0.5,有均值回復性質的

plot(movhurst,'r');

legend('movhurst');

hold on;

line([1,length(movhurst)],[0.5,0.5]);

movhurst(isnan(movhurst)',:) = []; 

AvgMovHurst=mean(movhurst);

fprintf(1, 'AvgMovHurst=%f\n', H);



  點擊底部【閱讀原文】

  跳轉到我們發布的《打開量化交易大門 36節精選公開課》目錄。

  或者去優酷,也可以看到完整的課程專輯。

  http://list.youku.com/albumlist/show?id=27113684&ascending=1&page=1.html



相關焦點

  • python時間序列平穩性檢驗專題及常見問題 - CSDN
    在做時間序列分析時,我們經常要對時間序列進行平穩性檢驗,而我們常用的軟體是SPSS或SAS,但實際上python也可以用來做平穩性檢驗,而且效果也非常好,今天筆者就講解一下如何用python來做時間序列的平穩性檢驗。首先我們還是來簡單介紹一下平穩性檢驗的相關概念。圖1.
  • 點寬專欄-研報復現——跨期價差分析與跨期套利研究
    平穩性檢驗1、圖示法當月(IC1601)-次月(IC1602)期指的價格時間序列如下:,stat,cValue,reg]=adftest(y,』alpha』,』lags』,’model』,’test』)得出的結果為:IC1601的P值為0.5199,IC1602的P值為0.3790,IC1603的P值為0.7292,均不滿足平穩性條件,對價格序列做一階差分後再做單位根檢驗,P值均小於0.001,滿足平穩性條件,表明他們之間是同階平穩的價格序列。
  • python時間序列檢驗 - CSDN
    強平穩和弱平穩3. Python平穩性檢驗實戰重要性:10分 (1-10)。時間序列數據的平穩性對於我們採用什麼樣的分析方式、選擇什麼樣的模型有著至關重要的影響。我們想一下,假如一個時間序列的波動趨勢從來沒有穩定過,那麼它每個時期的波動對於之後一段時期的影響都是無法預測的,因為它隨時可能「變臉」。
  • [STATA] 時間序列模型 - ARIMA檢驗
    (不平穩的時間序列數據可能會帶來t檢驗失敗、自回歸係數估計值有偏向的等問題)首先,判斷一個時間序列是不是平穩,主要有三個評價指標:1.(AIC實際上是對樣本內誤差(in sample error)的估計量,即在訓練樣本的基礎上,保持自變量不變,觀察到一組新的y', 然後計算模型在這個新樣本中得到誤差的期望值。)通過單位根檢驗判斷此時間序列是否為平穩時間序列:dfuller ln_wpi,lag(3) trend regress (此處假設滯後3期,lag(3)。
  • 用Python實現一個基於EG協整法的跨周期套利策略
    但是變換後的序列限制了交易標的價格的範圍,並且有時變換後的序列由於不具有直接的分析意義,使得化為平穩序列後所建立的時間序列模型不便於解釋。1987年Engle和Granger提出的協整理論及其方法,為非平穩序列的建模提供了另一種途徑。雖然一些經濟變量的本身是非平穩序列,但是,它們的線性組合卻有可能是平穩序列。
  • 時間序列分析(三):平穩時間序列分析之數據準備
    平穩時間序列是時間序列中一類重要的時間序列,對於該時間序列,有一套非常成熟的平穩序列建模方法,這也是本節中將重點介紹的部分。對於非平穩序列,可以通過差分、提取確定性成分等方法,將轉化成平穩序列,再運用平穩序列建模方法進行建模。在實際操作中,由於樣本數據的匱乏,要根據樣本數據要找到生成樣本的真實隨機過程基本是不太可能的。
  • 時間序列分析簡介
    Q2:時間序列分析方法        時間序列預測法可分為:簡單序時平均數法、加權序時平均數法、移動平均法、加權移動平均法、趨勢預測法、指數平滑法、季節性趨勢預測法、市場壽命周期預測法等    這兩個目的都要求我們識別時間序列數據內在的模式並將其儘可能準確地描述出來。
  • python平穩性檢驗專題及常見問題 - CSDN
    一、平穩序列建模步驟假如某個觀察值序列通過序列預處理可以判定為平穩非白噪聲序列,就可以利用ARMA模型對該序列進行建模。建模的基本步驟如下:(1)求出該觀察值序列的樣本自相關係數(ACF)和樣本偏自相關係數(PACF)的值。(2)根據樣本自相關係數和偏自相關係數的性質,選擇適當的ARMA(p,q)模型進行擬合。
  • 乾貨|時間序列預測類問題下的建模方案探索實踐
    時間序列的自相關性可以理解為時間序列自己與自己(不同滯後項)之間的相關性,本文使用時滯圖來觀察時間序列的自相關性,時滯圖是把時間序列的值及相同序列在時間軸上後延的值放在一起展示,如圖3所示。本文使用觀察法和單位根法進行序列平穩檢驗。觀察法主要是通過序列自相關圖和偏自相關圖來觀察序列的分布是否始終圍繞一個常數上下浮動。單位根法是指通過單位根檢驗來檢查序列中是否存在單位根,如果存在單位根就是非平穩時間序列了。單位根檢驗的原假設是存在單位根,因此如果得到的統計量顯著小於3個置信度(1%,5%,10%)的臨界統計值時,說明是拒絕原假設的。
  • 基於GARCH模型的股指期貨套利策略研究
    改變了運用固定標準差序列的缺陷,提高了統計套利的精確性因此,一些修正模型諸如EGARCH模型、IGARCH模型和GARCH—M模型紛紛出現,但是由於GARCH模型公式比較簡單,其他模型在修正中的作用不是特別明顯,所以本文在模型的選擇中應用普通的GARCH模型。GARCH模型的計算對方程的序列進行討論,首先觀察其自相關和偏相關Q檢驗,通過序列自相關和偏相關Q檢驗圖,我們發現序列存在自相關。
  • 【時間序列】自回歸模型
    並附講時間序列的一些基礎知識點,如果有基礎的可以直接跳到模型部分。1. 時間序列的平穩性1.1 自協方差、自相關函數自相關函數(autocorrelation function)ACF。自相關函數是指不同時點的變量之間的相關性。1.2 平穩性定義平穩可以理解為性質平移不變。時間序列分幾種情況,第一種是純白噪音序列,這個時候就沒有分析的必要了。
  • 利用ARIMA構建高性能時間序列模型(附Python代碼)
    差分運算具有強大的確定性信息提取能力,許多非平穩序列差分後顯示出平穩序列性質,這時我們稱這個非平穩序列為差分平穩序列,對差分平穩序列可以使用ARIMA
  • matlab模型檢驗 - CSDN
    時間序列模型,可分為平穩時間序列和非平穩時間序列。平穩時間序列可以用來擬合回歸方程進行未來的預測,而非平穩的時間序列不能直接做回歸,會產生沒有實際意義的偽回歸。(不平穩的時間序列數據可能會帶來t檢驗失敗、自回歸係數估計值有偏向的等問題)首先,判斷一個時間序列是不是平穩,主要有三個評價指標:1.
  • 不會時間序列預測?不要緊,大神來教你
    首先,我們將使用 Dickey-Fuller 檢驗,我將使用 5% 的基礎 P 值,也就是說,如果 P 值低於 5% 這意味著這個序列在統計上是平穩的。此外,還有模型的統計檢驗,可以將檢驗值與 1%、5%、10% 的臨界值進行比較,如果統計檢驗低於選定的某個臨界值,就認為序列是平穩的:在本例中,Dickey-Fuller 檢驗結果表明序列不是平穩的( P 值 36%,臨界值 5% 小於統計檢驗)。
  • 時間序列基礎
    非平穩序列:ACF衰減緩慢,時間序列有明顯的趨勢確定性趨勢單位根檢驗是平穩性檢驗的特殊方法。單位根檢驗是建立ARMA模型、ARIMA模型、變量間的協整分析、因果關係檢驗等的基礎。單位根檢驗統計檢驗方法有ADF檢驗、PP檢驗、NP檢驗。最常用的是ADF檢驗。無法區分哪個是自變量,哪個是因變量,需要對所有的變量做檢驗。有不平穩的轉化為平穩,後續的操作是針對平穩序列做的以下檢驗。
  • 【時間序列】時間序列基本概念總結
    最近一直在接觸時間序列,所以打算寫一些有關時間序列的文章,預測部分會從規則開始、到傳統模型、到機器學習、再到深度學習,此外也會介紹一些時間序列的基本概念,包括自相關、平穩性、滯後性、季節性等。下圖展示了一個時間序列被分解的過程,第一張圖是所觀察的時間序列,第二張圖是趨勢、第三張圖是季節性,第四張圖是殘差:(以上序列並不存在周期性,這裡只是舉個例子)1.3 平穩性1.3.1 類別平穩性分為弱平穩和嚴平穩,我們分別給出定義:
  • 隨機波動率微笑模型及套利
    本文將簡單地分析金融市場波動率重要的幾個特性,並介紹50ETF相關波動率的度量方法。   本文將簡單地介紹隱含波動率微笑的基本特性。   利用隨機波動率模型進行套利   Vanna-Volga模型,SVI模型,SABR模型都可以用來擬合隱含波動率微笑。   通過模型刻畫的隱含波動率與通過BS公式反算的隱含波動率進行對比,找到每日最被低估和高估的期權合約,分別買入和賣出。
  • 假設檢驗的邏輯
    科學研究是去偽存真的過程,假設檢驗則是實現這一過程的基本方法。
  • 課程解析|時間序列分析與預測
    掌握時間序列分析的基本方法和理論;2. 運用計算機軟體來分析時間序列數據;3. 對經濟和金融中的重要變量構建預測。1.1 時間序列數據的特徵1.2 時間序列分析的基本概念2.1 線性時間序列自回歸模型2.2 線性時間序列滑動平均模型2.3 自回歸滑動平均模型2.4 單位根模型2.5 協整模型3.1 條件異方差模型4.1 非線性模型5.1 高頻時間序列模型6.1
  • 【機器學習基礎】不會時間序列預測?不要緊,大神來教你
    首先,我們將使用 Dickey-Fuller 檢驗,我將使用 5% 的基礎 P 值,也就是說,如果 P 值低於 5% 這意味著這個序列在統計上是平穩的。此外,還有模型的統計檢驗,可以將檢驗值與 1%、5%、10% 的臨界值進行比較,如果統計檢驗低於選定的某個臨界值,就認為序列是平穩的:在本例中,Dickey-Fuller 檢驗結果表明序列不是平穩的( P 值 36%,臨界值 5% 小於統計檢驗)。