日期:2023-11-26
来源:玫瑰财经网
浏览:次
OBV指标全称为“On-balance Volume”,即“能量潮指标”,是应用在股票市场和其他金融市场中的一种技术分析工具。OBV指标本质上是一个基于成交量和价格的趋势指标。OBV指标由Joe Granville于1963年首次提出,他认为股价与成交量的关系非常重要,OBV指标就是通过将成交量与股价相对的趋势综合起来计算出来的。
下面我们将基于easytrader库,编写一个OBV指标的交易策略。首先,导入easytrader库和Pandas库。
import easytrader as etimport pandas as pd
其次,定义一个函数来计算OBV指标。OBV指标的计算方法如下:
def calculate_obv(df): obv = [0] for i in range(1, len(df.Close)): if df.Close[i] > df.Close[i-1]: obv.append(obv[-1] + df.Volume[i]) elif df.Close[i] < df.Close[i-1]: obv.append(obv[-1] - df.Volume[i]) else: obv.append(obv[-1]) return obv
再次,获取股票数据并计算OBV指标。这里我们以“华泰证券”(601688.SH)为例。
user = et.use('ths')user.prepare('trader.json')df = user.get_k_data('601688', start='2020-01-01', end='2022-12-31', index=False, ktype='D')df['OBV'] = calculate_obv(df)
最后,定义交易逻辑。当股票价格上涨且OBV指标也上涨时,我们认为股票处于上涨趋势,此时我们选择买入股票;当股票价格下跌且OBV指标也下跌时,我们认为股票处于下跌趋势,此时我们选择卖出股票。
balance = user.balance[0]['asset_balance']for i in range(1, len(df)): if df.Close[i] > df.Close[i-1] and df.OBV[i] > df.OBV[i-1]: user.buy('601688', price=df.Close[i], amount=100) balance = user.balance[0]['asset_balance'] elif df.Close[i] < df.Close[i-1] and df.OBV[i] < df.OBV[i-1]: user.sell('601688', price=df.Close[i], amount=100) balance = user.balance[0]['asset_balance']
运行上述代码即可实现基于OBV指标的交易策略。需要注意的是,该策略仅作为参考,并不能保证盈利。在实际操作中,应该配合公司基本面以及市场环境等因素综合考虑。
500吨汽车吊作业性能表(汽车吊支腿反力及抗倾覆验算)
石碣镇汽车站(今天,石碣汽车客运站恢复运营)
招贤汽车站(9月14日起,莒县K601路增开大站快车)
北京福田汽车图片(自重不到两吨,详解福田领航S1小卡)
东风轻型汽车(“东风轻型车”横空出世 未来无人驾驶车将快递送到家门口)
周口市汽车东站(郑阜高速铁路上的主要客运站——周口东站)
Copyright (c) 2022 玫瑰财经网 版权所有
备案号:冀ICP备17019481号
玫瑰财经网发布此信息的目的在于传播更多信息,与本站立场无关。玫瑰财经网不保证该信息(包含但不限于文字、视频、音频、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。
相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。