股票有一种做趋势的是通过大小级别周期来进行操作,比如通过周、月线等大周期,查看股票形态是否稳健,突破等。那么就需要在任意一天知道,当前的股票价格是否在大级别上走稳,然后进行操作。
但是,目前文章都是放一个重采样的函数,对数据进行处理,不能够满足我的需求,它只对数据进行了周期切换,没有切回来小周期。比如,今天周四,今天的收盘在周线的状态如何,是否突破了周线的移动平均5日线呢?
data = pd.read_csv('D:\TDXdata\lday_qfq/603985.csv',encoding='utf-8')
week_moving = data.set_index('date',drop=True)
week_moving.index = pd.to_datetime(week_moving.index)
week_moving = week_moving.resample('W-FRI').agg({
'code': 'first',
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last'
})
week_moving.dropna(how='all',inplace=True)
上面的代码,只处理了重采用,没有把数据放回到日线上,同时,也没有处理我们想要的数据,比如周线移动平均线。
当然,处理的办法也不难,很简单,只需要重采样处理后,再以此重采样,然后和日K线合并。什么意思呢?理解这个问题前,我们需要知道今天周四收盘之后,周线5日移动平均线怎么计算?是不是(前面4周的收盘价+今天的收盘价)/5,但如果直接用重采样的数据移动平均是不对的,因为close取的是一周最后一天的收盘价。我想看上周4的周线移动平均线,应该是(前面4周的收盘价+周四收盘价)/5,但是直接对重采样的数据计算,第一,它看不到周四数据,第二,它用的是周五的收盘价进行计算的。所以,在重采用之后,我们后面还要和日线进行合并处理,这样就能取到周四的收盘价。
但是在进行合并前,我们要计算我们需要的数据,不是需要前四周的收盘数据么,这不是很简单的rolling就行么。是的。我们这里直接相加进行处理就行了。记得要偏移哦。
week_moving[&#