利用同花顺获取历史价格

history 函数用于获取股票的历史行情数据,通常在量化策略中使用。以下是对该函数的详细讲解:

1. 函数作用

history 函数用于获取股票的多属性历史行情数据。它可以在策略中调用,用于获取指定股票在指定时间范围内的历史数据。

2. 调用方法

history(
    symbol_list,
    fields,
    bar_count, 
    fre_step,
    skip_paused = False,
    fq = 'pre',
)

3. 参数说明

  • symbol_list:

    • 类型:strlist
    • 说明:标的代码。如果只需要获取单个股票的数据,可以传入字符串;如果需要获取多个股票的数据,需要传入列表。
    • 示例:'000001.SZ'['000001.SZ', '000002.SZ']
  • fields:

    • 类型:list
    • 说明:需要获取的数据字段。支持的字段可以参考A股日行情数据或A股分钟行情数据。
    • 示例:['close', 'high'] 表示获取收盘价和最高价。
  • bar_count:

    • 类型:int
    • 说明:历史数据的长度。例如,bar_count = 5 表示获取过去5个时间步长的历史数据。
  • fre_step:

    • 类型:str
    • 说明:时间步长。格式为 'Xd''Xm',其中 X 必须为正整数。例如,fre_step = '1d' 表示时间步长为1天。
    • 注意:当 X 不等于1时,fields 仅支持 'open', 'high', 'low', 'close', 'volume', 'turnover' 这几个字段。
  • skip_paused:

    • 类型:bool
    • 说明:是否跳过停牌数据。
      • skip_paused = True:跳过停牌数据。
      • skip_paused = False:不跳过停牌数据。
    • 默认值:False
  • fq:

    • 类型:str
    • 说明:复权选项。可选不复权、前复权、后复权。
      • fq = None:不复权。
      • fq = 'pre':前复权,动态复权模式,以当前bar的最新价作为基准向前复权。
      • fq = 'post':后复权。
    • 默认值:'pre'

4. 注意事项

  • 由于策略框架的运行机制,取日频历史行情时,不包含当前bar的数据;取分钟频历史行情时,包含当前bar数据。

5. 示例

def init(context):
    pass

def handle_bar(context, bar_dict):
    # 获取万科A与平安银行过去10日的收盘价与最高价,并且输出数据
    price = history(['000001.SZ', '000002.SZ'], ['close', 'high'], 10, '1d', False, 'pre')
    log.info('收盘价:' + str(price['close']))
    log.info('最高价:' + str(price['high']))

6. 返回数据

  • 返回一个 dict 对象,其 keysymbol(证券代码),值是 pandas.DataFrame
  • DataFrame 的行索引是 datetime.datetime 对象,列索引是字段名称。

7. 示例返回结果

2017-01-03 09:30:00 - INFO
收盘价:        000001.SZ  000002.SZ
2016-12-19       9.20      21.10

在这个示例中,history 函数返回了万科A(000001.SZ)和平安银行(000002.SZ)在过去10个交易日内的收盘价和最高价。返回的数据是一个字典,字典的键是股票代码,值是一个 DataFrame,其中包含了每个交易日的数据。

8. 总结

history 函数是量化策略中常用的工具,用于获取股票的历史行情数据。通过合理设置参数,可以获取到所需的历史数据,并用于策略的分析和决策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭梨山大哎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值