UNPKG

@3r/tool

Version:

🏃‍包含一些常用方法例如对象深克隆、递归调用、一一对比/数组交集、并集、差集/二维向量点乘、叉乘/股票KDJ、MACD、RSI、BOLL/验证为空、车牌号、邮箱、身份证、统一社会信用代码、手机号、版本对比/转换日期、星座、身份证解析、字节/随机颜色、手机号、身份证号码、统一社会信用代码...持续更新整合

1 lines 1.82 kB
class t{static ema(t,s,e){return(t*(e-1)+2*s)/(e+1)}static dea(t,s,e){return(t*(e-1)+2*s)/(e+1)}static sma(t,s,e,a){return(e*t+(s-e)*a)/s}static kdj(e,t=this.KDJ_OPTIONS){var a,{N:r,M1:h,M2:i}=t;let l,m,O,N=50,o=50;var c=[];for(let s=0;s<e.length;s++){a=e[s].close,l=1/0,m=-1/0;for(let t=s<r?0:s-r+1;t<=s;t++)l=l>e[t].low?e[t].low:l,m=m<e[t].high?e[t].high:m;O=(O=(a-l)/(m-l)*100)||0,a=3*(o=s<r?((N=(O+N*s)/(s+1))+o*s)/(s+1):((N=(O+(h-1)*N)/h)+(i-1)*o)/i)-2*N,c.push({time:e[s].time,k:N,d:o,j:a})}return c}static macd(s,t=this.MACD_OPTIONS){var{SHORT:e,LONG:a,MID:r}=t,h=[],i=[],l=[];let m=0,O=0,N=0;var o=[];for(let t=0;t<s.length;t++){var c=s[t].close;0===t?(h.push(c),i.push(c)):(h.push(this.ema(h[t-1],c,e)),i.push(this.ema(i[t-1],c,a)),m=h[t]-i[t],O=this.dea(l[t-1],m,r),N=2*(m-O)),l.push(O),o.push({time:s[t].time,macd:N,diff:m,dea:O})}return o}static rsi(s,t=this.RSI_OPTIONS){var e,a,{N1:r,N2:h,N3:i}=t;let l,m=0,O=0,N=0,o=0,c=0,u=0;var M=[];for(let t=0;t<s.length;t++){var p=s[t].close;0===t?(l=p,m=N=c=0,O=o=u=0):(l=s[t-1].close,m=this.sma(Math.max(p-l,0),r,1,m),O=this.sma(Math.abs(p-l),r,1,O),N=this.sma(Math.max(p-l,0),h,1,N),o=this.sma(Math.abs(p-l),h,1,o),c=this.sma(Math.max(p-l,0),i,1,c),u=this.sma(Math.abs(p-l),i,1,u)),p=m/O*100||0,e=N/o*100||0,a=c/u*100||0,M.push({time:s[t].time,["rsi"+r]:p,["rsi"+h]:e,["rsi"+i]:a})}return M}static boll(e,t=this.BOLL_OPTIONS){var{N:a,P:r}=t;let h,i,l;var m,O=[];let N,o=0;for(let s=0;s<e.length;s++){var c=e[s].close;if(o+=c,s>=a-1){h=o/a,N=0;for(let t=s-(a-1);t<=s;t++)m=e[t].close-h,N+=m*m;N=Math.sqrt(N/a),i=h+r*N,l=h-r*N,o-=e[s-(a-1)].close}else h=i=l=0;O.push({time:e[s].time,mid:h,upper:i,lower:l})}return O}}t.KDJ_OPTIONS={N:9,M1:3,M2:3},t.MACD_OPTIONS={SHORT:12,LONG:26,MID:9},t.RSI_OPTIONS={N1:6,N2:12,N3:24},t.BOLL_OPTIONS={N:20,P:2};export{t as Market};