提交 9817a2e2 编写于 作者: Z zengbin93

0.5.6 新增单因子分析

上级 644d01d0
# coding: utf-8
from typing import List
def cal_nbar_percentile(k: dict, kn: List[dict], n: int) -> float:
"""计算 N 周期区间百分位
:param k: dict
信号出现时的 K 线
:param kn: List[dict]
信号出现后的 N 根 K 线
:param n: int
周期数 N
:return: float
"""
assert len(kn) == n, "计算 {} 周期区间百分位时传入的 kn 数量为 {}".format(n, len(kn))
c = k['close']
min_p = min([x['low'] for x in kn])
max_p = max([x['high'] for x in kn])
if max_p == min_p:
return 0
else:
percentile = round((c-min_p) / (max_p-min_p) * 100, 2)
return percentile
def cal_nbar_income(k: dict, kn: List[dict], n: int) -> float:
"""计算 N 周期区间收益
:param k: dict
信号出现时的 K 线
:param kn: List[dict]
信号出现后的 N 根 K 线
:param n: int
周期数 N
:return: float
"""
assert len(kn) == n, "计算 {} 周期区间收益时传入的 kn 数量为 {}".format(n, len(kn))
c = k['close']
last_c = kn[-1]['close']
income = round((last_c - c) / c * 100, 2)
return income
## 单因子分析工具开发文档
单因子分析工具的主要功能是,输入一组计算好的因子,分析这些因子的历史表现。
1. 纵向分析因子在某个标的上的历史表现;
2. 横向分析因子在某个时点的全市场表现。
### 因子输入标准
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册