Hikyuu Quant Framework是基于C++/Python的高性能开源量化交易研究框架,用于策略分析及回测(目前用于国内A股市场)。其核心思想基于当前成熟的系统化交易方法,将整个系统化交易抽象为由市场环境判断策略、系统有效条件、信号指示器、止损/止盈策略、资金管理策略、盈利目标策略、移滑价差算法七大组件,你可以分别构建这些组件的策略资产库,在实际研究中对它们自由组合来观察系统的有效性、稳定性以及单一种类策略的效果。
下面用一个小例子进行探索
1 | # 如果 python 版本 >3.12 ,请将下行注释掉,否则 matplotlib 不会显示图像 |
一、策略分析
原始描述
买入条件:周线MACD零轴下方底部金叉买入30%
卖出条件:日线级别 跌破 20日线 卖出50%持仓
策略分析
市场环境:无
系统有效性:无
信号指示器:
- 买入信号:周线MACD零轴下方底部金叉,即周线的DIF>DEA金叉时买入(快线:DIF,慢线DEA)
- 卖出信号:日线级别 跌破 20日均线
止损/止盈:无
资金管理:
- 买入:30% (不明确,暂且当做当前现金的30%)
- 卖出:已持仓股票数的50%
盈利目标:
移滑价差:
二、实现系统部件
定义信号指示器
In [2]:
1 | def getNextWeekDate(week): |
In [3]:
1 | def DEMO_SG(self, k): |
定义资金管理策略
In [4]:
1 | class DEMO_MM(MoneyManagerBase): |
三、构建并运行系统
设定系统参数
In [5]:
1 | #账户参数 |
构建系统实例
In [6]:
1 | #创建账户 |
运行系统
In [7]:
1 | iodog.close() |
四、查看资金曲线及绩效统计
In [8]:
1 | #绘制资金收益曲线(净收益) |
In [9]:
1 | #回测统计 |
In [10]:
1 | my_sys.performance() |
五、或许想看下图形
In [11]:
1 | my_sys.plot() |
六、或许想看看所有股票的情况
In [12]:
1 | import pandas as pd |
In [13]:
1 | #保存到CSV文件 |
Out[13]:
代码 | 股票 | 当前总资产 | |
---|---|---|---|
0 | SH601003 | 柳钢股份 | 66414.81 |
1 | SH603180 | 金牌家居 | 65716.52 |
2 | SZ000548 | 湖南投资 | 63616.49 |
3 | SH600159 | 大龙地产 | 40364.84 |
4 | SZ002099 | 海翔药业 | 53875.08 |
5 | SH600732 | 爱旭股份 | 198582.34 |
6 | SH603127 | 昭衍新药 | 131866.78 |
7 | SZ002953 | 日丰股份 | 69972.42 |
8 | SH603758 | 秦安股份 | 72336.15 |
9 | SZ002962 | 五方光电 | 54827.43 |