hqchart 1.1.12693 → 1.1.12708

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 (229) hide show
  1. package/package.json +15 -47
  2. package/src/jscommon/readmo.txt +2 -2
  3. package/src/jscommon/umychart.resource/js/codemirror/javascript.js +1 -1
  4. package/.babelrc +0 -6
  5. package/.vscode/settings.json +0 -4
  6. package/Makefile +0 -9
  7. package/README.md +0 -452
  8. package/index.js +0 -17
  9. package/postcss.config.js +0 -5
  10. package/src/index.html +0 -18
  11. package/src/jscommon/backup/announcement.png +0 -0
  12. package/src/jscommon/backup/announcement2.png +0 -0
  13. package/src/jscommon/backup/blocktrading.png +0 -0
  14. package/src/jscommon/backup/investor.png +0 -0
  15. package/src/jscommon/backup/pforecast.png +0 -0
  16. package/src/jscommon/backup/research.png +0 -0
  17. package/src/jscommon/backup/tradedetail.png +0 -0
  18. package/src/jscommon/backup/umychart - backup.js +0 -17631
  19. package/src/jscommon/backup/umychart.macro.js +0 -4
  20. package/src/jscommon/backup/umychart.macro.vue.js +0 -3
  21. package/src/jscommon/commonindextree.json +0 -92
  22. package/src/jscommon/index.html +0 -13
  23. package/src/jscommon/jschinamapdata.js +0 -3
  24. package/src/jscommon/phoneHorizontal/hengping.css +0 -283
  25. package/src/jscommon/phoneHorizontal/phone.html +0 -448
  26. package/src/jscommon/phoneHorizontal/rem.js +0 -28
  27. package/src/jscommon/umychart.NetworkFilterTest.js +0 -48803
  28. package/src/jscommon/umychart.aliYunnetwork.js +0 -47
  29. package/src/jscommon/umychart.cninfo.components/readme.txt +0 -1
  30. package/src/jscommon/umychart.complier.js +0 -25293
  31. package/src/jscommon/umychart.complier.node/umychart.complier.controller.js +0 -559
  32. package/src/jscommon/umychart.complier.node/umychart.complier.node.js +0 -7043
  33. package/src/jscommon/umychart.complier.node/umychart.data.node.js +0 -816
  34. package/src/jscommon/umychart.console.js +0 -12
  35. package/src/jscommon/umychart.deal.js +0 -1452
  36. package/src/jscommon/umychart.dragdiv.js +0 -48
  37. package/src/jscommon/umychart.index.data.js +0 -4132
  38. package/src/jscommon/umychart.js +0 -90542
  39. package/src/jscommon/umychart.keyboard.js +0 -1659
  40. package/src/jscommon/umychart.listctrl.js +0 -690
  41. package/src/jscommon/umychart.mind.js +0 -2203
  42. package/src/jscommon/umychart.network.js +0 -44
  43. package/src/jscommon/umychart.news.js +0 -823
  44. package/src/jscommon/umychart.node.build/buildall.bat +0 -1
  45. package/src/jscommon/umychart.node.build/umychart.node.bat +0 -1
  46. package/src/jscommon/umychart.node.build/umychart.node.export.js +0 -40
  47. package/src/jscommon/umychart.regressiontest.js +0 -400
  48. package/src/jscommon/umychart.report.js +0 -5803
  49. package/src/jscommon/umychart.scrollbar.js +0 -1345
  50. package/src/jscommon/umychart.stock.js +0 -4218
  51. package/src/jscommon/umychart.style.js +0 -625
  52. package/src/jscommon/umychart.testdata.js +0 -150
  53. package/src/jscommon/umychart.uniapp.build/buildall.bat +0 -1
  54. package/src/jscommon/umychart.uniapp.build/umychart.bat +0 -1
  55. package/src/jscommon/umychart.uniapp.build/umychart.export.js +0 -70
  56. package/src/jscommon/umychart.user.js +0 -137
  57. package/src/jscommon/umychart.version.js +0 -30
  58. package/src/jscommon/umychart.vue/umychart.aliYunnetwork.vue.js +0 -56
  59. package/src/jscommon/umychart.vue.build/buildall.bat +0 -4
  60. package/src/jscommon/umychart.vue.build/copy_codemirror.bat +0 -2
  61. package/src/jscommon/umychart.vue.build/umychart.aliYunnetwork.vue.export.js +0 -9
  62. package/src/jscommon/umychart.vue.build/umychart.dragdiv.bat +0 -1
  63. package/src/jscommon/umychart.vue.build/umychart.dragdiv.export.js +0 -6
  64. package/src/jscommon/umychart.vue.build/umychart.index.data.bat +0 -1
  65. package/src/jscommon/umychart.vue.build/umychart.index.data.export.js +0 -4
  66. package/src/jscommon/umychart.vue.build/umychart.listctrl.vue.export.js +0 -15
  67. package/src/jscommon/umychart.vue.build/umychart.regressiontest.vue.export.js +0 -7
  68. package/src/jscommon/umychart.vue.build/umychart.regressiontest.wechat.export.js +0 -12
  69. package/src/jscommon/umychart.vue.build/umychart.stock.bat +0 -1
  70. package/src/jscommon/umychart.vue.build/umychart.stock.vue.export.js +0 -16
  71. package/src/jscommon/umychart.vue.build/umychart.testdata.bat +0 -3
  72. package/src/jscommon/umychart.vue.build/umychart.testdata.vue.export.js +0 -7
  73. package/src/jscommon/umychart.vue.build/umychart.vue.bat +0 -8
  74. package/src/jscommon/umychart.vue.build/umychart.vue.export.js +0 -112
  75. package/src/jscommon/umychart.vue.components/empyt.vue +0 -51
  76. package/src/jscommon/umychart.vue.components/historydayline.vue +0 -240
  77. package/src/jscommon/umychart.vue.components/jsloader.adddialog.vue +0 -315
  78. package/src/jscommon/umychart.vue.components/jsloader.vue +0 -93
  79. package/src/jscommon/umychart.vue.components/jsvuecontainer.vue +0 -160
  80. package/src/jscommon/umychart.vue.components/jsvuecontainer2.0.vue +0 -391
  81. package/src/jscommon/umychart.vue.components/login.vue +0 -178
  82. package/src/jscommon/umychart.vue.components/queryContent.vue +0 -750
  83. package/src/jscommon/umychart.vue.components/readme.txt +0 -8
  84. package/src/jscommon/umychart.vue.components/searchsymbol.vue +0 -299
  85. package/src/jscommon/umychart.vue.components/simulatetrade.vue +0 -1471
  86. package/src/jscommon/umychart.vue.components/stockchart.vue +0 -343
  87. package/src/jscommon/umychart.vue.components/stockchartV2.vue +0 -195
  88. package/src/jscommon/umychart.vue.components/stockdeal.vue +0 -358
  89. package/src/jscommon/umychart.vue.components/stockdealcount.vue +0 -262
  90. package/src/jscommon/umychart.vue.components/stockdeallastest.vue +0 -316
  91. package/src/jscommon/umychart.vue.components/stockdrawtool.vue +0 -343
  92. package/src/jscommon/umychart.vue.components/stockfull.vue +0 -355
  93. package/src/jscommon/umychart.vue.components/stockinfo.demo.vue +0 -153
  94. package/src/jscommon/umychart.vue.components/stockinfo.vue +0 -685
  95. package/src/jscommon/umychart.vue.components/stockkline.demo.vue +0 -1904
  96. package/src/jscommon/umychart.vue.components/stockmultiorder.vue +0 -174
  97. package/src/jscommon/umychart.vue.components/stockmultiperiod.vue +0 -222
  98. package/src/jscommon/umychart.vue.components/stockorder.vue +0 -320
  99. package/src/jscommon/umychart.vue.components/stocktradeinfo.demo.vue +0 -250
  100. package/src/jscommon/umychart.vue.components/stocktradeinfo.vue +0 -1907
  101. package/src/jscommon/umychart.vue.components/test.vue +0 -0
  102. package/src/jscommon/umychart.wechat/getDate.wechat.js +0 -91
  103. package/src/jscommon/umychart.wechat/lighter.news.wechat.js +0 -262
  104. package/src/jscommon/umychart.wechat/readme.txt +0 -3
  105. package/src/jscommon/umychart.wechat/umychart.analyze.wechat.js +0 -551
  106. package/src/jscommon/umychart.wechat/umychart.apidraw.wechat.js +0 -126
  107. package/src/jscommon/umychart.wechat/umychart.bigV.wechat.js +0 -2510
  108. package/src/jscommon/umychart.wechat/umychart.chartframe.wechat.js +0 -2942
  109. package/src/jscommon/umychart.wechat/umychart.chartpaint.wechat.js +0 -9752
  110. package/src/jscommon/umychart.wechat/umychart.charttitle.wechat.js +0 -2023
  111. package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +0 -14726
  112. package/src/jscommon/umychart.wechat/umychart.console.wechat.js +0 -8
  113. package/src/jscommon/umychart.wechat/umychart.coordinatedata.wechat.js +0 -3654
  114. package/src/jscommon/umychart.wechat/umychart.data.wechat.js +0 -2243
  115. package/src/jscommon/umychart.wechat/umychart.element.wechart.js +0 -132
  116. package/src/jscommon/umychart.wechat/umychart.explainer.wechat.js +0 -1077
  117. package/src/jscommon/umychart.wechat/umychart.extendchart.wechat.js +0 -1140
  118. package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +0 -2247
  119. package/src/jscommon/umychart.wechat/umychart.hqIndexformula.wechat.js +0 -941
  120. package/src/jscommon/umychart.wechat/umychart.index.data.wechat.js +0 -3628
  121. package/src/jscommon/umychart.wechat/umychart.index.wechat.js +0 -4074
  122. package/src/jscommon/umychart.wechat/umychart.klineinfo.wechat.js +0 -836
  123. package/src/jscommon/umychart.wechat/umychart.markethot.js +0 -50
  124. package/src/jscommon/umychart.wechat/umychart.network.wechart.js +0 -62
  125. package/src/jscommon/umychart.wechat/umychart.news.wechat.js +0 -3568
  126. package/src/jscommon/umychart.wechat/umychart.regressiontest.wechat.js +0 -412
  127. package/src/jscommon/umychart.wechat/umychart.report.wechat.js +0 -3983
  128. package/src/jscommon/umychart.wechat/umychart.resource.wechat.js +0 -919
  129. package/src/jscommon/umychart.wechat/umychart.shareimage.wechat.js +0 -681
  130. package/src/jscommon/umychart.wechat/umychart.simulatetrade.wechat.js +0 -238
  131. package/src/jscommon/umychart.wechat/umychart.stock.wechat.js +0 -4035
  132. package/src/jscommon/umychart.wechat/umychart.style.wechat.js +0 -419
  133. package/src/jscommon/umychart.wechat/umychart.uniapp.canvas.helper.js +0 -99
  134. package/src/jscommon/umychart.wechat/umychart.user.wechat.js +0 -588
  135. package/src/jscommon/umychart.wechat/umychart.userlog.wechat.js +0 -240
  136. package/src/jscommon/umychart.wechat/umychart.vedio.wechat.js +0 -112
  137. package/src/jscommon/umychart.wechat/umychart.version.wechat.js +0 -36
  138. package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +0 -12055
  139. package/src/jscommon/umychart.wechat/umychart.wechat.js +0 -15460
  140. package/src/jscommon/umychart.worker.js +0 -114
  141. package/src/jscommon/umychart.ws.stock.js +0 -110
  142. package/src/jscommon/umychart_python/.vscode/launch.json +0 -15
  143. package/src/jscommon/umychart_python/__init__.py +0 -4
  144. package/src/jscommon/umychart_python/build.cmd +0 -2
  145. package/src/jscommon/umychart_python/setup.py +0 -25
  146. package/src/jscommon/umychart_python/umychart_cache_testcase.py +0 -165
  147. package/src/jscommon/umychart_python/umychart_complier_data.py +0 -781
  148. package/src/jscommon/umychart_python/umychart_complier_help.py +0 -175
  149. package/src/jscommon/umychart_python/umychart_complier_job.py +0 -193
  150. package/src/jscommon/umychart_python/umychart_complier_jsalgorithm.py +0 -4144
  151. package/src/jscommon/umychart_python/umychart_complier_jscomplier.py +0 -177
  152. package/src/jscommon/umychart_python/umychart_complier_jsexecute.py +0 -517
  153. package/src/jscommon/umychart_python/umychart_complier_jsparser.py +0 -864
  154. package/src/jscommon/umychart_python/umychart_complier_jssymboldata.py +0 -1238
  155. package/src/jscommon/umychart_python/umychart_complier_jssymboldata_cache.py +0 -146
  156. package/src/jscommon/umychart_python/umychart_complier_jssymboldata_json.py +0 -106
  157. package/src/jscommon/umychart_python/umychart_complier_pandas_help.py +0 -80
  158. package/src/jscommon/umychart_python/umychart_complier_scanner.py +0 -554
  159. package/src/jscommon/umychart_python/umychart_complier_testcase.py +0 -362
  160. package/src/jscommon/umychart_python/umychart_complier_util.py +0 -30
  161. package/src/jscommon/umychart_python/umychart_webtemplate.py +0 -131
  162. package/src/jscommon/umychart_python/updatehqchartweb.bat +0 -5
  163. package/src/jscommon/vendor.js +0 -2
  164. package/src/pages/block.list.demo.page/App.vue +0 -117
  165. package/src/pages/block.list.demo.page/index.js +0 -12
  166. package/src/pages/brushTool.demo.page/App.vue +0 -19
  167. package/src/pages/brushTool.demo.page/index.js +0 -12
  168. package/src/pages/container.demo.page/App.vue +0 -118
  169. package/src/pages/container.demo.page/index.js +0 -18
  170. package/src/pages/dataZoom.demo.page/App.vue +0 -265
  171. package/src/pages/dataZoom.demo.page/components/dataZoom.vue +0 -303
  172. package/src/pages/dataZoom.demo.page/index.js +0 -12
  173. package/src/pages/historydayline.demo.page/App.vue +0 -57
  174. package/src/pages/historydayline.demo.page/index.js +0 -12
  175. package/src/pages/hq.demo.page/App.vue +0 -163
  176. package/src/pages/hq.demo.page/index.js +0 -12
  177. package/src/pages/hqchart.black/App.vue +0 -90
  178. package/src/pages/hqchart.black/components/searchsymbol.vue +0 -299
  179. package/src/pages/hqchart.black/components/stockdrawtool.vue +0 -300
  180. package/src/pages/hqchart.black/components/stockfull.vue +0 -313
  181. package/src/pages/hqchart.black/components/stockinfo.vue +0 -428
  182. package/src/pages/hqchart.black/components/stockkline.demo.vue +0 -1652
  183. package/src/pages/hqchart.black/components/stocktradeinfo.vue +0 -1337
  184. package/src/pages/hqchart.black/index.js +0 -30
  185. package/src/pages/hqchart.black/router/candlestickChart.vue +0 -108
  186. package/src/pages/hqchart.black/router/pricePointsTable.vue +0 -294
  187. package/src/pages/hqchart.black/router/stockDeallas.vue +0 -417
  188. package/src/pages/hqchart.black/router/timeShareChart.vue +0 -108
  189. package/src/pages/hqchart.page/App.vue +0 -101
  190. package/src/pages/hqchart.page/index.js +0 -18
  191. package/src/pages/index/App.vue +0 -1408
  192. package/src/pages/index/index.js +0 -7
  193. package/src/pages/indexHq/App.vue +0 -110
  194. package/src/pages/indexHq/index.js +0 -18
  195. package/src/pages/login.demo.page/App.vue +0 -22
  196. package/src/pages/login.demo.page/index.js +0 -12
  197. package/src/pages/queryContent.demo.page/App.vue +0 -29
  198. package/src/pages/queryContent.demo.page/index.js +0 -18
  199. package/src/pages/ranking.black/App.vue +0 -199
  200. package/src/pages/ranking.black/index.js +0 -18
  201. package/src/pages/search.demo.page/App.vue +0 -28
  202. package/src/pages/search.demo.page/index.js +0 -12
  203. package/src/pages/simulatetrade.demo.page/app.vue +0 -121
  204. package/src/pages/simulatetrade.demo.page/index.js +0 -17
  205. package/src/pages/stockdeal.demo.page/App.vue +0 -63
  206. package/src/pages/stockdeal.demo.page/index.js +0 -19
  207. package/src/pages/stockdealcount.demo.page/App.vue +0 -37
  208. package/src/pages/stockdealcount.demo.page/index.js +0 -12
  209. package/src/pages/stockdeallastest.demo.page/App.vue +0 -74
  210. package/src/pages/stockdeallastest.demo.page/index.js +0 -18
  211. package/src/pages/stockinfo.demo.page/App.vue +0 -92
  212. package/src/pages/stockinfo.demo.page/index.html +0 -13
  213. package/src/pages/stockinfo.demo.page/index.js +0 -19
  214. package/src/pages/stockkline.demo.page/App.vue +0 -55
  215. package/src/pages/stockkline.demo.page/index.js +0 -18
  216. package/src/pages/stockmultiorder.demo.page/App.vue +0 -149
  217. package/src/pages/stockmultiorder.demo.page/index.js +0 -18
  218. package/src/pages/stockmultiperiod.demo.page/App.vue +0 -87
  219. package/src/pages/stockmultiperiod.demo.page/index.js +0 -18
  220. package/src/pages/stockorder.demo.page/App.vue +0 -69
  221. package/src/pages/stockorder.demo.page/index.js +0 -18
  222. package/src/pages/test/App.vue +0 -22
  223. package/src/pages/test/index.js +0 -7
  224. package/src/pages/tradeinfopage/app.vue +0 -40
  225. package/src/pages/tradeinfopage/index.js +0 -7
  226. package/src/pages/tradeinfopage/tradeinfo.html +0 -12
  227. package/src/utils/urlObj.js +0 -81
  228. package/src/vendor.js +0 -2
  229. 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
- */