为啥期货的OBV值都是 负数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥期货的OBV值都是 负数?相关的知识,希望对你有一定的参考价值。

期货中obv没用。
  因为期货里面量包括买量和卖量,股票里面只有买量,所以obv相对于股票连锁,期货里面的不是太准确,建议看持仓量分析,这个比较适合期货。
  期货(futures)与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大众产品如棉花、大豆、石油等及金融资产如股票、债券等为标的标准化可交易合约。因此,这个标的物可以是某种商品(例如黄金、原油、农产品),也可以是金融工具。
  交收期货的日子可以是一星期之后,一个月之后,三个月之后,甚至一年之后。
  买卖期货的合同或协议叫做期货合约。
  买卖期货的场所叫做期货市场。
  投资者可以对期货进行投资或投机。大部分人认为对期货的不恰当投机行为,例如无货沽空,可以导致金融市场的动荡,这是不正确的看法,可以同时做空做多,才是健康正常的交易市场。
参考技术A OBV线从正的累积数转为负数时,为下跌趋势,应该卖出持有股票。反之,OBV线从负的累积数转为正数时,应该买进股票。
OBV是指平衡交易量,是由美国的投资分析家Joe
Granville所创。该指标通过统计成交量变动的趋势来推测股价趋势。OBV以“N”字型为波动单位,并且由许许多多“N”型波构成了OBV的曲线图,对一浪高于一浪的“N”型波,称其为“上升潮”,至于上升潮中的下跌回落则称为“跌潮”。
参考技术B (1)OBV线从正的累积数转为负数时,为下跌趋势,应该卖出合约。
(2)能量潮(OBV)一般来说,只是观察OBV的升降并无多大意义,必须配合K线图的走势才有实际的效用。
(3)OBV线最大的用处,在于观察合约价格盘局整理后,何时会脱离盘局以及突破后的未来走势,OBV线变动方向是重要参考指数,其具体的数值并无实际意义。

为啥logloss是负数?

【中文标题】为啥logloss是负数?【英文标题】:Why is the logloss negative?为什么logloss是负数? 【发布时间】:2014-12-04 15:31:56 【问题描述】:

我刚刚将 sklearn 中的 log loss 应用于逻辑回归:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html

我的代码如下所示:

def perform_cv(clf, X, Y, scoring):
    kf = KFold(X.shape[0], n_folds=5, shuffle=True)
    kf_scores = []
    for train, _ in kf:
        X_sub = X[train,:]
        Y_sub = Y[train]
        #Apply 'log_loss' as a loss function
        scores = cross_validation.cross_val_score(clf, X_sub, Y_sub, cv=5, scoring='log_loss')
        kf_scores.append(scores.mean())
    return kf_scores

但是,我想知道为什么产生的对数损失是负数。我希望它们是正数,因为在文档中(请参阅上面的链接)日志损失乘以 -1 以将其转换为正数。

我在这里做错了吗?

【问题讨论】:

【参考方案1】:

可以在here 找到类似的讨论。

这样,更高的分数意味着更好的性能(更少的损失)。

【讨论】:

不,这里不是这样。请考虑给出答案而不是猜测。经过一些测试后,我认为它实际上似乎是 sklearn 框架中的一个错误。【参考方案2】:

我用其他几种方法交叉检查了 sklearn 的实现。这似乎是框架内的一个实际错误。请考虑使用以下代码来计算对数损失:

import scipy as sp

def llfun(act, pred):
    epsilon = 1e-15
    pred = sp.maximum(epsilon, pred)
    pred = sp.minimum(1-epsilon, pred)
    ll = sum(act*sp.log(pred) + sp.subtract(1,act)*sp.log(sp.subtract(1,pred)))
    ll = ll * -1.0/len(act)
    return ll

还要考虑到actpred 的维度必须是Nx1 列向量。

【讨论】:

【参考方案3】:

是的,这应该会发生。这不是其他人所建议的“错误”。实际的日志丢失只是你得到的数字的正数。

SK-Learn 的统一评分 API 始终会最大化分数,因此需要最小化的分数被取反,以便统一评分 API 正常工作。因此,返回的分数在应该最小化的分数时被否定,如果是应该最大化的分数,则保留为正数。

这也在sklearn GridSearchCV with Pipeline 和scikit-learn cross validation, negative values with mean squared error 中有所描述

【讨论】:

感谢您的回答。这是有道理的,但仍然很奇怪。我找不到任何来自 Sklearn 的文件来确认这一点。

以上是关于为啥期货的OBV值都是 负数?的主要内容,如果未能解决你的问题,请参考以下文章

各个版本的期货行情软件,为啥会不一样?请知道的朋友回答。

为啥我的 scala 期货效率不高?

期货程序化交易软件哪个比较好

有关期货公司出入金问题(期货的出入金)

期货K线:期货中最实用直观的分析工具

期货配资公司为何设置平仓线?