hikyuu

Hikyuu Quant Framework 基于C++/Python的开源量化交易研究框架

APACHE-2.0 License

Downloads
3.6K
Stars
2K
Committers
12

Bot releases are visible (Hide)

hikyuu - 1.1.9

Published by fasiondog almost 3 years ago

  1. 补充科创板
  2. 完善基础设施,增加MQThreadPool、MQStealThreadPool,优化StealThreadPool
  3. 优化 DbConnect,增加DBCondition
  4. Datetime增加hex()返回兼容oracle的Datetime格式存储
  5. fixed 技术指标 RSI,KDJ
  6. fixed select function
  7. fixed实时采集数据错误
  8. fixed createdb.sql 上证A股代码表前缀
  9. 取消编译时指定的AVX指令集,防止不支持的CPU架构
hikyuu - 1.1.8

Published by fasiondog over 3 years ago

fixed:
1、HikyuuTDX 切换mysql导入时错误提示目录不存在
2、tdx本地导入修复,并支持导入MySQL

hikyuu - 1.1.7

Published by fasiondog over 3 years ago

1、更新examples/notebook相关示例
2、fixed bugs

hikyuu - 1.1.6

Published by fasiondog over 3 years ago

  1. 优化 hikyuu.interactive 启动加载速度
  2. 完善 HikyuuTDX 预加载设置参数,可根据机器内存大小自行设置需加载至内存的K线数据,加快 hikyuu 运行速度
  3. HikyuuTDX 支持定时行情采集,定时采集服务运行时,hikyuu.interactive 自动连接采集服务获取最新的 K 线数据
  4. HikyuuTDX 支持定时导入,避免每日手工导入数据的繁琐
  5. hikyuu.interactive 每日0:00定时重新加载内存数据,可24小时运行无需终止
  6. fixed 使用MySQL时无法按日期查询获取K线数据
hikyuu - 1.1.5

Published by fasiondog almost 4 years ago

  1. 导入工具修复权息信息导入

  2. 支持 MySQL 作为存储引擎(通过导入工具配置)

  3. 整改 python api 命名,类按大写驼峰,方法和函数统一为小写加下划线

  4. 增加 TimeDelta,方便日期时间计算,如:Datetime(202011090000) + TimeDelta(1)。python中可以使用 datetime.timedelta

  5. Portfolio(资产组合算法)、Allocatefunds(资金分配算法)、Selector(交易对象选择算法)可用

  6. 交易数量从整型改为float,方便支持数字币、外汇等

  7. 增加策略算法仓库,欢迎大家提交PR贡献公共策略:https://gitee.com/fasiondog/hikyuu_hub

    增加本地仓库:add_local_hub('dev', '/home/fasiondog/workspace/stockhouse')
    更新参考:update_hub('default')
    获取指定仓库的策略部件:st = get_part('default.st.fixed_percent')

  8. 其他BUG修复与优化

hikyuu - 1.1.3

Published by fasiondog over 5 years ago

  1. 原表示浮点数的 Null 值更改为和 numpy 一致,在c++中为 std::nan, python中 为numpy::nan
  2. Indicator 支持按日期获取数据,如:c['2019-6-11'] 或 c[Datetime(201906110000)] (注:由于 indicator的四则运算无法判定绑定的上下文,所以四则运算产生的结果无法获取对应日期,此时需要先执行 setContext 对结果指定上下文)
  3. Datetime 增加 startOfDay, endOfDay 方法
  4. 从 Indicator, SYS, TM 等支持 set/getParam 的对象中引出 haveParam方法至Python
  5. 增加了近 40 个 通达信基础指标实现,方便移植和试验网上大量通达信指标公式。具体详见:https://hikyuu.readthedocs.io/zh_CN/latest/indicator/overview.html
hikyuu - 1.1.2

Published by fasiondog over 5 years ago

  1. 修复 Indicator 无法作为原型使用,导致部分预定义的 SG 等无法正在运行的BUG。如:

    #以下两种写法等效:
    (EMA() + MA())(C) #原型法
    EMA(C) + MA(C) #普通写法

  2. 交互模式下,增加预定义的全局变量 O、H、L、C、A、V,分别代表 OPEN()、HIGH()、LOW()、CLOSE()、AMO()、VOL(),编写自定义指标时更快捷。默认绑定的上下文为 sh000001(上证指数),可使用 set_gloabl_context 更改绑定的默认上下文。如:

    x = EMA(C) + MA(C)
    x.plot() #绘制的是 sh000001
    x.setContext("sz000001") #设置指标 x 的上下文为 sz000001
    set_gloabl_context("sz000001") #更改 O,H,L,C,A,V默认绑定的上下文

  3. 交互模式下,增加 Datetime 同名缩写 D。原 Datetime(201901010000) 可简写为 D(201901010000)

  4. 优化 HHV、LLV、SUM、COUNT 指标实现,去除双重循环

  5. 新增内建指标:HHVBARS, LLVBARS, ROUND,ROUNDUP, ROUNDDOWN, FLOOR, CEILING, BETWEEN, POW, STD, SQRT, LOG, LN

  6. 修复 IF 两个参数为 price_t 时的计算错误

