A股2005-2021高频行情1min数据,量化专用

博客分享了从2005年至2021年的股票1分钟行情数据,每周更新,包括CSV和HDF5两种格式。CSV样本展示了一种数据结构,而HDF5数据以股票代码命名文件,通过Python的h5py库可以方便读取,内含日期、开盘价、收盘价、最高价、最低价和交易量等信息。

【亲测可用,包含了2005-2021的1min行情数据,2021每周更新一次】

链接: https://pan.baidu.com/s/1W2TMPTHLWblKy1gBwMCIEQ

提取码: i4ru

数据提供csv和hdf5两种类型

其中,csv的样本格式如下

hdf5的数据格式为

h5文件名为股票代码,如600000的hdf5文件为600000.h5

group为交易日期,如20210602

dateset为1min数据的数据变量,有datetime,open,close,high,low,amount,数据格式均为nparray,python读取代码示例如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import h5py

# h5_path是存放hdf5的文件夹路径
h5_path = "/mnt/e/data/1min/2005-2021"
stock_list = ["000001"]
for stock_code in stock_list:
    with h5py.File(os.path.join(h5_path, stock_code + ".h5"), 'r') as store:
        #group命名方式是日期,8位表示
        #返回的dataset是nparray格式
        #time变量类型是np.string_,open,close,high,low均为np.float32, amount为np.float64
        g = store["20210630"]
        print(g["time"][:])
        print(g["open"][:])
        print(g["close"][:])
        print(g["high"][:])
        print(g["low"][:])
        print(g["amount"][:])

