亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于指數(shù)平滑和WKNN 的金融時間序列相似性搜索

        2019-11-22 08:22:58張喬夫何文明
        現(xiàn)代計算機 2019年29期

        張喬夫,何文明

        (嶺南師范學(xué)院數(shù)學(xué)與統(tǒng)計學(xué)院,湛江524048)

        0 引言

        股票價格等金融時間序列受貨幣政策、公司盈利能力、突發(fā)事件和群體博弈心理等諸多因素影響,總體近似于隨機波動,部分時間又有顯著的羊群效應(yīng)。挖掘金融時間序列相似性,可在量化交易中取得超額收益[1]。

        簡單移動平均(Simple Moving Average,SMA)是等權(quán)重的,周期較短時所得序列不夠光滑。指數(shù)移動平均(Exponential Moving Average,EMA)通過對時間較遠的數(shù)據(jù)賦予較小的權(quán)重,對較近的樣本賦予較大的權(quán)重,從而在平滑原始時間序列的同時保留重要信息[2]。EMA 是 MACD(Moving Average Convergence Divergence)和TRIX(Triple Exponential Moving Average)等技術(shù)指標的基礎(chǔ)。MACD 相關(guān)交易策略已有較多成果[3],而TRIX 的研究相對較少。TRIX 連續(xù)使用三次EMA,因此比較光滑,便于求導(dǎo)(價格上漲速度)。

        在計算序列相似性時,經(jīng)典的Euclid 距離難以處理平移誤差。動態(tài)時間彎曲(Dynamic Time Warping,DTW)容許時間軸上的輕微扭曲,已成功應(yīng)用于:手勢識別[4]和語音識別[5]等領(lǐng)域。DTW 可以比較非等長序列,并轉(zhuǎn)化為動態(tài)規(guī)劃問題精確求解。原始算法存在兩個問題:畸變可能較大,搜索空間大導(dǎo)致處理大數(shù)據(jù)時速度較慢。使用Keogh 下界[6]可以限制搜索范圍并顯著提高運算速度,此方法是精確無損的。其他加速方法還有:分片線性逼近[7]、自適應(yīng)分段逼近[8]、主成分分析[9]和小波變換[10]等。其主要思想是對數(shù)據(jù)進行某種擬合,犧牲少量精度,降低運算復(fù)雜度。

        本文使用了導(dǎo)數(shù)動態(tài)時間彎曲(Derivative Dynamic Time Warping,DDTW)[7]和 加 權(quán) 動 態(tài) 時 間 彎 曲(Weighted Dynamic Time Warping,WDTW)[11]。距離中包含導(dǎo)數(shù)信息,近似于要求兩個序列的導(dǎo)數(shù)也比較接近,因此可以減輕彎曲路徑的畸變。時間較近的數(shù)據(jù)對預(yù)測影響更大,因此對時間加權(quán)也是一種正則化方法。

        K 最近鄰(k-Nearest Neighbor,KNN)是模式識別中的一種經(jīng)典算法。某些情況下,距離加權(quán)KNN 優(yōu)于等權(quán)重的KNN[12]。

        本文主要內(nèi)容如下:

        (1)使用三重指數(shù)平滑(TRIX 周期=10)對金融時間序列進行去噪。

        (2)識別平滑后序列的高低點,計算上漲(下跌)周期長度。初步選出平均盈利較高的樣本,同時大幅壓縮樣本量。

        (3)計算每個樣本與高盈利樣本之間的DTW 距離。距離較近時買入,TRIX 上漲周期結(jié)束時賣出。

        (4)分別對原始序列和平滑序列計算零階到二階導(dǎo)數(shù),根據(jù)時間先后賦予不同權(quán)重。

        (5)最后比較了平滑次數(shù)、KNN 權(quán)重和樣本長度對收益的影響。

        1 算法實現(xiàn)

        為了降低數(shù)據(jù)噪聲,首先給出EMA 和TRIX 算法,利用TRIX 識別漲跌周期。

        金融時間序列中最常用的預(yù)處理方法是移動平均,但均線序列拐點較多,不利于識別周期。均線頻繁的變動方向,意味著價格沒有明顯的趨勢。此時無論做多還是做空,收益較小,甚至可能虧損。為便于機器自動識別周期,本文將使用TRIX 指標。

        簡而言之,EMA 是加權(quán)平均一次,TRIX 是EMA三次再求導(dǎo)。文末的實驗結(jié)果將說明平滑次數(shù)越多,所得交易策略的平均收益越高。

        算法1 EMA 算法

        輸入:時間序列{xi},周期常數(shù)P。

        輸出:指數(shù)平滑后的等長度序列{emai}。

        for 0<=i

        emai=nan;

        emaP-1=mean(x0,…xP-1);

        for i>=P

        emai=a*xi+(1-a)*emai-1;

        其中a=2/(P+1)。

        前P-1 個EMA 值可以用簡單平均代替,此處和著名技術(shù)指標庫TA-Lib 的算法保持一致。TA-Lib 中也包含了TRIX 函數(shù),然而為了說明平滑次數(shù)的作用,本文也對TRIX 的中間狀態(tài)值進行了DTW 計算。

        算法2 TRIX 算法

        輸入:時間序列{xi},周期常數(shù)P。

        輸出:3 個等 長 度的 平 滑 序列{ema0i},{ema1i},{ema2i}和1 個導(dǎo)數(shù)序列{trixi}。

        {ema0i}=EMA({xi},P);

        {ema1i}=EMA({ema0i},P);

        {ema2i}=EMA({ema1i},P);

        for i>3*P+1

        trixi=ema2i/ema2i-1-1;

        如前所述,我們將識別出TRIX 序列的拐點,僅在拐點處交易。這樣可以大幅減少判斷次數(shù),減輕后面DTW 的計算負擔(dān)。

        算法3 TRIX 周期交易算法

        輸入:時間序列{xi},周期常數(shù)P;

        輸出:標記當(dāng)前點是否屬于有效局部極值,是否滿足買入賣出條件,滿足條件時記錄收益率。

        計算TRIX 序列{trixi};

        if(trixi-1>trixi-2and trixi-1>trixi)

        i-1 標記為局部高點high_loc;

        if(trixi-1

        i-1 標記為局部低點low_loc;

        if(當(dāng)前持股數(shù)量>0 and trixi

        賣出,持股數(shù)量=0,計算本次交易盈虧;

        if(當(dāng)前持股數(shù)量=0 and i-1 是局部低點and 2

        10 < high_loc- pre_low_loc and 10 < pre_low_locpre_high_loc)

        買入,持股數(shù)量=1;

        其中pre_low_loc 指{low_loc}序列中l(wèi)ow_loc=(i-1)之前的那一個低點;pre_high_loc 類似。

        從幾何角度理解,高低點依次出現(xiàn):pre_high_loc

        DTW 算法在各類文獻中已經(jīng)描述較多。相比標準流程,本文有三處簡化:

        (1)只計算距離,不存儲彎曲路徑;

        (2)限制最大彎曲,即max|i-j|<=round(0.1*數(shù)據(jù)長度);

        (3)只計算兩個等長度序列的DTW 距離。

        簡化會帶來一些誤差(非隨機),但量化交易對精度要求不高,允許少量誤判(中長期策略的勝率一般小于70%)。下文的模擬收益也可說明簡化的合理性。因為要在收盤前1 分鐘內(nèi)調(diào)用幾萬次DTW 函數(shù),簡化后的運算速度才能滿足實戰(zhàn)要求。

        算法4 Weighted Derivative 距離算法

        輸入:時間序列{xi},{yj}。

        輸出:任意兩點xi和yj的距離。

        一階差分dx={0},二階差分d2x={0};

        for i>=1

        dxi=xi-xi-1;

        for i>=1

        d2xi=dxi-dxi-1;

        一階差分dy 和二階差分d2y 類似可得;

        weight(i,j)=1 or(i+j)or sqrt(i+j);

        零階距離=weight(i,j)*|xi-yj|;

        一階距離=weight(i,j)*sqrt(|xi-yj|2+|dxi-dyj|2);

        二階距離=weight(i,j)* sqrt(|xi- yj|2+ |dxi- dyj|2+|d2xi-d2yj|2)。

        權(quán)重函數(shù)要保證i 和j 互換之后不變,即weight(i,j)=weight(j,i)。通常距離越近的數(shù)據(jù),對當(dāng)前交易決策的影響越大。故選用的權(quán)重函數(shù)是單調(diào)遞增的。

        文末數(shù)值實驗將分別針對原始序列、一次EMA、二次EMA、三次EMA 和TRIX 總計5 種序列計算DTW 距離。為了方便并行處理,將時間序列填充為矩陣,每行代表一個序列,最后一列表示各行對應(yīng)的買點。由于金融時間序列的特殊性,序列中的值必須可在交易之前觀察到。另設(shè)一個向量存儲每行對應(yīng)的收益率。

        定義距離之后,就可以計算與歷史上全體高收益樣本之間的相似性。每個樣本與多個參考樣本比較,產(chǎn)生多個距離,需要合成為單一評價指標。此處采用三種方法:中位數(shù)(Median)、收益率加權(quán)平均(WKNN)和最小值(1NN)。

        算法5 加權(quán)KNN 算法

        輸入:時間序列矩陣X,每行對應(yīng)收益率earn,KNN 的K 值。

        輸出:每行序列是否值得買入。

        對時間上已發(fā)生序列的收益率進行排序,取最大的K 個樣本;

        計算當(dāng)前序列到這K 個樣本的DTW 距離;

        每個高收益樣本的修正權(quán)重=min(max(1/earn,0),1);

        當(dāng)前序列的綜合打分=sumK(權(quán)重*到第k 個樣本的DTW 距離);

        綜合打分小于20%分位值時,買入。

        第k 個樣本的收益率越高且DTW 距離越小,相似度越高,權(quán)重應(yīng)該越大,故收益率取倒數(shù)。

        2 模擬交易結(jié)果

        最近十年(2009-01-01 至2019-07-09)A 股每日收盤價數(shù)據(jù)總量約為620 萬股*天。使用算法3,得到交易樣本數(shù)18055,平均收益2.02%。盈虧比約為1.9,勝率僅為40%。較低的準確率從側(cè)面說明,在金融時間序列中使用動態(tài)時間彎曲時,采用有少量誤差的簡化是可以接受的。

        由于運算速度限制,后續(xù)數(shù)值實驗均在此數(shù)據(jù)集上進行。為方便比較,KNN 中的K 統(tǒng)一等于10。

        實驗結(jié)論一:指數(shù)平滑次數(shù)與平均收益率正相關(guān)。原因可能是越平滑,噪聲越小,DTW 的畸變越小。

        令DTW 中時間權(quán)重weight(i,j)=1,不計算DTW的導(dǎo)數(shù),觀察序列長度=50。表中收益率均代表18055*20%=3611 個樣本。

        表1 指數(shù)平滑次數(shù)與收益率關(guān)系

        實驗結(jié)論二:時間序列長度在50 附近時,平均收益率最高。

        取weight(i,j)=1,不計算DTW 的導(dǎo)數(shù)。由表1 可知,TRIX+WKNN 收益顯著高于其他情況。故表2 僅羅列了TRIX 的表現(xiàn)。

        表2 時間序列長度與收益率關(guān)系

        實驗結(jié)論三:權(quán)重等于1 的短序列與權(quán)重逐漸增加的長序列相比,平均收益率類似。因為權(quán)重函數(shù)(i+j)和sqrt(i+j)在序列開頭約等于零,這一部分數(shù)據(jù)作用較小。對于一般的DTW 算法,縮短序列長度可顯著加快運算速度。此結(jié)論比較符合直覺,故不再羅列相關(guān)數(shù)據(jù)。

        實驗結(jié)論四:DTW 距離中增加導(dǎo)數(shù)對收益貢獻不大。原因可能在于:①TRIX 自身包含了導(dǎo)數(shù),②本文采用簡化的DTW,嚴格限制了max|i-j|

        令觀察長度=50,只考慮TRIX 的DTW 距離,可得表3。

        表3 求導(dǎo)次數(shù)與收益率關(guān)系

        3 結(jié)語

        本文組合了三重指數(shù)平滑、漲跌周期識別、動態(tài)時間彎曲和加權(quán)KNN 等幾種技巧,充分挖掘金融時間序列的歷史相似性,提高了平均收益率。

        下一步可嘗試以下幾個改進方案:

        (1)使用小波變換、卡爾曼濾波等代替三重指數(shù)平滑;

        (2)跳過周期識別這一步,直接以歷史上全體高收益樣本作為模板來判斷是否買入,建立典型樣本庫;

        (3)使用深度學(xué)習(xí)模擬動態(tài)時間彎曲,加快計算速度,同時挖掘更多隱含特征;

        (4)金融時間序列具有多重分形特征,日線樣本與分鐘樣本具有相似性,進行跨時間尺度的距離計算;

        (5)增加持倉量、成交量和概念板塊等指標,使用期貨和外匯等其他市場數(shù)據(jù)驗證。

        国产精品成人av在线观看| 亚洲一区二区在线观看网址| 国产精品99无码一区二区| 国产zzjjzzjj视频全免费| 国产成人精品三上悠亚久久| 日韩女优在线一区二区| 久草视频在线这里只有精品| av毛片亚洲高清一区二区| 无码人妻h动漫中文字幕| av蓝导航精品导航| 99久久综合狠狠综合久久一区| 亚洲国产成人久久精品美女av| 亚洲youwu永久无码精品| 99国内精品久久久久久久| 日韩成人无码v清免费| 三个黑人插一个女的视频| 欧美丰满少妇xxxx性| 亚洲欧美日韩精品久久亚洲区| 国产一区二区三区韩国| 精品国产三区在线观看| 97人伦影院a级毛片| 丰满少妇愉情中文字幕18禁片 | 国产视频精品一区白白色| 久久亚洲中文字幕精品二区| 亚洲国产精品国自产拍av| 欧美自拍区| 日本人妻系列一区二区| 欧美性猛交xxx嘿人猛交| 国产激情精品一区二区三区| 免费一级国产大片| 亚洲精品中文字幕不卡| 精品国产三级a∨在线| www.狠狠艹| 色se在线中文字幕视频| 夫妻免费无码v看片| 少妇人妻偷人精品视蜜桃| 国产亚洲日韩AV在线播放不卡| 青青草成人在线播放视频| 欧美性猛交xxxx富婆| 97福利视频| 一区二区三区在线观看视频精品|