k线obv-k线obv表示什么意思

2023-02-27 09:55:30 技术指标 0次阅读 投稿:admin

关于k线obv内容导航:

1、k线obv


:param df:
:return:
"""
df['obv'] = (df['close'] - df['close'].shift(1)).cumsum()
df.loc[df['close'] < df['close'].shift(1), 'obv'] = (df['close'] - df['close'].shift(1)).cumsum() * -1
return df


def get_macd(df, short=12, long=26, m=9):
"""
计算macd
:param df:
:param short:
:param long:
:param m:
:return:
"""
df['diff'] = df['close'].ewm(span=short).mean() - df['close'].ewm(span=long).mean()
df['dea'] = df['diff'].ewm(span=m).mean()
df['macd'] = 2 * (df['diff'] - df['dea'])
return df


def get_kdj(df, n=9, m=3, l=3):
"""
计算kdj
:param df:
:param n:
:param m:
:param l:
:return:
"""
low_list = df['low'].rolling(n, min_periods=1).min()
low_list.fillna(value=df['low'].expanding().min(), inplace=True)
high_list = df['high'].rolling(n, min_periods=1).max()
high_list.fillna(value=df['high'].expanding().max(), inplace=True)
rsv = (df['close'] - low_list) / (high_list - low_list) * 100
df['kdj_k'] = rsv.ewm(com=m).mean()
df['kdj_d'] = df['kdj_k'].ewm(com=l).mean()
df['kdj_j'] = 3 * df['kdj_k'] - 2 * df['kdj_d']
return df


def get_rsi(df, n=6):
"""
计算rsi
:param df:
:param n:
:return:
"""
df['rsi'] = talib.RSI(df['close'].values, timeperiod=n)
return df


def get_boll(df, n=20, dev=2.0):
"""
计算布林线
:param df:
:param n:
:param dev:
:return:
"""
df['boll_mid'] = df['close'].rolling(n, min_periods=1).mean()
df['boll_std'] = df['close'].rolling(n, min_periods=1).std()
df['boll_up'] = df['boll_mid'] + dev * df['boll_std']
df['boll_down'] = df['boll_mid'] - dev * df['boll_std']
return df


def get_cci(df, n=14):
"""
计算cci
:param df:
:param n:
:return:
"""
df['cci'] = talib.CCI(df['high'].values, df['low'].values, df['close'].values, timeperiod=n)
return df


def get_wr(df, n=10):
"""
计算wr
:param df:
:param n:
:return:
"""
df['wr'] = talib.WILLR(df['high'].values, df['low'].values, df['close'].values, timeperiod=n)
return df


def get_sar(df, n=4, m=0.02):
"""
计算sar
:param df:
:param n:
:param m:
:return:
"""
df['sar'] = talib.SAR(df['high'].values, df['low'].values, acceleration=n, maximum=m)
return df


def get_dmi(df, n=14):
"""
计算dmi
:param df:
:param n:
:return:
"""
df['dmi_m'] = df['high'].diff(1)
df['dmi_m'] = df['dmi_m'].apply(lambda x: x if x > 0 else 0)
df['dmi_n'] = df['low'].diff(1)
df['dmi_n'] = df['dmi_n'].apply(lambda x: x if x < 0 else 0)
df['dmi_tr'] = df[['high', 'low', 'close']].apply(lambda x: max(x) - min(x), axis=1)
df['dmi_trn'] = df['dmi_tr'].rolling(n, min_periods=1).mean()
df['dmi_m'] = df['dmi_m'].rolling(n, min_periods=1).mean()
df['dmi_n'] = df['dmi_n'].rolling(n, min_periods=1).mean()
df['dmi_pdm'] = df['dmi_m'] / df['dmi_trn'] * 100
df['dmi_ndm'] = df['dmi_n'] / df['dmi_trn'] * 100
df['dmi_dx'] = df[['dmi_pdm', 'dmi_ndm']].apply(lambda x: abs(x[0] - x[1]) / (x[0] + x[1]) * 100, axis=1)
df['dmi_adx'] = df['dmi_dx'].ewm(span=n).mean()
df['dmi_adxr'] = df['dmi_adx'].ewm(span=n).mean()
return df


def get_roc(df, n=12):
"""
计算roc
:param df:
:param n:
:return:
"""
df['roc'] = (df['close'] - df['close'].shift(n)) / df['close'].shift(n) * 100
return df


def get_atr(df, n=14):
"""
计算atr
:param df:
:param n:
:return:
"""
df['atr'] = talib.ATR(df['high'].values, df['low'].values, df['close'].values, timeperiod=n)
return df


def get_all_index(df):
"""
计算所有指标
:param df:
:return:
"""
df = get_obv(df)
df = get_macd(df)
df = get_kdj(df)
df = get_rsi(df)
df = get_boll(df)
df = get_cci(df)
df = get_wr(df)
df = get_sar(df)
df = get_dmi(df)
df = get_roc(df)
df = get_atr(df)
return df


def get_index_data(code, start_date, end_date):
"""
获取指标数据
:param code:
:param start_date:
:param end_date:
:return:
"""
df = get_k_data(code, start_date, end_date)
df = get_all_index(df)
return df


if __name__ == '__main__':
df = get_index_data('000001', '2017-01-01', '2017-12-31')
print(df)

2、k线obv表示什么意思

MAOBV是OBV指标的平滑线,即将OBV进行移动平均计算,也是能量指标的一种。MAOBV线其兵丝为谓席在概地庆土则实就是指OBV指标的30天的平均量的线。另一条线为OBV线,是由近体的收股价减去上个交易日的收盘价形成的,如果这个差是正数的话,就去正量值,如果是负数就取负量值,如果是0的话,就代表脚岁宁笔战OBV线没有波动。

O般触名写BV的英文全称是:On balance volu雨物me,中英名称可翻译为:平衡交易量,是由美国的投资分析家Joe Granvi生集苏争肉啊衣概lle所创。该指标通过统计成交量变动的趋势来推测股价趋势。该指标将“简职待定专演量的平均”概念加以延伸,通过令获准印钢耐术权轴厚现统计成交量的变动情况制成趋势线,然后从成交量的增减以及股价的变动来推测后市走势。OBV以“N”字或“V”字型为波动单位,并且由许许多多“N”字或“V”字型波构成了OBV的曲线图。

OBV指标船境免益染克矛五的计算较为简单,就是以某个交易日(通常是上市首日)为基期,逐日计算股票的累计成交量。把每天的收盘价与前日收盘价进行比较,若股价上涨,则当日OBV值为前一日OBV值与当日成交量括社听的和;若股价下跌,则当日OBV值为前一日OBV值与当日掉委协育示福维稳林室待成交量的差,若股价平盘,则当日OBV值等于前一日OBV值。

其计算公式为:
当日OB块府务笑审房V值=前一日OBV值+当日成交量。
注释:如果当日收盘价高于前日收盘价,当日成交量取正值,反之取负值,平盘取零。
OBV指标不需要设定时间参数。但是它和其他指标一样,可以根据不同的计算周期分为:分时OBV指标、日OBV指标、周OBV指标、月OBV指标和年OBV指标等各种类型。但是由于OBV指标计算额是累积成交量,因此,将察保周期较长的指标,比如周OBV指标和月OBV指标等,在实饭际操作中就失去了研河弦字衡紧水茶送判功能。
k线obv表示什么意思

3、

声明:稳得一批是理财投资基础知识平台! 并不指导专业性投资! 投资有风险,入市需谨慎!