順序統計量 - 模擬與交易.5

更新於 發佈於 閱讀時間約 10 分鐘
  1. 假如你有8筆實際的時間序列價格資料,依大小排序後為X(1)、X(2)、...、X(8),然後價格資料給予標準化
  2. 假如你有8筆數據,是透過標準常態分配亂數而得,由小而大依序為 Y(1)、Y(2)、...、Y(8)
  3. 對於步驟2,重複抓取數十萬次,然後取平均,分別得到常態分配狀態下,8筆資料的大小順序期望值,並製作為查表值的依據,所以Z(1)、Z(2)、...、Z(8)依序為 : -1.4317、-0.8600、-0.4831、-0.1624、0.1452、0.4667、0.8570、1.4328
  4. 有了順序期望值之後,直覺的,之後每次產生的8筆隨機亂數,也依序按大小排序,然後與對應的順序期望值做相減,並對該差值取平方,然後予以加總,也就是計算D(i)=X(i)-Z(i),對D(i)取平方,然後把8筆取平方後的D(i)值在加總
  5. 承續前文的常態亂數分配製作方法,對於不同的資料筆數所對應的常態分配大小順序分配期望值,範例以8筆資料為依據,單尾5%的臨界水準值(約為5.25),利下述程式碼改寫與再利用,製作成所需查表值
  6. 以MC程式碼及交易策略而言,可以構想如下
    x=0;
    y=Average(High,8);
    z=StdDev(High,8);
    For ii = 0 to 7 begin
    x=x+Power(((NthHighest(ii+1,High,8)-y)/z) - Rank(ii+1) , 2);
    End;
    If x>5.25 then Buy next bar at Highest(High,8) stop;
  7. Excel VBA 亂數模擬參考程式碼(8筆資料、5.25的查表值)如下
Public RankSort(1 To 8) As Variant
Const FixConst As Variant = 0.398942284 '1/sqr(2*3.1415926)
Public Sub avgRank()
'模擬常態分配隨機變數的順序統計量期望值
Dim seed, seedCalc, nextSeed, NorValue As Variant
Dim ArrNorRandom(1 To 8) As Variant
Dim iith, testNum As Long
For testNum = 1 To 10000
iith = 1
Do
seed = Int(Rnd() * 1000000)
seedCalc = ((seed - 500000) * 0.000001) * 8 '模擬4個標準差範圍的 N(0,1) 常態分配變數
NorValue = Format(FixConst * Exp(-0.5 * seedCalc * seedCalc), "0.000000") '常態分配機率函數的數值
nextSeed = 0
nextSeed = Int(0.001 * (seed * seed))
nextSeed = Format(0.000001 * nextSeed - Int(0.000001 * nextSeed), "0.000000")
nextSeed = Int(1000000 * nextSeed)
nextSeed = Int(((23 + iith * 0.01) * nextSeed + 1011 * iith)) Mod 999999
nextSeed = Format(nextSeed * 0.00001 * FixConst, "0.000000")
'Debug.Print seedCalc, NorValue, nextSeed
If (nextSeed) < NorValue Then
ArrNorRandom(iith) = seedCalc
'Debug.Print iith, ArrNorRandom(iith)
'Sheets("工作表3").Cells(iith, 1) = ArrNorRandom(iith)
iith = iith + 1
End If
Loop While iith <= 8
'泡沫排序法
Dim swapTemp, ii, jj As Variant
For jj = 0 To 6
For ii = 1 To 7 - jj
If ArrNorRandom(ii) > ArrNorRandom(ii + 1) Then
swapTemp = ""
swapTemp = ArrNorRandom(ii + 1)
ArrNorRandom(ii + 1) = ArrNorRandom(ii)
ArrNorRandom(ii) = swapTemp
End If
Next ii
Next jj
'Debug.Print ArrNorRandom(1), ",", ArrNorRandom(2), ",", ArrNorRandom(3), ",", ArrNorRandom(4)
'Debug.Print ArrNorRandom(5), ",", ArrNorRandom(6), ",", ArrNorRandom(7), ",", ArrNorRandom(8)
For ii = 1 To 8
RankSort(ii) = RankSort(ii) + ArrNorRandom(ii)
Next ii
Next testNum
For ii = 1 To 8
RankSort(ii) = RankSort(ii) / testNum
Next ii
'Debug.Print RankSort(1), ",", RankSort(2), ",", RankSort(3), ",", RankSort(4)
'Debug.Print RankSort(5), ",", RankSort(6), ",", RankSort(7), ",", RankSort(8)
End Sub
Public Sub RankLevel()
Dim seed, seedCalc, nextSeed, NorValue As Variant
Dim ArrNorRandom(1 To 8), sqrDiff(1 To 100000) As Variant
Dim iith, testNum As Long
avgRank '事前取得順序統計量的期望值,並宣告為全域變數
For testNum = 1 To 100000 '模擬次數
iith = 1
Do
seed = Int(Rnd() * 1000000)
seedCalc = ((seed - 500000) * 0.000001) * 8
'模擬4個標準差範圍的 N(0,1) 常態分配變數
NorValue = Format(FixConst * Exp(-0.5 * seedCalc * seedCalc), "0.000000") '常態分配機率函數的數值
nextSeed = 0
nextSeed = Int(0.001 * (seed * seed))
nextSeed = Format(0.000001 * nextSeed - Int(0.000001 * nextSeed), "0.000000")
nextSeed = Int(1000000 * nextSeed)
nextSeed = Int(((23 + iith * 0.01) * nextSeed + 1011 * iith)) Mod 999999
nextSeed = Format(nextSeed * 0.00001 * FixConst, "0.000000")
If (nextSeed) < NorValue Then
ArrNorRandom(iith) = seedCalc
iith = iith + 1
End If
Loop While iith <= 8

