各股票软件的标准差函数STD是不同的,而布林线的上下轨是以STD为基础计算出来的,所以使用布林线应小心。
以2008/3/28的上证综指为例,利用如下代码:"收盘价3日STD:STD(CLOSE,3);",三日收盘价分别是:3606.86,3580.15,3411.49,在飞狐交易师中显示的3日收盘价标准差是105.928,大智慧新一代中显示的是105.932,通达信中是86.49,同花顺中显示74.90。用EXCEL中的函数STDEV计算的样本方差是105.9316,STDEVP计算总体方差是86.49。
可见大智慧和飞狐使用的算法是样本方差,二者数据基本一致,大智慧的更精确一点,通达信使用的是总体方差,同花顺就不知所谓了。
这里最关键的是要明白总体方差与样本方差的区别。
总体方差(population variance)    :如果这组数据本身便构成一个总体, 均差平方和除以数据中观察值的数目,        称为总体方差。如一组数据X1,X2,..., Xn:其平均值M=(X1+X2+...+Xn)/n ,总体方差为  [ (X1-M)^2+...(Xn-M)^2 ]/n 的平方根。                  
对于无限总体,N为无限大。

样本是由总体中任意抽取而形成的,样本的各种数量关系(包括平均值和方差)都是总体的相关数量的估计值。
数理统计学已经证明了,对于从总体中抽取的样本,用前面的总体方式公式计算出来的方差值来估计总体的方差  总是偏小的。  样本方差有时也称为样本均方(mean square, 简记为MS),是总体方差的无偏估计,计算公式是
  [ (X1-M)^2+...(Xn-M)^2 ]/(n-1)的平方根,也就是说用(n-1)取代n作为分母。
为什么用n-1而不是n呢?
这可以从自由度来解释。这样看,X1,X2,...Xn是n个可以自由变化的样本,互不影响。
而X1-M, X2-M,...Xn-M是否也是n个自由变化的呢?不是……因为这n个统计量受到一个约束条件的影响就是之和等于0。如果我们记 yi=Xi-M,也就是说y1+y2+...yn=0,
这样我们可以任意变动其中n-1值,比如取定了y1,y2,...y(n-1),那么yn就不能任意变化。
样本方差与样本均值,都是随机变量,都有自己的分布,也都可能有自己的期望与方差(由此进一步讨论估计量的无偏性与有效性)。取分母n-1,可使样本方差的期望等于总体方差,即这种定义的样本方差是总体方差的无偏估计。

对于股票,我理解由于是无限总体中取的有限样本,应该使用样本方差而不是总体方差,这样的话大智慧和飞狐中的布林线上下轨比较科学,通达信的会误差几十个点,同花顺就更不用说了。从前面我们可以看出,实际上总体方差=样本方差* a,其中a为[n/(n-1)]的平方根。一般布林线默认值n为20,因此a=1.026。
因此通达信的使用者如果想用更科学的样本方差代替总体方差,应修改布林线公式,在STD函数前加一个系数1.026。如此校正后,通达信的布林线上下轨与大智慧、飞狐的都基本相同。

