请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  源码分享 帖子:3353386 新帖:32

获取振幅

英雄就是我发表于:5 月 10 日 02:41回复(1)

振幅还算常见的数据,获取振幅方法没什么人写貌似,但又时常有人问,所以写了一个。
可同时获取多个时间多个股票多个频率的振幅。回测研究都可用。

获取振幅¶

get_amplitude(scu,count,end_date,fqy='1d')

可同时获取多个时间多个股票多个频率的振幅。回测研究都可用。

输入参数:

  • scu 股票池,要求为list类型,可为多个股票
  • count 过去多长时间的数据
  • end_date 终止日期
  • fqy 频率,可为整数日或整数分钟,格式如'1d'即一天,'5m'即5分钟

返回结果: dataframe类型的振幅,非百分数

使用前需导入的库¶

import pandas as pd
from datetime import datetime, timedelta

代码¶

# 获取振幅
def get_amplitude(scu,count,end_date,fqy='1d'):
    df1=get_price(security=scu,count=count,end_date=end_date,fields=['high','low'],frequency=fqy)
    df1['h-l']=df1['high']-df1['low']
    df2=get_price(security=scu,count=count,end_date=datetime.strptime(end_date, '%Y-%m-%d')-timedelta(days=1),fields=['close'],frequency=fqy)
    df2['close'].index=df1['h-l'].index
    amplitude= df1['h-l']/df2['close']
    return amplitude

样例¶

get_amplitude(scu=['000001.XSHG'],count=5,end_date='2017-11-07',fqy='1d')
000001.XSHG
2017-11-01 0.006411
2017-11-02 0.005724
2017-11-03 0.009816
2017-11-06 0.009742
2017-11-07 0.008029
get_amplitude(scu=['000001.XSHG','000002.XSHG'],count=5,end_date='2017-11-07',fqy='5m')
000001.XSHG 000002.XSHG
2017-11-06 14:40:00 0.000843 0.000845
2017-11-06 14:45:00 0.000431 0.000432
2017-11-06 14:50:00 0.000415 0.000419
2017-11-06 14:55:00 0.001356 0.001360
2017-11-06 15:00:00 0.001845 0.001849

全部回复

0/140

量化课程

    移动端课程