OBV
定义
public static IEnumerable<ObvResult> GetObv<TQuote>(this IEnumerable<TQuote> quotes, int? smaPeriods = null) where TQuote : IQuote
描述
OBV(On-Balance Volume) 由 Joe Granville 创立,是一个将成交量与价格变动相结合的动量指标。它通过累积成交量来预测价格趋势的变化。
返回值
| 返回值 |
类型 |
描述 |
| Date |
DateTime |
日期 |
| ObvSma |
double |
OBV的移动平均 |
| Obv |
double |
能量潮值 |
///指标数据
QuoteHistoryDay(10, (dic) =>
{
if (dic.Count > 0)
{
foreach (var item in dic.Keys)
{
///获取指标结果
var resp = dic[item].GetObv(14);
Console.WriteLine(resp.ToJson());
}
}
});
def init(self):
#初始化T+1 取消时间为120秒
self.SetConfig(1,120)
self.art = {}
self.invested = {}
logger.info("进入MyTestAlgorithm init方法:")
#添加单个指数 分钟为Resolution.Minute
self.index300 = self.AddIndex("000300.XSHG", Resolution.Daily).symbol
#添加指数下的所有 分钟为Resolution.Minute
stock_list=self.FillStocks(["000001.XSHE","000004.XSHE"],"",Resolution.Daily)
self.set_benchmark(self.index300)
# 创建OBV指标
# 方法A:直接实例化
from QuantConnect.Indicators import OnBalanceVolume
self.obv = OnBalanceVolume()
# 将指标注册到数据流,使其自动更新
self.RegisterIndicator(stock_list[0].symbol, self.obv, Resolution.Daily)
#数据来了触发事件
def ondata(self,slice):
logger.info(fr"Symbol:{self.Time} ")
# 获取当前值
#检查指标是否准备就绪
if not self.obv.IsReady:
return
# 获取当前OBV值
current_obv = self.obv.Current.Value
logger.info(fr"current_obv:{current_obv} ")