STD函数的内部计算公式的更多相关文章

  1. C++中的多态与虚函数的内部实现

    1.什么是多态         多态性可以简单概括为“一个接口,多种行为”.         也就是说,向不同的对象发送同一个消息, 不同的对象在接收时会产生不同的行为(即方法).也就是说,每个对象可 ...

  2. matlab std函数 用法及实例

    MATLAB常常用到std函数来进行标准差计算,下面我就通过实例介绍一下 matlab std函数怎么用. 1. std函数是用来计算标准偏差的一个函数,由于其有不同的参数,我们就用下面的例子进行介绍 ...

  3. js 函数闭包内部返回函数体调用方法难点解答

    今天在网上,看到一篇关于js函数难点的文章,js函数的一些难点.在那上面提了一下,关于js函数返回另一个函数的问题,并附上了一道面试题: var add = function(x){ var sum ...

  4. 面试:atoi() 与 itoa()函数的内部实现(转)

    原 面试:atoi() 与 itoa()函数的内部实现 2013年04月19日 12:05:56 王世晖 阅读数:918   #include <stdio.h> #include < ...

  5. std::set 中内部元素有序条件删除的理解

    std::set 中内部元素有序条件删除的理解 1. std::set中的元素是有序排列的 注意:Set集合中的元素通过iterator的引用,但是不能修改. 元素排序: (1)元素中实现比较oper ...

  6. C# 函数方法内部实现循环调用自身

    //C# 函数方法内部实现循环调用自身 void TreeViewFresh(){ Action<TreeNodeCollection, MenuItem> addNode = (Tree ...

  7. 改变JavaScript中函数的内部this指向!

    改变JavaScript中函数的内部this指向! 第一种方法 call call 可以 调用函数 + 改变函数内的this指向! var obj = { name: 'lvhang' } funct ...

  8. C++ 虚函数的内部实现

    C++ 虚函数的内部实现 虚函数看起来是个玄之又玄的东西,但其实特别简单!了解了虚函数的内部实现,关于虚函数的各种问题都不在话下啦! 1. 知识储备 阅读这篇文章,你需要事先了解以下几个概念: 什么是 ...

  9. C#Linq技术中SelectMany(...)函数的内部实现的伪代码

    我们先来假设这种场景: 一个学校中有多个年级,一个年级有多个班级,一个班级里有多个学生.这里我们只需要班级.年级.和学生这三个概念: 让我们先来定义Class类和Student类: // 注意,Cla ...

随机推荐

  1. jsp页面第一句话报这个错Syntax error, insert "}" to complete

    前段时间做了个项目jsp页面出现了Syntax error, insert "}" to complete错误,是说少了个“}”花括号,错误是在第一行,删了第一行还是会有,错误也不 ...

  2. pthread_detach()与pthread_join的区别?

    简单来说: pthread_detach()即主线程与子线程分离,子线程结束后,资源自动回收.pthread_join()即是子线程合入主线程,主线程阻塞等待子线程结束,然后回收子线程资源. [转]在 ...

  3. vins-mono:雅可比矩阵的推导

    imu残差公式 我们计算雅可比采用加扰动形式 以下是位置增量偏差对旋转qbk的雅可比推导 对应的雅可比矩阵的代码 jacobian_pose_i.block<, >(O_P, O_R) = ...

  4. ldd可执行程序时返回not a dynamic executable

    原因:32位程序放在64位机器上或64位程序放在32位程序上了 解决方法:如果是32位程序放在64位系统上则安装yum -y install libstdc++.i686,64位则是yum -y in ...

  5. mysql视图、存储过程等

    视图: 需求: 创建的临时表(select * from tb1)被反复使用,这时可以为该临时表创建视图.视图相当于为某个查询创建了别名. 1.创建视图 create view v1 as selec ...

  6. ps去掉图片上的文字

    使用仿制图章工具去除文字这是比较常用的方法,具体的操作是,选取仿制图章工具,按住Alt键,在无文字区域点击相似的色彩名图案采样,然后在文字区域拖动鼠标复制以覆盖文字.要注意的是,采样点即为复制的起始点 ...

  7. Cross-Origin跨域问题

    为什么会跨域,要先了解浏览器的同源策略SOP(Same Orign Policy)  https://segmentfault.com/a/1190000015597029 同源: 如果两个页面的协议 ...

  8. plsql导入.dmp, .sql步骤

    plsql导入.sql和.dmp文件时,会经常用到,对于初学者来说可能没有那么简单,毕竟oracle数据库比较麻烦. 下面是我自己导入.sql和.dmp文件的步骤. 1.导入.sql文件(sql文件是 ...

  9. JS中使用base64编码上传下载文件

    下载文件:使用FileSaver.js   https://github.com/eligrey/FileSaver.js/blob/master/README.md 手机端UC浏览器无法下载  安卓 ...

  10. Appium IOS 使用多模拟器并发执行测试

    申明一下   转载请注明出处  复制粘贴请滚蛋  !!!!!!!! 最近在是用appium进行app的并发测试,并且Android已经实现在同一台PC机使用多个模拟器并发测试的功能 这里说一句模拟器使 ...