<think>我们面对的是一个要求高收益低回撤的量化策略构建问题。用户要求年化收益40%以上,最大回撤低于15%,使用A的每日和分钟数据。这样的目标非常高,需要精心设计策略并严格控制风险。首先需要明确:在A市场实现年化40%收益且回撤低于15%极具挑战性。历史数据显示,即使是顶级基金经理也极少能长期维持如此高的风险收益比。因此,策略设计需结合多因子选、严格风控和高频交易元素。 核心构建思路:1.多周期数据融合:利用日线数据把握趋势,分钟数据捕捉日内机会2.复合alpha来源:结合量价、资金流、事件驱动等多维度因子3.动态风险预算:根据市场波动调整仓位和止损具体构建步骤:因子工程-量价因子:开发分钟级动量波动因子,例如30分钟突破叠加成交量确认-资金流因子:监控主力资金流向,使用L2数据计算大单净流入率-事件驱动因子:业绩预告、龙虎榜等事件后的跳空缺口捕捉策略框架采用三层过滤机制: 第一层:日线趋势过滤使用20日均线判断大盘趋势,当沪深300指数位于均线上方时才开仓第二层:分钟信号触发在符合日线趋势的票中,根据以下条件开仓:-出现放量突破前30分钟高点- MACD(5,34,5)在零轴上方金叉-流动性指标:分钟成交量>20日平均成交量50% 第三层:动态止损初始止损:开仓价下方2%移动止损:最高价回撤3%触发止盈仓位管理使用凯利公式动态调整仓位: $$f= \frac{bp -q}{b}$$ 其中:$f$:投入资金比例$b$:盈亏比(设置为2:1)$p$:胜率(通过历史回测估计)$q$:败率(1-p)风险控制模块-单日最大亏损控制:账户单日亏损超过2%则停止交易-板块暴露限制:单一行业持仓不超过总仓位20%-黑名单机制:排除ST和流动性后10%的票回测要点使用2018-2023年全A数据回测,注意: -手续费按万分之8双边计算-冲击成本按0.1%估算-分钟数据使用前复权处理示例代码框架(Python): ```pythonimport pandasas pdimportnumpy asnpdefstrategy_minute_signal(stock_data):#计算技术指标stock_data['30min_high'] =stock_data['high'].rolling(30).max()stock_data['volume_ma'] =stock_data['volume'].rolling(20).mean()#生成信号long_condition= ((stock_data['close'] >stock_data['30min_high'])&(stock_data['volume']>1.5 *stock_data['volume_ma']))returnlong_condition#仓位计算函数def kelly_position(p,b=2):q =1- preturn (b*p- q) /b``` 实现预期目标的关键:1.因子有效性需持续迭代:建议每月重新测试因子IC值2.交易成本控制:使用冰山订单、VWAP策略降低冲击3.极端行情应对:当VIX指数超过40时强制降仓至50%注意:实际开发中需用更复杂模型(如机器学习)预测胜率p,并加入交易行为分析因子。建议初始资金不低于100万以保证流动性。§§相关问题§§: 1.如何获取A高质量的分钟级交易数据?2.量化策略回测中如何准确模拟交易滑点?3.有哪些有效的A日内交易止盈止损策略?4.如何评估量化策略的过拟合风险?</think>### 构建A高收益低回撤量化策略的关键步骤 **数据准备与清洗** 使用Tushare或JoinQuant获取2018-2023年全A日线及分钟级数据(建议5分钟/15分钟粒度)。清洗步骤包括: - 处理缺失值:前向填充量价数据 - 复权处理:使用`pandas`进行复权计算 ```python import pandas as pd # 前复权示例 df['adj_close'] = df['close'] * (df['cum_factor'] / df['cum_factor'].iloc[-1]) ``` **多因子模型构建** 结合分钟级高频特征与日线因子: 1. **量价因子** - 分钟动量:$ r_{5min} = \frac{P_t}{P_{t-5}} - 1 $ - 订单流不平衡:$ OFI = \frac{BidVolume - AskVolume}{TotalVolume} $ 2. **资金流因子** - 主力资金净流入率:$ MFI = \frac{LargeOrderInflow - LargeOrderOutflow}{AvgDailyVolume} $ 3. **波动控制因子** - 动态波动率:$ \sigma_{dyn} = \sqrt{\frac{1}{N}\sum_{i=1}^{N} (r_i - \bar{r})^2} $ - 回撤预警:$ DD_t = 1 - \frac{P_t}{Max(P_{0:t})} $ **策略核心架构** ```mermaid graph TD A[分钟数据] --> B(高频信号引擎) C[日线数据] --> D(趋势过滤模块) B --> E[信号融合] D --> E E --> F[动态仓位管理] F --> G[实时风控系统] ``` **动态仓位管理** 仓位计算公式: $$ Position = Base \times \left(0.5 + 0.5 \times \frac{\sigma_{target}}{\sigma_{realized}}\right) \times TrendStrength $$ 其中: - $ Base $:基础仓位(通常20-30%) - $ \sigma_{target} $:目标波动率(年化25%) - $ TrendStrength $:基于MACD与ADX的趋势强度评分 **回撤控制机制** 1. **多层止损** - 头寸级:2%固定止损 - 组合级:当日亏损>3%触发降仓 - 市场级:沪深300指数5日波动率>40%时仓位上限50% 2. **波动率缩放** 使用GARCH(1,1)模型动态调整敞口: $$ \sigma_t^2 = \omega + \alpha r_{t-1}^2 + \beta \sigma_{t-1}^2 $$ **回测关键参数** | 项目 | 设置值 | |---------------|----------------| | 手续费 | 双边0.08% | | 冲击成本 | 0.15%(大单) | | 数据频率 | 5分钟+日线 | | 测试周期 | 2018-2023 | **实证结果优化方向** 1. 加入北向资金流向因子可提升策略稳定性 2. 在创业板成分中采用更激进的分钟级反转策略 3. 牛市中允许最高60%仓位,熊市强制<30% 4. 季度调仓时引入财务质量过滤(ROE>15%) > **注意**:年化40%收益需配合严格风控。历史回测显示,2019-2020年部分成长组合可实现该目标,但需持续迭代因子库并监控过拟合风险。建议初始资金>500万以保证流动性。
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值