好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python量化交易實戰之使用Resample函數轉換“日K”數據

Python量化交易實戰之使用Resample函數轉換“日K”數據

熱門標簽:地圖標注面積 小蘇云呼電話機器人 儋州電話機器人 北京電銷外呼系統加盟 市場上的電銷機器人 佛山400電話辦理 朝陽手機外呼系統 所得系統電梯怎樣主板設置外呼 北瀚ai電銷機器人官網手機版

使用Resample函數轉換時間序列

 一、什么是resample函數?

它是Python數據分析庫Pandas的方法函數。

它主要用于轉換時間序列的頻次。可以做一些統計匯總的工作。

什么叫轉換時間序列的頻次呢?

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

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

日期 周期 開盤價 收盤價 最高價 最低價
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的開盤、收盤、最高、最低是什么。每周的開盤價是當周第一天的開盤價,收盤價是當周最后一天的收盤價,它的最高價是這周最高的價格,最低價是本周所有最低價中最低的價格。所以你去看炒股平臺,它的周k都是以周五的交易日為記錄的時間點位置。開盤、收盤、最高、最低是按照我剛剛講解的這個規則來計算的。至于月K、年K的選取規則也是一樣的。月K的周期是一個月,年K的周期是一年。

這個計算準確性你也可以通過網上的數據進行驗證。這個計算規則,包括開盤、收盤、最高、最低的計算,收拾resample函數可以做到的事情。此外Resample還有個功能,就是做統計匯總,比如說我想計算一支股票總的周成交量,就可以使用Resample.sum函數去把周一到周五的成交量加起來。

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

二、實戰Resample函數

因為這2節課還是一些比較基礎的部分,所以還沒有做模塊化的內容。

我們會在創建股票數據庫的時候 來做真正的模塊化的工作。到這里都是初級的腳本的形式。先提前說下。

1.日K 轉換為 周K

1.1函數文檔學習

谷歌搜索Pandas Resample:第一個鏈接就是這個函數的官方文檔

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

這里有介紹:Resample是屬于Pandas DataFrame下面的方法。這里有關于參數的解釋。

這里我們只對2個常用參數講解,一個是rule,另一個是closed。

  • rule表示的是你放一個什么樣的周期性指標在里面,用m代表Month,Y代表Year,w代表Week,
  • closed代表你取哪一個分界線,舉例來說,比如說我把日k轉換為周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

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

>>>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()就是匯總,也就是針對這一列數據進行匯總。

也就是說,每3分鐘統計依次。注意到,這個時間序列匯總的時間取的值是3分鐘的第一分鐘。如果我想取時間周期的最后一分鐘,可以將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實戰

獲取日K真實的數據:

#獲取日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號的所有數據。為了更方便理解 我們再添加一列數據,就是當前日期是星期幾的列。

#獲取日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代表周一,這里如何轉換為按“”統計呢

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

可以看到這里的2021-05-30是一個禮拜的最后一天。它對應的開盤價確實是這個數字。說明我們計算的周K數據是正確的。

收盤價就是每周收盤價最后一天的數據。

最高價就是每周收盤價的最大值。

最低價就是每周收盤價的最小值。

#獲取周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)

對比數據,close是最后一天的收盤價的數據。high是當前周的每天的最高價的最高價。low是當前周的每天的最低價的最低價。

我們通過不到10行代碼就能將日K的數據轉換為周K的數據。

2.匯總統計功能(統計月成交量、成交額)

匯總成交量和成交額

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

#獲取周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 轉換為 月K

假設我有一年的數據,如果想轉換為月K應該怎么轉?

只需要改2個地方:

  • 添加start_date獲取到一整年的數據
  • resample的參數改為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量化交易實戰之使用Resample函數轉換“日K”數據的詳細內容,更多關于Python Resample函數轉換“日K”數據的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • OpenCV-Python實現通用形態學函數
  • python通過函數名調用函數的幾種方法總結
  • Python函數裝飾器的使用教程
  • 解決Python中的modf()函數取小數部分不準確問題
  • 淺談Python中的函數(def)及參數傳遞操作
  • Python基礎之函數嵌套知識總結
  • python 定義函數 返回值只取其中一個的實現
  • 這三個好用的python函數你不能不知道!

標簽:酒泉 金融催收 龍巖 定西 商丘 云南 寧夏 江蘇

巨人網絡通訊聲明:本文標題《Python量化交易實戰之使用Resample函數轉換“日K”數據》,本文關鍵詞  Python,量化,交易,實戰,之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python量化交易實戰之使用Resample函數轉換“日K”數據》相關的同類信息!
  • 本頁收集關于Python量化交易實戰之使用Resample函數轉換“日K”數據的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产青年gay同男视频网站| 艳妇臀荡乳欲伦交换H漫| 中文字幕人妻一区二区三区视频| 精品福利视频网| 国产精品亚洲精品观看不卡| 国产特黄三级三级三级小妇人| 猛男的又大又粗又长又黑| 国产成人亚洲精品青草| 添奶头添到高潮奶水会喷出来| 在线丨暗u小u女国产精品免费| 成人欧美日韩| 91在线亚洲| 男男虐强迫粗暴强j高hnp虐| 日韩一区精品视频在线看| 久久久久精品无码观看不卡乐影视| 1996杨思敏版金梅瓶在线观看| 闺蜜们的放荡交换| 毛片aaa| 韩国伦理情事| 公交车强摁做开腿呻吟h| 91啪亚洲精品久久久久| 国产porno| 婷婷色一二三区波多野衣| 美国农夫激情在线综合| 天天操夜夜| 动漫美女被羞羞动漫歪漫| 日本护士xxxx视频| 国产呦系列| 扒开女同学下面粉粉嫩嫩| 国产91丝袜在线熟女漫画| 古代级a毛片在线| 成人软件18秘?免费下载| 挡床戏真被肉h高h| 色戒电影资源无删减在线观看| 久久综合99re88久久爱试看| 69tang在线观看| 色成人秘?免费网站| 亚洲一区二区三区含羞草| 日批视频观看| 香港黄色一级片| 朱珠三级未删减版在线观看|