Skip to content

Commit

Permalink
Merge pull request #295 from fasiondog/release
Browse files Browse the repository at this point in the history
Release 2.2.2
  • Loading branch information
fasiondog authored Oct 31, 2024
2 parents 8ad5a75 + f781670 commit ea018be
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 16 deletions.
36 changes: 25 additions & 11 deletions docs/source/indicator/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@

**技术指标**

* :py:func:`AD` - 累积/派发线
* :py:func:`BACKSET` - 向前赋值将当前位置到若干周期前的数据设为1
* :py:func:`BARSCOUNT` - 有效值周期数, 求总的周期数。
* :py:func:`BARSLAST` - 上一次条件成立位置, 上一次条件成立到当前的周期数
Expand All @@ -126,6 +127,10 @@
* :py:func:`AMA` - 佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均 [BOOK1]_
* :py:func:`EMA` - 指数移动平均线(Exponential Moving Average)
* :py:func:`REF` - 向前引用 (即右移),引用若干周期前的数据
* :py:func:`ROC` - 变动率指标: ((price / prevPrice)-1)*100
* :py:func:`ROCP` - 变动率指标: (price - prevPrice) / prevPrice
* :py:func:`ROCR` - 变动率指标: (price / prevPrice)
* :py:func:`ROCR100` - 变动率指标: (price / prevPrice) * 100
* :py:func:`RSI` - 相对强弱指标
* :py:func:`SMA` - 移动平均线
* :py:func:`SAFTYLOSS` - 亚历山大 艾尔德安全地带止损线
Expand All @@ -152,20 +157,10 @@
* :py:func:`ICIR` - 计算因子 IC 的 IR 值


**Ta-lib指标**

以下指标计算方法同 Ta-lib

* :py:func:`AD` - 累积/派发线
* :py:func:`ROC` - 变动率指标: ((price / prevPrice)-1)*100
* :py:func:`ROCP` - 变动率指标: (price - prevPrice) / prevPrice
* :py:func:`ROCR` - 变动率指标: (price / prevPrice)
* :py:func:`ROCR100` - 变动率指标: (price / prevPrice) * 100

**其他转换辅助**

* :py:func:`concat_to_df` - 合并指标列表为 DateFrame

* :py:func:`df_to_ind` - 将 DataFrame 指定列转为指标

.. py:function:: concat_to_df(dates, ind_list[, head_stock_code=True, head_ind_name=False])
将列表中的指标至合并在一张 pandas DataFrame 中
Expand Down Expand Up @@ -197,3 +192,22 @@
197 2024-03-05 00:00:00 10.038182 9.816364
198 2024-03-06 00:00:00 10.070455 9.776818
199 2024-03-07 00:00:00 10.101364 9.738182




.. py:function:: df_to_ind(df, col_name, col_date=None):
将 pandas.DataFrame 指定列转化为 Indicator

:param df: pandas.DataFrame
:param col_name: 指定列名
:param col_date: 指定日期列名 (为None时忽略, 否则该列为对应参考日期)
:return: Indicator

::

示例, 从 akshare 获取美国国债10年期收益率:
import akshare as ak
df = ak.bond_zh_us_rate("19901219")
x = df_to_ind(df, '美国国债收益率10年', '日期')
4 changes: 3 additions & 1 deletion docs/source/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pip 安装 Hikyuu 后,可在命令行终端中执行 hikyuutdx 命令,启动

.. note::

由于 importdata 命令使用的是 HikyuuTDX 生成的配置文件,所以在第一次执行 importdata 之前需要至少运行过一次 HikyuuTDX。
由于 importdata 命令使用的是 HikyuuTDX 生成的配置文件,windows建议至少运行过一次 HikyuuTDX 进行配置(可以不执行导入,但配置后必须先退出),否则将使用默认配置。如果默认配置导入出错,可以自行修改用户目录下.hikyuu目录中的相应配置文件



Expand Down Expand Up @@ -134,6 +134,8 @@ Jupyter notebook(此前被称为 IPython notebook)是一个基于web的交
matplotlib显示图形时中文字体乱码的问题
---------------------------------------

