量化的历史行情数据,支持什么周期的?
/
问题描述
解决方案
在 ptrade 量化交易平台中,获取历史行情数据主要通过 get_history 和 get_price 两个 API 接口。这两个接口支持非常丰富的 K 线周期(频率),能够满足从高频到低频的各种量化策略需求。
支持的历史行情数据周期列表
根据 ptrade API 文档,frequency 参数支持以下周期:
1. 分钟级别(Intraday)
- 1分钟线:
'1m' - 5分钟线:
'5m' - 15分钟线:
'15m' - 30分钟线:
'30m' - 60分钟线:
'60m' - 120分钟线:
'120m'
2. 日级别及以上(Daily & Higher)
- 日线:
'1d'或'daily' - 周线:
'1w'或'weekly' - 月线:
'mo'或'monthly' - 季度线:
'1q'或'quarter' - 年线:
'1y'或'yearly'
代码获取示例
以下是如何在策略中获取不同周期历史数据的示例:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 获取过去10分钟的1分钟线数据
history_1m = get_history(10, frequency='1m', field='close', security_list=g.security)
log.info('1分钟线收盘价:\n%s' % history_1m)
# 获取过去5天的日线数据
history_1d = get_history(5, frequency='1d', field='close', security_list=g.security)
log.info('日线收盘价:\n%s' % history_1d)
# 获取过去5周的周线数据
history_1w = get_history(5, frequency='1w', field='close', security_list=g.security)
log.info('周线收盘价:\n%s' % history_1w)
💡 开发者注意事项
- 周线及以上数据的合成:返回的周线(
1w)、月线等数据是由日线数据进行合成的。 get_price接口的特殊限制:在使用get_price接口时,count参数只针对上述列出的标准频率有效。并且,'weekly','1w','monthly','mo','quarter','1q','yearly','1y'频率不支持start_date和end_date组合的入参,只支持end_date和count组合的入参形式。- 停牌处理:针对停牌场景,ptrade 没有跳过停牌的日期,时间轴均为二级市场交易日日历。停牌时使用停牌前的数据填充,成交量为0。日K线可使用成交量为0的逻辑进行停牌日过滤。