最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python量化交易實(shí)戰(zhàn)之使用Resample函數(shù)轉(zhuǎn)換“日K”數(shù)據(jù)

 更新時(shí)間:2021年06月02日 11:26:22   作者:《虛幻私塾》  
resample函數(shù)是Python數(shù)據(jù)分析庫Pandas的方法函數(shù),它主要用于轉(zhuǎn)換時(shí)間序列的頻次,今天通過本文給大家分享python使用Resample函數(shù)轉(zhuǎn)換時(shí)間序列的相關(guān)知識(shí),感興趣的朋友一起看看吧

使用Resample函數(shù)轉(zhuǎn)換時(shí)間序列

 一、什么是resample函數(shù)?

它是Python數(shù)據(jù)分析庫Pandas的方法函數(shù)。

它主要用于轉(zhuǎn)換時(shí)間序列的頻次。可以做一些統(tǒng)計(jì)匯總的工作。

什么叫轉(zhuǎn)換時(shí)間序列的頻次呢?

比如說股票的日k和周k,

假設(shè)我只能獲取到股票日K的數(shù)據(jù),比如說11月1號到11月5號,那怎么樣將它轉(zhuǎn)換為以周為單位的K線呢?

日期 周期 開盤價(jià) 收盤價(jià) 最高價(jià) 最低價(jià)
11月1號 周一 1.11 1.11 1.11 1.12
11月2號 周二 1.12 1.12 1.11 1.12
11月3號 周三 1.13 1.13 1.11 1.12
11月4號 周四 1.15 1.14 1.11 1.12
11月5號 周五 1.14 1.15 1.11 1.12

首先我們要明確,周K的開盤、收盤、最高、最低是什么。每周的開盤價(jià)是當(dāng)周第一天的開盤價(jià),收盤價(jià)是當(dāng)周最后一天的收盤價(jià),它的最高價(jià)是這周最高的價(jià)格,最低價(jià)是本周所有最低價(jià)中最低的價(jià)格。所以你去看炒股平臺(tái),它的周k都是以周五的交易日為記錄的時(shí)間點(diǎn)位置。開盤、收盤、最高、最低是按照我剛剛講解的這個(gè)規(guī)則來計(jì)算的。至于月K、年K的選取規(guī)則也是一樣的。月K的周期是一個(gè)月,年K的周期是一年。

這個(gè)計(jì)算準(zhǔn)確性你也可以通過網(wǎng)上的數(shù)據(jù)進(jìn)行驗(yàn)證。這個(gè)計(jì)算規(guī)則,包括開盤、收盤、最高、最低的計(jì)算,收拾resample函數(shù)可以做到的事情。此外Resample還有個(gè)功能,就是做統(tǒng)計(jì)匯總,比如說我想計(jì)算一支股票總的周成交量,就可以使用Resample.sum函數(shù)去把周一到周五的成交量加起來。

為了方便大家記憶 ,你也可以把resample理解為Excel表格中的透視表功能。你可以按照日期做各種篩選和匯總統(tǒng)計(jì)的。最重要的是他可以按照日期。

二、實(shí)戰(zhàn)Resample函數(shù)

因?yàn)檫@2節(jié)課還是一些比較基礎(chǔ)的部分,所以還沒有做模塊化的內(nèi)容。

我們會(huì)在創(chuàng)建股票數(shù)據(jù)庫的時(shí)候 來做真正的模塊化的工作。到這里都是初級的腳本的形式。先提前說下。

1.日K 轉(zhuǎn)換為 周K

1.1函數(shù)文檔學(xué)習(xí)

谷歌搜索Pandas Resample:第一個(gè)鏈接就是這個(gè)函數(shù)的官方文檔

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html

這里有介紹:Resample是屬于Pandas DataFrame下面的方法。這里有關(guān)于參數(shù)的解釋。

這里我們只對2個(gè)常用參數(shù)講解,一個(gè)是rule,另一個(gè)是closed。

  • rule表示的是你放一個(gè)什么樣的周期性指標(biāo)在里面,用m代表Month,Y代表Year,w代表Week,
  • closed代表你取哪一個(gè)分界線,舉例來說,比如說我把日k轉(zhuǎn)換為周k,到底我是取周一為分界線還是周五為分界線呢?這就是通過closed來確定的。

這里有它的例子:

>>>index = pd.date_range('1/1/2000', periods=9, freq='T')
>>>series = pd.Series(range(9), index=index)
>>>series
2000-01-01 00:00:00    0
2000-01-01 00:01:00    1
2000-01-01 00:02:00    2
2000-01-01 00:03:00    3
2000-01-01 00:04:00    4
2000-01-01 00:05:00    5
2000-01-01 00:06:00    6
2000-01-01 00:07:00    7
2000-01-01 00:08:00    8
Freq: T, dtype: int64