通常 hikyuu 绘图已经默认支持中文,如果仍出现乱码,可参考此处,或百度。

需修改 matplotlib 配置文件,把字体改为支持中文的字体。matplotlib文件位于 python安装目录/matplotlib/mpl-data/matplotlibrc,可用任意文本编辑器打开编辑,文件位置如下图所示:

.. figure:: _static/quickstart_matplotlib_config.png
Expand Down
14 changes: 14 additions & 0 deletions docs/source/release.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
版本发布说明
=======================

2.2.2 - 2024年11月1日
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1. 优化 sys_performance, 统一使用上证指数交易日作为参考日期,防止参考证券日期和回测证券日期不一致的情况
2. 增加 PF 调仓模式,可以按周/月/年中第N日方式指定调仓日
3. run_in_strategy 等添加其他订单代理参数,以便可以实盘时进行其他方式的通知(如邮件)
4. Python 中 Stock set_krecord_list 方法增加指定 ktype 参数
5. 支持 python 3.13 (注:由于其他依赖包尚未全部支持 3.13, 数据导入暂时不可用)
6. 改进打包,多版本 python 支持同时包含于一个包中
7. 增强 VALUE/PRICELIST 指标,可同时指定对应的参考日期
8. 增加 df_to_ind 函数,通过指定 pandas.DataFrame 中的数据列及日期列名称,将相关列转为指标数据
9. 初次使用 HikyuuTdx 导入数据时,根据配置路径尝试自动创建相关目录


2.2.1 - 2024年10月1日
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down
17 changes: 14 additions & 3 deletions docs/source/trade_portfolio/portfolio.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,21 @@
克隆操作

.. py:method:: run(self, query)
.. py:method:: run(self, query[, adjust_cycle=1, force=false, adjust_mode="query", delay_to_trading_day=True])
运行投资组合策略

运行投资组合策略。在查询条件及各组件没有变化时,PF在第二次执行时,默认不会实际进行计算。
但由于各个组件的参数可能改变,此种情况无法自动判断是否需要重计算,可以手工指定进行强制计算。

调仓模式 adjust_mode 说明:

- "query" 模式,跟随输入参数 query 中的 ktype,此时 adjust_cycle 为以 query 中的 ktype 决定周期间隔;
- "day" 模式,adjust_cycle 为调仓间隔天数
- "week" | "month" | "quarter" | "year" 模式时,adjust_cycle 为对应的每周第N日、每月第n日、每季度第n日、每年第n日,在 delay_to_trading_day 为 false 时, 如果当日不是交易日将会被跳过调仓;当 delay_to_trading_day 为 true时,如果当日不是交易日将会顺延至当前周期内的第一个交易日,如指定每月第1日调仓,但当月1日不是交易日,则将顺延至当月的第一个交易日。

:param Query query: 查询条件
:param int adjust_cycle: 调仓周期
:param bool force: 强制重新计算
:param str adjust_mode: 调仓模式,默认为"query"
:param bool delay_to_trading_day: 是否顺延至当前周期内第一个交易日进行调仓


6 changes: 6 additions & 0 deletions hikyuu/indicator/indicator.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,12 @@ def df_to_ind(df, col_name, col_date=None):
"""
将 pandas.DataFrame 指定列转化为 Indicator
示例,从 akshare 获取美国国债10年期收益率:
import akshare as ak
df = ak.bond_zh_us_rate("19901219")
x = df_to_ind(df, '美国国债收益率10年', '日期')
:param df: pandas.DataFrame
:param col_name: 指定列名
:param col_date: 指定日期列名 (为None时忽略, 否则该列为对应参考日期)
Expand Down
2 changes: 1 addition & 1 deletion xmake.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ set_project("hikyuu")
add_rules("mode.debug", "mode.release")

-- version
set_version("2.2.1", {build = "%Y%m%d%H%M"})
set_version("2.2.2", {build = "%Y%m%d%H%M"})

set_warnings("all")

Expand Down

0 comments on commit ea018be

Please sign in to comment.