BOLL_M - 布林带(传统版) *通达信加密函数
函数原型:
def BOLL_M(CLOSE:Iterable,N:int=20)->Optional[Tuple[np.ndarray,np.ndarray,np.ndarray]]
#简洁表示
def BOLL_M(CLOSE,N=20)
返回布林带上、中、下三个轨道的元组
WINNER - 盈利盘比例函数 *通达信加密函数
函数原型:
def WINNER(HIGH:Iterable,LOW:Iterable,VOL:Iterable,Turnrate:Iterable,price,avg:Union[Iterable,str]='hlavg')->Optional[np.ndarray]
#简洁表示
def WINNER(HIGH,LOW,VOL,Turnrate,price,avg='hlavg')
说明:
- VOL-成交量[序列值],单位是手,万股等不重要,只要统一就行
- Turnrate[换手率]:取值范围0-1,注意50%的换手应写作0.5
*换手率由于流通股变动问题,故不能简单使用“成交量/流通股”的方式计算,这也是本函数保留输入换手率的原因 - price-某价格的盈利比例中的价格,可以是具体数值(如:99.98),也可以是序列(如收盘价、开盘价等)
- avg-筹码三角分布顶点:默认'hlavg'是取每日最高价和最低价的平均值,已经基本满足筹码计算要求。某些算法中使用“成交额/成交量”的计算方法计算当日平均价
*使用“成交额/成交量”的计算方法的话,注意这个平均位置也要复权,否则会出现平均位置出现在当日最高价和最低价之外的情况
返回一组获利比例的numpy数组,范围0-1,如0.1即当前股价的盈利比例为10%,这里跟通达信软件是保持一致的
*此函数专用于T+1交易,不适用于可转债或者非日线周期等换手率超过100%的情况
COST - 成本函数 依据获利盘比例找价格 *通达信加密函数
函数原型:
def COST(HIGH:Iterable,LOW:Iterable,VOL:Iterable,Turnrate:Iterable,winpercent:Iterable,radio:float=0.01,avg:Union[Iterable,str]='hlavg')->Optional[np.ndarray]
#简洁表示
def COST(HIGH,LOW,VOL,Turnrate,winpercent,radio=0.01,avg='hlavg')
计算某盈利比例对应的股价
- VOL-成交量[序列值],单位是手,万股等不重要,只要统一就行
- Turnrate[换手率]:取值范围0-1,注意50%的换手应写作0.5
*换手率由于流通股变动问题,故不能简单使用“成交量/流通股”的方式计算,这也是本函数保留输入换手率的原因 - winpercent-指定获利比例,应为0-100之间的数值(如winpercent=90,即返回盈利90%的股价),和通达信软件保持一致
- avg-筹码三角分布顶点:默认'hlavg'是取每日最高价和最低价的平均值,已经基本满足筹码计算要求。某些算法中使用“成交额/成交量”的计算方法计算当日平均价
*使用“成交额/成交量”的计算方法的话,注意这个平均位置也要复权,否则会出现平均位置出现在当日最高价和最低价之外的情况 - radio-精确度:如股票等使用0.01,ETF,Reits等使用0.001,只能取这两值其一
返回一组指定获利比例的股价。
*此函数专用于T+1交易,不适用于可转债或者非日线周期等换手率超过100的情况'''
getHPoint - 指示当前位置是否是一组数据的高点
函数原型:
def getHPoint(S:Iterable,N:int)->Optional[np.ndarray]
#简洁表示
def getHPoint(S,N)
返回值为dtype=bool_的数组,True位置即为相对高点位置
getLPoint - 指示当前位置是否是一组数据的低点
函数原型:
def getLPoint(S:Iterable,N:int)->Optional[np.ndarray]
#简洁表示:
def getLPoint(S:Iterable,N:int)
返回值为dtype=bool_的数组,True位置即为相对低点位置
getHLine - 获取一组数据高点的拟合直线
函数原型:
def getHLine(S:Iterable,N:int)->Optional[Tuple[np.ndarray,float,float]]
#简洁表示
def getHLine(S,N)
返回值:(DATA,R2,SLOPE)元组
DATA-拟合后的高点序列,绘图的话是一条直线
R2-高点拟合的r-square数值[取值范围0-1,数值越大说明数据拟合度越好]
SLOPE-拟合后直线的斜率,为正则标识数据越来越大,为负则表示数据越来越小
getLLine - 获取一组数据低点的拟合直线
函数原型:
def getLLine(S:Iterable,N:int)->Optional[Tuple[np.ndarray,float,float]]
#简洁表示
def getLLine(S,N)
返回值:(DATA,R2,SLOPE)元组
DATA-拟合后的低点序列,绘图的话是一条直线
R2-高点拟合的r-square数值[取值范围0-1,数值越大说明数据拟合度越好]
SLOPE-拟合后直线的斜率,为正则标识数据越来越大,为负则表示数据越来越小
getBestHLine - 获取一组数据在N取值为N1到N2之间的高点最佳拟合直线
函数原型:
def getBestHLine(S:Iterable,N1:int,N2:int)->Optional[Tuple[np.ndarray,float,float,int]]
#简洁表示
def getBestHLine(S,N1,N2)
返回值:(DATA,R2,SLOPE,N)元组
DATA-最佳拟合后的高点序列,绘图的话是一条直线
R2-高点拟合后的最佳r-square数值[即函数getHLine(S,N)的N值取N1-N2之间所有整数时计算的R2最大值]
SLOPE-最佳拟合后直线的斜率,为正则标识数据越来越大,为负则表示数据越来越小
N-最佳拟合时的N值
getBestLLine - 获取一组数据在N取值为N1到N2之间的低点最佳拟合直线
函数原型:
def getBestLLine(S:Iterable,N1:int,N2:int)->Optional[Tuple[np.ndarray,float,float,int]]
#简洁表示
def getBestLLine(S,N1,N2)
返回值:(DATA,R2,SLOPE,N)元组
DATA-最佳拟合后的低点序列,绘图的话是一条直线
R2-低点拟合后的最佳r-square数值[即函数getHLine(S,N)的N值取N1-N2之间所有整数时计算的R2最大值]
SLOPE-最佳拟合后直线的斜率,为正则标识数据越来越大,为负则表示数据越来越小
N-最佳拟合时的N值
RSRS - 阻力相对支撑强度指标 炒股软件一般无此指标
函数原型:
def RSRS(HIGH:Iterable,LOW:Iterable,N:int=18,M:int=600)->Optional[np.ndarray]
#简洁表示
def RSRS(HIGH,LOW,N=18,M=600)
N,M-周期常量 M默认值值为600,注意输入数据的数量
返回值:计算的RSRS数值,一般在RSRS>0.7时买入,RSRS小于-0.7时卖出'
SAR - 抛物线指标 通达信、同花顺等软件上是加密指标
函数原型:
def SAR(HIGH:Iterable,LOW:Iterable,start:int=4,stepstart:int=2,step:int=2,maxstep:int=20)->Optional[np.ndarray]
#函数原型
def SAR(HIGH,LOW,start=4,stepstart=2,step=2,maxstep=20)
输入参数:
start:起始统计周期
stepstart:加速因子参数
step:加速因子增量
maxstep:反向临界参数
返回值:SAR值,SAR大于收盘价代表下跌趋势,SAR小于收盘价代表上涨趋势