hqchart 1.1.12687 → 1.1.12706

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/lib/umychart.vue.js +94 -50
  2. package/package.json +15 -47
  3. package/src/jscommon/umychart.resource/js/codemirror/javascript.js +1 -1
  4. package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +409 -115
  5. package/src/jscommon/umychart.vue/umychart.vue.js +409 -115
  6. package/.babelrc +0 -6
  7. package/.vscode/settings.json +0 -4
  8. package/Makefile +0 -9
  9. package/README.md +0 -452
  10. package/index.js +0 -17
  11. package/postcss.config.js +0 -5
  12. package/src/index.html +0 -18
  13. package/src/jscommon/backup/announcement.png +0 -0
  14. package/src/jscommon/backup/announcement2.png +0 -0
  15. package/src/jscommon/backup/blocktrading.png +0 -0
  16. package/src/jscommon/backup/investor.png +0 -0
  17. package/src/jscommon/backup/pforecast.png +0 -0
  18. package/src/jscommon/backup/research.png +0 -0
  19. package/src/jscommon/backup/tradedetail.png +0 -0
  20. package/src/jscommon/backup/umychart - backup.js +0 -17631
  21. package/src/jscommon/backup/umychart.macro.js +0 -4
  22. package/src/jscommon/backup/umychart.macro.vue.js +0 -3
  23. package/src/jscommon/commonindextree.json +0 -92
  24. package/src/jscommon/index.html +0 -13
  25. package/src/jscommon/jschinamapdata.js +0 -3
  26. package/src/jscommon/umychart.NetworkFilterTest.js +0 -48803
  27. package/src/jscommon/umychart.aliYunnetwork.js +0 -47
  28. package/src/jscommon/umychart.cninfo.components/readme.txt +0 -1
  29. package/src/jscommon/umychart.complier.js +0 -25291
  30. package/src/jscommon/umychart.complier.node/umychart.complier.controller.js +0 -559
  31. package/src/jscommon/umychart.complier.node/umychart.complier.node.js +0 -7043
  32. package/src/jscommon/umychart.complier.node/umychart.data.node.js +0 -816
  33. package/src/jscommon/umychart.console.js +0 -12
  34. package/src/jscommon/umychart.deal.js +0 -1452
  35. package/src/jscommon/umychart.dragdiv.js +0 -48
  36. package/src/jscommon/umychart.index.data.js +0 -4132
  37. package/src/jscommon/umychart.js +0 -90257
  38. package/src/jscommon/umychart.keyboard.js +0 -1659
  39. package/src/jscommon/umychart.listctrl.js +0 -690
  40. package/src/jscommon/umychart.mind.js +0 -2203
  41. package/src/jscommon/umychart.network.js +0 -44
  42. package/src/jscommon/umychart.news.js +0 -823
  43. package/src/jscommon/umychart.node.build/buildall.bat +0 -1
  44. package/src/jscommon/umychart.node.build/umychart.node.bat +0 -1
  45. package/src/jscommon/umychart.node.build/umychart.node.export.js +0 -40
  46. package/src/jscommon/umychart.regressiontest.js +0 -400
  47. package/src/jscommon/umychart.report.js +0 -5803
  48. package/src/jscommon/umychart.scrollbar.js +0 -1345
  49. package/src/jscommon/umychart.stock.js +0 -4218
  50. package/src/jscommon/umychart.style.js +0 -618
  51. package/src/jscommon/umychart.testdata.js +0 -150
  52. package/src/jscommon/umychart.uniapp.build/buildall.bat +0 -1
  53. package/src/jscommon/umychart.uniapp.build/umychart.bat +0 -1
  54. package/src/jscommon/umychart.uniapp.build/umychart.export.js +0 -70
  55. package/src/jscommon/umychart.user.js +0 -137
  56. package/src/jscommon/umychart.version.js +0 -30
  57. package/src/jscommon/umychart.vue/umychart.aliYunnetwork.vue.js +0 -56
  58. package/src/jscommon/umychart.vue.build/buildall.bat +0 -4
  59. package/src/jscommon/umychart.vue.build/copy_codemirror.bat +0 -2
  60. package/src/jscommon/umychart.vue.build/umychart.aliYunnetwork.vue.export.js +0 -9
  61. package/src/jscommon/umychart.vue.build/umychart.dragdiv.bat +0 -1
  62. package/src/jscommon/umychart.vue.build/umychart.dragdiv.export.js +0 -6
  63. package/src/jscommon/umychart.vue.build/umychart.index.data.bat +0 -1
  64. package/src/jscommon/umychart.vue.build/umychart.index.data.export.js +0 -4
  65. package/src/jscommon/umychart.vue.build/umychart.listctrl.vue.export.js +0 -15
  66. package/src/jscommon/umychart.vue.build/umychart.regressiontest.vue.export.js +0 -7
  67. package/src/jscommon/umychart.vue.build/umychart.regressiontest.wechat.export.js +0 -12
  68. package/src/jscommon/umychart.vue.build/umychart.stock.bat +0 -1
  69. package/src/jscommon/umychart.vue.build/umychart.stock.vue.export.js +0 -16
  70. package/src/jscommon/umychart.vue.build/umychart.testdata.bat +0 -3
  71. package/src/jscommon/umychart.vue.build/umychart.testdata.vue.export.js +0 -7
  72. package/src/jscommon/umychart.vue.build/umychart.vue.bat +0 -8
  73. package/src/jscommon/umychart.vue.build/umychart.vue.export.js +0 -112
  74. package/src/jscommon/umychart.vue.components/empyt.vue +0 -51
  75. package/src/jscommon/umychart.vue.components/historydayline.vue +0 -240
  76. package/src/jscommon/umychart.vue.components/jsloader.adddialog.vue +0 -315
  77. package/src/jscommon/umychart.vue.components/jsloader.vue +0 -93
  78. package/src/jscommon/umychart.vue.components/jsvuecontainer.vue +0 -160
  79. package/src/jscommon/umychart.vue.components/jsvuecontainer2.0.vue +0 -391
  80. package/src/jscommon/umychart.vue.components/login.vue +0 -178
  81. package/src/jscommon/umychart.vue.components/queryContent.vue +0 -750
  82. package/src/jscommon/umychart.vue.components/readme.txt +0 -8
  83. package/src/jscommon/umychart.vue.components/searchsymbol.vue +0 -299
  84. package/src/jscommon/umychart.vue.components/simulatetrade.vue +0 -1471
  85. package/src/jscommon/umychart.vue.components/stockchart.vue +0 -343
  86. package/src/jscommon/umychart.vue.components/stockchartV2.vue +0 -195
  87. package/src/jscommon/umychart.vue.components/stockdeal.vue +0 -358
  88. package/src/jscommon/umychart.vue.components/stockdealcount.vue +0 -262
  89. package/src/jscommon/umychart.vue.components/stockdeallastest.vue +0 -316
  90. package/src/jscommon/umychart.vue.components/stockdrawtool.vue +0 -343
  91. package/src/jscommon/umychart.vue.components/stockfull.vue +0 -355
  92. package/src/jscommon/umychart.vue.components/stockinfo.demo.vue +0 -153
  93. package/src/jscommon/umychart.vue.components/stockinfo.vue +0 -685
  94. package/src/jscommon/umychart.vue.components/stockkline.demo.vue +0 -1904
  95. package/src/jscommon/umychart.vue.components/stockmultiorder.vue +0 -174
  96. package/src/jscommon/umychart.vue.components/stockmultiperiod.vue +0 -222
  97. package/src/jscommon/umychart.vue.components/stockorder.vue +0 -320
  98. package/src/jscommon/umychart.vue.components/stocktradeinfo.demo.vue +0 -250
  99. package/src/jscommon/umychart.vue.components/stocktradeinfo.vue +0 -1907
  100. package/src/jscommon/umychart.vue.components/test.vue +0 -0
  101. package/src/jscommon/umychart.wechat/getDate.wechat.js +0 -91
  102. package/src/jscommon/umychart.wechat/lighter.news.wechat.js +0 -262
  103. package/src/jscommon/umychart.wechat/readme.txt +0 -3
  104. package/src/jscommon/umychart.wechat/umychart.analyze.wechat.js +0 -551
  105. package/src/jscommon/umychart.wechat/umychart.apidraw.wechat.js +0 -126
  106. package/src/jscommon/umychart.wechat/umychart.bigV.wechat.js +0 -2510
  107. package/src/jscommon/umychart.wechat/umychart.chartframe.wechat.js +0 -2931
  108. package/src/jscommon/umychart.wechat/umychart.chartpaint.wechat.js +0 -9752
  109. package/src/jscommon/umychart.wechat/umychart.charttitle.wechat.js +0 -2023
  110. package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +0 -14726
  111. package/src/jscommon/umychart.wechat/umychart.console.wechat.js +0 -8
  112. package/src/jscommon/umychart.wechat/umychart.coordinatedata.wechat.js +0 -3654
  113. package/src/jscommon/umychart.wechat/umychart.data.wechat.js +0 -2243
  114. package/src/jscommon/umychart.wechat/umychart.element.wechart.js +0 -132
  115. package/src/jscommon/umychart.wechat/umychart.explainer.wechat.js +0 -1077
  116. package/src/jscommon/umychart.wechat/umychart.extendchart.wechat.js +0 -1140
  117. package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +0 -2247
  118. package/src/jscommon/umychart.wechat/umychart.hqIndexformula.wechat.js +0 -941
  119. package/src/jscommon/umychart.wechat/umychart.index.data.wechat.js +0 -3628
  120. package/src/jscommon/umychart.wechat/umychart.index.wechat.js +0 -4074
  121. package/src/jscommon/umychart.wechat/umychart.klineinfo.wechat.js +0 -836
  122. package/src/jscommon/umychart.wechat/umychart.markethot.js +0 -50
  123. package/src/jscommon/umychart.wechat/umychart.network.wechart.js +0 -62
  124. package/src/jscommon/umychart.wechat/umychart.news.wechat.js +0 -3568
  125. package/src/jscommon/umychart.wechat/umychart.regressiontest.wechat.js +0 -412
  126. package/src/jscommon/umychart.wechat/umychart.report.wechat.js +0 -3983
  127. package/src/jscommon/umychart.wechat/umychart.resource.wechat.js +0 -919
  128. package/src/jscommon/umychart.wechat/umychart.shareimage.wechat.js +0 -681
  129. package/src/jscommon/umychart.wechat/umychart.simulatetrade.wechat.js +0 -238
  130. package/src/jscommon/umychart.wechat/umychart.stock.wechat.js +0 -4035
  131. package/src/jscommon/umychart.wechat/umychart.style.wechat.js +0 -419
  132. package/src/jscommon/umychart.wechat/umychart.uniapp.canvas.helper.js +0 -99
  133. package/src/jscommon/umychart.wechat/umychart.user.wechat.js +0 -588
  134. package/src/jscommon/umychart.wechat/umychart.userlog.wechat.js +0 -240
  135. package/src/jscommon/umychart.wechat/umychart.vedio.wechat.js +0 -112
  136. package/src/jscommon/umychart.wechat/umychart.version.wechat.js +0 -36
  137. package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +0 -12051
  138. package/src/jscommon/umychart.wechat/umychart.wechat.js +0 -15460
  139. package/src/jscommon/umychart.worker.js +0 -114
  140. package/src/jscommon/umychart.ws.stock.js +0 -110
  141. package/src/jscommon/umychart_python/.vscode/launch.json +0 -15
  142. package/src/jscommon/umychart_python/__init__.py +0 -4
  143. package/src/jscommon/umychart_python/build.cmd +0 -2
  144. package/src/jscommon/umychart_python/setup.py +0 -25
  145. package/src/jscommon/umychart_python/umychart_cache_testcase.py +0 -165
  146. package/src/jscommon/umychart_python/umychart_complier_data.py +0 -781
  147. package/src/jscommon/umychart_python/umychart_complier_help.py +0 -175
  148. package/src/jscommon/umychart_python/umychart_complier_job.py +0 -193
  149. package/src/jscommon/umychart_python/umychart_complier_jsalgorithm.py +0 -4144
  150. package/src/jscommon/umychart_python/umychart_complier_jscomplier.py +0 -177
  151. package/src/jscommon/umychart_python/umychart_complier_jsexecute.py +0 -517
  152. package/src/jscommon/umychart_python/umychart_complier_jsparser.py +0 -864
  153. package/src/jscommon/umychart_python/umychart_complier_jssymboldata.py +0 -1238
  154. package/src/jscommon/umychart_python/umychart_complier_jssymboldata_cache.py +0 -146
  155. package/src/jscommon/umychart_python/umychart_complier_jssymboldata_json.py +0 -106
  156. package/src/jscommon/umychart_python/umychart_complier_pandas_help.py +0 -80
  157. package/src/jscommon/umychart_python/umychart_complier_scanner.py +0 -554
  158. package/src/jscommon/umychart_python/umychart_complier_testcase.py +0 -362
  159. package/src/jscommon/umychart_python/umychart_complier_util.py +0 -30
  160. package/src/jscommon/umychart_python/umychart_webtemplate.py +0 -131
  161. package/src/jscommon/umychart_python/updatehqchartweb.bat +0 -5
  162. package/src/jscommon/vendor.js +0 -2
  163. package/src/pages/block.list.demo.page/App.vue +0 -117
  164. package/src/pages/block.list.demo.page/index.js +0 -12
  165. package/src/pages/brushTool.demo.page/App.vue +0 -19
  166. package/src/pages/brushTool.demo.page/index.js +0 -12
  167. package/src/pages/container.demo.page/App.vue +0 -118
  168. package/src/pages/container.demo.page/index.js +0 -18
  169. package/src/pages/dataZoom.demo.page/App.vue +0 -265
  170. package/src/pages/dataZoom.demo.page/components/dataZoom.vue +0 -303
  171. package/src/pages/dataZoom.demo.page/index.js +0 -12
  172. package/src/pages/historydayline.demo.page/App.vue +0 -57
  173. package/src/pages/historydayline.demo.page/index.js +0 -12
  174. package/src/pages/hq.demo.page/App.vue +0 -163
  175. package/src/pages/hq.demo.page/index.js +0 -12
  176. package/src/pages/hqchart.black/App.vue +0 -90
  177. package/src/pages/hqchart.black/components/searchsymbol.vue +0 -299
  178. package/src/pages/hqchart.black/components/stockdrawtool.vue +0 -300
  179. package/src/pages/hqchart.black/components/stockfull.vue +0 -313
  180. package/src/pages/hqchart.black/components/stockinfo.vue +0 -428
  181. package/src/pages/hqchart.black/components/stockkline.demo.vue +0 -1652
  182. package/src/pages/hqchart.black/components/stocktradeinfo.vue +0 -1337
  183. package/src/pages/hqchart.black/index.js +0 -30
  184. package/src/pages/hqchart.black/router/candlestickChart.vue +0 -108
  185. package/src/pages/hqchart.black/router/pricePointsTable.vue +0 -294
  186. package/src/pages/hqchart.black/router/stockDeallas.vue +0 -417
  187. package/src/pages/hqchart.black/router/timeShareChart.vue +0 -108
  188. package/src/pages/hqchart.page/App.vue +0 -101
  189. package/src/pages/hqchart.page/index.js +0 -18
  190. package/src/pages/index/App.vue +0 -1408
  191. package/src/pages/index/index.js +0 -7
  192. package/src/pages/indexHq/App.vue +0 -110
  193. package/src/pages/indexHq/index.js +0 -18
  194. package/src/pages/login.demo.page/App.vue +0 -22
  195. package/src/pages/login.demo.page/index.js +0 -12
  196. package/src/pages/queryContent.demo.page/App.vue +0 -29
  197. package/src/pages/queryContent.demo.page/index.js +0 -18
  198. package/src/pages/ranking.black/App.vue +0 -199
  199. package/src/pages/ranking.black/index.js +0 -18
  200. package/src/pages/search.demo.page/App.vue +0 -28
  201. package/src/pages/search.demo.page/index.js +0 -12
  202. package/src/pages/simulatetrade.demo.page/app.vue +0 -121
  203. package/src/pages/simulatetrade.demo.page/index.js +0 -17
  204. package/src/pages/stockdeal.demo.page/App.vue +0 -63
  205. package/src/pages/stockdeal.demo.page/index.js +0 -19
  206. package/src/pages/stockdealcount.demo.page/App.vue +0 -37
  207. package/src/pages/stockdealcount.demo.page/index.js +0 -12
  208. package/src/pages/stockdeallastest.demo.page/App.vue +0 -74
  209. package/src/pages/stockdeallastest.demo.page/index.js +0 -18
  210. package/src/pages/stockinfo.demo.page/App.vue +0 -92
  211. package/src/pages/stockinfo.demo.page/index.html +0 -13
  212. package/src/pages/stockinfo.demo.page/index.js +0 -19
  213. package/src/pages/stockkline.demo.page/App.vue +0 -55
  214. package/src/pages/stockkline.demo.page/index.js +0 -18
  215. package/src/pages/stockmultiorder.demo.page/App.vue +0 -149
  216. package/src/pages/stockmultiorder.demo.page/index.js +0 -18
  217. package/src/pages/stockmultiperiod.demo.page/App.vue +0 -87
  218. package/src/pages/stockmultiperiod.demo.page/index.js +0 -18
  219. package/src/pages/stockorder.demo.page/App.vue +0 -69
  220. package/src/pages/stockorder.demo.page/index.js +0 -18
  221. package/src/pages/test/App.vue +0 -22
  222. package/src/pages/test/index.js +0 -7
  223. package/src/pages/tradeinfopage/app.vue +0 -40
  224. package/src/pages/tradeinfopage/index.js +0 -7
  225. package/src/pages/tradeinfopage/tradeinfo.html +0 -12
  226. package/src/utils/urlObj.js +0 -81
  227. package/src/vendor.js +0 -2
  228. package/webpack.config.js +0 -104