這里首先創(chuàng)建了一個(gè)時(shí)間序列的DataFrame,就是這個(gè)series變量。你可以理解為它是一個(gè)只有一個(gè)字段的表格樣式。接著往下看:

>>>series.resample('3T').sum()
2000-01-01 00:00:00     3
2000-01-01 00:03:00    12
2000-01-01 00:06:00    21
Freq: 3T, dtype: int64

這里使用了Resample方法,3T就是3分鐘,T表示分鐘。sum()就是匯總,也就是針對這一列數(shù)據(jù)進(jìn)行匯總。

也就是說,每3分鐘統(tǒng)計(jì)依次。注意到,這個(gè)時(shí)間序列匯總的時(shí)間取的值是3分鐘的第一分鐘。如果我想取時(shí)間周期的最后一分鐘,可以將label的值改為“right":

>>>series.resample('3T', label='right').sum()
2000-01-01 00:03:00     3
2000-01-01 00:06:00    12
2000-01-01 00:09:00    21
Freq: 3T, dtype: int64

1.2實(shí)戰(zhàn)

獲取日K真實(shí)的數(shù)據(jù):

#獲取日k
df = get_price("000001.XSHG", end_date='2021-05-30 14:00:00',count=20, frequency='1d', fields=['open','close','high','low','volume','money'])  
print(df)

可以看到獲取到了4月28號5月28號的所有數(shù)據(jù)。為了更方便理解 我們再添加一列數(shù)據(jù),就是當(dāng)前日期是星期幾的列。

#獲取日k
df = get_price("000001.XSHG", end_date='2021-05-30 14:00:00',count=20, frequency='1d', fields=['open','close','high','low','volume','money'])  
df['weekday']=df.index.weekday
print(df)

這里0代表周一,這里如何轉(zhuǎn)換為按“”統(tǒng)計(jì)呢

#獲取周k
import pandas as pd
df_week = pd.DataFrame()
df_week = df['open'].resample('W').first()
print(df_week)

可以看到這里的2021-05-30是一個(gè)禮拜的最后一天。它對應(yīng)的開盤價(jià)確實(shí)是這個(gè)數(shù)字。說明我們計(jì)算的周K數(shù)據(jù)是正確的。

收盤價(jià)就是每周收盤價(jià)最后一天的數(shù)據(jù)。

最高價(jià)就是每周收盤價(jià)的最大值。

最低價(jià)就是每周收盤價(jià)的最小值。

#獲取周k
import pandas as pd
df_week = pd.DataFrame()
df_week['open'] = df['open'].resample('W').first()
df_week['close'] = df['close'].resample('W').last()
df_week['high'] = df['high'].resample('W').max()
df_week['low'] = df['low'].resample('W').min()
print(df_week)

對比數(shù)據(jù),close是最后一天的收盤價(jià)的數(shù)據(jù)。high是當(dāng)前周的每天的最高價(jià)的最高價(jià)。low是當(dāng)前周的每天的最低價(jià)的最低價(jià)。

我們通過不到10行代碼就能將日K的數(shù)據(jù)轉(zhuǎn)換為周K的數(shù)據(jù)。

2.匯總統(tǒng)計(jì)功能(統(tǒng)計(jì)月成交量、成交額)

匯總成交量和成交額

我想要把volume(成交量)和money(成交額)轉(zhuǎn)換為總成交量總成交額

#獲取周k
import pandas as pd
df_week = pd.DataFrame()
df_week['open'] = df['open'].resample('W').first()
df_week['close'] = df['close'].resample('W').last()
df_week['high'] = df['high'].resample('W').max()
df_week['low'] = df['low'].resample('W').min()
df_week['volume(sum)'] = df['volume'].resample('W').sum()
df_week['money(sum)'] = df['money'].resample('W').sum()
print(df_week)

3.日K 轉(zhuǎn)換為 月K

假設(shè)我有一年的數(shù)據(jù),如果想轉(zhuǎn)換為月K應(yīng)該怎么轉(zhuǎn)?

只需要改2個(gè)地方:

  • 添加start_date獲取到一整年的數(shù)據(jù)
  • resample的參數(shù)改為M即可,M代表Month
#獲取日k
df = get_price("000001.XSHG", end_date='2021-05-30 14:00:00', start_date='2020-05-30', frequency='1d', fields=['open','close','high','low','volume','money'])  
df['weekday']=df.index.weekday
print(df)

