就是整理一些量化相关的基础算法,供刚入坑的朋友参考学习,主要是以学习为主,写的不对的地方还望多指导指导。
交流QQ群 789599606 (量化交流)
网站 dsxquant.com
通过时间分组算法转换k线周期
即通过对时间的周期提取分组,同周期K线归类为一组,再合并计算即可得到目标周期K线数据
算法简单直接:在每次除权发生后, 根据除权价和前一收盘价计算一个比率,称为除权因子;把截止到计算日历次的除权因子连乘,即为截止日的累积除权因子。计算前复权价,则以价格乘上累积除权因子;向后复权,则价格除以累积除权因子。
根据涨跌幅复权法,首先要计算除权因子:
除权收盘价 = 除权除息价 = (股权登记日的收盘价-每股所分红利现金额+配股价×每股配股数)÷(1+每股送红股数+每股配股数+每股转增股数)
除权因子 = 除权收盘价 / 除权登记日收盘价
后复权上市首日后除权因子为1,前复权最近一次除权除息日后的交易日前复权因子为1。
除权会不断发生,所以需要计算出累积除权因子
累积除权因子 = 上一个除权因子 * (除权收盘价 / 除权登记日收盘价)
前复权因子 = 累积除权因子
后复权因子 = 1.0 / 累积除权因子
因为后复权价=价格 / 累积除权因子,所以后复权因子=1.0/累积除权因子,这样就能用后复权因子*价格来计算每个k线的后复权价格了
前复权价格 = 价格 * 前复权因子
后复权价格 = 价格 * 后复权因子
# 除权除息价=(股权登记日的收盘价-每股所分红利现金额+配股价×每股配股数)÷(1+每股送红股数+每股配股数+每股转增股数);
price = (close - per_cash_div/10.0 + allo_price * (per_ten_allo/10.0) ) / (1.0+(per_ten_send/10.0) + (per_ten_allo/10.0) + (per_ten_incr/10.0) )
# 通过上面的计算得到除权除息价,也就是计算出了除权除息日的前收价,除权登记日的除权收盘价,用除权登记日的收盘价除以除权价得到单次除权因子;
# 除权因子= 除权收盘价 / 除权登记日收盘价
right_factor = price / close
鉴于笔者能力有限,现在只支持 Python,Java,Flutter,Object-C,Js,C# ,这几个语言的开发者可以参考下。
目前仅支持以下数据接口:
- 实时行情
- 分时图
- 五日数据
- 历史日K线
- 历史分钟K线
量比、换手率、涨跌幅
运用递归下降法创建一个公式编辑器来计算KDJ指标