/* copyright (c) 2018 jones http://www.apache.org/licenses/LICENSE-2.0 开源项目 https://github.com/jones2000/HQChart jones_2000@163.com 指标计算方法 2.0 版本使用的算法 */ function HQIndexFormula() { } //指数平均数指标 EMA(close,10) HQIndexFormula.EMA=function(data,dayCount) { var result = []; var offset=0; if (offset>=data.length) return result; //取首个有效数据 for(;offsetdata.length) return result; var max=-10000; for(var i=n,j=0;idata[max]) max = j; } } result[i] = data[max]; } return result; } HQIndexFormula.LLV=function(data,n) { var result = []; if (n>data.length) return result; var min=-10000; for(var i=n;idata[min]?min:i; } else { for(var j=(min=i-n+1)+1;j<=i;++j) { if(data[j]=data.length) return result; result=data.slice(0,data.length-n); for(var i=0;idata2比较 返回 0/1 数组 HQIndexFormula.ARRAY_GT=function(data,data2) { var result=[]; var IsNumber=typeof(data2)=="number"; if (IsNumber) { for(var i in data) { result[i]=(data[i]>data2 ? 1:0); } } else { var count=Math.max(data.length,data2.length) for(var i=0;idata2[i] ? 1:0; else result[i]=null; } } return result; } //数组 data>=data2比较 返回 0/1 数组 HQIndexFormula.ARRAY_GTE=function(data,data2) { var result=[]; var IsNumber=typeof(data2)=="number"; if (IsNumber) { for(var i in data) { result[i]=(data[i]>=data2 ? 1:0); } } else { var count=Math.max(data.length,data2.length) for(var i=0;i=data2[i] ? 1:0; else result[i]=null; } } return result; } //数组 data=data.length) return result; var i=dayCount; for(;i=data.length) return result; var index=0; for(;indexdata2[index]&&data[index-1]