#獲取周k
import pandas as pd
df_week = pd.DataFrame()
df_week['open'] = df['open'].resample('M').first()
df_week['close'] = df['close'].resample('M').last()
df_week['high'] = df['high'].resample('M').max()
df_week['low'] = df['low'].resample('M').min()
print(df_week)

以上就是Python量化交易實(shí)戰(zhàn)之使用Resample函數(shù)轉(zhuǎn)換“日K”數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于Python Resample函數(shù)轉(zhuǎn)換“日K”數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python-django中的APPEND_SLASH實(shí)現(xiàn)方法

    python-django中的APPEND_SLASH實(shí)現(xiàn)方法

    這篇文章主要介紹了python-django中的APPEND_SLASH實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • python如何通過實(shí)例方法名字調(diào)用方法

    python如何通過實(shí)例方法名字調(diào)用方法

    這篇文章主要為大家詳細(xì)介紹了python如何通過實(shí)例方法名字調(diào)用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用Python自動(dòng)生成HTML的方法示例

    使用Python自動(dòng)生成HTML的方法示例

    這篇文章主要介紹了使用Python自動(dòng)生成HTML的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python Web應(yīng)用程序測試selenium庫使用用法詳解

    python Web應(yīng)用程序測試selenium庫使用用法詳解

    selenium主要是用來做自動(dòng)化測試,支持多種瀏覽器,爬蟲中主要用來解決JavaScript渲染問題本文詳細(xì)介紹了在python中selenium模塊的使用方法
    2021-10-10
  • 淺析python 中大括號中括號小括號的區(qū)分

    淺析python 中大括號中括號小括號的區(qū)分

    python語言最常見的括號有三種,分別是:小括號( )、中括號[ ]和大括號也叫做花括號{ }。這篇文章主要介紹了python 中大括號中括號小括號的區(qū)分,需要的朋友可以參考下
    2019-07-07
  • python中的協(xié)程深入理解

    python中的協(xié)程深入理解

    這篇文章主要給大家介紹了關(guān)于python中協(xié)程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python數(shù)據(jù)可視化實(shí)踐之使用Matplotlib繪制圖表

    Python數(shù)據(jù)可視化實(shí)踐之使用Matplotlib繪制圖表

    數(shù)據(jù)可視化是數(shù)據(jù)分析的重要環(huán)節(jié),通過將數(shù)據(jù)轉(zhuǎn)化為圖形,可以更直觀地展示數(shù)據(jù)特征和規(guī)律。Python中的Matplotlib庫是一個(gè)強(qiáng)大的數(shù)據(jù)可視化工具,本文將帶您了解Matplotlib的基本使用方法,以及如何繪制常見的圖表
    2023-05-05
  • 聊聊基于pytorch實(shí)現(xiàn)Resnet對本地?cái)?shù)據(jù)集的訓(xùn)練問題

    聊聊基于pytorch實(shí)現(xiàn)Resnet對本地?cái)?shù)據(jù)集的訓(xùn)練問題

    本文項(xiàng)目是使用Resnet模型來識(shí)別螞蟻和蜜蜂,其一共有三百九十六張的數(shù)據(jù),訓(xùn)練集只有兩百多張(數(shù)據(jù)集很?。?,運(yùn)行十輪后,分別對訓(xùn)練集和測試集在每一輪的準(zhǔn)確率,對pytorch實(shí)現(xiàn)Resnet本地?cái)?shù)據(jù)集的訓(xùn)練感興趣的朋友一起看看吧
    2022-03-03
  • python regex庫實(shí)例用法總結(jié)

    python regex庫實(shí)例用法總結(jié)

    在本篇內(nèi)容里小編給大家整理了關(guān)于python regex庫實(shí)例用法總結(jié)內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。
    2021-01-01
  • Python中l(wèi)en()函數(shù)用法使用示例

    Python中l(wèi)en()函數(shù)用法使用示例

    這篇文章主要介紹了Python中的len()函數(shù),包括其基礎(chǔ)用法、適用范圍、常見使用場景以及在第三方庫(如NumPy和pandas)中的應(yīng)用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03

最新評論

赫章县| 民丰县| 上思县| 兴山县| 黄龙县| 长乐市| 渑池县| 阿拉善左旗| 子洲县| 宜兴市| 柘荣县| 商河县| 黄冈市| 万宁市| 南江县| 会理县| 阿克| 增城市| 碌曲县| 皋兰县| 谢通门县| 兰州市| 泰顺县| 磴口县| 达日县| 犍为县| 新建县| 金阳县| 吉安市| 翼城县| 景东| 锦屏县| 长治市| 商洛市| 赞皇县| 昆明市| 保德县| 楚雄市| 溧阳市| 荆州市| 安康市|