Hikyuu Quant Framework 基于C++/Python的开源量化交易研究框架
APACHE-2.0 License
Bot releases are hidden (Show)
缺陷修复
其他改进
Published by fasiondog 6 months ago
Published by fasiondog 6 months ago
新增特性
缺陷修复
Published by fasiondog 7 months ago
Published by fasiondog 7 months ago
新增特性
其他优化与调整
SpendTimer 改输出到 std::cout ,以便 jupyter 可以捕获输出
Published by fasiondog 8 months ago
整体性能优化
功能增强
缺陷修复
Published by fasiondog 9 months ago
Published by fasiondog 9 months ago
<https://gitee.com/fasiondog/hikyuu_hub>
_Published by fasiondog 10 months ago
整体调整与优化
功能增强
缺陷修复
其他修改
Published by fasiondog 11 months ago
Published by fasiondog 12 months ago
性能优化
#125 <https://github.com/fasiondog/hikyuu/pull/125>
_ 指标融合优化,计算速度提升了8~10倍左右。
功能增强
其他错误修复
Published by fasiondog about 1 year ago
稳定性与兼容性
算法优化
功能增强
其他修复和改进
Published by fasiondog about 1 year ago
Published by fasiondog almost 2 years ago
fixed MySQL引擎只能导入数据,但实际无法使用
Published by fasiondog almost 2 years ago
Published by fasiondog about 2 years ago
Published by fasiondog over 2 years ago
Published by fasiondog over 2 years ago
在通道信等证券行情软件中,其技术指标中的窗口参数通常支持整数,也支持使用指标,如:
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
现在可以正常使用资产组合。:
# 创建一个系统策略
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()
Published by fasiondog over 2 years ago
Published by fasiondog almost 3 years ago