'泡沫排序法
Dim swapTemp, ii, jj As Variant
For jj = 0 To 6
For ii = 1 To 7 - jj
If ArrNorRandom(ii) > ArrNorRandom(ii + 1) Then
swapTemp = ""
swapTemp = ArrNorRandom(ii + 1)
ArrNorRandom(ii + 1) = ArrNorRandom(ii)
ArrNorRandom(ii) = swapTemp
End If
Next ii
Next jj

'本次產生的隨機亂數排序後與對應的序列期望值做運算
For ii = 1 To 8
xTemp = ArrNorRandom(ii) - RankSort(ii)
sqrDiff(testNum) = sqrDiff(testNum) + xTemp * xTemp
Next ii
Next testNum '本次模擬次數,testNum=100000
'sqrDiff陣列共計10萬筆數據,泡沫排序,求解第95001序位
For jj = 0 To 4999 '資料數據共計10萬筆,求解第95001序位
For ii = 1 To 100000 - 1 - jj
If sqrDiff(ii) > sqrDiff(ii + 1) Then
swapTemp = ""
swapTemp = sqrDiff(ii + 1)
sqrDiff(ii + 1) = sqrDiff(ii)
sqrDiff(ii) = swapTemp
End If
Next ii
Next jj
Debug.Print sqrDiff(95001)
End Sub
為什麼會看到廣告
avatar-img
21會員
112內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Piemann的沙龍 的其他內容
承續前篇內容,另外使用第二種隨機性檢定方式,來判斷價格是否處於盤整盤,假若為盤整盤,價格應集中在均線位置附近或是前後相鄰的數值差異很小,數據計算方法如下
承續前篇,透過觀察統計檢定量的公式,隨機性的檢定是透過前、後期的資料乘積與均數差異的平方,取其比值大小最為判斷,現在透過更為高階的動差概念,來討論價格資料是否屬於盤整型態,其中以動差的視角來看,均數屬於一階動差、變異數屬於二階動差、偏態屬於三階動差、峰態屬於四階動差,相關公式詳列如下
價格數據可透過隨機性檢定方式,以判斷行情是否在盤整盤狀態。假若行情為盤整盤,前後價格應該偏向漲跌互見的形式;反之若為趨勢盤,則前後價格應該偏向漲、漲、漲與跌、跌、跌的連續形式。 統計方法如下 : 假設有一系列的觀察值X(1)、X(2)、...、X(n),系列相關係數與統計檢定量定義如下
假設你有一串時間數列資料,資料時間長度可以是Tick、分鐘K,也可以是日K的等級,請問有甚麼方法可以評估是否為盤整盤 ?
在交易策略裡,總是希望可以掌握波動度,評估波動度的方法除了標準差之外,用分位數的距離來評估也是不錯的方法,這裡提供Excel VBA程式碼參考
承續前篇內容,另外使用第二種隨機性檢定方式,來判斷價格是否處於盤整盤,假若為盤整盤,價格應集中在均線位置附近或是前後相鄰的數值差異很小,數據計算方法如下
承續前篇,透過觀察統計檢定量的公式,隨機性的檢定是透過前、後期的資料乘積與均數差異的平方,取其比值大小最為判斷,現在透過更為高階的動差概念,來討論價格資料是否屬於盤整型態,其中以動差的視角來看,均數屬於一階動差、變異數屬於二階動差、偏態屬於三階動差、峰態屬於四階動差,相關公式詳列如下
價格數據可透過隨機性檢定方式,以判斷行情是否在盤整盤狀態。假若行情為盤整盤,前後價格應該偏向漲跌互見的形式;反之若為趨勢盤,則前後價格應該偏向漲、漲、漲與跌、跌、跌的連續形式。 統計方法如下 : 假設有一系列的觀察值X(1)、X(2)、...、X(n),系列相關係數與統計檢定量定義如下
假設你有一串時間數列資料,資料時間長度可以是Tick、分鐘K,也可以是日K的等級,請問有甚麼方法可以評估是否為盤整盤 ?
在交易策略裡,總是希望可以掌握波動度,評估波動度的方法除了標準差之外,用分位數的距離來評估也是不錯的方法,這裡提供Excel VBA程式碼參考
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
  會執行程式交易通常都有自己手單交易過的人,容易陷入自己主觀判斷進而影響量化交易,是因為來自於自己相信自己的判斷而非程式的進出場依據所造成,所以當有經驗的操作者要切入量化交易很容易犯這方面的問題,反而是從未進行交易過的,直接進行量化交易的小白是最適合,因為只能相信系統的買賣進出交易,反而可以有紀律
