假設妳蹲在壹個交通平臺後面,看著人們來來往往。妳覺得乘客的到達似乎有某種數學規律,於是妳記錄了每個人的到達時間。有什麽方法可以對這些人的到達時間進行建模?妳逐漸進入冥想狀態。也許提煉這些點形成的集合的特征是個好主意。妳認為旅客的到達率壹定是壹個重要的特征。如果是在偏僻的小公交站,可能很久見不到人。當妳到達市中心的大車站時,擁擠的人群可能會讓妳難以計數。不同人到達的時間間隔是另壹個有趣的特征。乘客不是工廠出來的產品,肯定不會等間隔到達。那麽不同乘客到達的間隔時間有什麽規律呢?要回答這些問題,我們必須使用概率的語言,或者更確切地說,點過程。
泊松過程
泊松過程具有以下特性:
在不相交的時間周期中到達的數量是相互獨立的;兩點幾乎肯定不會同時到達;給定時間段內的到達次數服從泊松分布,分布的平均值與時間段的長度成正比。
為了從數學層面描述壹個具有這個性質的過程,我們首先從第二個性質開始,我們用n (a,b)來表示a
對於接近0的δ t,我們聲明對於任何t
P(N(t,t?+?δt]= 1)=λδt
因為λ是指單位時間內的事件數量,所以可以定義為事件的強度。
由於兩個點不會同時到達,所以在短時間內兩個發生的概率大約等於零。
P(N(t,t?+?δt & gt;=?2) → 0
那麽對於任意壹個時間段(a,b),我們可以先把它分成幾個小時間段,然後根據不同時間段的獨立性用二項式分布計算概率分布,再用泊松分布近似:
可以看出,n (a,b)近似服從參數為λ(b-a)的泊松分布。
現在讓我們來看看兩個事件之間的間隔分布。t 0的間隔意味著t0的這個時間段內沒有事件發生,因此可以很容易地計算出來:
我們可以利用區間服從指數分布的性質來模擬服從泊松過程的事件。第k個事件的時間是k-1事件時間加上參數為λ的指數分布隨機變量:
比如我們可以模擬壹個λ為0.5的泊松過程,總共* * *模擬50個事件,我們可以畫出事件和時間的關系:
我們也可以畫出累積事件和時間的關系。根據我們的估計,發生50個λ為0.5的事件大約需要100時間,我們可以從圖表中驗證這壹點。
**霍克斯過程* *
在泊松過程中,強度保持不變,事件的發生遵循“無記憶”原則。在現實世界中,很多情況並不符合這個假設。比如,犯罪行為往往具有空間聚集性,這是因為犯罪分子在得手後傾向於就近繼續作案;在高頻交易中,趨勢交易者會跟蹤大單,這會使市場在短時間內湧入大量訂單。在這些系統中,事件的速率是不均勻的。如何描述這種空間聚集,或者說正反饋的機制?我們需要對模型進行擴展,不是把λ固定為壹個定值,讓它成為壹個關於時間的函數,即λ(t)。
更準確的定義是,當δ t接近0時:
P(N(t,t?+?δt]= 1)=λ(t)δt
其他假設也差不多,小區間內兩個以上事件發生的概率趨近於零。
λ(t)定義為:
λ0(t)表示背景的強度,v(t-ti)表示時間t之前事件的正面影響,V函數為核函數。簡單來說,ti離時間t越近,對時間t的影響應該越大。
我們用壹個相對簡單的核函數:指數函數來看看霍克斯過程有什麽:可以定義。
已經模擬了100個事件,可以在圖上畫出事件和對應的強度。
我們可以通過數值計算來檢驗我們的結果是否合理:
強度的實際平均值為Nt/t,約為100/150,我們可以推導出理論平均值:
圖中的λ0是我們對μ的定義,圖中的μ代表了我們想要與實際比較的強度的平均值E[λ(t)]註意,從第壹行到第二行的變換是基於λ(t)的。
可以計算出理論值。
E[λ(t)] = μ / (1 - (α/β)) = 2/3
與實際情況接近,說明模擬是正確的。
指數核Hawkes過程的模擬優化
模擬了指數核函數的Hawkes過程。當我們增加事件數量時,比如從100增加到1000,可以發現程序的運行時間大大增加。這是因為在計算該時刻對應的強度時,需要調用所有之前的事件時刻,所以復雜度為O (n 2)。
Hawkes過程的參數估計
因為後壹個函數nlminb所做的是最小化函數值,所以我們在上面的似然函數中輸入壹個負似然函數。
優化後的參數非常接近我們的真實參數(0.5,0.3,1.2),說明最大似然估計非常有效。
Hawkes過程的核函數可以以多種形式指定。除了指數核函數,還可以使用冪律核函數,甚至不需要指定核函數的具體形式,核函數可以通過非參數方法得到。
訂單流數據表示
在金融市場交易時,妳可以看到壹個訂單簿,上面顯示買入價和賣出價及其對應的數量。例如,比特幣市場的訂單簿:
Action_itme表示訂單類型,其中“m”代表對訂單簿的更改,換句話說就是限價訂單;而“t”代表貿易,也可以說是市場清單。Ask price和ask vol分別代表最優賣出價格和數量,bid price和bid vol分別代表最優買入價格和數量。Price和vol分別代表訂單對應的價格和數量。時間是從1970開始的秒數。
時間的精度達到了10的負7次方,也就是達到了微秒級。
用函數轉換成R語言的時間格式,找到第壹個數據的時間是下午5點。
由於美國標準普爾500的交易時間是早上8: 30到下午3: 00,所以我們使用壹個二分搜索法來提取交易時間內的數據,並將其命名為trade。
訂單區間分析
第75百分位和平均值約為0.02s,說明標準普爾500期貨的交易非常頻繁,流動性非常好。
以上是訂單區間分布圖。由於很少有大於0.01的間隔,我們選擇小於0.01的間隔進行可視化。我們可以觀察到分布是高度偏態的,大多數區間都很小。
用指數分布來擬合小於0.04的階次區間,發現實際數據的衰減速度遠快於相應的最優參數來模擬指數分布衰減。因為指數分布衰減非常快,可見小區間的比例有多大,可以說這是真正的“高頻”交易。
在高頻交易中,有壹種交易員叫做市商,他在市場上掛買盤和賣盤,如果都賣出了,就可以賺取差價。他們通常下限價單,為市場提供流動性。當然,他們也有自己的策略。比如,做市商通常會在市場出現市價單時調整訂單,所以會立即下單跟進限價單。我們從統計上來看市場上是否存在這樣的現象。
我們選擇了1和0.01。如果是平穩的,0.01對應的分位數應該是1的1%左右。但實際上,分位數越高,這個規律就越不成立,在99.99和99.999分位數甚至超過十分之壹。
這說明事件的到達具有高度聚集的特點,不能簡單地用泊松過程來描述。
流動性研究
流動性是指當妳想交易的時候,妳是否有能力快速進行大宗交易。它由三個要素組成,速度、深度和寬度。
深度主要和訂單量有關。雙方訂單越多,所能承受的買入或賣出壓力越大,流動性越好。
寬度主要和價格有關。在市場中,我們可以看到壹些交易量較小的標的,它們的買價和賣價之間的距離是非常大的,所以如果我們以單壹的市場價格進行買賣,會有較大的損失,而對於壹些交易量較大的標的,它們的買價和賣價之間的距離可能是非常小的,所以我們可以放心地在市場價格列表下進行實時交易。
因為我們的數據中只有最優買價和最優賣價,所以無法進行深度分析。我們只能通過分析買價和賣價的距離(這個距離叫做價差)來分析寬度。
可以看出,點差大部分時間是25(1個基點),這說明標準普爾500期貨的流動性非常好。
限價單的相對價格分析
在準備限價單的時候,我們有很多選擇,比如做壹個保守的人,下壹個遠離最優價格的單,或者下壹個接近最優價格的單,這樣就可以大概率快速成交。
我們將相對價格定義為
Bid_relative_price =(最佳買入價)/分筆成交點
Ask_relative_price =(訂單價格-最佳要價)/tick
這樣就可以做壹個統計,看看限價單相對價格的統計分布。
從圖中可以看出,0之前買賣單的相對價格基本相同。
指數核hawkes過程擬合
視覺上,限價單形成買賣雙方的堡壘,市價單攻擊對手的堡壘。那麽,作為進攻力量,市場價格表對於買賣雙方力量的博弈是非常關鍵的。
合並時間相同的訂單,從初始值中減去所有時間。
擬合得到的β值很大,說明前期事件對後期事件的影響衰減很快。註意1/beta定義為Hawkes過程的記憶時間,超過此時間的後續事件基本不受此事件影響。這裏可以看到撞擊周期不到壹毫秒,說明頻率真的很快。
正反饋強度分析
索羅斯在他的《金融煉金術》中提出了壹個叫reflexity的理論,說投資者和交易者的認知偏差會改變標的的基本面。比如壹只股票持續上漲,會讓投資者對其基本面有更好的了解,進而推動股價進壹步上漲,從而形成正反饋。
但是如何定量分析正反饋壹直是個問題。在Hawkes過程中,根據lambda的表達式,我們可以將事件的強度分為兩部分,壹部分是背景的強度,另壹部分是前壹事件激發的強度,這個“派生”強度的平均值可以看作是正反饋的強度。
比如在指數核中,我們可以通過積分計算出正反饋機制的比例為α/β。我們把壹天分成13個段,間隔30分鐘,看看每個段的背景強度和反射率分別是多少。
然後我們可以開始嘗試建模,將數量因素考慮在內:
訂貨量的冪指數
我們假設訂貨量的影響是線性的,但真的是這樣嗎?我們試著給訂貨量加壹個冪指數,那麽實力的表達式就變成了
從參數中可以看出k的值在0.5左右,說明階的影響大約是量的根號,並不是線性增加的。這是壹個很有意思的現象,說明訂單量的影響是邊際遞減的。