日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

ccxt k线数据_寻找相似的历史k线

發布時間:2023/12/2 35 豆豆
默认站点 收集整理的這篇文章主要介紹了 ccxt k线数据_寻找相似的历史k线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有網友提問應該用什么樣的數據庫/數據結構/算法來計算某支股票的相似K線? 具體的問題描述是,假設給出某股某段行情K線(單位/日),從任何其他股票歷史中匹配出與之最為相似的某段歷史K線,并給出相似度值(單位/%),并以此排序,獲取最為相似的N個結果。

我們可以使用k線的距離以及股票日回報的相關性來衡量k線相似度,使用Tushare提供的滬深股票2008年到2017年的日線行情數據來做實驗。如何把Tushare數據導入到 DolphinDB database 可以參考教程如何使用DolphinDB處理Tushare金融數據。

Tushare提供的滬深股票日線行情數據包含以下字段:

名稱 描述 ts_code 股票代碼 trade_date 交易日期 open 開盤價 high 最高價 low 最低價 close 收盤價 pre_close 昨收價 change 漲跌額 pct_change 漲跌幅 vol 成交量(手) amount 成交額(千元)

下面將以漫步者(股票代碼為002351.SZ)為例,介紹如何在歷史數據中,找出與漫步者2016年9月1日到2016年9月30日最為相似的10段歷史k線。

首先,把漫步者2016年9月1日到2016年9月30日的日線行情數據加載到內存。

code="002351.SZ"//漫步者 edifier=select * from loadTable("dfs://daily_line","hushen_daily_line") where ts_code=code,date(trade_date) between 2016.09.01:2016.09.30

把股票數據加載到內存中。

num=exec count(*) from edifier stock=select * from loadTable("dfs://daily_line","hushen_daily_line")

1.使用k線的距離衡量相似度

兩段k線之間的距離可以用股票日回報的差的平方和來計算。距離越小表示k線的相似度越高。

def square_sum(x,y):sum2(x-y) corrTable1=select ts_code,move(date(trade_date),num-1)as beginDate,date(trade_date) as endDate,moving(square_sum{edifier.pct_change},pct_change,num) as distance from stock context by ts_code

上面代碼使用的moving是DolphinDB的模板函數,表示在大小為num,邊界為beginDate和endDate的滾動窗口中計算兩段k線之間的距離。square_sum{edifier.pct_change}是DolphinDB中的部分應用,用于固定函數的部分參數。

找出與漫步者2016年9月1日到2016年9月30日最為相似的10段歷史k線。

mostCorrelated1=select * from corrTable1 where isValid(distance),rank(distance,true) between 0:10 order by distance ts_code beginDate endDate distance 300073.SZ 2016.08.02 2016.08.29 67.024 600995.SH 2017.07.06 2017.08.02 70.8713 600549.SH 2010.12.17 2011.01.14 73.514 600627.SH 2008.07.07 2008.08.07 73.59 600367.SH 2010.12.17 2011.01.14 76.447 600867.SH 2011.07.28 2011.08.24 76.5449 002253.SZ 2010.05.21 2010.06.22 79.2845 002382.SZ 2015.01.06 2015.02.02 79.5101 300266.SZ 2014.07.07 2014.09.17 80.1772 600706.SH 2017.06.05 2017.07.14 80.5079

定義一個函數getReturn,取出相似股票在beginDate和endDate之間的日回報。

def getReturn(t, row): exec pct_change/100 from t where ts_code= row.ts_code, date(trade_date) between row.beginDate : row.endDate

把每只相似股票的日回報數據保存到同一個回報矩陣中,每列表示一只股票在相應時間段中的日回報,并使用圖表展示。

retMatrix1 = each(getReturn{stock}, mostCorrelated1).rename!(mostCorrelated1.ts_code) plot(retMatrix1,,"使用最短k線距離找出相似歷史k線")

上面的代碼通過each模板函數取出最相似的10只股票的日回報,并以股票代碼來命名每一列。

使用最短k線距離計算出來的股票包含當升科技(30073.SZ)、文山電力(600995.SH)、廈門鎢業(600549.SH)、上電股份(600627.SH)、紅星發展(600367.SH)、通化東寶(600867.SH)、川大智勝(002253.SZ)、藍帆醫療(002382.SZ)、興源環境(300266.SZ)和曲江文旅(600706.SH)。

2.使用股票日回報相關性衡量相似度

股票日回報的相關性是衡量k線相似度很好的指標。

corrTable2=select ts_code,move(date(trade_date),num-1)as beginDate,date(trade_date) as endDate,moving(corr{edifier.pct_change},pct_change,num) as corr from stock context by ts_code

找出與漫步者2016年9月1日到2016年9月30日最為相似的10段歷史k線。

mostCorrelated2=select * from corrTable2 where rank(corr,false) between 0:10 order by corr desc ts_code beginDate endDate corr 600367.SH 2010.12.17 2011.01.14 0.8824 600549.SH 2010.12.17 2011.01.14 0.8806 300073.SZ 2016.08.02 2016.08.29 0.8749 002294.SZ 2014.02.26 2014.03.25 0.8729 600995.SH 2017.07.06 2017.08.02 0.8723 600486.SH 2010.12.17 2011.01.14 0.8721 002382.SZ 2015.01.06 2015.02.02 0.8718 002253.SZ 2010.05.21 2010.06.22 0.8708 000939.SZ 2008.03.21 2008.04.18 0.8706 600627.SH 2008.07.07 2008.08.07 0.8692

同樣地,把相似股票的日回報數據保存到回報矩陣中。

retMatrix2 = each(getReturn{stock}, mostCorrelated2).rename!(mostCorrelated2.ts_code) plot(retMatrix,,"使用股票日回報相關性找出相似歷史k線")

使用股票日回報相關性計算出來的股票包含紅星發展(600367.SH)、廈門鎢業(600549.SH)、當升科技(300073.SZ)、信立泰(002294.SZ)、文山電力(600995.SH)、揚農化工(600486.SH)、藍帆醫療(002382.SZ)、川大智勝(002253.SZ)、凱迪生態(000939.SZ)和上電股份(600627.SH)。

3.性能分析

我們使用的是滬深股票2008年到2017年的日線行情數據,共530萬的數據。使用第一種方法僅需7秒,使用第二種方法僅需3秒,性能極佳。

歡迎訪問官網下載 DolphinDB database

聯系郵箱:info@dolphindb.com

總結

以上是默认站点為你收集整理的ccxt k线数据_寻找相似的历史k线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。