hikyuu -

Published by fasiondog over 5 years ago

对应版本的帮助文档: https://hikyuu.readthedocs.io/zh_CN/1.1.1/

  1. HikyuuTDX 新增当前财务信息及历史财务信息下载

  2. Stock 新增 getFinanceInfo、getHistoryFinanceInfo 支持当前及历史财务信息

  3. 新增 LIUTONGPAN(流通盘)、HSL(换手率)、COUNT、IF、SUM、NOT、EXP、SGN、ABS、MAX、MIN指标

  4. Kdata添加便捷方法获取OPEN/CLOSE等基本行情数据,如:

    k = sm['sh000001'].getKData(Query(-100))
    c = k.close # 返回的是 Indicator 实例,即 CLOSE(k)

  5. 实现 select 函数,示例:

    #选出涨停股
    C = CLOSE()
    x = select(C / REF(C, 1) - 1 >= 0.0995))

  6. 优化 Indicator 实现(取消 Operand),可以事先指定 KData,亦可后续通过 setContext 切换上下文,重新指定 KData。例如:

    #示例:移植通达信 DMI(趋向指标系统)
    #MTR:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW)),N);
    #HD :=HIGH-REF(HIGH,1);
    #LD :=REF(LOW,1)-LOW;
    #DMP:=SUM(IF(HD>0&&HD>LD,HD,0),N);
    #DMM:=SUM(IF(LD>0&&LD>HD,LD,0),N);
    #PDI: DMP100/MTR;
    #MDI: DMM
    100/MTR;
    N = 14
    C = CLOSE()
    H = HIGH()
    L = LOW()
    MTR = SUM(MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(REF(C,1)-L)),N);
    HD = H-REF(H,1)
    LD = REF(L,1)-L
    DMP = SUM(IF(HD>0 & HD>LD, HD, 0), N)
    DMM = SUM(IF(LD>0 & LD>HD, LD, 0), N)
    PDI = DMP100/MTR
    MDI = DMM
    100/MTR

    PDI.setContext(sm['sz000001'], Query(-100))
    MDI.setContext(sm['sz000001'], Query(-100))

    PDI.plot()
    MDI.plot(new=False)

  7. Parameter 支持 Stock、Query、KData

hikyuu -

Published by fasiondog over 5 years ago

  1. 复权增加周线及其以上支持
  2. 支持历史分笔、分时数据
  3. 添加日志打印的等级控制
  4. MoneyManagerBase增加对成本计算
  5. Datetime增加 dateOfWeek,startOfWeek,endOfWeek,nextWeek,preWeek等系列便捷方法
  6. fix:Stock.realtimeUpdate中未判断缓存未空的情况
  7. fix:io重定向中未进行重复open的判定
  8. fix:Block分类显示乱码
  9. 简化源码安装方式,支持 python setup.py
  10. 全新的快速数据下载工具(支持GUI及命令行,如下图所示),下载当日权息、日线、分钟线、分笔、分时数据耗时2~4分钟(视个人网络有所不同),同时不再需要通过证券客户端下载盘后数据。具体参见: https://hikyuu.readthedocs.io/zh_CN/latest/quickstart.html
    avatar
hikyuu -

Published by fasiondog almost 6 years ago

  1. 更新周线、月线等周线及其之上的K线BAR记录,从以开始时间为准,改为以结束时间为准。(如从老版本升级,需手工删除sh_day.h5、sz_day.h5文件中的week、month等目录,只保留data目录。可运行 tools/delelte_index.py 完成删除,运行前请自行修改相关文件路径等信息)。
  2. 实现将C++中的日志输出重定向至Python,使Jupyter notebook可以看到C++部分的打印信息提示。注意:部分情景可能导致notebook因打印信息过多失去响应,此时可在产生较多打印信息的命令之前运行“iodog.close()”关闭重定向,后续可以再使用“iodog.open()”重新打开重定向信息输出。
  3. Datetime增加nextDay、dayOfWeek、dayOfYear、endOfMonth方法。
  4. TradeManager增加直接加入交易记录的方法(addTradeRecord)。
  5. 升级使用的依赖库 boost、libmysql、hdf5
  6. 使用xmake重构编译工程并调整代码结构
  7. 试验linux下pip打包安装。linux下可使用 pip install hikyuu 命令完成安装,安装前需安装依赖的软件包(sudo apt-get install -y libhdf5-dev libhdf5-serial-dev libmysqlclient-dev)
  8. 支持MacOSX下源码编译