挑選週五周轉率排行榜遇到壓力支撐有反應的標的,預期下個交易日會比較有波動,有波動才有價差,有價差當沖才有利潤。 2365,3963,8054,1316,5443,6215,4303,4533,4967,9906,1597,9955,4564,3024,1569,3689,6805,8054,131
挑選週三周轉率排行榜遇到壓力支撐有反應的標的,預期下個交易日會比較有波動,有波動才有價差,有價差當沖才有利潤 5443,3047,3580,8064,8440,3167,8028,8054,2365,2061,6869,6187,6640,3024,3376,9906,3450,3188,456
Thumbnail
這本書提供了54個超強說服話術,從改變說話順序到輕鬆說服各種人,包括提案通過、交涉成功、改善人際。作者提供了職場上適用的溝通技巧,包括表達清楚、表情和動作,以及如何打動人心。這些技巧對於初入職場的新鮮人來說非常實用。
Thumbnail
本研究使用了盤中逐筆成交資料(Tick-by-tick Data)來進行股票價格的預測,並討論了馬可夫鏈模型和擴散核模型在這方面的應用。研究結果表明,大多數股票的未來三秒價格可以在少於22個狀態中找到,顯示了交易價格的低不確定性。此外,研究還發現波動性更大和價格更高的股票更難以準確預測。
Thumbnail
個股當沖完整記錄目前也會放上來做紀錄,其實量化自動交易就是完成實際上的回測數據,接下來就是嚴格執行,過程中不能干預,並維持確保系統正常執行,並持續開發新策略即可。
Thumbnail
福爾摩斯曾說,排除一切不可能的剩下來的即使再不可能,那也是真相。 但需要注意人的思考經常有誤區,會慣性置入刻板印象 例如:小偷穿著制服進入,體型嬌小所以能夠將手從夾縫中拿取錢財。 可疑人士一共有三位 A:60歲的婦人 B:18歲的少年 C:12歲的女童 根據特徵,這三名可疑人士都有可能
Thumbnail
以心智化為基礎的短期治療有兩個主要目標,一是提升兒童在情緒調節上的能力,二是支持父母滿足孩子在情緒上的需求。經過訓練的助人工作者比較能夠在情緒張力緊繃的狀況下,辨認出心智化出錯的地方,協助父母與孩子重新理解雙方的內在狀態。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
  會執行程式交易通常都有自己手單交易過的人,容易陷入自己主觀判斷進而影響量化交易,是因為來自於自己相信自己的判斷而非程式的進出場依據所造成,所以當有經驗的操作者要切入量化交易很容易犯這方面的問題,反而是從未進行交易過的,直接進行量化交易的小白是最適合,因為只能相信系統的買賣進出交易,反而可以有紀律
挑選週五周轉率排行榜遇到壓力支撐有反應的標的,預期下個交易日會比較有波動,有波動才有價差,有價差當沖才有利潤。 2365,3963,8054,1316,5443,6215,4303,4533,4967,9906,1597,9955,4564,3024,1569,3689,6805,8054,131
挑選週三周轉率排行榜遇到壓力支撐有反應的標的,預期下個交易日會比較有波動,有波動才有價差,有價差當沖才有利潤 5443,3047,3580,8064,8440,3167,8028,8054,2365,2061,6869,6187,6640,3024,3376,9906,3450,3188,456
Thumbnail
這本書提供了54個超強說服話術,從改變說話順序到輕鬆說服各種人,包括提案通過、交涉成功、改善人際。作者提供了職場上適用的溝通技巧,包括表達清楚、表情和動作,以及如何打動人心。這些技巧對於初入職場的新鮮人來說非常實用。
Thumbnail
本研究使用了盤中逐筆成交資料(Tick-by-tick Data)來進行股票價格的預測,並討論了馬可夫鏈模型和擴散核模型在這方面的應用。研究結果表明,大多數股票的未來三秒價格可以在少於22個狀態中找到,顯示了交易價格的低不確定性。此外,研究還發現波動性更大和價格更高的股票更難以準確預測。
Thumbnail
個股當沖完整記錄目前也會放上來做紀錄,其實量化自動交易就是完成實際上的回測數據,接下來就是嚴格執行,過程中不能干預,並維持確保系統正常執行,並持續開發新策略即可。
Thumbnail
福爾摩斯曾說,排除一切不可能的剩下來的即使再不可能,那也是真相。 但需要注意人的思考經常有誤區,會慣性置入刻板印象 例如:小偷穿著制服進入,體型嬌小所以能夠將手從夾縫中拿取錢財。 可疑人士一共有三位 A:60歲的婦人 B:18歲的少年 C:12歲的女童 根據特徵,這三名可疑人士都有可能
Thumbnail
以心智化為基礎的短期治療有兩個主要目標,一是提升兒童在情緒調節上的能力,二是支持父母滿足孩子在情緒上的需求。經過訓練的助人工作者比較能夠在情緒張力緊繃的狀況下,辨認出心智化出錯的地方,協助父母與孩子重新理解雙方的內在狀態。