我知道有一些关于这方面的帖子,但我的情况有点不同,我想在这方面得到一些帮助.
我有一个pandas pastas pastrame symbol_df,每个股票代码都有1分钟的条形图,格式如下:
id Symbol_id Date Open High Low Close Volume
1 1 2023-12-13 09:15:00 4730.95 4744.00 4713.95 4696.40 2300
2 1 2023-12-13 09:16:00 4713.20 4723.70 4717.85 4702.55 1522
3 1 2023-12-13 09:17:00 4716.40 4718.55 4701.00 4701.00 909
4 1 2023-12-13 09:18:00 4700.15 4702.80 4696.70 4696.00 715
5 1 2023-12-13 09:19:00 4696.70 4709.90 4702.00 4696.10 895
... ... ... ... ... ... ... ...
108001 1 2024-03-27 13:44:00 6289.95 6291.95 6289.00 6287.55 989
108002 1 2024-03-27 13:45:00 6288.95 6290.85 6289.00 6287.75 286
108003 1 2024-03-27 13:46:00 6291.25 6293.60 6292.05 6289.10 1433
108004 1 2024-03-27 13:47:00 6295.00 6299.00 6293.20 6293.15 2702
108005 1 2024-03-27 13:48:00 6292.05 6296.55 6291.95 6291.95 983
我想计算"相对体积比率"指标,并将计算的值添加到symbol_df中,作为滚动的新列.
"相对体积比"指标计算如下:
今天的成交量与同期最后10天的平均成交量进行比较.为了得到比率值,我们简单地将"今天到目前为止的成交量"除以"同期最后10天的平均成交量".
例如...现在的wine 吧时间是13:48.
今天00:00—13:48之间的cumulativeVolumeOfToday = Volume
个迷你wine 吧加起来了
过go 10天内同期(00:00—13:48)的avergeVolumeOfPreviousDaysOfSamePeriod = Average
个累积量.
relativeVolumeRatio = CumulativeVolumeOfToday/AvergeVolumeOfPrevious10DaysOfSamePeriod
将此值作为新列添加到子框架中.
测试用例的样本数据下载:
import yfinance as yf #pip install yfinance
from datetime import datetime
import pandas as pd
symbol_df = yf.download(tickers="AAPL", period="7d", interval="1m")["Volume"]
symbol_df=symbol_df.reset_index(inplace=False)
#symbol_df['Datetime'] = symbol_df['Datetime'].dt.strftime('%Y-%m-%d %H:%M')
symbol_df = symbol_df.rename(columns={'Datetime': 'Date'})
#We can only download 7 days sample data. So 5 days mean for calculations
如何在Pandas中做到这一点?