Hikyuu 1.2.3 发布,高性能量化交易研究框架

来源: 投稿
作者: fasiondog
2022-03-07 08:12:00

Hikyuu 1.2.3 已发布,这是一款量化交易研究框架。该版本更新如下:

  1. 指标支持动态参数

    在通道信等证券行情软件中,其技术指标中的窗口参数通常支持整数,也支持使用指标,如:

    T1:=HHVBARS(H,120); {120内的最高点距今天的天数}
    L120:=LLV(L,T1+1); {120内的最高点至今,这个区间的最低点}
    

    现在,在 Hikyuu 中,也可以使用指标作为参数:

    T1 = HHVBARS(H, 120)
    L120 = LLV(L, T1+1)
    L120.set_context(k)
    L120.plot()
    

    注意事项

    由于无法区分 Indicator(ind) 形式时,ind 究竟是指标参数还是待计算的输出数据,此时如果希望 ind 作为参数,需要通过 IndParam 进行显示指定,如:EMA(IndParam(ind))。

    最佳的的方式,则是通过指定参数名,来明确说明使用的是参数:

    x = EMA(c)  # 以收盘价作为计算的输入
    y = EMA(IndParam(c)) # 以收盘价作为 n 参数
    z = EMA(n=c) # 以收盘价作为参数 n
    
  2. 完善 PF、AF、SE

    现在可以正常使用资产组合。:

    # 创建一个系统策略
    my_mm = MM_FixedCount(100)
    my_sg = my_sg = SG_Flex(EMA(n=5), slow_n=10)
    my_sys = SYS_Simple(sg=my_sg, mm=my_mm)
    
    # 创建一个选择算法,用于在每日选定交易系统
    # 此处是固定选择器,即每日选出的都是指定的交易系统
    my_se = SE_Fixed([s for s in blocka if s.valid], my_sys)
    
    # 创建一个资产分配器,用于确定如何在选定的交易系统中进行资产分配
    # 此处创建的是一个等比例分配资产的分配器,即按相同比例在选出的系统中进行资金分配
    my_af = AF_EqualWeight()
    
    # 创建资产组合
    # 创建一个从2001年1月1日开始的账户,初始资金200万元。这里由于使用的等比例分配器,意味着将账户剩余资金在所有选中的系统中平均分配,
    # 如果初始资金过小,将导致每个系统都没有充足的资金完成交易。
    my_tm = crtTM(Datetime(200101010000), 2000000)
    my_pf = PF_Simple(tm=my_tm, af=my_af, se=my_se)
    
    # 运行投资组合
    q = Query(-500)
    %time my_pf.run(Query(-500))
    
    x = my_tm.get_funds_curve(sm.get_trading_calendar(q))
    PRICELIST(x).plot()
    
  3. 修复fedora 34编译找不到路径报错,waning 提示

  4. fixed mysql 升级脚本错误

  5. fixed 复权后计算的净收益不对,并在使用前复权数据进行回测时给出警告(前复权回测属于未来函数)

Hikyuu 是一款基于 C++/Python 的高性能开源量化交易研究框架,用于策略分析及回测(目前用于国内股票市场)。与其他量化平台或回测软件相比,其独特性在于:将完整的策略分解为不同的组件,通过重用不同的方面策略,最大化的减轻编写策略的负担,如常见的止损和资金管理策略,只需要简单指定已有的止损或资金管理策略等,即可完成不同的策略组合;同时,可自由遍历所有股票,对策略效果进行综合的统计分析。如下面的示例,简单更好不同的资金管理策略。入门示例:https://nbviewer.jupyter.org/github/fasiondog/hikyuu/blob/master/hikyuu/examples/notebook/000-Index.ipynb?flush_cache=True

更多信息,参见项目主页:https://hikyuu.org or  http://fasiondog.gitee.io/hikyuu

展开阅读全文
8 收藏
分享
1 评论
8 收藏
分享
返回顶部
顶部