企业网站推广策划方法,优秀的营销案例ppt,公司小程序开发,手机当服务器建网站之前的章节介绍了多个技术分析指标#xff0c;以下进行一个简单的总结。 看过之前章节的同学就可以不用打开了。 技术指标 MAEMAMACDCCIATRKDJ MA
最基础的技术指标#xff0c;对一段周期内的收盘价进行简单平均#xff0c;是一切指标的基础。
def calc_ma(period,ma):ma_…之前的章节介绍了多个技术分析指标以下进行一个简单的总结。 看过之前章节的同学就可以不用打开了。 技术指标 MAEMAMACDCCIATRKDJ MA
最基础的技术指标对一段周期内的收盘价进行简单平均是一切指标的基础。
def calc_ma(period,ma):ma_n []period period-1for i in range(len(ma)):if i period:ma_n.append(np.mean(ma[i-period:i1]))else:if i 0:ma_n.append(ma[i])else:ma_n.append(np.mean(ma[:i]))return ma_nEMA
均线的进阶版本对一段周期收盘价进行移动平均获取更平衡的曲线。 周期越长曲线越平滑周期越短曲线越陡峭。
def calc_ema(df,period):df[EMA_ str(period)] pd.DataFrame.ewm(df[close],spanperiod).mean() return dfMACD
指数平滑移动平均线。MACD 是通过计算不同时间的 EMA 的差值俩判断价格趋势。
MACD 包括 3 个值 长短期 EMA 差值DIF EMA(close,12)-EMA(close,26) 计算 12 日和 26 日 EMA 均线差值 信号线 DEA EMA(DIF,9) 计算差值的 EMA 均线 柱状图 OSC DIF - DEA
def calculate_macd(df, short_period, long_period, signal_period):df[DIF] pd.DataFrame.ewm(df[close],spanshort_period).mean() - pd.DataFrame.ewm(df[close],spanlong_period).mean()df[DEA] pd.DataFrame.ewm(df[DIF],spansingal_period).mean()df[OSC] df[DIF] - df[DEA]return dfCCI
CCI 旨在更全面地分析一定时间段内的综合价格走势。与其他震荡指标不同CCI 不仅以收盘价为参考还使用了最高价、最低价和收盘价的平均值作为计算基础。
计算公式
计算典型价格TPTP 最高价 最低价 收盘价/ 3计算典型价格移动平均线TPSMATPSMA TP1 TP2 TP3 … TPn / n计算均值偏差Mean DeviationMD ( |TP1 - TPSMA1| … |TPn - TPSMAn| ) / n计算CCI指数CCI TPt - TPSMAt / 0.015 X MDt 其中t代表当前K线上的数据0.015用于将70%到80%的CCI数据归纳在100和-100之间.
def calc_cci(df,period):tp (df[high] df[low] df[close]) / 3ma tp.rolling(windowperiod).mean()md tp.rolling(windowperiod).std()df[CCI] (tp - ma) / (0.015 * md)return dfATR
ATR指标Average True Range / ATR是一种用于反应价格波动的指标。
ATR指标的计算方法
计算波动幅度TRTrue Rangemax(当天最高价和最低价之间的距离,前一天收盘价和当天最高价之间的距离,前一天收盘价和当天最低价之间的距离)。取一定时间周期内通常默认为14个交易日TR的平均值即可得到平均真实波动幅度ATR。
ATR的波动幅度概念可以显示出交易者的期望和市场交易的活跃程度。波动率越高ATR值越高反之波动率越低ATR值也越低。
def calc_atr(df,period):df[high - low] df[close].diff().abs()df[high - close_pre] (df[high] - df[close].shift()).abs()df[low - close_pre] (df[low] - df[close].shift()).abs()df[TR] df[[high - low, high - close_pre, low - close_pre]].max(axis1)df[ATR] df[TR].rolling(windowperiod).mean()return dfKDJ
KDJ的计算依据是最高价、最低价和收盘价。K、D、J 是图中的三条线。
要计算 KDJ需要先计算价差 RSVRSV((收盘价-最低价)/(最高价-收盘价))*100
K RSV 的指数移动平均值平滑因子1/3D K 的指数移动平均值平衡因子1/3J K3 - D2
def calc_kdj(df,period):m 3df[lowest] df[low].rolling(windowperiod).min()df[highest] df[high].rolling(windowperiod).max()df[RSV] (df[close] - df[lowest]) / (df[highest] - df[lowest]) * 100df[K] df[RSV].ewm(adjustFalse, alpha1/m).mean()df[D] df[K].ewm(adjustFalse, alpha1/m).mean()df[J] 3 * df[K] - 2 * df[D]return df