@@ -1,941 +0,0 @@
1
- /*
2
- copyright (c) 2018 jones
3
-
4
- http://www.apache.org/licenses/LICENSE-2.0
5
-
6
- 开源项目 https://github.com/jones2000/HQChart
7
-
8
- jones_2000@163.com
9
-
10
- 指标计算方法 2.0 版本使用的算法
11
- */
12
-
13
- function HQIndexFormula()
14
- {
15
-
16
- }
17
-
18
- //指数平均数指标 EMA(close,10)
19
- HQIndexFormula.EMA=function(data,dayCount)
20
- {
21
- var result = [];
22
-
23
- var offset=0;
24
- if (offset>=data.length) return result;
25
-
26
- //取首个有效数据
27
- for(;offset<data.length;++offset)
28
- {
29
- if (data[offset]!=null && !isNaN(data[offset]))
30
- break;
31
- }
32
-
33
- var p1Index=offset;
34
- var p2Index=offset+1;
35
-
36
- result[p1Index]=data[p1Index];
37
- for(var i=offset+1;i<data.length;++i,++p1Index,++p2Index)
38
- {
39
- result[p2Index]=((2*data[p2Index]+(dayCount-1)*result[p1Index]))/(dayCount+1);
40
- }
41
-
42
- return result;
43
- }
44
-
45
- HQIndexFormula.SMA=function(data,n,m)
46
- {
47
- var result = [];
48
-
49
- var i=0;
50
- var lastData=null;
51
- for(;i<data.length; ++i)
52
- {
53
- if (data[i]==null || isNaN(data[i])) continue;
54
- lastData=data[i];
55
- result[i]=lastData; //第一天的数据
56
- break;
57
- }
58
-
59
- for(++i;i<data.length;++i)
60
- {
61
- result[i]=(m*data[i]+(n-m)*lastData)/n;
62
- lastData=result[i];
63
- }
64
-
65
- return result;
66
- }
67
-
68
-
69
- /*
70
- 求动态移动平均.
71
- 用法: DMA(X,A),求X的动态移动平均.
72
- 算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1.
73
- 例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价
74
- */
75
- HQIndexFormula.DMA=function(data,data2)
76
- {
77
- var result = [];
78
- if (data.length<0 || data.length!=data2.length) return result;
79
-
80
- var index=0;
81
- for(;index<data.length;++index)
82
- {
83
- if (data[index]!=null && !isNaN(data[index]) && data2[index]!=null && !isNaN(data2[index]))
84
- {
85
- result[index]=data[index];
86
- break;
87
- }
88
- }
89
-
90
- for(index=index+1;index<data.length;++index)
91
- {
92
- if (data[index]==null || data2[index]==null)
93
- result[index]=null;
94
- else
95
- {
96
- if (data[index]<1)
97
- result[index]=(data2[index]*data[index])+(1-data2[index])*result[index-1];
98
- else
99
- result[index]= data[index];
100
- }
101
- }
102
-
103
- return result;
104
- }
105
-
106
-
107
- HQIndexFormula.HHV=function(data,n)
108
- {
109
- var result = [];
110
- if (n>data.length) return result;
111
-
112
- var max=-10000;
113
- for(var i=n,j=0;i<data.length;++i,++j)
114
- {
115
- if(i<n+max)
116
- {
117
- max=data[i]<data[max]?max:i;
118
- }
119
- else
120
- {
121
- for(j=(max=i-n+1)+1;j<=i;++j)
122
- {
123
- if(data[j]>data[max])
124
- max = j;
125
- }
126
- }
127
-
128
- result[i] = data[max];
129
- }
130
-
131
- return result;
132
- }
133
-
134
- HQIndexFormula.LLV=function(data,n)
135
- {
136
- var result = [];
137
- if (n>data.length) return result;
138
-
139
- var min=-10000;
140
-
141
- for(var i=n;i<data.length;++i,++j)
142
- {
143
- if(i<n+min)
144
- {
145
- min=data[i]>data[min]?min:i;
146
- }
147
- else
148
- {
149
- for(var j=(min=i-n+1)+1;j<=i;++j)
150
- {
151
- if(data[j]<data[min])
152
- min = j;
153
- }
154
- }
155
- result[i] = data[min];
156
- }
157
-
158
- return result;
159
- }
160
-
161
- HQIndexFormula.REF=function(data,n)
162
- {
163
- var result=[];
164
-
165
- if (data.length<=0) return result;
166
- if (n>=data.length) return result;
167
-
168
- result=data.slice(0,data.length-n);
169
-
170
- for(var i=0;i<n;++i)
171
- result.unshift(null);
172
-
173
- return result;
174
- }
175
-
176
- HQIndexFormula.REFDATE=function(data,n)
177
- {
178
- var result=[];
179
-
180
- if (data.length<=0) return result;
181
-
182
- //暂时写死取最后一个
183
- n=data.length-1;
184
- for(var i in data)
185
- {
186
- result[i]=data[n];
187
- }
188
-
189
- return result;
190
- }
191
-
192
-
193
-
194
- HQIndexFormula.SUM=function(data,n)
195
- {
196
- var result=[];
197
-
198
- if (n==0)
199
- {
200
- result[0]=data[0];
201
-
202
- for (var i=1; i<data.length; ++i)
203
- {
204
- result[i] = result[i-1]+data[i];
205
- }
206
- }
207
- else
208
- {
209
-
210
- for(var i=n-1,j=0;i<data.length;++i,++j)
211
- {
212
- for(var k=0;k<n;++k)
213
- {
214
- if (k==0) result[i]=data[k+j];
215
- else result[i]+=data[k+j];
216
- }
217
- }
218
- }
219
-
220
- return result;
221
- }
222
-
223
- //两个数组相减
224
- HQIndexFormula.ARRAY_SUBTRACT=function(data,data2)
225
- {
226
- var result=[];
227
- var IsNumber=typeof(data2)=="number";
228
- if (IsNumber)
229
- {
230
- for(var i in data)
231
- {
232
- if (data[i]==null || isNaN(data[i]))
233
- result[i]=null;
234
- else
235
- result[i]=data[i]-data2;
236
- }
237
- }
238
- else
239
- {
240
- var count=Math.max(data.length,data2.length)
241
-
242
- for(var i=0;i<count;++i)
243
- {
244
- if (i<data.length && i<data2.length)
245
- {
246
- if (data[i]==null || data2[i]==null) result[i]=null;
247
- else result[i]=data[i]-data2[i];
248
- }
249
- else
250
- result[i]=null;
251
- }
252
- }
253
-
254
- return result;
255
- }
256
-
257
- //数组 data>data2比较 返回 0/1 数组
258
- HQIndexFormula.ARRAY_GT=function(data,data2)
259
- {
260
- var result=[];
261
- var IsNumber=typeof(data2)=="number";
262
- if (IsNumber)
263
- {
264
- for(var i in data)
265
- {
266
- result[i]=(data[i]>data2 ? 1:0);
267
- }
268
- }
269
- else
270
- {
271
- var count=Math.max(data.length,data2.length)
272
-
273
- for(var i=0;i<count;++i)
274
- {
275
- if (i<data.length && i<data2.length)
276
- result[i]=data[i]>data2[i] ? 1:0;
277
- else
278
- result[i]=null;
279
- }
280
- }
281
-
282
- return result;
283
- }
284
-
285
- //数组 data>=data2比较 返回 0/1 数组
286
- HQIndexFormula.ARRAY_GTE=function(data,data2)
287
- {
288
- var result=[];
289
- var IsNumber=typeof(data2)=="number";
290
- if (IsNumber)
291
- {
292
- for(var i in data)
293
- {
294
- result[i]=(data[i]>=data2 ? 1:0);
295
- }
296
- }
297
- else
298
- {
299
- var count=Math.max(data.length,data2.length)
300
-
301
- for(var i=0;i<count;++i)
302
- {
303
- if (i<data.length && i<data2.length)
304
- result[i]=data[i]>=data2[i] ? 1:0;
305
- else
306
- result[i]=null;
307
- }
308
- }
309
-
310
- return result;
311
- }
312
-
313
- //数组 data<data2比较 返回 0/1 数组
314
- HQIndexFormula.ARRAY_LT=function(data,data2)
315
- {
316
- var result=[];
317
- var IsNumber=typeof(data2)=="number";
318
- if (IsNumber)
319
- {
320
- for(var i in data)
321
- {
322
- result[i]=(data[i]<data2 ? 1:0);
323
- }
324
- }
325
- else
326
- {
327
- var count=Math.max(data.length,data2.length)
328
-
329
- for(var i=0;i<count;++i)
330
- {
331
- if (i<data.length && i<data2.length)
332
- result[i]=data[i]<data2[i] ? 1:0;
333
- else
334
- result[i]=null;
335
- }
336
- }
337
-
338
- return result;
339
- }
340
-
341
- //数组 data<=data2比较 返回 0/1 数组
342
- HQIndexFormula.ARRAY_LTE=function(data,data2)
343
- {
344
- var result=[];
345
- var IsNumber=typeof(data2)=="number";
346
- if (IsNumber)
347
- {
348
- for(var i in data)
349
- {
350
- result[i]=(data[i]<=data2 ? 1:0);
351
- }
352
- }
353
- else
354
- {
355
- var count=Math.max(data.length,data2.length)
356
-
357
- for(var i=0;i<count;++i)
358
- {
359
- if (i<data.length && i<data2.length)
360
- result[i]=data[i]<=data2[i] ? 1:0;
361
- else
362
- result[i]=null;
363
- }
364
- }
365
-
366
- return result;
367
- }
368
-
369
- //数组 data==data2比较 返回 0/1 数组
370
- HQIndexFormula.ARRAY_EQ=function(data,data2)
371
- {
372
- var result=[];
373
- var IsNumber=typeof(data2)=="number";
374
- if (IsNumber)
375
- {
376
- for(var i in data)
377
- {
378
- result[i]=(data[i]==data2 ? 1:0);
379
- }
380
- }
381
- else
382
- {
383
- var count=Math.max(data.length,data2.length)
384
-
385
- for(var i=0;i<count;++i)
386
- {
387
- if (i<data.length && i<data2.length)
388
- result[i]=(data[i]==data2[i] ? 1:0);
389
- else
390
- result[i]=null;
391
- }
392
- }
393
-
394
- return result;
395
- }
396
-
397
- HQIndexFormula.ARRAY_IF=function(data,trueData,falseData)
398
- {
399
- var result=[];
400
- var IsNumber=[typeof(trueData)=="number",typeof(falseData)=="number"];
401
- for(var i in data)
402
- {
403
- if (data[i])
404
- {
405
- if (IsNumber[0]) result[i]=trueData;
406
- else result[i]=trueData[i];
407
- }
408
- else
409
- {
410
- if (IsNumber[1]) result[i]=falseData;
411
- else result[i]=falseData[i];
412
- }
413
- }
414
-
415
- return result;
416
- }
417
-
418
- HQIndexFormula.ARRAY_AND=function(data,data2)
419
- {
420
- var result=[];
421
- var IsNumber=typeof(trueData)=="number";
422
- if (IsNumber)
423
- {
424
- for(var i in data)
425
- {
426
- result[i]=(data[i] && data2? 1:0);
427
- }
428
- }
429
- else
430
- {
431
- var count=Math.max(data.length,data2.length)
432
-
433
- for(var i=0;i<count;++i)
434
- {
435
- if (i<data.length && i<data2.length)
436
- result[i]=(data[i] && data2[i] ? 1:0);
437
- else
438
- result[i]=0;
439
- }
440
- }
441
-
442
- return result;
443
- }
444
- HQIndexFormula.ARRAY_OR=function(data, data2)
445
- {
446
- var result=[];
447
- var IsNumber=typeof(data2)=="number";
448
- if (IsNumber)
449
- {
450
- for(var i in data)
451
- {
452
- result[i]=(data[i] || data2? 1:0);
453
- }
454
- }
455
- else
456
- {
457
- var count=Math.max(data.length,data2.length)
458
-
459
- for(var i=0;i<count;++i)
460
- {
461
- if (i < data.length && data[i])
462
- {
463
- result[i] = 1;
464
- continue;
465
- }
466
- if (i < data2.length && data2[i])
467
- {
468
- result[i] = 1;
469
- continue;
470
- }
471
- result[i] = 0;
472
- }
473
- }
474
-
475
- return result;
476
- }
477
- //数组相乘
478
- //支持多个参数累乘 如:HQIndexFormula.ARRAY_MULTIPLY(data,data2,data3,data3) =data*data2*data3*data4
479
- HQIndexFormula.ARRAY_MULTIPLY=function(data,data2)
480
- {
481
- if (arguments.length==2)
482
- {
483
- var result=[];
484
- var IsNumber=typeof(data2)=="number";
485
- if (IsNumber)
486
- {
487
- for(var i in data)
488
- {
489
- if (data[i]==null || isNaN(data[i]))
490
- result[i]=null;
491
- else
492
- result[i]=data[i]*data2;
493
- }
494
- }
495
- else
496
- {
497
- var count=Math.max(data.length,data2.length);
498
- for(var i=0;i<count;++i)
499
- {
500
- if (i<data.length && i<data2.length)
501
- result[i]=data[i]*data2[i];
502
- else
503
- result[i]=null;
504
- }
505
- }
506
-
507
- return result;
508
- }
509
-
510
- var result=HQIndexFormula.ARRAY_MULTIPLY(arguments[0],arguments[1]);
511
-
512
- for(var i=2;i<arguments.length;++i)
513
- {
514
- result=HQIndexFormula.ARRAY_MULTIPLY(result,arguments[i]);
515
- }
516
-
517
- return result;
518
- }
519
-
520
- //数组相除
521
- HQIndexFormula.ARRAY_DIVIDE=function(data,data2)
522
- {
523
- var result=[];
524
- var IsNumber=typeof(data2)=="number";
525
- if (IsNumber)
526
- {
527
- for(var i in data)
528
- {
529
- result[i]=data[i]/data2;
530
- }
531
- }
532
- else
533
- {
534
- var count=Math.max(data.length,data2.length);
535
- for(var i=0;i<count;++i)
536
- {
537
- if (i<data.length && i<data2.length)
538
- {
539
- if(data[i]==null || data2[i]==null || isNaN(data[i]) || isNaN(data2[i]))
540
- result[i]=null;
541
- else if (data2[i]==0)
542
- result[i]=null;
543
- else
544
- result[i]=data[i]/data2[i];
545
- }
546
- else
547
- result[i]=null;
548
- }
549
- }
550
-
551
- return result;
552
- }
553
-
554
- //数组相加
555
- //支持多个参数累加 如:HQIndexFormula.ARRAY_ADD(data,data2,data3,data3) =data+data2+data3+data4
556
- HQIndexFormula.ARRAY_ADD=function(data,data2)
557
- {
558
- if (arguments.length==2)
559
- {
560
- var result=[];
561
- var IsNumber=typeof(data2)=="number";
562
- if (IsNumber)
563
- {
564
- for(var i in data)
565
- {
566
- result[i]=data[i]+data2;
567
- }
568
- }
569
- else
570
- {
571
- var count=Math.max(data.length,data2.length);
572
- for(var i=0;i<count;++i)
573
- {
574
- if (i<data.length && i<data2.length)
575
- {
576
- if (data[i]==null || data2[i]==null || isNaN(data[i]) || isNaN(data2[i])) result[i]=null
577
- else result[i]=data[i]+data2[i];
578
- }
579
- else
580
- {
581
- result[i]=null;
582
- }
583
- }
584
- }
585
-
586
- return result;
587
- }
588
-
589
- var result=HQIndexFormula.ARRAY_ADD(arguments[0],arguments[1]);
590
-
591
- for(var i=2;i<arguments.length;++i)
592
- {
593
- result=HQIndexFormula.ARRAY_ADD(result,arguments[i]);
594
- }
595
-
596
- return result;
597
- }
598
-
599
- HQIndexFormula.MAX=function(data,data2)
600
- {
601
- var result=[];
602
- var IsNumber=typeof(data2)=="number";
603
- if (IsNumber)
604
- {
605
- for(var i in data)
606
- {
607
- if (data[i]==null) result[i]=null;
608
- else result[i]=Math.max(data[i],data2);
609
- }
610
- }
611
- else
612
- {
613
- var count=Math.max(data.length,data2.length);
614
- for(var i=0;i<count;++i)
615
- {
616
- if (i<data.length && i<data2.length)
617
- {
618
- if (data[i]==null || data2[i]==null) result[i]=null;
619
- else result[i]=Math.max(data[i],data2[i]);
620
- }
621
- else
622
- result[i]=null;
623
- }
624
- }
625
-
626
- return result;
627
- }
628
-
629
- HQIndexFormula.MIN=function(data,data2)
630
- {
631
- var result=[];
632
- var IsNumber=typeof(data2)=="number";
633
- if (IsNumber)
634
- {
635
- for(var i in data)
636
- {
637
- if (data[i]==null) result[i]=null;
638
- else result[i]=Math.min(data[i],data2);
639
- }
640
- }
641
- else
642
- {
643
- var count=Math.max(data.length,data2.length);
644
- for(var i=0;i<count;++i)
645
- {
646
- if (i<data.length && i<data2.length)
647
- {
648
- if (data[i]==null || data2[i]==null) result[i]=null;
649
- else result[i]=Math.min(data[i],data2[i]);
650
- }
651
- else
652
- result[i]=null;
653
- }
654
- }
655
-
656
- return result;
657
- }
658
-
659
-
660
- HQIndexFormula.ABS=function(data)
661
- {
662
- var result=[];
663
- for(var i in data)
664
- {
665
- if (data[i]==null) result[i]=null;
666
- else result[i]=Math.abs(data[i]);
667
- }
668
-
669
- return result;
670
- }
671
-
672
-
673
- HQIndexFormula.MA=function(data,dayCount)
674
- {
675
- var result=[];
676
-
677
- for (var i = 0, len = data.length; i < len; i++)
678
- {
679
- if (i < dayCount)
680
- {
681
- result[i]=null;
682
- continue;
683
- }
684
-
685
- var sum = 0;
686
- for (var j = 0; j < dayCount; j++)
687
- {
688
- sum += data[i - j];
689
- }
690
- result[i]=sum / dayCount;
691
- }
692
- return result;
693
- }
694
-
695
- /*
696
- 加权移动平均
697
- 返回加权移动平均
698
- 用法:EXPMA(X,M):X的M日加权移动平均
699
- EXPMA[i]=buffer[i]*para+(1-para)*EXPMA[i-1] para=2/(1+__para)
700
- */
701
- HQIndexFormula.EXPMA=function(data,dayCount)
702
- {
703
- var result=[];
704
- if (dayCount>=data.length) return result;
705
-
706
- var i=dayCount;
707
- for(;i<data.length;++i) //获取第1个有效数据
708
- {
709
- if (data[i]!=null)
710
- {
711
- result[i]=data[i];
712
- break;
713
- }
714
- }
715
-
716
- for (i=i+1; i < data.length; ++i)
717
- {
718
- if (result[i-1]!=null && data[i]!=null)
719
- result[i]=(2*data[i]+(dayCount-1)*result[i-1])/(dayCount+1);
720
- else if (result[i-1]!=null)
721
- result[i]=result[i-1];
722
- }
723
-
724
- return result;
725
- }
726
-
727
- //加权平滑平均,MEMA[i]=SMA[i]*para+(1-para)*SMA[i-1] para=2/(1+__para)
728
- HQIndexFormula.EXPMEMA=function(data,dayCount)
729
- {
730
- var result=[];
731
- if (dayCount>=data.length) return result;
732
-
733
- var index=0;
734
- for(;index<data.length;++index)
735
- {
736
- if (data[index] && !isNaN(data[index])) break;
737
- }
738
-
739
- var sum=0;
740
- for(var i=0; index<data.length && i<dayCount;++i, ++index)
741
- {
742
- if (data[index] && !isNaN(data[index]))
743
- sum+=data[index];
744
- else
745
- sum+=data[index-1];
746
- }
747
-
748
- result[index-1]=sum/dayCount;
749
- for(;index<data.length;++index)
750
- {
751
- if(result[index-1]!=null && data[index]!=null)
752
- result[index]=(2*data[index]+(dayCount-1)*result[index-1])/(dayCount+1);
753
- else if(result[index-1]!=null)
754
- result[index] = result[index-1];
755
- }
756
-
757
- return result;
758
- }
759
-
760
-
761
- HQIndexFormula.STD=function(data,n)
762
- {
763
- var result=[];
764
-
765
- var total=0;
766
- var averageData=[]; //平均值
767
- for(var i=n-1;i<data.length;++i)
768
- {
769
- total=0;
770
- for(var j=0;j<n;++j)
771
- {
772
- total+=data[i-j];
773
- }
774
-
775
- averageData[i]=total/n;
776
- }
777
-
778
- for(var i=n-1;i<data.length;++i)
779
- {
780
- total=0;
781
- for(var j=0;j<n;++j)
782
- {
783
- total+=Math.pow((data[i-j]-averageData[i]),2);
784
- }
785
-
786
- result[i]=Math.sqrt(total/n);
787
- }
788
-
789
-
790
- return result;
791
- }
792
-
793
- //平均绝对方差
794
- HQIndexFormula.AVEDEV=function(data,n)
795
- {
796
- var result=[];
797
-
798
- var total=0;
799
- var averageData=[]; //平均值
800
- for(var i=n-1;i<data.length;++i)
801
- {
802
- total=0;
803
- for(var j=0;j<n;++j)
804
- {
805
- total+=data[i-j];
806
- }
807
-
808
- averageData[i]=total/n;
809
- }
810
-
811
- for(var i=n-1;i<data.length;++i)
812
- {
813
- total=0;
814
- for(var j=0;j<n;++j)
815
- {
816
- total+=Math.abs(data[i-j]-averageData[i]);
817
- }
818
-
819
- result[i]=total/n;
820
- }
821
-
822
-
823
- return result;
824
- }
825
-
826
- HQIndexFormula.COUNT=function(data,n)
827
- {
828
- var result=[];
829
-
830
-
831
- for(var i=n-1;i<data.length;++i)
832
- {
833
- var count=0;
834
- for(var j=0;j<n;++j)
835
- {
836
- if (data[i-j]) ++count;
837
- }
838
-
839
- result[i]=count;
840
- }
841
-
842
- return result;
843
- }
844
-
845
- //上穿
846
- HQIndexFormula.CROSS=function(data,data2)
847
- {
848
- var result=[];
849
- if (data.length!=data2.length) return result=[];
850
-
851
- var index=0;
852
- for(;index<data.length;++index)
853
- {
854
- if (data[index]!=null && !isNaN(data[index]) && data2[index]!=null && isNaN(data2[index]))
855
- break;
856
- }
857
-
858
- for(++index;index<data.length;++index)
859
- {
860
- result[index]= (data[index]>data2[index]&&data[index-1]<data2[index-1])?1:0;
861
- }
862
-
863
- return result;
864
- }
865
-
866
- //累乘
867
- HQIndexFormula.MULAR=function(data,n)
868
- {
869
- var result=[];
870
- if(data.length<n) return result;
871
-
872
- var index=n;
873
- for(;index<data.length;++index)
874
- {
875
- if (data[index]!=null && !isNaN(data[index]))
876
- {
877
- result[index]=data[index];
878
- break;
879
- }
880
- }
881
-
882
- for(++index;index<data.length;++index)
883
- {
884
- result[index]=result[index-1]*data[index];
885
- }
886
-
887
- return result;
888
- }
889
-
890
-
891
- HQIndexFormula.STICKLINE=function(data,price1,price2)
892
- {
893
- var result=[];
894
- if(data.length<=0) return result;
895
-
896
- var IsNumber=typeof(price1)=="number";
897
- var IsNumber2=typeof(price2)=="number";
898
-
899
- for(var i in data)
900
- {
901
- result[i]=null;
902
- if (isNaN(data[i])) continue;
903
- if (!data[i]) continue;
904
-
905
- if (IsNumber && IsNumber2)
906
- {
907
- result[i]={Value:price1,Value2:price2};
908
- }
909
- else if (IsNumber && !IsNumber2)
910
- {
911
- if (isNaN(price2[i])) continue;
912
- result[i]={Value:price1,Value2:price2[i]};
913
- }
914
- else if (!IsNumber && IsNumber2)
915
- {
916
- if (isNaN(price1[i])) continue;
917
- result[i]={Value:price1[i],Value2:price2};
918
- }
919
- else
920
- {
921
- if (isNaN(price1[i]) || isNaN(price2[i])) continue;
922
- result[i]={Value:price1[i],Value2:price2[i]};
923
- }
924
- }
925
-
926
- return result;
927
- }
928
-
929
- //导出统一使用JSCommon命名空间名
930
- export
931
- {
932
- HQIndexFormula
933
- };
934
-
935
- /*
936
- module.exports =
937
- {
938
- //单个类导出
939
- JSCommon_HQIndexFormula: HQIndexFormula
940
- };
941
- */