highcharts 7.1.1 → 7.1.2

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 (415) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +3 -3
  3. package/css/annotations/popup.scss +1 -1
  4. package/css/stocktools/gui.css +5 -5
  5. package/css/stocktools/gui.scss +1 -1
  6. package/es-modules/annotations/ControlPoint.js +1 -1
  7. package/es-modules/annotations/MockPoint.js +45 -12
  8. package/es-modules/annotations/annotations.src.js +203 -166
  9. package/es-modules/annotations/controllable/ControllableCircle.js +2 -10
  10. package/es-modules/annotations/controllable/ControllableImage.js +2 -10
  11. package/es-modules/annotations/controllable/ControllableLabel.js +54 -9
  12. package/es-modules/annotations/controllable/ControllableRect.js +2 -10
  13. package/es-modules/annotations/controllable/controllableMixin.js +32 -4
  14. package/es-modules/annotations/controllable/markerMixin.js +1 -0
  15. package/es-modules/annotations/eventEmitterMixin.js +1 -0
  16. package/es-modules/annotations/navigationBindings.js +15 -11
  17. package/es-modules/annotations/popup.js +59 -81
  18. package/es-modules/annotations/types/CrookedLine.js +19 -7
  19. package/es-modules/annotations/types/ElliottWave.js +7 -6
  20. package/es-modules/annotations/types/Fibonacci.js +14 -14
  21. package/es-modules/annotations/types/InfinityLine.js +4 -4
  22. package/es-modules/annotations/types/Measure.js +41 -41
  23. package/es-modules/annotations/types/Pitchfork.js +5 -4
  24. package/es-modules/annotations/types/VerticalLine.js +6 -5
  25. package/es-modules/error-messages.js +6 -1
  26. package/es-modules/indicators/indicators.src.js +5 -3
  27. package/es-modules/mixins/nodes.js +16 -8
  28. package/es-modules/modules/accessibility/AccessibilityComponent.js +4 -4
  29. package/es-modules/modules/accessibility/KeyboardNavigation.js +17 -4
  30. package/es-modules/modules/accessibility/components/RangeSelectorComponent.js +3 -2
  31. package/es-modules/modules/accessibility/components/SeriesComponent.js +110 -2
  32. package/es-modules/modules/accessibility/components/ZoomComponent.js +1 -1
  33. package/es-modules/modules/accessibility/options.js +2 -1
  34. package/es-modules/modules/bellcurve.src.js +27 -29
  35. package/es-modules/modules/boost/boost-init.js +14 -0
  36. package/es-modules/modules/boost/boost-overrides.js +13 -3
  37. package/es-modules/modules/boost/wgl-renderer.js +30 -15
  38. package/es-modules/modules/boost/wgl-shader.js +33 -16
  39. package/es-modules/modules/boost/wgl-vbuffer.js +8 -4
  40. package/es-modules/modules/broken-axis.src.js +1 -1
  41. package/es-modules/modules/bullet.src.js +68 -68
  42. package/es-modules/modules/cylinder.src.js +3 -1
  43. package/es-modules/modules/data.src.js +9 -5
  44. package/es-modules/modules/draggable-points.src.js +1 -1
  45. package/es-modules/modules/drilldown.src.js +1 -1
  46. package/es-modules/modules/export-data.src.js +7 -8
  47. package/es-modules/modules/exporting.src.js +9 -1
  48. package/es-modules/modules/full-screen.src.js +1 -1
  49. package/es-modules/modules/funnel3d.src.js +10 -3
  50. package/es-modules/modules/histogram.src.js +162 -164
  51. package/es-modules/modules/item-series.src.js +10 -10
  52. package/es-modules/modules/networkgraph/layouts.js +16 -12
  53. package/es-modules/modules/networkgraph/networkgraph.src.js +147 -51
  54. package/es-modules/modules/offline-exporting.src.js +15 -2
  55. package/es-modules/modules/oldie-polyfills.src.js +1 -1
  56. package/es-modules/modules/organization.src.js +65 -20
  57. package/es-modules/modules/pareto.src.js +52 -51
  58. package/es-modules/modules/pattern-fill.src.js +1 -1
  59. package/es-modules/modules/price-indicator.src.js +1 -1
  60. package/es-modules/modules/pyramid3d.src.js +1 -1
  61. package/es-modules/modules/sankey.src.js +22 -10
  62. package/es-modules/modules/series-label.src.js +16 -8
  63. package/es-modules/modules/solid-gauge.src.js +128 -79
  64. package/es-modules/modules/static-scale.src.js +8 -1
  65. package/es-modules/modules/stock-tools-gui.js +1 -1
  66. package/es-modules/modules/streamgraph.src.js +11 -11
  67. package/es-modules/modules/sunburst.src.js +23 -2
  68. package/es-modules/modules/tilemap.src.js +58 -57
  69. package/es-modules/modules/timeline.src.js +17 -12
  70. package/es-modules/modules/treemap.src.js +6 -6
  71. package/es-modules/modules/variwide.src.js +39 -39
  72. package/es-modules/modules/vector.src.js +108 -107
  73. package/es-modules/modules/venn.src.js +4 -2
  74. package/es-modules/modules/windbarb.src.js +43 -43
  75. package/es-modules/modules/wordcloud.src.js +1 -0
  76. package/es-modules/modules/xrange.src.js +112 -104
  77. package/es-modules/parts/AreaSeries.js +4 -1
  78. package/es-modules/parts/Axis.js +809 -1870
  79. package/es-modules/parts/Chart.js +254 -743
  80. package/es-modules/parts/Color.js +160 -113
  81. package/es-modules/parts/ColumnSeries.js +9 -3
  82. package/es-modules/parts/DataLabels.js +31 -2
  83. package/es-modules/parts/Dynamics.js +73 -26
  84. package/es-modules/parts/FlagsSeries.js +6 -4
  85. package/es-modules/parts/Globals.js +20 -36
  86. package/es-modules/parts/Html.js +116 -235
  87. package/es-modules/parts/Interaction.js +17 -7
  88. package/es-modules/parts/Legend.js +277 -632
  89. package/es-modules/parts/MSPointer.js +62 -106
  90. package/es-modules/parts/Options.js +128 -367
  91. package/es-modules/parts/OrdinalAxis.js +12 -0
  92. package/es-modules/parts/PieSeries.js +61 -44
  93. package/es-modules/parts/PlotLineOrBand.js +38 -3
  94. package/es-modules/parts/Point.js +117 -227
  95. package/es-modules/parts/Pointer.js +273 -558
  96. package/es-modules/parts/RangeSelector.js +5 -3
  97. package/es-modules/parts/Responsive.js +8 -4
  98. package/es-modules/parts/ScrollablePlotArea.js +215 -81
  99. package/es-modules/parts/Scrollbar.js +38 -23
  100. package/es-modules/parts/Series.js +151 -47
  101. package/es-modules/parts/Stacking.js +8 -3
  102. package/es-modules/parts/StockChart.js +42 -29
  103. package/es-modules/parts/SvgRenderer.js +1080 -2100
  104. package/es-modules/parts/Tick.js +11 -4
  105. package/es-modules/parts/Time.js +179 -363
  106. package/es-modules/parts/Tooltip.js +23 -12
  107. package/es-modules/parts/TouchPointer.js +69 -187
  108. package/es-modules/parts/Utilities.js +593 -846
  109. package/es-modules/parts-3d/Axis.js +2 -2
  110. package/es-modules/parts-3d/Column.js +18 -8
  111. package/es-modules/parts-gantt/GanttSeries.js +17 -21
  112. package/es-modules/parts-gantt/GridAxis.js +183 -101
  113. package/es-modules/parts-gantt/PathfinderAlgorithms.js +2 -2
  114. package/es-modules/parts-gantt/TreeGrid.js +53 -36
  115. package/es-modules/parts-map/ColorAxis.js +35 -14
  116. package/es-modules/parts-map/MapBubbleSeries.js +2 -1
  117. package/es-modules/parts-map/MapSeries.js +29 -18
  118. package/es-modules/parts-more/AreaRangeSeries.js +13 -12
  119. package/es-modules/parts-more/ColumnRangeSeries.js +8 -2
  120. package/es-modules/parts-more/GaugeSeries.js +9 -9
  121. package/es-modules/parts-more/PackedBubbleSeries.js +152 -115
  122. package/es-modules/parts-more/RadialAxis.js +102 -8
  123. package/es-modules/parts-more/WaterfallSeries.js +148 -35
  124. package/highcharts-3d.js +68 -67
  125. package/highcharts-3d.js.map +1 -1
  126. package/highcharts-3d.src.js +21 -11
  127. package/highcharts-gantt.d.ts +5 -3
  128. package/highcharts-gantt.js +618 -610
  129. package/highcharts-gantt.js.map +1 -1
  130. package/highcharts-gantt.src.d.ts +5 -3
  131. package/highcharts-gantt.src.js +5185 -8892
  132. package/highcharts-more.js +144 -140
  133. package/highcharts-more.js.map +1 -1
  134. package/highcharts-more.src.js +449 -194
  135. package/highcharts.d.ts +3943 -5236
  136. package/highcharts.js +454 -449
  137. package/highcharts.js.map +1 -1
  138. package/highcharts.src.d.ts +3943 -5236
  139. package/highcharts.src.js +4767 -8601
  140. package/highmaps.d.ts +5 -3
  141. package/highmaps.js +498 -494
  142. package/highmaps.js.map +1 -1
  143. package/highmaps.src.d.ts +5 -3
  144. package/highmaps.src.js +4547 -8507
  145. package/highstock.d.ts +5 -3
  146. package/highstock.js +597 -590
  147. package/highstock.js.map +1 -1
  148. package/highstock.src.d.ts +5 -3
  149. package/highstock.src.js +4871 -8661
  150. package/indicators/acceleration-bands.js +1 -1
  151. package/indicators/acceleration-bands.src.js +1 -1
  152. package/indicators/accumulation-distribution.js +1 -1
  153. package/indicators/accumulation-distribution.src.js +1 -1
  154. package/indicators/ao.js +1 -1
  155. package/indicators/ao.src.js +1 -1
  156. package/indicators/apo.js +1 -1
  157. package/indicators/apo.src.js +1 -1
  158. package/indicators/aroon-oscillator.js +1 -1
  159. package/indicators/aroon-oscillator.src.js +1 -1
  160. package/indicators/aroon.js +1 -1
  161. package/indicators/aroon.src.js +1 -1
  162. package/indicators/atr.js +1 -1
  163. package/indicators/atr.src.js +1 -1
  164. package/indicators/bollinger-bands.js +1 -1
  165. package/indicators/bollinger-bands.src.js +1 -1
  166. package/indicators/cci.js +1 -1
  167. package/indicators/cci.src.js +1 -1
  168. package/indicators/chaikin.js +1 -1
  169. package/indicators/chaikin.src.js +1 -1
  170. package/indicators/cmf.js +1 -1
  171. package/indicators/cmf.src.js +1 -1
  172. package/indicators/dema.js +1 -1
  173. package/indicators/dema.src.js +1 -1
  174. package/indicators/dpo.js +1 -1
  175. package/indicators/dpo.src.js +1 -1
  176. package/indicators/ema.js +1 -1
  177. package/indicators/ema.src.js +1 -1
  178. package/indicators/ichimoku-kinko-hyo.js +1 -1
  179. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  180. package/indicators/indicators-all.js +105 -105
  181. package/indicators/indicators-all.js.map +1 -1
  182. package/indicators/indicators-all.src.js +6 -4
  183. package/indicators/indicators.js +9 -9
  184. package/indicators/indicators.js.map +1 -1
  185. package/indicators/indicators.src.js +6 -4
  186. package/indicators/keltner-channels.js +1 -1
  187. package/indicators/keltner-channels.src.js +1 -1
  188. package/indicators/macd.js +1 -1
  189. package/indicators/macd.src.js +1 -1
  190. package/indicators/mfi.js +1 -1
  191. package/indicators/mfi.src.js +1 -1
  192. package/indicators/momentum.js +1 -1
  193. package/indicators/momentum.src.js +1 -1
  194. package/indicators/natr.js +1 -1
  195. package/indicators/natr.src.js +1 -1
  196. package/indicators/pivot-points.js +1 -1
  197. package/indicators/pivot-points.src.js +1 -1
  198. package/indicators/ppo.js +1 -1
  199. package/indicators/ppo.src.js +1 -1
  200. package/indicators/price-channel.js +1 -1
  201. package/indicators/price-channel.src.js +1 -1
  202. package/indicators/price-envelopes.js +1 -1
  203. package/indicators/price-envelopes.src.js +1 -1
  204. package/indicators/psar.js +1 -1
  205. package/indicators/psar.src.js +1 -1
  206. package/indicators/regressions.js +1 -1
  207. package/indicators/regressions.src.js +1 -1
  208. package/indicators/roc.js +1 -1
  209. package/indicators/roc.src.js +1 -1
  210. package/indicators/rsi.js +1 -1
  211. package/indicators/rsi.src.js +1 -1
  212. package/indicators/stochastic.js +1 -1
  213. package/indicators/stochastic.src.js +1 -1
  214. package/indicators/supertrend.js +1 -1
  215. package/indicators/supertrend.src.js +1 -1
  216. package/indicators/tema.js +1 -1
  217. package/indicators/tema.src.js +1 -1
  218. package/indicators/trix.js +1 -1
  219. package/indicators/trix.src.js +1 -1
  220. package/indicators/volume-by-price.js +1 -1
  221. package/indicators/volume-by-price.src.js +1 -1
  222. package/indicators/vwap.js +1 -1
  223. package/indicators/vwap.src.js +1 -1
  224. package/indicators/williams-r.js +1 -1
  225. package/indicators/williams-r.src.js +1 -1
  226. package/indicators/wma.js +1 -1
  227. package/indicators/wma.src.js +1 -1
  228. package/indicators/zigzag.js +1 -1
  229. package/indicators/zigzag.src.js +1 -1
  230. package/modules/accessibility.js +92 -89
  231. package/modules/accessibility.js.map +1 -1
  232. package/modules/accessibility.src.js +138 -15
  233. package/modules/annotations-advanced.js +128 -127
  234. package/modules/annotations-advanced.js.map +1 -1
  235. package/modules/annotations-advanced.src.js +514 -396
  236. package/modules/annotations.d.ts +36 -0
  237. package/modules/annotations.js +81 -81
  238. package/modules/annotations.js.map +1 -1
  239. package/modules/annotations.src.d.ts +36 -0
  240. package/modules/annotations.src.js +418 -315
  241. package/modules/arrow-symbols.js +1 -1
  242. package/modules/arrow-symbols.src.js +1 -1
  243. package/modules/boost-canvas.js +1 -1
  244. package/modules/boost-canvas.src.js +1 -1
  245. package/modules/boost.js +63 -63
  246. package/modules/boost.js.map +1 -1
  247. package/modules/boost.src.js +99 -39
  248. package/modules/broken-axis.js +1 -1
  249. package/modules/broken-axis.src.js +2 -2
  250. package/modules/bullet.js +1 -1
  251. package/modules/bullet.src.js +69 -69
  252. package/modules/current-date-indicator.js +1 -1
  253. package/modules/current-date-indicator.src.js +1 -1
  254. package/modules/cylinder.js +1 -1
  255. package/modules/cylinder.js.map +1 -1
  256. package/modules/cylinder.src.js +4 -2
  257. package/modules/data.js +4 -4
  258. package/modules/data.js.map +1 -1
  259. package/modules/data.src.js +10 -6
  260. package/modules/datagrouping.js +1 -1
  261. package/modules/datagrouping.src.js +1 -1
  262. package/modules/debugger.js +4 -4
  263. package/modules/debugger.js.map +1 -1
  264. package/modules/debugger.src.js +7 -2
  265. package/modules/dependency-wheel.js +1 -1
  266. package/modules/dependency-wheel.src.js +1 -1
  267. package/modules/dotplot.js +1 -1
  268. package/modules/dotplot.src.js +1 -1
  269. package/modules/drag-panes.js +1 -1
  270. package/modules/drag-panes.src.js +1 -1
  271. package/modules/draggable-points.js +1 -1
  272. package/modules/draggable-points.src.js +2 -2
  273. package/modules/drilldown.js +1 -1
  274. package/modules/drilldown.src.js +2 -2
  275. package/modules/export-data.js +2 -2
  276. package/modules/export-data.js.map +1 -1
  277. package/modules/export-data.src.js +8 -9
  278. package/modules/exporting.js +25 -25
  279. package/modules/exporting.js.map +1 -1
  280. package/modules/exporting.src.js +11 -3
  281. package/modules/full-screen.js +1 -1
  282. package/modules/full-screen.src.js +2 -2
  283. package/modules/funnel.js +1 -1
  284. package/modules/funnel.src.js +1 -1
  285. package/modules/funnel3d.js +2 -2
  286. package/modules/funnel3d.js.map +1 -1
  287. package/modules/funnel3d.src.js +11 -4
  288. package/modules/gantt.js +166 -164
  289. package/modules/gantt.js.map +1 -1
  290. package/modules/gantt.src.js +422 -295
  291. package/modules/grid-axis.js +18 -16
  292. package/modules/grid-axis.js.map +1 -1
  293. package/modules/grid-axis.src.js +184 -102
  294. package/modules/heatmap.js +22 -22
  295. package/modules/heatmap.js.map +1 -1
  296. package/modules/heatmap.src.js +36 -15
  297. package/modules/histogram-bellcurve.js +1 -1
  298. package/modules/histogram-bellcurve.js.map +1 -1
  299. package/modules/histogram-bellcurve.src.js +186 -183
  300. package/modules/item-series.js +1 -1
  301. package/modules/item-series.src.js +11 -11
  302. package/modules/map-parser.js +1 -1
  303. package/modules/map-parser.src.js +1 -1
  304. package/modules/map.js +83 -83
  305. package/modules/map.js.map +1 -1
  306. package/modules/map.src.js +67 -34
  307. package/modules/networkgraph.js +10 -9
  308. package/modules/networkgraph.js.map +1 -1
  309. package/modules/networkgraph.src.js +180 -72
  310. package/modules/no-data-to-display.js +1 -1
  311. package/modules/no-data-to-display.src.js +1 -1
  312. package/modules/offline-exporting.js +15 -15
  313. package/modules/offline-exporting.js.map +1 -1
  314. package/modules/offline-exporting.src.js +17 -4
  315. package/modules/oldie-polyfills.js +1 -1
  316. package/modules/oldie-polyfills.src.js +2 -2
  317. package/modules/oldie.js +2 -2
  318. package/modules/oldie.src.js +2 -2
  319. package/modules/organization.js +1 -1
  320. package/modules/organization.js.map +1 -1
  321. package/modules/organization.src.js +66 -21
  322. package/modules/overlapping-datalabels.js +1 -1
  323. package/modules/overlapping-datalabels.src.js +1 -1
  324. package/modules/parallel-coordinates.js +1 -1
  325. package/modules/parallel-coordinates.src.js +1 -1
  326. package/modules/pareto.js +1 -1
  327. package/modules/pareto.js.map +1 -1
  328. package/modules/pareto.src.js +53 -52
  329. package/modules/pathfinder.js +3 -3
  330. package/modules/pathfinder.js.map +1 -1
  331. package/modules/pathfinder.src.js +3 -3
  332. package/modules/pattern-fill.js +1 -1
  333. package/modules/pattern-fill.src.js +2 -2
  334. package/modules/price-indicator.js +1 -1
  335. package/modules/price-indicator.src.js +2 -2
  336. package/modules/pyramid3d.js +1 -1
  337. package/modules/pyramid3d.src.js +2 -2
  338. package/modules/sankey.js +14 -14
  339. package/modules/sankey.js.map +1 -1
  340. package/modules/sankey.src.js +39 -19
  341. package/modules/series-label.js +16 -16
  342. package/modules/series-label.js.map +1 -1
  343. package/modules/series-label.src.js +17 -9
  344. package/modules/solid-gauge.js +5 -5
  345. package/modules/solid-gauge.js.map +1 -1
  346. package/modules/solid-gauge.src.js +129 -80
  347. package/modules/sonification.js +1 -1
  348. package/modules/sonification.src.js +1 -1
  349. package/modules/static-scale.js +4 -4
  350. package/modules/static-scale.js.map +1 -1
  351. package/modules/static-scale.src.js +9 -2
  352. package/modules/stock-tools.js +2 -2
  353. package/modules/stock-tools.src.js +3 -3
  354. package/modules/stock.js +146 -145
  355. package/modules/stock.js.map +1 -1
  356. package/modules/stock.src.js +105 -61
  357. package/modules/streamgraph.js +1 -1
  358. package/modules/streamgraph.src.js +12 -12
  359. package/modules/sunburst.js +40 -40
  360. package/modules/sunburst.js.map +1 -1
  361. package/modules/sunburst.src.js +30 -9
  362. package/modules/tilemap.js +1 -1
  363. package/modules/tilemap.js.map +1 -1
  364. package/modules/tilemap.src.js +59 -58
  365. package/modules/timeline.js +12 -11
  366. package/modules/timeline.js.map +1 -1
  367. package/modules/timeline.src.js +18 -13
  368. package/modules/treegrid.js +45 -43
  369. package/modules/treegrid.js.map +1 -1
  370. package/modules/treegrid.src.js +238 -139
  371. package/modules/treemap.js +1 -1
  372. package/modules/treemap.src.js +7 -7
  373. package/modules/variable-pie.js +1 -1
  374. package/modules/variable-pie.src.js +1 -1
  375. package/modules/variwide.js +1 -1
  376. package/modules/variwide.src.js +40 -40
  377. package/modules/vector.js +1 -1
  378. package/modules/vector.js.map +1 -1
  379. package/modules/vector.src.js +109 -108
  380. package/modules/venn.js +23 -23
  381. package/modules/venn.js.map +1 -1
  382. package/modules/venn.src.js +5 -3
  383. package/modules/windbarb.js +1 -1
  384. package/modules/windbarb.src.js +44 -44
  385. package/modules/wordcloud.js +10 -10
  386. package/modules/wordcloud.js.map +1 -1
  387. package/modules/wordcloud.src.js +2 -1
  388. package/modules/xrange.js +12 -12
  389. package/modules/xrange.js.map +1 -1
  390. package/modules/xrange.src.js +113 -105
  391. package/package.json +1 -1
  392. package/themes/avocado.js +21 -37
  393. package/themes/avocado.src.js +1 -1
  394. package/themes/dark-blue.js +1 -1
  395. package/themes/dark-blue.src.js +1 -1
  396. package/themes/dark-green.js +1 -1
  397. package/themes/dark-green.src.js +1 -1
  398. package/themes/dark-unica.js +1 -1
  399. package/themes/dark-unica.src.js +1 -1
  400. package/themes/gray.js +1 -1
  401. package/themes/gray.src.js +1 -1
  402. package/themes/grid-light.js +1 -1
  403. package/themes/grid-light.src.js +1 -1
  404. package/themes/grid.js +1 -1
  405. package/themes/grid.src.js +1 -1
  406. package/themes/sand-signika.js +1 -1
  407. package/themes/sand-signika.src.js +1 -1
  408. package/themes/skies.js +1 -1
  409. package/themes/skies.src.js +1 -1
  410. package/themes/sunset.js +21 -37
  411. package/themes/sunset.src.js +1 -1
  412. package/.DS_Store +0 -0
  413. package/es-modules/.DS_Store +0 -0
  414. package/es-modules/modules/annotations-legacy.src.js +0 -1977
  415. package/js/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
1
  /*
2
- Highcharts JS v7.1.1 (2019-04-09)
2
+ Highcharts JS v7.1.2 (2019-06-03)
3
3
 
4
4
  All technical indicators for Highstock
5
5
 
@@ -7,116 +7,116 @@
7
7
 
8
8
  License: www.highcharts.com/license
9
9
  */
10
- (function(f){"object"===typeof module&&module.exports?(f["default"]=f,module.exports=f):"function"===typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts","highcharts/modules/stock"],function(t){f(t);f.Highcharts=t;return f}):f("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(f){function t(d,m,q,k){d.hasOwnProperty(m)||(d[m]=k.apply(null,q))}f=f?f._modules:{};t(f,"mixins/indicator-required.js",[f["parts/Globals.js"]],function(d){var m=d.error;return{isParentLoaded:function(d,
11
- k,a,c,e){if(d)return c?c(d):!0;m(e||this.generateMessage(a,k));return!1},generateMessage:function(d,k){return'Error: "'+d+'" indicator type requires "'+k+'" indicator loaded before. Please read docs: https://api.highcharts.com/highstock/plotOptions.'+d}}});t(f,"indicators/indicators.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,m){var q=d.pick,k=d.error,a=d.Series,c=d.isArray,e=d.addEvent,b=d.seriesType,g=d.seriesTypes,r=d.seriesTypes.ohlc.prototype,u=m.generateMessage;
10
+ (function(f){"object"===typeof module&&module.exports?(f["default"]=f,module.exports=f):"function"===typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts","highcharts/modules/stock"],function(u){f(u);f.Highcharts=u;return f}):f("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(f){function u(d,n,q,h){d.hasOwnProperty(n)||(d[n]=h.apply(null,q))}f=f?f._modules:{};u(f,"mixins/indicator-required.js",[f["parts/Globals.js"]],function(d){var n=d.error;return{isParentLoaded:function(d,
11
+ h,a,c,e){if(d)return c?c(d):!0;n(e||this.generateMessage(a,h));return!1},generateMessage:function(d,h){return'Error: "'+d+'" indicator type requires "'+h+'" indicator loaded before. Please read docs: https://api.highcharts.com/highstock/plotOptions.'+d}}});u(f,"indicators/indicators.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,n){var q=d.pick,h=d.error,a=d.Series,c=d.isArray,e=d.addEvent,b=d.seriesType,g=d.seriesTypes,r=d.seriesTypes.ohlc.prototype,t=n.generateMessage;
12
12
  e(d.Series,"init",function(b){b=b.options;b.useOhlcData&&"highcharts-navigator-series"!==b.id&&d.extend(this,{pointValKey:r.pointValKey,keys:r.keys,pointArrayMap:r.pointArrayMap,toYData:r.toYData})});e(a,"afterSetOptions",function(b){b=b.options;var c=b.dataGrouping;c&&b.useOhlcData&&"highcharts-navigator-series"!==b.id&&(c.approximation="ohlc")});b("sma","line",{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:0,period:14}},{processData:function(){var b=this.options.compareToMain,
13
13
  c=this.linkedParent;a.prototype.processData.apply(this,arguments);c&&c.compareValue&&b&&(this.compareValue=c.compareValue)},bindTo:{series:!0,eventName:"updatedData"},hasDerivedData:!0,useCommonDataGrouping:!0,nameComponents:["period"],nameSuffixes:[],calculateOn:"init",requiredIndicators:[],requireIndicators:function(){var b={allLoaded:!0};this.requiredIndicators.forEach(function(c){g[c]?g[c].prototype.requireIndicators():(b.allLoaded=!1,b.needed=c)});return b},init:function(b,c){function g(){var b=
14
- h.points||[],c=(h.xData||[]).length,a=h.getValues(h.linkedParent,h.options.params)||{values:[],xData:[],yData:[]},e=[],g=!0,r,l;if(c&&!h.hasGroupedData&&h.visible&&h.points)if(h.cropped){h.xAxis&&(r=h.xAxis.min,l=h.xAxis.max);c=h.cropData(a.xData,a.yData,r,l);for(r=0;r<c.xData.length;r++)e.push([c.xData[r],c.yData[r]]);c=a.xData.indexOf(h.xData[0]);r=a.xData.indexOf(h.xData[h.xData.length-1]);-1===c&&r===a.xData.length-2&&e[0][0]===b[0].x&&e.shift();h.updateData(e)}else a.xData.length!==c-1&&a.xData.length!==
15
- c+1&&(g=!1,h.updateData(a.values));g&&(h.xData=a.xData,h.yData=a.yData,h.options.data=a.values);!1===h.bindTo.series&&(delete h.processedXData,h.isDirty=!0,h.redraw());h.isDirtyData=!1}var h=this,r=h.requireIndicators();if(!r.allLoaded)return k(u(h.type,r.needed));a.prototype.init.call(h,b,c);b.linkSeries();h.dataEventsToUnbind=[];if(!h.linkedParent)return k("Series "+h.options.linkedTo+" not found! Check `linkedTo`.",!1,b);h.dataEventsToUnbind.push(e(h.bindTo.series?h.linkedParent:h.linkedParent.xAxis,
16
- h.bindTo.eventName,g));if("init"===h.calculateOn)g();else var n=e(h.chart,h.calculateOn,function(){g();n()});return h},getName:function(){var b=this.name,c=[];b||((this.nameComponents||[]).forEach(function(b,a){c.push(this.options.params[b]+q(this.nameSuffixes[a],""))},this),b=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+c.join(", ")+")":""));return b},getValues:function(b,a){var e=a.period,h=b.xData;b=b.yData;var g=b.length,r=0,u=0,k=[],n=[],p=[],d=-1,m;if(h.length<e)return!1;
17
- for(c(b[0])&&(d=a.index?a.index:0);r<e-1;)u+=0>d?b[r]:b[r][d],r++;for(a=r;a<g;a++)u+=0>d?b[a]:b[a][d],m=[h[a],u/e],k.push(m),n.push(m[0]),p.push(m[1]),u-=0>d?b[a-r]:b[a-r][d];return{values:k,xData:n,yData:p}},destroy:function(){this.dataEventsToUnbind.forEach(function(b){b()});a.prototype.destroy.call(this)}})});t(f,"indicators/accumulation-distribution.src.js",[f["parts/Globals.js"]],function(d){var m=d.seriesType;m("ad","sma",{params:{volumeSeriesID:"volume"}},{nameComponents:!1,nameBase:"Accumulation/Distribution",
18
- getValues:function(m,k){var a=k.period,c=m.xData,e=m.yData,b=k.volumeSeriesID,g=m.chart.get(b);k=g&&g.yData;var r=e?e.length:0,u=[],n=[],p=[];if(c.length<=a&&r&&4!==e[0].length)return!1;if(!g)return d.error("Series "+b+" not found! Check `volumeSeriesID`.",!0,m.chart);for(;a<r;a++){m=u.length;var b=e[a][1],g=e[a][2],l=e[a][3],h=k[a],b=[c[a],l===b&&l===g||b===g?0:(2*l-g-b)/(b-g)*h];0<m&&(b[1]+=u[m-1][1]);u.push(b);n.push(b[0]);p.push(b[1])}return{values:u,xData:n,yData:p}}})});t(f,"indicators/ao.src.js",
19
- [f["parts/Globals.js"]],function(d){var m=d.correctFloat,q=d.isArray;d.seriesType("ao","sma",{greaterBarColor:"#06B535",lowerBarColor:"#F21313",threshold:0,groupPadding:.2,pointPadding:.2,states:{hover:{halo:{size:0}}}},{nameBase:"AO",nameComponents:!1,markerAttribs:d.noop,getColumnMetrics:d.seriesTypes.column.prototype.getColumnMetrics,crispCol:d.seriesTypes.column.prototype.crispCol,translate:d.seriesTypes.column.prototype.translate,drawPoints:d.seriesTypes.column.prototype.drawPoints,drawGraph:function(){var k=
20
- this.options,a=this.points,c=k.greaterBarColor,k=k.lowerBarColor,e=a[0];if(!this.userOptions.color&&e)for(e.color=c,e=1;e<a.length;e++)a[e].color=a[e].y>a[e-1].y?c:a[e].y<a[e-1].y?k:a[e-1].color},getValues:function(k){var a=k.xData||[];k=k.yData||[];var c=k.length,e=[],b=[],g=[],r=0,u=0,n,d,l;if(34>=a.length||!q(k[0])||4!==k[0].length)return!1;for(l=0;33>l;l++)n=(k[l][1]+k[l][2])/2,29<=l&&(r=m(r+n)),u=m(u+n);for(l=33;l<c;l++)n=(k[l][1]+k[l][2])/2,r=m(r+n),u=m(u+n),n=r/5,d=u/34,n=m(n-d),e.push([a[l],
21
- n]),b.push(a[l]),g.push(n),n=l+1-5,d=l+1-34,r=m(r-(k[n][1]+k[n][2])/2),u=m(u-(k[d][1]+k[d][2])/2);return{values:e,xData:b,yData:g}}})});t(f,"mixins/multipe-lines.js",[f["parts/Globals.js"]],function(d){var m=d.each,q=d.merge,k=d.error,a=d.defined,c=d.seriesTypes.sma;return{pointArrayMap:["top","bottom"],pointValKey:"top",linesApiNames:["bottomLine"],getTranslatedLinesNames:function(c){var b=[];m(this.pointArrayMap,function(a){a!==c&&b.push("plot"+a.charAt(0).toUpperCase()+a.slice(1))});return b},
22
- toYData:function(c){var b=[];m(this.pointArrayMap,function(a){b.push(c[a])});return b},translate:function(){var a=this,b=a.pointArrayMap,g=[],r,g=a.getTranslatedLinesNames();c.prototype.translate.apply(a,arguments);m(a.points,function(c){m(b,function(b,e){r=c[b];null!==r&&(c[g[e]]=a.yAxis.toPixels(r,!0))})})},drawGraph:function(){var e=this,b=e.linesApiNames,g=e.points,r=g.length,u=e.options,d=e.graph,p={options:{gapSize:u.gapSize}},l=[],h=e.getTranslatedLinesNames(e.pointValKey),y;m(h,function(b,
23
- c){for(l[c]=[];r--;)y=g[r],l[c].push({x:y.x,plotX:y.plotX,plotY:y[b],isNull:!a(y[b])});r=g.length});m(b,function(b,a){l[a]?(e.points=l[a],u[b]?e.options=q(u[b].styles,p):k('Error: "There is no '+b+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names." at mixin/multiple-line.js:34'),e.graph=e["graph"+b],c.prototype.drawGraph.call(e),e["graph"+b]=e.graph):k('Error: "'+b+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")});
24
- e.points=g;e.options=u;e.graph=d;c.prototype.drawGraph.call(e)}}});t(f,"indicators/aroon.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,m){function q(k,a){var c=k[0],e=0,b;for(b=1;b<k.length;b++)if("max"===a&&k[b]>=c||"min"===a&&k[b]<=c)c=k[b],e=b;return e}d.seriesType("aroon","sma",{params:{period:25},marker:{enabled:!1},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eAroon Up: {point.y}\x3cbr/\x3eAroon Down: {point.aroonDown}\x3cbr/\x3e'},
25
- aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}},d.merge(m,{nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y",linesApiNames:["aroonDown"],getValues:function(k,a){a=a.period;var c=k.xData,e=(k=k.yData)?k.length:0,b=[],g=[],r=[],u,n,p;for(p=a-1;p<e;p++)u=k.slice(p-a+1,p+2),n=q(u.map(function(b){return d.pick(b[2],b)}),"min"),u=q(u.map(function(b){return d.pick(b[1],b)}),"max"),u=u/a*100,n=n/a*100,c[p+1]&&(b.push([c[p+1],u,n]),g.push(c[p+1]),r.push([u,
26
- n]));return{values:b,xData:g,yData:r}}}))});t(f,"indicators/aroon-oscillator.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"],f["mixins/indicator-required.js"]],function(d,m,q){var k=d.seriesTypes.aroon;d.seriesType("aroonoscillator","aroon",{params:{period:25},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e: {point.y}'}},d.merge(m,{nameBase:"Aroon Oscillator",pointArrayMap:["y"],pointValKey:"y",linesApiNames:[],init:function(){var a=
27
- arguments,c=this;q.isParentLoaded(k,"aroon",c.type,function(e){e.prototype.init.apply(c,a)})},getValues:function(a,c){var e=[],b=[],g=[],r,u;a=k.prototype.getValues.call(this,a,c);for(c=0;c<a.yData.length;c++)r=a.yData[c][0],u=a.yData[c][1],r-=u,e.push([a.xData[c],r]),b.push(a.xData[c]),g.push(r);return{values:e,xData:b,yData:g}}}))});t(f,"indicators/atr.src.js",[f["parts/Globals.js"]],function(d){function m(a,c){return Math.max(a[1]-a[2],c===k?0:Math.abs(a[1]-c[3]),c===k?0:Math.abs(a[2]-c[3]))}var q=
28
- d.isArray;d=d.seriesType;var k;d("atr","sma",{params:{period:14}},{getValues:function(a,c){c=c.period;var e=a.xData,b=(a=a.yData)?a.length:0,g=1,r=0,u=0,k=[],d=[],l=[],h,y,E;E=[[e[0],a[0]]];if(e.length<=c||!q(a[0])||4!==a[0].length)return!1;for(y=1;y<=b;y++)if(E.push([e[y],a[y]]),c<g){h=c;var C=e[y-1],w=m(a[y-1],a[y-2]);h=[C,(r*(h-1)+w)/h];r=h[1];k.push(h);d.push(h[0]);l.push(h[1])}else c===g?(r=u/(y-1),k.push([e[y-1],r]),d.push(e[y-1]),l.push(r)):u+=m(a[y-1],a[y-2]),g++;return{values:k,xData:d,yData:l}}})});
29
- t(f,"indicators/bollinger-bands.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,m){var q=d.merge,k=d.isArray,a=d.seriesTypes.sma;d.seriesType("bb","sma",{params:{period:20,standardDeviation:2,index:3},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eTop: {point.top}\x3cbr/\x3eMiddle: {point.middle}\x3cbr/\x3eBottom: {point.bottom}\x3cbr/\x3e'},
30
- marker:{enabled:!1},dataGrouping:{approximation:"averages"}},d.merge(m,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameComponents:["period","standardDeviation"],linesApiNames:["topLine","bottomLine"],init:function(){a.prototype.init.apply(this,arguments);this.options=q({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},getValues:function(c,e){var b=e.period,g=e.standardDeviation,r=c.xData,u=(c=c.yData)?c.length:0,d=[],p,l,h,y,E=[],
31
- m=[],q,f;if(r.length<b)return!1;q=k(c[0]);for(f=b;f<=u;f++){y=r.slice(f-b,f);l=c.slice(f-b,f);p=a.prototype.getValues.call(this,{xData:y,yData:l},e);y=p.xData[0];p=p.yData[0];h=0;for(var v=l.length,x=0,A;x<v;x++)A=(q?l[x][e.index]:l[x])-p,h+=A*A;h=Math.sqrt(h/(v-1));l=p+g*h;h=p-g*h;d.push([y,l,p,h]);E.push(y);m.push([l,p,h])}return{values:d,xData:E,yData:m}}}))});t(f,"indicators/cci.src.js",[f["parts/Globals.js"]],function(d){function m(d){return d.reduce(function(a,c){return a+c},0)}var q=d.isArray;
32
- d=d.seriesType;d("cci","sma",{params:{period:14}},{getValues:function(d,a){a=a.period;var c=d.xData,e=(d=d.yData)?d.length:0,b=[],g,r=1,u=[],k=[],p=[],l,h;if(c.length<=a||!q(d[0])||4!==d[0].length)return!1;for(;r<a;)l=d[r-1],b.push((l[1]+l[2]+l[3])/3),r++;for(r=a;r<=e;r++){l=d[r-1];l=(l[1]+l[2]+l[3])/3;h=b.push(l);g=b.slice(h-a);h=m(g)/a;var y=g.length,E=0,C;for(C=0;C<y;C++)E+=Math.abs(h-g[C]);g=E/a;l=(l-h)/(.015*g);u.push([c[r-1],l]);k.push(c[r-1]);p.push(l)}return{values:u,xData:k,yData:p}}})});
33
- t(f,"indicators/cmf.src.js",[f["parts/Globals.js"]],function(d){d.seriesType("cmf","sma",{params:{period:14,volumeSeriesID:"volume"}},{nameBase:"Chaikin Money Flow",isValid:function(){var d=this.chart,q=this.options,k=this.linkedParent,d=this.volumeSeries||(this.volumeSeries=d.get(q.params.volumeSeriesID)),a=k&&k.yData&&4===k.yData[0].length;return!!(k&&d&&k.xData&&k.xData.length>=q.params.period&&d.xData&&d.xData.length>=q.params.period&&a)},getValues:function(d,q){return this.isValid()?this.getMoneyFlow(d.xData,
34
- d.yData,this.volumeSeries.yData,q.period):!1},getMoneyFlow:function(d,q,k,a){function c(b,c){var a=b[1],e=b[2];b=b[3];return null!==c&&null!==a&&null!==e&&null!==b&&a!==e?(b-e-(a-b))/(a-e)*c:(y=l,null)}var e=q.length,b=[],g=0,r=0,u=[],n=[],p=[],l,h,y=-1;if(0<a&&a<=e){for(l=0;l<a;l++)b[l]=c(q[l],k[l]),g+=k[l],r+=b[l];u.push(d[l-1]);n.push(l-y>=a&&0!==g?r/g:null);for(p.push([u[0],n[0]]);l<e;l++)b[l]=c(q[l],k[l]),g-=k[l-a],g+=k[l],r-=b[l-a],r+=b[l],h=[d[l],l-y>=a?r/g:null],u.push(h[0]),n.push(h[1]),
35
- p.push([h[0],h[1]])}return{values:p,xData:u,yData:n}}})});t(f,"indicators/dpo.src.js",[f["parts/Globals.js"]],function(d){function m(a,c,e,b,g){c=k(c[e][b],c[e]);return g?q(a-c):q(a+c)}var q=d.correctFloat,k=d.pick;d.seriesType("dpo","sma",{params:{period:21}},{nameBase:"DPO",getValues:function(a,c){var e=c.period;c=c.index;var b=e+Math.floor(e/2+1),g=a.xData||[];a=a.yData||[];var r=a.length,d=[],n=[],p=[],l=0,h,y,E;if(g.length<=b)return!1;for(y=0;y<e-1;y++)l=m(l,a,y,c);for(E=0;E<=r-b;E++)h=E+e-1,
36
- y=E+b-1,l=m(l,a,h,c),h=k(a[y][c],a[y]),h-=l/e,l=m(l,a,E,c,!0),d.push([g[y],h]),n.push(g[y]),p.push(h);return{values:d,xData:n,yData:p}}})});t(f,"indicators/ema.src.js",[f["parts/Globals.js"]],function(d){var m=d.isArray,q=d.seriesType,k=d.correctFloat;q("ema","sma",{params:{index:3,period:9}},{accumulatePeriodPoints:function(a,c,e){for(var b=0,g=0,r;g<a;)r=0>c?e[g]:e[g][c],b+=r,g++;return b},calculateEma:function(a,c,e,b,g,r,d){a=a[e-1];c=0>r?c[e-1]:c[e-1][r];b=void 0===g?d:k(c*b+g*(1-b));return[a,
37
- b]},getValues:function(a,c){var e=c.period,b=a.xData,g=(a=a.yData)?a.length:0,r=2/(e+1),d=[],k=[],p=[],l=-1,h;if(g<e)return!1;m(a[0])&&(l=c.index?c.index:0);for(c=this.accumulatePeriodPoints(e,l,a)/e;e<g+1;e++)h=this.calculateEma(b,a,e,r,h,l,c),d.push(h),k.push(h[0]),p.push(h[1]),h=h[1];return{values:d,xData:k,yData:p}}})});t(f,"indicators/chaikin.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,m){var q=d.seriesTypes.ema,k=d.seriesTypes.ad,a=d.error,c=d.correctFloat;d.seriesType("chaikin",
38
- "ema",{params:{volumeSeriesID:"volume",periods:[3,10]}},{nameBase:"Chaikin Osc",nameComponents:["periods"],init:function(){var c=arguments,b=this;m.isParentLoaded(q,"ema",b.type,function(a){a.prototype.init.apply(b,c)})},getValues:function(e,b){var g=b.periods,r=b.period,d=[],n=[],p=[],l;if(2!==g.length||g[1]<=g[0])return a('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."'),!1;b=k.prototype.getValues.call(this,e,{volumeSeriesID:b.volumeSeriesID,period:r});
39
- if(!b)return!1;e=q.prototype.getValues.call(this,b,{period:g[0]});b=q.prototype.getValues.call(this,b,{period:g[1]});if(!e||!b)return!1;g=g[1]-g[0];for(l=0;l<b.yData.length;l++)r=c(e.yData[l+g]-b.yData[l]),d.push([b.xData[l],r]),n.push(b.xData[l]),p.push(r);return{values:d,xData:n,yData:p}}})});t(f,"indicators/dema.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,m){var q=d.isArray,k=d.seriesTypes.ema,a=d.correctFloat;d.seriesType("dema","ema",{},{init:function(){var c=
40
- arguments,a=this;m.isParentLoaded(k,"ema",a.type,function(b){b.prototype.init.apply(a,c)})},getEMA:function(c,a,b,g,r,d){return k.prototype.calculateEma(d||[],c,void 0===r?1:r,this.chart.series[0].EMApercent,a,void 0===g?-1:g,b)},getValues:function(c,e){var b=e.period,g=2*b,r=c.xData,d=c.yData,n=d?d.length:0,p=-1,l=[],h=[],y=[],E=0,m,w,f=[],v,x;c.EMApercent=2/(b+1);if(n<2*b-1)return!1;q(d[0])&&(p=e.index?e.index:0);c=k.prototype.accumulatePeriodPoints(b,p,d);e=c/b;c=0;for(v=b;v<n+2;v++)v<n+1&&(E=
41
- this.getEMA(d,w,e,p,v)[1],f.push(E)),w=E,v<g?c+=E:(v===g&&(e=c/b),E=f[v-b-1],m=this.getEMA([E],m,e)[1],x=[r[v-2],a(2*E-m)],l.push(x),h.push(x[0]),y.push(x[1]));return{values:l,xData:h,yData:y}}})});t(f,"indicators/tema.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,m){var q=d.isArray,k=d.seriesTypes.ema,a=d.correctFloat;d.seriesType("tema","ema",{},{init:function(){var c=arguments,a=this;m.isParentLoaded(k,"ema",a.type,function(b){b.prototype.init.apply(a,c)})},getEMA:function(c,
42
- a,b,g,r,d){return k.prototype.calculateEma(d||[],c,void 0===r?1:r,this.chart.series[0].EMApercent,a,void 0===g?-1:g,b)},getPoint:function(c,e,b,g){return[c[g-3],a(3*b.level1-3*b.level2+b.level3)]},getValues:function(c,a){var b=a.period,g=2*b,e=3*b,d=c.xData,n=c.yData,p=n?n.length:0,l=-1,h=[],y=[],E=[],m,w,f=[],v=[],x,A,B={};c.EMApercent=2/(b+1);if(p<3*b-2)return!1;q(n[0])&&(l=a.index?a.index:0);c=k.prototype.accumulatePeriodPoints(b,l,n);a=c/b;c=0;for(x=b;x<p+3;x++)if(x<p+1&&(B.level1=this.getEMA(n,
43
- m,a,l,x)[1],f.push(B.level1)),m=B.level1,x<g)c+=B.level1;else if(x===g&&(a=c/b,c=0),B.level1=f[x-b-1],B.level2=this.getEMA([B.level1],w,a)[1],v.push(B.level2),w=B.level2,x<e)c+=B.level2;else{x===e&&(a=c/b);x===p+1&&(B.level1=f[x-b-1],B.level2=this.getEMA([B.level1],w,a)[1],v.push(B.level2));B.level1=f[x-b-2];B.level2=v[x-2*b-1];B.level3=this.getEMA([B.level2],B.prevLevel3,a)[1];if(A=this.getPoint(d,e,B,x))h.push(A),y.push(A[0]),E.push(A[1]);B.prevLevel3=B.level3}return{values:h,xData:y,yData:E}}})});
44
- t(f,"indicators/trix.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,m){var q=d.correctFloat,k=d.seriesTypes.tema;d.seriesType("trix","tema",{},{init:function(){var a=arguments,c=this;m.isParentLoaded(k,"tema",c.type,function(e){e.prototype.init.apply(c,a)})},getPoint:function(a,c,e,b){if(b>c)var g=[a[b-3],0!==e.prevLevel3?q(e.level3-e.prevLevel3)/e.prevLevel3*100:null];return g}})});t(f,"indicators/apo.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],
45
- function(d,m){var q=d.seriesTypes.ema,k=d.error;d.seriesType("apo","ema",{params:{periods:[10,20]}},{nameBase:"APO",nameComponents:["periods"],init:function(){var a=arguments,c=this;m.isParentLoaded(q,"ema",c.type,function(e){e.prototype.init.apply(c,a)})},getValues:function(a,c){var e=c.periods,b=c.index;c=[];var g=[],r=[],d,n;if(2!==e.length||e[1]<=e[0])return k('Error: "APO requires two periods. Notice, first period should be lower than the second one."'),!1;d=q.prototype.getValues.call(this,a,
46
- {index:b,period:e[0]});a=q.prototype.getValues.call(this,a,{index:b,period:e[1]});if(!d||!a)return!1;e=e[1]-e[0];for(n=0;n<a.yData.length;n++)b=d.yData[n+e]-a.yData[n],c.push([a.xData[n],b]),g.push(a.xData[n]),r.push(b);return{values:c,xData:g,yData:r}}})});t(f,"indicators/ichimoku-kinko-hyo.src.js",[f["parts/Globals.js"]],function(d){function m(b){return b.reduce(function(b,c){return Math.max(b,c[1])},-Infinity)}function q(b){return b.reduce(function(b,c){return Math.min(b,c[2])},Infinity)}function k(b){return{high:m(b),
47
- low:q(b)}}function a(c){var a,e,h,g,d;c.series.forEach(function(c){if(c.xData)for(g=c.xData,d=e=c.xIncrement?1:g.length-1;0<d;d--)if(h=g[d]-g[d-1],a===b||h<a)a=h});return a}function c(b,c,a,e){if(b&&c&&a&&e){var g=c.plotX-b.plotX;c=c.plotY-b.plotY;var h=e.plotX-a.plotX;e=e.plotY-a.plotY;var d=b.plotX-a.plotX,r=b.plotY-a.plotY;a=(-c*d+g*r)/(-h*c+g*e);h=(h*r-e*d)/(-h*c+g*e);if(0<=a&&1>=a&&0<=h&&1>=h)return{plotX:b.plotX+h*g,plotY:b.plotY+h*c}}return!1}function e(b){var c=b.indicator;c.points=b.points;
48
- c.nextPoints=b.nextPoints;c.color=b.color;c.options=r(b.options.senkouSpan.styles,b.gap);c.graph=b.graph;c.fillGraph=!0;l.prototype.drawGraph.call(c)}var b,g=d.seriesType,r=d.merge,u=d.color,n=d.isArray,p=d.defined,l=d.seriesTypes.sma;d.approximations["ichimoku-averages"]=function(){var b=[],c;[].forEach.call(arguments,function(a,e){b.push(d.approximations.average(a));c=!c&&void 0===b[e]});return c?void 0:b};g("ikh","sma",{params:{period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},
14
+ k.points||[],c=(k.xData||[]).length,a=k.getValues(k.linkedParent,k.options.params)||{values:[],xData:[],yData:[]},e=[],g=!0,r,l;if(c&&!k.hasGroupedData&&k.visible&&k.points)if(k.cropped){k.xAxis&&(r=k.xAxis.min,l=k.xAxis.max);c=k.cropData(a.xData,a.yData,r,l);for(r=0;r<c.xData.length;r++)e.push([c.xData[r]].concat(d.splat(c.yData[r])));c=a.xData.indexOf(k.xData[0]);r=a.xData.indexOf(k.xData[k.xData.length-1]);-1===c&&r===a.xData.length-2&&e[0][0]===b[0].x&&e.shift();k.updateData(e)}else a.xData.length!==
15
+ c-1&&a.xData.length!==c+1&&(g=!1,k.updateData(a.values));g&&(k.xData=a.xData,k.yData=a.yData,k.options.data=a.values);!1===k.bindTo.series&&(delete k.processedXData,k.isDirty=!0,k.redraw());k.isDirtyData=!1}var k=this,r=k.requireIndicators();if(!r.allLoaded)return h(t(k.type,r.needed));a.prototype.init.call(k,b,c);b.linkSeries();k.dataEventsToUnbind=[];if(!k.linkedParent)return h("Series "+k.options.linkedTo+" not found! Check `linkedTo`.",!1,b);k.dataEventsToUnbind.push(e(k.bindTo.series?k.linkedParent:
16
+ k.linkedParent.xAxis,k.bindTo.eventName,g));if("init"===k.calculateOn)g();else var m=e(k.chart,k.calculateOn,function(){g();m()});return k},getName:function(){var b=this.name,c=[];b||((this.nameComponents||[]).forEach(function(b,a){c.push(this.options.params[b]+q(this.nameSuffixes[a],""))},this),b=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+c.join(", ")+")":""));return b},getValues:function(b,a){var e=a.period,k=b.xData;b=b.yData;var g=b.length,r=0,t=0,h=[],m=[],d=[],p=-1,n;
17
+ if(k.length<e)return!1;for(c(b[0])&&(p=a.index?a.index:0);r<e-1;)t+=0>p?b[r]:b[r][p],r++;for(a=r;a<g;a++)t+=0>p?b[a]:b[a][p],n=[k[a],t/e],h.push(n),m.push(n[0]),d.push(n[1]),t-=0>p?b[a-r]:b[a-r][p];return{values:h,xData:m,yData:d}},destroy:function(){this.dataEventsToUnbind.forEach(function(b){b()});a.prototype.destroy.call(this)}})});u(f,"indicators/accumulation-distribution.src.js",[f["parts/Globals.js"]],function(d){var n=d.seriesType;n("ad","sma",{params:{volumeSeriesID:"volume"}},{nameComponents:!1,
18
+ nameBase:"Accumulation/Distribution",getValues:function(n,h){var a=h.period,c=n.xData,e=n.yData,b=h.volumeSeriesID,g=n.chart.get(b);h=g&&g.yData;var r=e?e.length:0,t=[],m=[],p=[];if(c.length<=a&&r&&4!==e[0].length)return!1;if(!g)return d.error("Series "+b+" not found! Check `volumeSeriesID`.",!0,n.chart);for(;a<r;a++){n=t.length;var b=e[a][1],g=e[a][2],l=e[a][3],k=h[a],b=[c[a],l===b&&l===g||b===g?0:(2*l-g-b)/(b-g)*k];0<n&&(b[1]+=t[n-1][1]);t.push(b);m.push(b[0]);p.push(b[1])}return{values:t,xData:m,
19
+ yData:p}}})});u(f,"indicators/ao.src.js",[f["parts/Globals.js"]],function(d){var n=d.correctFloat,q=d.isArray;d.seriesType("ao","sma",{greaterBarColor:"#06B535",lowerBarColor:"#F21313",threshold:0,groupPadding:.2,pointPadding:.2,states:{hover:{halo:{size:0}}}},{nameBase:"AO",nameComponents:!1,markerAttribs:d.noop,getColumnMetrics:d.seriesTypes.column.prototype.getColumnMetrics,crispCol:d.seriesTypes.column.prototype.crispCol,translate:d.seriesTypes.column.prototype.translate,drawPoints:d.seriesTypes.column.prototype.drawPoints,
20
+ drawGraph:function(){var h=this.options,a=this.points,c=h.greaterBarColor,h=h.lowerBarColor,e=a[0];if(!this.userOptions.color&&e)for(e.color=c,e=1;e<a.length;e++)a[e].color=a[e].y>a[e-1].y?c:a[e].y<a[e-1].y?h:a[e-1].color},getValues:function(h){var a=h.xData||[];h=h.yData||[];var c=h.length,e=[],b=[],g=[],r=0,t=0,m,p,l;if(34>=a.length||!q(h[0])||4!==h[0].length)return!1;for(l=0;33>l;l++)m=(h[l][1]+h[l][2])/2,29<=l&&(r=n(r+m)),t=n(t+m);for(l=33;l<c;l++)m=(h[l][1]+h[l][2])/2,r=n(r+m),t=n(t+m),m=r/5,
21
+ p=t/34,m=n(m-p),e.push([a[l],m]),b.push(a[l]),g.push(m),m=l+1-5,p=l+1-34,r=n(r-(h[m][1]+h[m][2])/2),t=n(t-(h[p][1]+h[p][2])/2);return{values:e,xData:b,yData:g}}})});u(f,"mixins/multipe-lines.js",[f["parts/Globals.js"]],function(d){var n=d.each,q=d.merge,h=d.error,a=d.defined,c=d.seriesTypes.sma;return{pointArrayMap:["top","bottom"],pointValKey:"top",linesApiNames:["bottomLine"],getTranslatedLinesNames:function(c){var b=[];n(this.pointArrayMap,function(a){a!==c&&b.push("plot"+a.charAt(0).toUpperCase()+
22
+ a.slice(1))});return b},toYData:function(c){var b=[];n(this.pointArrayMap,function(a){b.push(c[a])});return b},translate:function(){var a=this,b=a.pointArrayMap,g=[],r,g=a.getTranslatedLinesNames();c.prototype.translate.apply(a,arguments);n(a.points,function(c){n(b,function(b,e){r=c[b];null!==r&&(c[g[e]]=a.yAxis.toPixels(r,!0))})})},drawGraph:function(){var e=this,b=e.linesApiNames,g=e.points,r=g.length,t=e.options,m=e.graph,p={options:{gapSize:t.gapSize}},l=[],k=e.getTranslatedLinesNames(e.pointValKey),
23
+ y;n(k,function(b,c){for(l[c]=[];r--;)y=g[r],l[c].push({x:y.x,plotX:y.plotX,plotY:y[b],isNull:!a(y[b])});r=g.length});n(b,function(b,a){l[a]?(e.points=l[a],t[b]?e.options=q(t[b].styles,p):h('Error: "There is no '+b+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names." at mixin/multiple-line.js:34'),e.graph=e["graph"+b],c.prototype.drawGraph.call(e),e["graph"+b]=e.graph):h('Error: "'+b+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")});
24
+ e.points=g;e.options=t;e.graph=m;c.prototype.drawGraph.call(e)}}});u(f,"indicators/aroon.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,n){function q(h,a){var c=h[0],e=0,b;for(b=1;b<h.length;b++)if("max"===a&&h[b]>=c||"min"===a&&h[b]<=c)c=h[b],e=b;return e}d.seriesType("aroon","sma",{params:{period:25},marker:{enabled:!1},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eAroon Up: {point.y}\x3cbr/\x3eAroon Down: {point.aroonDown}\x3cbr/\x3e'},
25
+ aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}},d.merge(n,{nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y",linesApiNames:["aroonDown"],getValues:function(h,a){a=a.period;var c=h.xData,e=(h=h.yData)?h.length:0,b=[],g=[],r=[],t,m,p;for(p=a-1;p<e;p++)t=h.slice(p-a+1,p+2),m=q(t.map(function(b){return d.pick(b[2],b)}),"min"),t=q(t.map(function(b){return d.pick(b[1],b)}),"max"),t=t/a*100,m=m/a*100,c[p+1]&&(b.push([c[p+1],t,m]),g.push(c[p+1]),r.push([t,
26
+ m]));return{values:b,xData:g,yData:r}}}))});u(f,"indicators/aroon-oscillator.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"],f["mixins/indicator-required.js"]],function(d,n,q){var h=d.seriesTypes.aroon;d.seriesType("aroonoscillator","aroon",{params:{period:25},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e: {point.y}'}},d.merge(n,{nameBase:"Aroon Oscillator",pointArrayMap:["y"],pointValKey:"y",linesApiNames:[],init:function(){var a=
27
+ arguments,c=this;q.isParentLoaded(h,"aroon",c.type,function(e){e.prototype.init.apply(c,a)})},getValues:function(a,c){var e=[],b=[],g=[],r,t;a=h.prototype.getValues.call(this,a,c);for(c=0;c<a.yData.length;c++)r=a.yData[c][0],t=a.yData[c][1],r-=t,e.push([a.xData[c],r]),b.push(a.xData[c]),g.push(r);return{values:e,xData:b,yData:g}}}))});u(f,"indicators/atr.src.js",[f["parts/Globals.js"]],function(d){function n(a,c){return Math.max(a[1]-a[2],c===h?0:Math.abs(a[1]-c[3]),c===h?0:Math.abs(a[2]-c[3]))}var q=
28
+ d.isArray;d=d.seriesType;var h;d("atr","sma",{params:{period:14}},{getValues:function(a,c){c=c.period;var e=a.xData,b=(a=a.yData)?a.length:0,g=1,r=0,t=0,h=[],p=[],l=[],k,y,d;d=[[e[0],a[0]]];if(e.length<=c||!q(a[0])||4!==a[0].length)return!1;for(y=1;y<=b;y++)if(d.push([e[y],a[y]]),c<g){k=c;var C=e[y-1],v=n(a[y-1],a[y-2]);k=[C,(r*(k-1)+v)/k];r=k[1];h.push(k);p.push(k[0]);l.push(k[1])}else c===g?(r=t/(y-1),h.push([e[y-1],r]),p.push(e[y-1]),l.push(r)):t+=n(a[y-1],a[y-2]),g++;return{values:h,xData:p,yData:l}}})});
29
+ u(f,"indicators/bollinger-bands.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,n){var q=d.merge,h=d.isArray,a=d.seriesTypes.sma;d.seriesType("bb","sma",{params:{period:20,standardDeviation:2,index:3},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eTop: {point.top}\x3cbr/\x3eMiddle: {point.middle}\x3cbr/\x3eBottom: {point.bottom}\x3cbr/\x3e'},
30
+ marker:{enabled:!1},dataGrouping:{approximation:"averages"}},d.merge(n,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameComponents:["period","standardDeviation"],linesApiNames:["topLine","bottomLine"],init:function(){a.prototype.init.apply(this,arguments);this.options=q({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},getValues:function(c,e){var b=e.period,g=e.standardDeviation,r=c.xData,t=(c=c.yData)?c.length:0,m=[],d,l,k,y,E=[],
31
+ n=[],q,f;if(r.length<b)return!1;q=h(c[0]);for(f=b;f<=t;f++){y=r.slice(f-b,f);l=c.slice(f-b,f);d=a.prototype.getValues.call(this,{xData:y,yData:l},e);y=d.xData[0];d=d.yData[0];k=0;for(var w=l.length,x=0,A;x<w;x++)A=(q?l[x][e.index]:l[x])-d,k+=A*A;k=Math.sqrt(k/(w-1));l=d+g*k;k=d-g*k;m.push([y,l,d,k]);E.push(y);n.push([l,d,k])}return{values:m,xData:E,yData:n}}}))});u(f,"indicators/cci.src.js",[f["parts/Globals.js"]],function(d){function n(h){return h.reduce(function(a,c){return a+c},0)}var q=d.isArray;
32
+ d=d.seriesType;d("cci","sma",{params:{period:14}},{getValues:function(h,a){a=a.period;var c=h.xData,e=(h=h.yData)?h.length:0,b=[],g,r=1,t=[],d=[],p=[],l,k;if(c.length<=a||!q(h[0])||4!==h[0].length)return!1;for(;r<a;)l=h[r-1],b.push((l[1]+l[2]+l[3])/3),r++;for(r=a;r<=e;r++){l=h[r-1];l=(l[1]+l[2]+l[3])/3;k=b.push(l);g=b.slice(k-a);k=n(g)/a;var y=g.length,E=0,C;for(C=0;C<y;C++)E+=Math.abs(k-g[C]);g=E/a;l=(l-k)/(.015*g);t.push([c[r-1],l]);d.push(c[r-1]);p.push(l)}return{values:t,xData:d,yData:p}}})});
33
+ u(f,"indicators/cmf.src.js",[f["parts/Globals.js"]],function(d){d.seriesType("cmf","sma",{params:{period:14,volumeSeriesID:"volume"}},{nameBase:"Chaikin Money Flow",isValid:function(){var d=this.chart,q=this.options,h=this.linkedParent,d=this.volumeSeries||(this.volumeSeries=d.get(q.params.volumeSeriesID)),a=h&&h.yData&&4===h.yData[0].length;return!!(h&&d&&h.xData&&h.xData.length>=q.params.period&&d.xData&&d.xData.length>=q.params.period&&a)},getValues:function(d,q){return this.isValid()?this.getMoneyFlow(d.xData,
34
+ d.yData,this.volumeSeries.yData,q.period):!1},getMoneyFlow:function(d,q,h,a){function c(b,c){var a=b[1],e=b[2];b=b[3];return null!==c&&null!==a&&null!==e&&null!==b&&a!==e?(b-e-(a-b))/(a-e)*c:(y=l,null)}var e=q.length,b=[],g=0,r=0,t=[],m=[],p=[],l,k,y=-1;if(0<a&&a<=e){for(l=0;l<a;l++)b[l]=c(q[l],h[l]),g+=h[l],r+=b[l];t.push(d[l-1]);m.push(l-y>=a&&0!==g?r/g:null);for(p.push([t[0],m[0]]);l<e;l++)b[l]=c(q[l],h[l]),g-=h[l-a],g+=h[l],r-=b[l-a],r+=b[l],k=[d[l],l-y>=a?r/g:null],t.push(k[0]),m.push(k[1]),
35
+ p.push([k[0],k[1]])}return{values:p,xData:t,yData:m}}})});u(f,"indicators/dpo.src.js",[f["parts/Globals.js"]],function(d){function n(a,c,e,b,g){c=h(c[e][b],c[e]);return g?q(a-c):q(a+c)}var q=d.correctFloat,h=d.pick;d.seriesType("dpo","sma",{params:{period:21}},{nameBase:"DPO",getValues:function(a,c){var e=c.period;c=c.index;var b=e+Math.floor(e/2+1),g=a.xData||[];a=a.yData||[];var r=a.length,d=[],m=[],p=[],l=0,k,y,E;if(g.length<=b)return!1;for(y=0;y<e-1;y++)l=n(l,a,y,c);for(E=0;E<=r-b;E++)k=E+e-1,
36
+ y=E+b-1,l=n(l,a,k,c),k=h(a[y][c],a[y]),k-=l/e,l=n(l,a,E,c,!0),d.push([g[y],k]),m.push(g[y]),p.push(k);return{values:d,xData:m,yData:p}}})});u(f,"indicators/ema.src.js",[f["parts/Globals.js"]],function(d){var n=d.isArray,q=d.seriesType,h=d.correctFloat;q("ema","sma",{params:{index:3,period:9}},{accumulatePeriodPoints:function(a,c,e){for(var b=0,g=0,r;g<a;)r=0>c?e[g]:e[g][c],b+=r,g++;return b},calculateEma:function(a,c,e,b,g,r,d){a=a[e-1];c=0>r?c[e-1]:c[e-1][r];b=void 0===g?d:h(c*b+g*(1-b));return[a,
37
+ b]},getValues:function(a,c){var e=c.period,b=a.xData,g=(a=a.yData)?a.length:0,r=2/(e+1),d=[],h=[],p=[],l=-1,k;if(g<e)return!1;n(a[0])&&(l=c.index?c.index:0);for(c=this.accumulatePeriodPoints(e,l,a)/e;e<g+1;e++)k=this.calculateEma(b,a,e,r,k,l,c),d.push(k),h.push(k[0]),p.push(k[1]),k=k[1];return{values:d,xData:h,yData:p}}})});u(f,"indicators/chaikin.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,n){var q=d.seriesTypes.ema,h=d.seriesTypes.ad,a=d.error,c=d.correctFloat;d.seriesType("chaikin",
38
+ "ema",{params:{volumeSeriesID:"volume",periods:[3,10]}},{nameBase:"Chaikin Osc",nameComponents:["periods"],init:function(){var c=arguments,b=this;n.isParentLoaded(q,"ema",b.type,function(a){a.prototype.init.apply(b,c)})},getValues:function(e,b){var g=b.periods,r=b.period,d=[],m=[],p=[],l;if(2!==g.length||g[1]<=g[0])return a('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."'),!1;b=h.prototype.getValues.call(this,e,{volumeSeriesID:b.volumeSeriesID,period:r});
39
+ if(!b)return!1;e=q.prototype.getValues.call(this,b,{period:g[0]});b=q.prototype.getValues.call(this,b,{period:g[1]});if(!e||!b)return!1;g=g[1]-g[0];for(l=0;l<b.yData.length;l++)r=c(e.yData[l+g]-b.yData[l]),d.push([b.xData[l],r]),m.push(b.xData[l]),p.push(r);return{values:d,xData:m,yData:p}}})});u(f,"indicators/dema.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,n){var q=d.isArray,h=d.seriesTypes.ema,a=d.correctFloat;d.seriesType("dema","ema",{},{init:function(){var c=
40
+ arguments,a=this;n.isParentLoaded(h,"ema",a.type,function(b){b.prototype.init.apply(a,c)})},getEMA:function(c,a,b,g,r,d){return h.prototype.calculateEma(d||[],c,void 0===r?1:r,this.chart.series[0].EMApercent,a,void 0===g?-1:g,b)},getValues:function(c,e){var b=e.period,g=2*b,r=c.xData,d=c.yData,m=d?d.length:0,p=-1,l=[],k=[],y=[],E=0,n,v,f=[],w,x;c.EMApercent=2/(b+1);if(m<2*b-1)return!1;q(d[0])&&(p=e.index?e.index:0);c=h.prototype.accumulatePeriodPoints(b,p,d);e=c/b;c=0;for(w=b;w<m+2;w++)w<m+1&&(E=
41
+ this.getEMA(d,v,e,p,w)[1],f.push(E)),v=E,w<g?c+=E:(w===g&&(e=c/b),E=f[w-b-1],n=this.getEMA([E],n,e)[1],x=[r[w-2],a(2*E-n)],l.push(x),k.push(x[0]),y.push(x[1]));return{values:l,xData:k,yData:y}}})});u(f,"indicators/tema.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,n){var q=d.isArray,h=d.seriesTypes.ema,a=d.correctFloat;d.seriesType("tema","ema",{},{init:function(){var c=arguments,a=this;n.isParentLoaded(h,"ema",a.type,function(b){b.prototype.init.apply(a,c)})},getEMA:function(c,
42
+ a,b,g,r,d){return h.prototype.calculateEma(d||[],c,void 0===r?1:r,this.chart.series[0].EMApercent,a,void 0===g?-1:g,b)},getPoint:function(c,e,b,g){return[c[g-3],a(3*b.level1-3*b.level2+b.level3)]},getValues:function(c,a){var b=a.period,g=2*b,e=3*b,d=c.xData,m=c.yData,p=m?m.length:0,l=-1,k=[],y=[],E=[],n,v,f=[],w=[],x,A,B={};c.EMApercent=2/(b+1);if(p<3*b-2)return!1;q(m[0])&&(l=a.index?a.index:0);c=h.prototype.accumulatePeriodPoints(b,l,m);a=c/b;c=0;for(x=b;x<p+3;x++)if(x<p+1&&(B.level1=this.getEMA(m,
43
+ n,a,l,x)[1],f.push(B.level1)),n=B.level1,x<g)c+=B.level1;else if(x===g&&(a=c/b,c=0),B.level1=f[x-b-1],B.level2=this.getEMA([B.level1],v,a)[1],w.push(B.level2),v=B.level2,x<e)c+=B.level2;else{x===e&&(a=c/b);x===p+1&&(B.level1=f[x-b-1],B.level2=this.getEMA([B.level1],v,a)[1],w.push(B.level2));B.level1=f[x-b-2];B.level2=w[x-2*b-1];B.level3=this.getEMA([B.level2],B.prevLevel3,a)[1];if(A=this.getPoint(d,e,B,x))k.push(A),y.push(A[0]),E.push(A[1]);B.prevLevel3=B.level3}return{values:k,xData:y,yData:E}}})});
44
+ u(f,"indicators/trix.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,n){var q=d.correctFloat,h=d.seriesTypes.tema;d.seriesType("trix","tema",{},{init:function(){var a=arguments,c=this;n.isParentLoaded(h,"tema",c.type,function(e){e.prototype.init.apply(c,a)})},getPoint:function(a,c,e,b){if(b>c)var g=[a[b-3],0!==e.prevLevel3?q(e.level3-e.prevLevel3)/e.prevLevel3*100:null];return g}})});u(f,"indicators/apo.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],
45
+ function(d,n){var q=d.seriesTypes.ema,h=d.error;d.seriesType("apo","ema",{params:{periods:[10,20]}},{nameBase:"APO",nameComponents:["periods"],init:function(){var a=arguments,c=this;n.isParentLoaded(q,"ema",c.type,function(e){e.prototype.init.apply(c,a)})},getValues:function(a,c){var e=c.periods,b=c.index;c=[];var g=[],r=[],d,m;if(2!==e.length||e[1]<=e[0])return h('Error: "APO requires two periods. Notice, first period should be lower than the second one."'),!1;d=q.prototype.getValues.call(this,a,
46
+ {index:b,period:e[0]});a=q.prototype.getValues.call(this,a,{index:b,period:e[1]});if(!d||!a)return!1;e=e[1]-e[0];for(m=0;m<a.yData.length;m++)b=d.yData[m+e]-a.yData[m],c.push([a.xData[m],b]),g.push(a.xData[m]),r.push(b);return{values:c,xData:g,yData:r}}})});u(f,"indicators/ichimoku-kinko-hyo.src.js",[f["parts/Globals.js"]],function(d){function n(b){return b.reduce(function(b,c){return Math.max(b,c[1])},-Infinity)}function q(b){return b.reduce(function(b,c){return Math.min(b,c[2])},Infinity)}function h(b){return{high:n(b),
47
+ low:q(b)}}function a(c){var a,e,k,g,r;c.series.forEach(function(c){if(c.xData)for(g=c.xData,r=e=c.xIncrement?1:g.length-1;0<r;r--)if(k=g[r]-g[r-1],a===b||k<a)a=k});return a}function c(b,c,a,e){if(b&&c&&a&&e){var g=c.plotX-b.plotX;c=c.plotY-b.plotY;var k=e.plotX-a.plotX;e=e.plotY-a.plotY;var r=b.plotX-a.plotX,d=b.plotY-a.plotY;a=(-c*r+g*d)/(-k*c+g*e);k=(k*d-e*r)/(-k*c+g*e);if(0<=a&&1>=a&&0<=k&&1>=k)return{plotX:b.plotX+k*g,plotY:b.plotY+k*c}}return!1}function e(b){var c=b.indicator;c.points=b.points;
48
+ c.nextPoints=b.nextPoints;c.color=b.color;c.options=r(b.options.senkouSpan.styles,b.gap);c.graph=b.graph;c.fillGraph=!0;l.prototype.drawGraph.call(c)}var b,g=d.seriesType,r=d.merge,t=d.color,m=d.isArray,p=d.defined,l=d.seriesTypes.sma;d.approximations["ichimoku-averages"]=function(){var b=[],c;[].forEach.call(arguments,function(a,e){b.push(d.approximations.average(a));c=!c&&void 0===b[e]});return c?void 0:b};g("ikh","sma",{params:{period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},
49
49
  tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eTENKAN SEN: {point.tenkanSen:.3f}\x3cbr/\x3eKIJUN SEN: {point.kijunSen:.3f}\x3cbr/\x3eCHIKOU SPAN: {point.chikouSpan:.3f}\x3cbr/\x3eSENKOU SPAN A: {point.senkouSpanA:.3f}\x3cbr/\x3eSENKOU SPAN B: {point.senkouSpanB:.3f}\x3cbr/\x3e'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},
50
50
  senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}},{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"],init:function(){l.prototype.init.apply(this,arguments);this.options=r({tenkanLine:{styles:{lineColor:this.color}},kijunLine:{styles:{lineColor:this.color}},
51
- chikouLine:{styles:{lineColor:this.color}},senkouSpanA:{styles:{lineColor:this.color,fill:u(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:u(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:u(this.color).setOpacity(.2).get()}}},this.options)},toYData:function(b){return[b.tenkanSen,b.kijunSen,b.chikouSpan,b.senkouSpanA,b.senkouSpanB]},translate:function(){var b=this;l.prototype.translate.apply(b);b.points.forEach(function(c){b.pointArrayMap.forEach(function(a){p(c[a])&&
52
- (c["plot"+a]=b.yAxis.toPixels(c[a],!0),c.plotY=c["plot"+a],c.tooltipPos=[c.plotX,c["plot"+a]],c.isNull=!1)})})},drawGraph:function(){var b=this,a=b.points,g=a.length,k=b.options,u=b.graph,n=b.color,m={options:{gapSize:k.gapSize}},q=b.pointArrayMap.length,f=[[],[],[],[],[],[]],B={tenkanLine:f[0],kijunLine:f[1],chikouLine:f[2],senkouSpanA:f[3],senkouSpanB:f[4],senkouSpan:f[5]},t=[],z=b.options.senkouSpan,M=z.color||z.styles.fill,L=z.negativeColor,D=[[],[]],J=[[],[]],N=0,F,I,O,K;for(b.ikhMap=B;g--;){F=
53
- a[g];for(I=0;I<q;I++)z=b.pointArrayMap[I],p(F[z])&&f[I].push({plotX:F.plotX,plotY:F["plot"+z],isNull:!1});L&&g!==a.length-1&&(z=B.senkouSpanB.length-1,F=c(B.senkouSpanA[z-1],B.senkouSpanA[z],B.senkouSpanB[z-1],B.senkouSpanB[z]),I={plotX:F.plotX,plotY:F.plotY,isNull:!1,intersectPoint:!0},F&&(B.senkouSpanA.splice(z,0,I),B.senkouSpanB.splice(z,0,I),t.push(z)))}d.objectEach(B,function(c,a){k[a]&&"senkouSpan"!==a&&(b.points=f[N],b.options=r(k[a].styles,m),b.graph=b["graph"+a],b.fillGraph=!1,b.color=n,
54
- l.prototype.drawGraph.call(b),b["graph"+a]=b.graph);N++});b.graphCollection&&b.graphCollection.forEach(function(c){b[c].destroy();delete b[c]});b.graphCollection=[];if(L&&B.senkouSpanA[0]&&B.senkouSpanB[0]){t.unshift(0);t.push(B.senkouSpanA.length-1);for(q=0;q<t.length-1;q++){z=t[q];F=t[q+1];g=B.senkouSpanB.slice(z,F+1);z=B.senkouSpanA.slice(z,F+1);if(1<=Math.floor(g.length/2))if(F=Math.floor(g.length/2),g[F].plotY===z[F].plotY){for(K=I=F=0;K<g.length;K++)F+=g[K].plotY,I+=z[K].plotY;F=F>I?0:1}else F=
55
- g[F].plotY>z[F].plotY?0:1;else F=g[0].plotY>z[0].plotY?0:1;D[F]=D[F].concat(g);J[F]=J[F].concat(z)}["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(c,a){D[a].length&&J[a].length&&(O=0===a?M:L,e({indicator:b,points:D[a],nextPoints:J[a],color:O,options:k,gap:m,graph:b[c]}),b[c]=b.graph,b.graphCollection.push(c))})}else e({indicator:b,points:B.senkouSpanB,nextPoints:B.senkouSpanA,color:M,options:k,gap:m,graph:b.graphsenkouSpan}),b.graphsenkouSpan=b.graph;delete b.nextPoints;delete b.fillGraph;
56
- b.points=a;b.options=k;b.graph=u},getGraphPath:function(b){var c,a,g=[];b=b||this.points;if(this.fillGraph&&this.nextPoints){a=l.prototype.getGraphPath.call(this,this.nextPoints);a[0]="L";c=l.prototype.getGraphPath.call(this,b);a=a.slice(0,c.length);for(var e=a.length-1;0<e;e-=3)g.push(a[e-2],a[e-1],a[e]);c=c.concat(g)}else c=l.prototype.getGraphPath.apply(this,arguments);return c},getValues:function(c,g){var e=g.period,d=g.periodTenkan;g=g.periodSenkouSpanB;var r=c.xData,h=c.yData,l=h&&h.length||
57
- 0;c=a(c.xAxis);var u=[],p=[],y,m,q,f,t,D,J;if(r.length<=e||!n(h[0])||4!==h[0].length)return!1;y=r[0]-e*c;for(D=0;D<e;D++)p.push(y+D*c);for(D=0;D<l;D++)D>=d&&(q=h.slice(D-d,D),q=k(q),q=(q.high+q.low)/2),D>=e&&(f=h.slice(D-e,D),f=k(f),f=(f.high+f.low)/2,J=(q+f)/2),D>=g&&(t=h.slice(D-g,D),t=k(t),t=(t.high+t.low)/2),y=h[D][3],m=r[D],u[D]===b&&(u[D]=[]),u[D+e]===b&&(u[D+e]=[]),u[D+e][0]=q,u[D+e][1]=f,u[D+e][2]=b,u[D][2]=y,D<=e&&(u[D+e][3]=b,u[D+e][4]=b),u[D+2*e]===b&&(u[D+2*e]=[]),u[D+2*e][3]=J,u[D+2*
58
- e][4]=t,p.push(m);for(D=1;D<=e;D++)p.push(m+D*c);return{values:u,xData:p,yData:u}}})});t(f,"indicators/keltner-channels.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,m){var q=d.seriesTypes.sma,k=d.seriesTypes.ema,a=d.seriesTypes.atr,c=d.merge,e=d.correctFloat;d.seriesType("keltnerchannels","sma",{params:{period:20,periodATR:10,multiplierATR:2},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eUpper Channel: {point.top}\x3cbr/\x3eEMA({series.options.params.period}): {point.middle}\x3cbr/\x3eLower Channel: {point.bottom}\x3cbr/\x3e'},
59
- marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1},c(m,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Keltner Channels",nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],requiredIndicators:["ema","atr"],init:function(){q.prototype.init.apply(this,arguments);this.options=c({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},getValues:function(b,c){var g=c.period,
60
- d=c.periodATR,n=c.multiplierATR,p=b.yData,p=p?p.length:0,l=[],h,y,m;c=k.prototype.getValues(b,{period:g,index:c.index});var q=a.prototype.getValues(b,{period:d}),f=[],t=[],v;if(p<g)return!1;for(v=g;v<=p;v++)h=c.values[v-g],y=q.values[v-d],m=h[0],b=e(h[1]+n*y[1]),y=e(h[1]-n*y[1]),h=h[1],l.push([m,b,h,y]),f.push(m),t.push([b,h,y]);return{values:l,xData:f,yData:t}}}))});t(f,"indicators/macd.src.js",[f["parts/Globals.js"]],function(d){var m=d.seriesType,q=d.merge,k=d.defined,a=d.seriesTypes.sma,c=d.seriesTypes.ema,
61
- e=d.correctFloat;m("macd","sma",{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eValue: {point.MACD}\x3cbr/\x3eSignal: {point.signal}\x3cbr/\x3eHistogram: {point.y}\x3cbr/\x3e'},
51
+ chikouLine:{styles:{lineColor:this.color}},senkouSpanA:{styles:{lineColor:this.color,fill:t(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:t(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:t(this.color).setOpacity(.2).get()}}},this.options)},toYData:function(b){return[b.tenkanSen,b.kijunSen,b.chikouSpan,b.senkouSpanA,b.senkouSpanB]},translate:function(){var b=this;l.prototype.translate.apply(b);b.points.forEach(function(c){b.pointArrayMap.forEach(function(a){p(c[a])&&
52
+ (c["plot"+a]=b.yAxis.toPixels(c[a],!0),c.plotY=c["plot"+a],c.tooltipPos=[c.plotX,c["plot"+a]],c.isNull=!1)})})},drawGraph:function(){var b=this,a=b.points,g=a.length,h=b.options,m=b.graph,t=b.color,n={options:{gapSize:h.gapSize}},q=b.pointArrayMap.length,f=[[],[],[],[],[],[]],B={tenkanLine:f[0],kijunLine:f[1],chikouLine:f[2],senkouSpanA:f[3],senkouSpanB:f[4],senkouSpan:f[5]},u=[],z=b.options.senkouSpan,M=z.color||z.styles.fill,L=z.negativeColor,D=[[],[]],J=[[],[]],N=0,F,I,O,K;for(b.ikhMap=B;g--;){F=
53
+ a[g];for(I=0;I<q;I++)z=b.pointArrayMap[I],p(F[z])&&f[I].push({plotX:F.plotX,plotY:F["plot"+z],isNull:!1});L&&g!==a.length-1&&(z=B.senkouSpanB.length-1,F=c(B.senkouSpanA[z-1],B.senkouSpanA[z],B.senkouSpanB[z-1],B.senkouSpanB[z]),I={plotX:F.plotX,plotY:F.plotY,isNull:!1,intersectPoint:!0},F&&(B.senkouSpanA.splice(z,0,I),B.senkouSpanB.splice(z,0,I),u.push(z)))}d.objectEach(B,function(c,a){h[a]&&"senkouSpan"!==a&&(b.points=f[N],b.options=r(h[a].styles,n),b.graph=b["graph"+a],b.fillGraph=!1,b.color=t,
54
+ l.prototype.drawGraph.call(b),b["graph"+a]=b.graph);N++});b.graphCollection&&b.graphCollection.forEach(function(c){b[c].destroy();delete b[c]});b.graphCollection=[];if(L&&B.senkouSpanA[0]&&B.senkouSpanB[0]){u.unshift(0);u.push(B.senkouSpanA.length-1);for(q=0;q<u.length-1;q++){z=u[q];F=u[q+1];g=B.senkouSpanB.slice(z,F+1);z=B.senkouSpanA.slice(z,F+1);if(1<=Math.floor(g.length/2))if(F=Math.floor(g.length/2),g[F].plotY===z[F].plotY){for(K=I=F=0;K<g.length;K++)F+=g[K].plotY,I+=z[K].plotY;F=F>I?0:1}else F=
55
+ g[F].plotY>z[F].plotY?0:1;else F=g[0].plotY>z[0].plotY?0:1;D[F]=D[F].concat(g);J[F]=J[F].concat(z)}["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(c,a){D[a].length&&J[a].length&&(O=0===a?M:L,e({indicator:b,points:D[a],nextPoints:J[a],color:O,options:h,gap:n,graph:b[c]}),b[c]=b.graph,b.graphCollection.push(c))})}else e({indicator:b,points:B.senkouSpanB,nextPoints:B.senkouSpanA,color:M,options:h,gap:n,graph:b.graphsenkouSpan}),b.graphsenkouSpan=b.graph;delete b.nextPoints;delete b.fillGraph;
56
+ b.points=a;b.options=h;b.graph=m},getGraphPath:function(b){var c,a,g=[];b=b||this.points;if(this.fillGraph&&this.nextPoints){a=l.prototype.getGraphPath.call(this,this.nextPoints);a[0]="L";c=l.prototype.getGraphPath.call(this,b);a=a.slice(0,c.length);for(var e=a.length-1;0<e;e-=3)g.push(a[e-2],a[e-1],a[e]);c=c.concat(g)}else c=l.prototype.getGraphPath.apply(this,arguments);return c},getValues:function(c,g){var e=g.period,r=g.periodTenkan;g=g.periodSenkouSpanB;var d=c.xData,k=c.yData,l=k&&k.length||
57
+ 0;c=a(c.xAxis);var t=[],p=[],y,n,q,f,u,D,J;if(d.length<=e||!m(k[0])||4!==k[0].length)return!1;y=d[0]-e*c;for(D=0;D<e;D++)p.push(y+D*c);for(D=0;D<l;D++)D>=r&&(q=k.slice(D-r,D),q=h(q),q=(q.high+q.low)/2),D>=e&&(f=k.slice(D-e,D),f=h(f),f=(f.high+f.low)/2,J=(q+f)/2),D>=g&&(u=k.slice(D-g,D),u=h(u),u=(u.high+u.low)/2),y=k[D][3],n=d[D],t[D]===b&&(t[D]=[]),t[D+e]===b&&(t[D+e]=[]),t[D+e][0]=q,t[D+e][1]=f,t[D+e][2]=b,t[D][2]=y,D<=e&&(t[D+e][3]=b,t[D+e][4]=b),t[D+2*e]===b&&(t[D+2*e]=[]),t[D+2*e][3]=J,t[D+2*
58
+ e][4]=u,p.push(n);for(D=1;D<=e;D++)p.push(n+D*c);return{values:t,xData:p,yData:t}}})});u(f,"indicators/keltner-channels.src.js",[f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,n){var q=d.seriesTypes.sma,h=d.seriesTypes.ema,a=d.seriesTypes.atr,c=d.merge,e=d.correctFloat;d.seriesType("keltnerchannels","sma",{params:{period:20,periodATR:10,multiplierATR:2},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eUpper Channel: {point.top}\x3cbr/\x3eEMA({series.options.params.period}): {point.middle}\x3cbr/\x3eLower Channel: {point.bottom}\x3cbr/\x3e'},
59
+ marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1},c(n,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Keltner Channels",nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],requiredIndicators:["ema","atr"],init:function(){q.prototype.init.apply(this,arguments);this.options=c({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},getValues:function(b,c){var g=c.period,
60
+ d=c.periodATR,m=c.multiplierATR,p=b.yData,p=p?p.length:0,l=[],k,y,n;c=h.prototype.getValues(b,{period:g,index:c.index});var q=a.prototype.getValues(b,{period:d}),f=[],u=[],w;if(p<g)return!1;for(w=g;w<=p;w++)k=c.values[w-g],y=q.values[w-d],n=k[0],b=e(k[1]+m*y[1]),y=e(k[1]-m*y[1]),k=k[1],l.push([n,b,k,y]),f.push(n),u.push([b,k,y]);return{values:l,xData:f,yData:u}}}))});u(f,"indicators/macd.src.js",[f["parts/Globals.js"]],function(d){var n=d.seriesType,q=d.merge,h=d.defined,a=d.seriesTypes.sma,c=d.seriesTypes.ema,
61
+ e=d.correctFloat;n("macd","sma",{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eValue: {point.MACD}\x3cbr/\x3eSignal: {point.signal}\x3cbr/\x3eHistogram: {point.y}\x3cbr/\x3e'},
62
62
  dataGrouping:{approximation:"averages"},minPointLength:0},{nameComponents:["longPeriod","shortPeriod","signalPeriod"],requiredIndicators:["ema"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:d.noop,getColumnMetrics:d.seriesTypes.column.prototype.getColumnMetrics,crispCol:d.seriesTypes.column.prototype.crispCol,init:function(){a.prototype.init.apply(this,arguments);this.options&&(this.options=q({signalLine:{styles:{lineColor:this.color}},
63
63
  macdLine:{styles:{color:this.color}}},this.options),this.macdZones={zones:this.options.macdLine.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones.length},this.resetZones=!0)},toYData:function(b){return[b.y,b.signal,b.MACD]},translate:function(){var b=this,c=["plotSignal","plotMACD"];d.seriesTypes.column.prototype.translate.apply(b);b.points.forEach(function(a){[a.signal,a.MACD].forEach(function(e,g){null!==e&&(a[c[g]]=
64
- b.yAxis.toPixels(e,!0))})})},destroy:function(){this.graph=null;this.graphmacd=this.graphmacd&&this.graphmacd.destroy();this.graphsignal=this.graphsignal&&this.graphsignal.destroy();a.prototype.destroy.apply(this,arguments)},drawPoints:d.seriesTypes.column.prototype.drawPoints,drawGraph:function(){for(var b=this,c=b.points,e=c.length,d=b.options,n=b.zones,p={options:{gapSize:d.gapSize}},l=[[],[]],h;e--;)h=c[e],k(h.plotMACD)&&l[0].push({plotX:h.plotX,plotY:h.plotMACD,isNull:!k(h.plotMACD)}),k(h.plotSignal)&&
65
- l[1].push({plotX:h.plotX,plotY:h.plotSignal,isNull:!k(h.plotMACD)});["macd","signal"].forEach(function(c,e){b.points=l[e];b.options=q(d[c+"Line"].styles,p);b.graph=b["graph"+c];b.currentLineZone=c+"Zones";b.zones=b[b.currentLineZone].zones;a.prototype.drawGraph.call(b);b["graph"+c]=b.graph});b.points=c;b.options=d;b.zones=n;b.currentLineZone=null},getZonesGraphs:function(b){var c=a.prototype.getZonesGraphs.call(this,b),e=c;this.currentLineZone&&(e=c.splice(this[this.currentLineZone].startIndex+1),
66
- e.length?e.splice(0,0,b[0]):e=[b[0]]);return e},applyZones:function(){var b=this.zones;this.zones=this.signalZones.zones;a.prototype.applyZones.call(this);this.options.macdLine.zones.length&&this.graphmacd.hide();this.zones=b},getValues:function(b,a){var g=0,d=[],n=[],p=[],l,h;if(b.xData.length<a.longPeriod+a.signalPeriod)return!1;l=c.prototype.getValues(b,{period:a.shortPeriod});h=c.prototype.getValues(b,{period:a.longPeriod});l=l.values;h=h.values;for(b=1;b<=l.length;b++)k(h[b-1])&&k(h[b-1][1])&&
67
- k(l[b+a.shortPeriod+1])&&k(l[b+a.shortPeriod+1][0])&&d.push([l[b+a.shortPeriod+1][0],0,null,l[b+a.shortPeriod+1][1]-h[b-1][1]]);for(b=0;b<d.length;b++)n.push(d[b][0]),p.push([0,null,d[b][3]]);a=c.prototype.getValues({xData:n,yData:p},{period:a.signalPeriod,index:2});a=a.values;for(b=0;b<d.length;b++)d[b][0]>=a[0][0]&&(d[b][2]=a[g][1],p[b]=[0,a[g][1],d[b][3]],null===d[b][3]?(d[b][1]=0,p[b][0]=0):(d[b][1]=e(d[b][3]-a[g][1]),p[b][0]=e(d[b][3]-a[g][1])),g++);return{values:d,xData:n,yData:p}}})});t(f,
68
- "indicators/mfi.src.js",[f["parts/Globals.js"]],function(d){function m(a){return a.reduce(function(c,a){return c+a})}function q(a){return(a[1]+a[2]+a[3])/3}var k=d.isArray;d.seriesType("mfi","sma",{params:{period:14,volumeSeriesID:"volume",decimals:4}},{nameBase:"Money Flow Index",getValues:function(a,c){var e=c.period,b=a.xData,g=a.yData,r=g?g.length:0,u=c.decimals,n=1,p=a.chart.get(c.volumeSeriesID),l=p&&p.yData,h=[],y=[],f=[],C=[],w=[];if(!p)return d.error("Series "+c.volumeSeriesID+" not found! Check `volumeSeriesID`.",
69
- !0,a.chart);if(b.length<=e||!k(g[0])||4!==g[0].length||!l)return!1;for(a=q(g[n]);n<e+1;)c=a,a=q(g[n]),c=a>=c,p=a*l[n],C.push(c?p:0),w.push(c?0:p),n++;for(e=n-1;e<r;e++)e>n-1&&(C.shift(),w.shift(),c=a,a=q(g[e]),c=a>c,p=a*l[e],C.push(c?p:0),w.push(c?0:p)),c=m(w),p=m(C),c=p/c,c=parseFloat((100-100/(1+c)).toFixed(u)),h.push([b[e],c]),y.push(b[e]),f.push(c);return{values:h,xData:y,yData:f}}})});t(f,"indicators/momentum.src.js",[f["parts/Globals.js"]],function(d){function m(d,a,c,e,b){c=c[e-1][3]-c[e-b-
70
- 1][3];a=a[e-1];d.shift();return[a,c]}var q=d.isArray;d=d.seriesType;d("momentum","sma",{params:{period:14}},{nameBase:"Momentum",getValues:function(d,a){a=a.period;var c=d.xData,e=(d=d.yData)?d.length:0,b=c[0],g=[],r=[],k=[],n,p;if(c.length<=a||!q(d[0]))return!1;n=[[b,d[0][3]]];for(b=a+1;b<e;b++)p=m(n,c,d,b,a,void 0),g.push(p),r.push(p[0]),k.push(p[1]);p=m(n,c,d,b,a,void 0);g.push(p);r.push(p[0]);k.push(p[1]);return{values:g,xData:r,yData:k}}})});t(f,"indicators/natr.src.js",[f["parts/Globals.js"]],
71
- function(d){var m=d.seriesTypes.atr;d.seriesType("natr","sma",{tooltip:{valueSuffix:"%"}},{requiredIndicators:["atr"],getValues:function(d,k){for(var a=m.prototype.getValues.apply(this,arguments),c=a.values.length,e=k.period-1,b=d.yData,g=0;g<c;g++)a.yData[g]=a.values[g][1]/b[e][3]*100,a.values[g][1]=a.yData[g],e++;return a}})});t(f,"indicators/pivot-points.src.js",[f["parts/Globals.js"]],function(d){function m(c,e){var b=c.series.pointArrayMap,d=b.length;for(a.prototype.pointClass.prototype[e].call(c);d--;)e=
72
- "dataLabel"+b[d],c[e]&&c[e].element&&c[e].destroy(),c[e]=null}var q=d.defined,k=d.isArray,a=d.seriesTypes.sma;d.seriesType("pivotpoints","sma",{params:{period:28,algorithm:"standard"},marker:{enabled:!1},enableMouseTracking:!1,dataLabels:{enabled:!0,format:"{point.pivotLine}"},dataGrouping:{approximation:"averages"}},{nameBase:"Pivot Points",pointArrayMap:"R4 R3 R2 R1 P S1 S2 S3 S4".split(" "),pointValKey:"P",toYData:function(c){return[c.P]},translate:function(){var c=this;a.prototype.translate.apply(c);
73
- c.points.forEach(function(a){c.pointArrayMap.forEach(function(b){q(a[b])&&(a["plot"+b]=c.yAxis.toPixels(a[b],!0))})});c.plotEndPoint=c.xAxis.toPixels(c.endPoint,!0)},getGraphPath:function(c){for(var e=this,b=c.length,d=[[],[],[],[],[],[],[],[],[]],r=[],k=e.plotEndPoint,n=e.pointArrayMap.length,p,l,h;b--;){l=c[b];for(h=0;h<n;h++)p=e.pointArrayMap[h],q(l[p])&&d[h].push({plotX:l.plotX,plotY:l["plot"+p],isNull:!1},{plotX:k,plotY:l["plot"+p],isNull:!1},{plotX:k,plotY:null,isNull:!0});k=l.plotX}d.forEach(function(b){r=
74
- r.concat(a.prototype.getGraphPath.call(e,b))});return r},drawDataLabels:function(){var c=this,e=c.pointArrayMap,b,d,r,k;c.options.dataLabels.enabled&&(d=c.points.length,e.concat([!1]).forEach(function(g,p){for(k=d;k--;)r=c.points[k],g?(r.y=r[g],r.pivotLine=g,r.plotY=r["plot"+g],b=r["dataLabel"+g],p&&(r["dataLabel"+e[p-1]]=r.dataLabel),r.dataLabels||(r.dataLabels=[]),r.dataLabels[0]=r.dataLabel=b=b&&b.element?b:null):r["dataLabel"+e[p-1]]=r.dataLabel;a.prototype.drawDataLabels.apply(c,arguments)}))},
75
- getValues:function(c,a){var b=a.period,e=c.xData,d=(c=c.yData)?c.length:0;a=this[a.algorithm+"Placement"];var u=[],n,p=[],l=[],h,m,q,f;if(e.length<b||!k(c[0])||4!==c[0].length)return!1;for(f=b+1;f<=d+b;f+=b)m=e.slice(f-b-1,f),q=c.slice(f-b-1,f),h=m.length,n=m[h-1],q=this.getPivotAndHLC(q),q=a(q),q=u.push([n].concat(q)),p.push(n),l.push(u[q-1].slice(1));this.endPoint=m[0]+(n-m[0])/h*b;return{values:u,xData:p,yData:l}},getPivotAndHLC:function(c){var a=-Infinity,b=Infinity,d=c[c.length-1][3];c.forEach(function(c){a=
76
- Math.max(a,c[1]);b=Math.min(b,c[2])});return[(a+b+d)/3,a,b,d]},standardPlacement:function(c){var a=c[1]-c[2];return[null,null,c[0]+a,2*c[0]-c[2],c[0],2*c[0]-c[1],c[0]-a,null,null]},camarillaPlacement:function(c){var a=c[1]-c[2];return[c[3]+1.5*a,c[3]+1.25*a,c[3]+1.1666*a,c[3]+1.0833*a,c[0],c[3]-1.0833*a,c[3]-1.1666*a,c[3]-1.25*a,c[3]-1.5*a]},fibonacciPlacement:function(a){var c=a[1]-a[2];return[null,a[0]+c,a[0]+.618*c,a[0]+.382*c,a[0],a[0]-.382*c,a[0]-.618*c,a[0]-c,null]}},{destroyElements:function(){m(this,
77
- "destroyElements")},destroy:function(){m(this,"destroyElements")}})});t(f,"indicators/ppo.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,m){var q=d.seriesTypes.ema,k=d.error,a=d.correctFloat;d.seriesType("ppo","ema",{params:{periods:[12,26]}},{nameBase:"PPO",nameComponents:["periods"],init:function(){var a=arguments,d=this;m.isParentLoaded(q,"ema",d.type,function(b){b.prototype.init.apply(d,a)})},getValues:function(c,d){var b=d.periods,e=d.index;d=[];var r=[],u=[],n,
78
- p;if(2!==b.length||b[1]<=b[0])return k('Error: "PPO requires two periods. Notice, first period should be lower than the second one."'),!1;n=q.prototype.getValues.call(this,c,{index:e,period:b[0]});c=q.prototype.getValues.call(this,c,{index:e,period:b[1]});if(!n||!c)return!1;b=b[1]-b[0];for(p=0;p<c.yData.length;p++)e=a((n.yData[p+b]-c.yData[p])/c.yData[p]*100),d.push([c.xData[p],e]),r.push(c.xData[p]),u.push(e);return{values:d,xData:r,yData:u}}})});t(f,"mixins/reduce-array.js",[f["parts/Globals.js"]],
79
- function(d){var m=d.reduce;return{minInArray:function(d,k){return m(d,function(a,c){return Math.min(a,c[k])},Number.MAX_VALUE)},maxInArray:function(d,k){return m(d,function(a,c){return Math.max(a,c[k])},-Number.MAX_VALUE)},getArrayExtremes:function(d,k,a){return m(d,function(c,d){return[Math.min(c[0],d[k]),Math.max(c[1],d[a])]},[Number.MAX_VALUE,-Number.MAX_VALUE])}}});t(f,"indicators/price-channel.src.js",[f["parts/Globals.js"],f["mixins/reduce-array.js"],f["mixins/multipe-lines.js"]],function(d,
80
- m,f){var k=m.getArrayExtremes;m=d.merge;d.seriesType("pc","sma",{params:{period:20},lineWidth:1,topLine:{styles:{lineColor:"#90ed7d",lineWidth:1}},bottomLine:{styles:{lineColor:"#f45b5b",lineWidth:1}},dataGrouping:{approximation:"averages"}},m(f,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Price Channel",nameComponents:["period"],linesApiNames:["topLine","bottomLine"],getValues:function(a,c){c=c.period;var d=a.xData,b=(a=a.yData)?a.length:0,g=[],r,u,n,p,l=[],h=[],m;if(b<
81
- c)return!1;for(m=c;m<=b;m++)p=d[m-1],u=a.slice(m-c,m),r=k(u,2,1),u=r[1],n=r[0],r=(u+n)/2,g.push([p,u,r,n]),l.push(p),h.push([u,r,n]);return{values:g,xData:l,yData:h}}}))});t(f,"indicators/price-envelopes.src.js",[f["parts/Globals.js"]],function(d){var m=d.merge,f=d.isArray,k=d.seriesTypes.sma;d.seriesType("priceenvelopes","sma",{marker:{enabled:!1},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eTop: {point.top}\x3cbr/\x3eMiddle: {point.middle}\x3cbr/\x3eBottom: {point.bottom}\x3cbr/\x3e'},
82
- params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}},{nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle",init:function(){k.prototype.init.apply(this,arguments);this.options=m({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},
83
- toYData:function(a){return[a.top,a.middle,a.bottom]},translate:function(){var a=this,c=["plotTop","plotMiddle","plotBottom"];k.prototype.translate.apply(a);a.points.forEach(function(d){[d.top,d.middle,d.bottom].forEach(function(b,e){null!==b&&(d[c[e]]=a.yAxis.toPixels(b,!0))})})},drawGraph:function(){for(var a=this,c=a.points,d=c.length,b=a.options,g=a.graph,r={options:{gapSize:b.gapSize}},u=[[],[]],n;d--;)n=c[d],u[0].push({plotX:n.plotX,plotY:n.plotTop,isNull:n.isNull}),u[1].push({plotX:n.plotX,
84
- plotY:n.plotBottom,isNull:n.isNull});["topLine","bottomLine"].forEach(function(c,d){a.points=u[d];a.options=m(b[c].styles,r);a.graph=a["graph"+c];k.prototype.drawGraph.call(a);a["graph"+c]=a.graph});a.points=c;a.options=b;a.graph=g;k.prototype.drawGraph.call(a)},getValues:function(a,c){var d=c.period,b=c.topBand,g=c.bottomBand,r=a.xData,u=(a=a.yData)?a.length:0,n=[],p,l,h,m,q=[],C=[],w;if(r.length<d||!f(a[0])||4!==a[0].length)return!1;for(w=d;w<=u;w++)m=r.slice(w-d,w),p=a.slice(w-d,w),p=k.prototype.getValues.call(this,
85
- {xData:m,yData:p},c),m=p.xData[0],p=p.yData[0],l=p*(1+b),h=p*(1-g),n.push([m,l,p,h]),q.push(m),C.push([l,p,h]);return{values:n,xData:q,yData:C}}})});t(f,"indicators/psar.src.js",[f["parts/Globals.js"]],function(d){d.seriesType("psar","sma",{lineWidth:0,marker:{enabled:!0},states:{hover:{lineWidthPlus:0}},params:{initialAccelerationFactor:.02,maxAccelerationFactor:.2,increment:.02,index:2,decimals:4}},{nameComponents:!1,getValues:function(d,f){var k=d.xData;d=d.yData;var a=d[0][1],c=f.maxAccelerationFactor,
86
- e=f.increment,b=f.initialAccelerationFactor,g=d[0][2],r=f.decimals,u=f.index,n=[],p=[],l=[],h=1,m,q,C,w,t,v,x,A;if(u>=d.length)return!1;for(A=0;A<u;A++)a=Math.max(d[A][1],a),g=Math.min(d[A][2],parseFloat(g.toFixed(r)));m=d[A][1]>g?1:-1;f=f.initialAccelerationFactor;q=f*(a-g);n.push([k[u],g]);p.push(k[u]);l.push(parseFloat(g.toFixed(r)));for(A=u+1;A<d.length;A++)u=d[A-1][2],w=d[A-2][2],t=d[A-1][1],v=d[A-2][1],C=d[A][1],x=d[A][2],null!==w&&null!==v&&null!==u&&null!==t&&null!==C&&null!==x&&(g=m===h?
87
- 1===m?g+q<Math.min(w,u)?g+q:Math.min(w,u):g+q>Math.max(v,t)?g+q:Math.max(v,t):a,u=1===m?C>a?C:a:x<a?x:a,C=1===h&&x>g||-1===h&&C>g?1:-1,h=C,q=u,x=e,w=c,t=b,f=h===m?1===h&&q>a?f===w?w:parseFloat((f+x).toFixed(2)):-1===h&&q<a?f===w?w:parseFloat((f+x).toFixed(2)):f:t,a=u-g,q=f*a,n.push([k[A],parseFloat(g.toFixed(r))]),p.push(k[A]),l.push(parseFloat(g.toFixed(r))),h=m,m=C,a=u);return{values:n,xData:p,yData:l}}})});t(f,"indicators/roc.src.js",[f["parts/Globals.js"]],function(d){var m=d.seriesType,f=d.isArray;
88
- m("roc","sma",{params:{index:3,period:9}},{nameBase:"Rate of Change",getValues:function(d,a){var c=a.period,e=d.xData,b=(d=d.yData)?d.length:0,g=[],r=[],k=[],n=-1,p;if(e.length<=c)return!1;f(d[0])&&(n=a.index);for(a=c;a<b;a++)p=0>n?(p=d[a-c])?(d[a]-p)/p*100:null:(p=d[a-c][n])?(d[a][n]-p)/p*100:null,p=[e[a],p],g.push(p),r.push(p[0]),k.push(p[1]);return{values:g,xData:r,yData:k}}})});t(f,"indicators/rsi.src.js",[f["parts/Globals.js"]],function(d){var f=d.isArray;d.seriesType("rsi","sma",{params:{period:14,
89
- decimals:4}},{getValues:function(d,k){var a=k.period,c=d.xData,e=(d=d.yData)?d.length:0;k=k.decimals;var b=1,g=[],r=[],u=[],n=0,p=0,l,h,m;if(c.length<a||!f(d[0])||4!==d[0].length)return!1;for(;b<a;)l=parseFloat((d[b][3]-d[b-1][3]).toFixed(k)),0<l?n+=l:p+=Math.abs(l),b++;h=parseFloat((n/(a-1)).toFixed(k));for(m=parseFloat((p/(a-1)).toFixed(k));b<e;b++)l=parseFloat((d[b][3]-d[b-1][3]).toFixed(k)),0<l?(n=l,p=0):(n=0,p=Math.abs(l)),h=parseFloat(((h*(a-1)+n)/a).toFixed(k)),m=parseFloat(((m*(a-1)+p)/a).toFixed(k)),
90
- n=0===m?100:0===h?0:parseFloat((100-100/(1+h/m)).toFixed(k)),g.push([c[b],n]),r.push(c[b]),u.push(n);return{values:g,xData:r,yData:u}}})});t(f,"indicators/stochastic.src.js",[f["parts/Globals.js"],f["mixins/reduce-array.js"],f["mixins/multipe-lines.js"]],function(d,m,f){var k=d.merge,a=d.isArray,c=d.seriesTypes.sma,e=m.getArrayExtremes;d.seriesType("stochastic","sma",{params:{periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3e%K: {point.y}\x3cbr/\x3e%D: {point.smoothed}\x3cbr/\x3e'},
91
- smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}},d.merge(f,{nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"],init:function(){c.prototype.init.apply(this,arguments);this.options=k({smoothedLine:{styles:{lineColor:this.color}}},this.options)},getValues:function(b,d){var g=d.periods[0];d=d.periods[1];var k=b.xData,n=(b=b.yData)?b.length:0,p=[],
92
- l=[],h=[],f,m,q=null,w,t;if(n<g||!a(b[0])||4!==b[0].length)return!1;for(t=g-1;t<n;t++)f=b.slice(t-g+1,t+1),w=e(f,2,1),m=w[0],f=b[t][3]-m,m=w[1]-m,f=f/m*100,l.push(k[t]),h.push([f,null]),t>=g-1+(d-1)&&(q=c.prototype.getValues.call(this,{xData:l.slice(-d),yData:h.slice(-d)},{period:d}),q=q.yData[0]),p.push([k[t],f,q]),h[h.length-1][1]=q;return{values:p,xData:l,yData:h}}}))});t(f,"indicators/supertrend.src.js",[f["parts/Globals.js"]],function(d){function f(b,a,c){return{index:a,close:b.yData[a][c],x:b.xData[a]}}
93
- var q=d.seriesTypes.atr,k=d.seriesTypes.sma,a=d.isArray,c=d.merge,e=d.correctFloat;d.seriesType("supertrend","sma",{params:{multiplier:3,period:10},risingTrendColor:"#06B535",fallingTrendColor:"#F21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}},{nameBase:"Supertrend",nameComponents:["multiplier","period"],requiredIndicators:["atr"],init:function(){var b;k.prototype.init.apply(this,arguments);b=this.options;b.cropThreshold=this.linkedParent.options.cropThreshold-
94
- (b.params.period-1)},drawGraph:function(){for(var b=this,a=b.options,e=b.linkedParent,u=e?e.points:[],n=b.points,p=b.graph,l=n.length,h=u.length-l,h=0<h?h:0,m={options:{gapSize:a.gapSize}},q={top:[],bottom:[],intersect:[]},t={top:{styles:{lineWidth:a.lineWidth,lineColor:a.fallingTrendColor,dashStyle:a.dashStyle}},bottom:{styles:{lineWidth:a.lineWidth,lineColor:a.risingTrendColor,dashStyle:a.dashStyle}},intersect:a.changeTrendLine},w,G,v,x,A,B,H,z;l--;)w=n[l],G=n[l-1],v=u[l-1+h],x=u[l-2+h],A=u[l+h],
95
- B=u[l+h+1],H=w.options.color,z={x:w.x,plotX:w.plotX,plotY:w.plotY,isNull:!1},!x&&v&&e.yData[v.index-1]&&(x=f(e,v.index-1,3)),!B&&A&&e.yData[A.index+1]&&(B=f(e,A.index+1,3)),!v&&x&&e.yData[x.index+1]?v=f(e,x.index+1,3):!v&&A&&e.yData[A.index-1]&&(v=f(e,A.index-1,3)),w&&v&&A&&x&&w.x!==v.x&&(w.x===A.x?(x=v,v=A):w.x===x.x?(v=x,x={close:e.yData[v.index-1][3],x:e.xData[v.index-1]}):B&&w.x===B.x&&(v=B,x=A)),G&&x&&v?(A={x:G.x,plotX:G.plotX,plotY:G.plotY,isNull:!1},w.y>=v.close&&G.y>=x.close?(w.color=H||a.fallingTrendColor,
96
- q.top.push(z)):w.y<v.close&&G.y<x.close?(w.color=H||a.risingTrendColor,q.bottom.push(z)):(q.intersect.push(z),q.intersect.push(A),q.intersect.push(c(A,{isNull:!0})),w.y>=v.close&&G.y<x.close?(w.color=H||a.fallingTrendColor,G.color=H||a.risingTrendColor,q.top.push(z),q.top.push(c(A,{isNull:!0}))):w.y<v.close&&G.y>=x.close&&(w.color=H||a.risingTrendColor,G.color=H||a.fallingTrendColor,q.bottom.push(z),q.bottom.push(c(A,{isNull:!0}))))):v&&(w.y>=v.close?(w.color=H||a.fallingTrendColor,q.top.push(z)):
97
- (w.color=H||a.risingTrendColor,q.bottom.push(z)));d.objectEach(q,function(a,d){b.points=a;b.options=c(t[d].styles,m);b.graph=b["graph"+d+"Line"];k.prototype.drawGraph.call(b);b["graph"+d+"Line"]=b.graph});b.points=n;b.options=a;b.graph=p},getValues:function(b,c){var d=c.period;c=c.multiplier;var g=b.xData,k=b.yData,p=[],l=[],h=[],f=0===d?0:d-1,m,t=[],w=[],G,v,x,A,B,H,z;if(g.length<=d||!a(k[0])||4!==k[0].length||0>d)return!1;b=q.prototype.getValues.call(this,b,{period:d}).yData;for(z=0;z<b.length;z++){H=
98
- k[f+z];B=k[f+z-1]||[];v=t[z-1];x=w[z-1];A=h[z-1];0===z&&(v=x=A=0);d=e((H[1]+H[2])/2+c*b[z]);m=e((H[1]+H[2])/2-c*b[z]);t[z]=d<v||B[3]>v?d:v;w[z]=m>x||B[3]<x?m:x;if(A===v&&H[3]<t[z]||A===x&&H[3]<w[z])G=t[z];else if(A===v&&H[3]>t[z]||A===x&&H[3]>w[z])G=w[z];p.push([g[f+z],G]);l.push(g[f+z]);h.push(G)}return{values:p,xData:l,yData:h}}})});t(f,"indicators/volume-by-price.src.js",[f["parts/Globals.js"]],function(d){var f=Math.abs,q=d.noop,k=d.addEvent,a=d.correctFloat,c=d.seriesType,e=d.seriesTypes.column.prototype;
64
+ b.yAxis.toPixels(e,!0))})})},destroy:function(){this.graph=null;this.graphmacd=this.graphmacd&&this.graphmacd.destroy();this.graphsignal=this.graphsignal&&this.graphsignal.destroy();a.prototype.destroy.apply(this,arguments)},drawPoints:d.seriesTypes.column.prototype.drawPoints,drawGraph:function(){for(var b=this,c=b.points,e=c.length,d=b.options,m=b.zones,p={options:{gapSize:d.gapSize}},l=[[],[]],k;e--;)k=c[e],h(k.plotMACD)&&l[0].push({plotX:k.plotX,plotY:k.plotMACD,isNull:!h(k.plotMACD)}),h(k.plotSignal)&&
65
+ l[1].push({plotX:k.plotX,plotY:k.plotSignal,isNull:!h(k.plotMACD)});["macd","signal"].forEach(function(c,e){b.points=l[e];b.options=q(d[c+"Line"].styles,p);b.graph=b["graph"+c];b.currentLineZone=c+"Zones";b.zones=b[b.currentLineZone].zones;a.prototype.drawGraph.call(b);b["graph"+c]=b.graph});b.points=c;b.options=d;b.zones=m;b.currentLineZone=null},getZonesGraphs:function(b){var c=a.prototype.getZonesGraphs.call(this,b),e=c;this.currentLineZone&&(e=c.splice(this[this.currentLineZone].startIndex+1),
66
+ e.length?e.splice(0,0,b[0]):e=[b[0]]);return e},applyZones:function(){var b=this.zones;this.zones=this.signalZones.zones;a.prototype.applyZones.call(this);this.options.macdLine.zones.length&&this.graphmacd.hide();this.zones=b},getValues:function(b,a){var g=0,d=[],m=[],p=[],l,k;if(b.xData.length<a.longPeriod+a.signalPeriod)return!1;l=c.prototype.getValues(b,{period:a.shortPeriod});k=c.prototype.getValues(b,{period:a.longPeriod});l=l.values;k=k.values;for(b=1;b<=l.length;b++)h(k[b-1])&&h(k[b-1][1])&&
67
+ h(l[b+a.shortPeriod+1])&&h(l[b+a.shortPeriod+1][0])&&d.push([l[b+a.shortPeriod+1][0],0,null,l[b+a.shortPeriod+1][1]-k[b-1][1]]);for(b=0;b<d.length;b++)m.push(d[b][0]),p.push([0,null,d[b][3]]);a=c.prototype.getValues({xData:m,yData:p},{period:a.signalPeriod,index:2});a=a.values;for(b=0;b<d.length;b++)d[b][0]>=a[0][0]&&(d[b][2]=a[g][1],p[b]=[0,a[g][1],d[b][3]],null===d[b][3]?(d[b][1]=0,p[b][0]=0):(d[b][1]=e(d[b][3]-a[g][1]),p[b][0]=e(d[b][3]-a[g][1])),g++);return{values:d,xData:m,yData:p}}})});u(f,
68
+ "indicators/mfi.src.js",[f["parts/Globals.js"]],function(d){function n(a){return a.reduce(function(c,a){return c+a})}function q(a){return(a[1]+a[2]+a[3])/3}var h=d.isArray;d.seriesType("mfi","sma",{params:{period:14,volumeSeriesID:"volume",decimals:4}},{nameBase:"Money Flow Index",getValues:function(a,c){var e=c.period,b=a.xData,g=a.yData,r=g?g.length:0,t=c.decimals,m=1,p=a.chart.get(c.volumeSeriesID),l=p&&p.yData,k=[],y=[],f=[],C=[],v=[];if(!p)return d.error("Series "+c.volumeSeriesID+" not found! Check `volumeSeriesID`.",
69
+ !0,a.chart);if(b.length<=e||!h(g[0])||4!==g[0].length||!l)return!1;for(a=q(g[m]);m<e+1;)c=a,a=q(g[m]),c=a>=c,p=a*l[m],C.push(c?p:0),v.push(c?0:p),m++;for(e=m-1;e<r;e++)e>m-1&&(C.shift(),v.shift(),c=a,a=q(g[e]),c=a>c,p=a*l[e],C.push(c?p:0),v.push(c?0:p)),c=n(v),p=n(C),c=p/c,c=parseFloat((100-100/(1+c)).toFixed(t)),k.push([b[e],c]),y.push(b[e]),f.push(c);return{values:k,xData:y,yData:f}}})});u(f,"indicators/momentum.src.js",[f["parts/Globals.js"]],function(d){function n(d,a,c,e,b){c=c[e-1][3]-c[e-b-
70
+ 1][3];a=a[e-1];d.shift();return[a,c]}var q=d.isArray;d=d.seriesType;d("momentum","sma",{params:{period:14}},{nameBase:"Momentum",getValues:function(d,a){a=a.period;var c=d.xData,e=(d=d.yData)?d.length:0,b=c[0],g=[],r=[],h=[],m,p;if(c.length<=a||!q(d[0]))return!1;m=[[b,d[0][3]]];for(b=a+1;b<e;b++)p=n(m,c,d,b,a,void 0),g.push(p),r.push(p[0]),h.push(p[1]);p=n(m,c,d,b,a,void 0);g.push(p);r.push(p[0]);h.push(p[1]);return{values:g,xData:r,yData:h}}})});u(f,"indicators/natr.src.js",[f["parts/Globals.js"]],
71
+ function(d){var n=d.seriesTypes.atr;d.seriesType("natr","sma",{tooltip:{valueSuffix:"%"}},{requiredIndicators:["atr"],getValues:function(d,h){for(var a=n.prototype.getValues.apply(this,arguments),c=a.values.length,e=h.period-1,b=d.yData,g=0;g<c;g++)a.yData[g]=a.values[g][1]/b[e][3]*100,a.values[g][1]=a.yData[g],e++;return a}})});u(f,"indicators/pivot-points.src.js",[f["parts/Globals.js"]],function(d){function n(c,e){var b=c.series.pointArrayMap,g=b.length;for(a.prototype.pointClass.prototype[e].call(c);g--;)e=
72
+ "dataLabel"+b[g],c[e]&&c[e].element&&c[e].destroy(),c[e]=null}var q=d.defined,h=d.isArray,a=d.seriesTypes.sma;d.seriesType("pivotpoints","sma",{params:{period:28,algorithm:"standard"},marker:{enabled:!1},enableMouseTracking:!1,dataLabels:{enabled:!0,format:"{point.pivotLine}"},dataGrouping:{approximation:"averages"}},{nameBase:"Pivot Points",pointArrayMap:"R4 R3 R2 R1 P S1 S2 S3 S4".split(" "),pointValKey:"P",toYData:function(c){return[c.P]},translate:function(){var c=this;a.prototype.translate.apply(c);
73
+ c.points.forEach(function(a){c.pointArrayMap.forEach(function(b){q(a[b])&&(a["plot"+b]=c.yAxis.toPixels(a[b],!0))})});c.plotEndPoint=c.xAxis.toPixels(c.endPoint,!0)},getGraphPath:function(c){for(var e=this,b=c.length,g=[[],[],[],[],[],[],[],[],[]],d=[],h=e.plotEndPoint,m=e.pointArrayMap.length,p,l,k;b--;){l=c[b];for(k=0;k<m;k++)p=e.pointArrayMap[k],q(l[p])&&g[k].push({plotX:l.plotX,plotY:l["plot"+p],isNull:!1},{plotX:h,plotY:l["plot"+p],isNull:!1},{plotX:h,plotY:null,isNull:!0});h=l.plotX}g.forEach(function(b){d=
74
+ d.concat(a.prototype.getGraphPath.call(e,b))});return d},drawDataLabels:function(){var c=this,e=c.pointArrayMap,b,g,d,h;c.options.dataLabels.enabled&&(g=c.points.length,e.concat([!1]).forEach(function(r,p){for(h=g;h--;)d=c.points[h],r?(d.y=d[r],d.pivotLine=r,d.plotY=d["plot"+r],b=d["dataLabel"+r],p&&(d["dataLabel"+e[p-1]]=d.dataLabel),d.dataLabels||(d.dataLabels=[]),d.dataLabels[0]=d.dataLabel=b=b&&b.element?b:null):d["dataLabel"+e[p-1]]=d.dataLabel;a.prototype.drawDataLabels.apply(c,arguments)}))},
75
+ getValues:function(c,a){var b=a.period,e=c.xData,d=(c=c.yData)?c.length:0;a=this[a.algorithm+"Placement"];var t=[],m,p=[],l=[],k,n,q,f;if(e.length<b||!h(c[0])||4!==c[0].length)return!1;for(f=b+1;f<=d+b;f+=b)n=e.slice(f-b-1,f),q=c.slice(f-b-1,f),k=n.length,m=n[k-1],q=this.getPivotAndHLC(q),q=a(q),q=t.push([m].concat(q)),p.push(m),l.push(t[q-1].slice(1));this.endPoint=n[0]+(m-n[0])/k*b;return{values:t,xData:p,yData:l}},getPivotAndHLC:function(c){var a=-Infinity,b=Infinity,d=c[c.length-1][3];c.forEach(function(c){a=
76
+ Math.max(a,c[1]);b=Math.min(b,c[2])});return[(a+b+d)/3,a,b,d]},standardPlacement:function(c){var a=c[1]-c[2];return[null,null,c[0]+a,2*c[0]-c[2],c[0],2*c[0]-c[1],c[0]-a,null,null]},camarillaPlacement:function(c){var a=c[1]-c[2];return[c[3]+1.5*a,c[3]+1.25*a,c[3]+1.1666*a,c[3]+1.0833*a,c[0],c[3]-1.0833*a,c[3]-1.1666*a,c[3]-1.25*a,c[3]-1.5*a]},fibonacciPlacement:function(a){var c=a[1]-a[2];return[null,a[0]+c,a[0]+.618*c,a[0]+.382*c,a[0],a[0]-.382*c,a[0]-.618*c,a[0]-c,null]}},{destroyElements:function(){n(this,
77
+ "destroyElements")},destroy:function(){n(this,"destroyElements")}})});u(f,"indicators/ppo.src.js",[f["parts/Globals.js"],f["mixins/indicator-required.js"]],function(d,n){var q=d.seriesTypes.ema,h=d.error,a=d.correctFloat;d.seriesType("ppo","ema",{params:{periods:[12,26]}},{nameBase:"PPO",nameComponents:["periods"],init:function(){var a=arguments,d=this;n.isParentLoaded(q,"ema",d.type,function(b){b.prototype.init.apply(d,a)})},getValues:function(c,d){var b=d.periods,e=d.index;d=[];var r=[],t=[],m,
78
+ p;if(2!==b.length||b[1]<=b[0])return h('Error: "PPO requires two periods. Notice, first period should be lower than the second one."'),!1;m=q.prototype.getValues.call(this,c,{index:e,period:b[0]});c=q.prototype.getValues.call(this,c,{index:e,period:b[1]});if(!m||!c)return!1;b=b[1]-b[0];for(p=0;p<c.yData.length;p++)e=a((m.yData[p+b]-c.yData[p])/c.yData[p]*100),d.push([c.xData[p],e]),r.push(c.xData[p]),t.push(e);return{values:d,xData:r,yData:t}}})});u(f,"mixins/reduce-array.js",[f["parts/Globals.js"]],
79
+ function(d){var n=d.reduce;return{minInArray:function(d,h){return n(d,function(a,c){return Math.min(a,c[h])},Number.MAX_VALUE)},maxInArray:function(d,h){return n(d,function(a,c){return Math.max(a,c[h])},-Number.MAX_VALUE)},getArrayExtremes:function(d,h,a){return n(d,function(c,d){return[Math.min(c[0],d[h]),Math.max(c[1],d[a])]},[Number.MAX_VALUE,-Number.MAX_VALUE])}}});u(f,"indicators/price-channel.src.js",[f["parts/Globals.js"],f["mixins/reduce-array.js"],f["mixins/multipe-lines.js"]],function(d,
80
+ n,f){var h=n.getArrayExtremes;n=d.merge;d.seriesType("pc","sma",{params:{period:20},lineWidth:1,topLine:{styles:{lineColor:"#90ed7d",lineWidth:1}},bottomLine:{styles:{lineColor:"#f45b5b",lineWidth:1}},dataGrouping:{approximation:"averages"}},n(f,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Price Channel",nameComponents:["period"],linesApiNames:["topLine","bottomLine"],getValues:function(a,c){c=c.period;var d=a.xData,b=(a=a.yData)?a.length:0,g=[],r,t,m,p,l=[],k=[],n;if(b<
81
+ c)return!1;for(n=c;n<=b;n++)p=d[n-1],t=a.slice(n-c,n),r=h(t,2,1),t=r[1],m=r[0],r=(t+m)/2,g.push([p,t,r,m]),l.push(p),k.push([t,r,m]);return{values:g,xData:l,yData:k}}}))});u(f,"indicators/price-envelopes.src.js",[f["parts/Globals.js"]],function(d){var n=d.merge,f=d.isArray,h=d.seriesTypes.sma;d.seriesType("priceenvelopes","sma",{marker:{enabled:!1},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eTop: {point.top}\x3cbr/\x3eMiddle: {point.middle}\x3cbr/\x3eBottom: {point.bottom}\x3cbr/\x3e'},
82
+ params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}},{nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle",init:function(){h.prototype.init.apply(this,arguments);this.options=n({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},
83
+ toYData:function(a){return[a.top,a.middle,a.bottom]},translate:function(){var a=this,c=["plotTop","plotMiddle","plotBottom"];h.prototype.translate.apply(a);a.points.forEach(function(d){[d.top,d.middle,d.bottom].forEach(function(b,e){null!==b&&(d[c[e]]=a.yAxis.toPixels(b,!0))})})},drawGraph:function(){for(var a=this,c=a.points,d=c.length,b=a.options,g=a.graph,r={options:{gapSize:b.gapSize}},t=[[],[]],m;d--;)m=c[d],t[0].push({plotX:m.plotX,plotY:m.plotTop,isNull:m.isNull}),t[1].push({plotX:m.plotX,
84
+ plotY:m.plotBottom,isNull:m.isNull});["topLine","bottomLine"].forEach(function(c,d){a.points=t[d];a.options=n(b[c].styles,r);a.graph=a["graph"+c];h.prototype.drawGraph.call(a);a["graph"+c]=a.graph});a.points=c;a.options=b;a.graph=g;h.prototype.drawGraph.call(a)},getValues:function(a,c){var d=c.period,b=c.topBand,g=c.bottomBand,r=a.xData,t=(a=a.yData)?a.length:0,m=[],p,l,k,n,q=[],C=[],v;if(r.length<d||!f(a[0])||4!==a[0].length)return!1;for(v=d;v<=t;v++)n=r.slice(v-d,v),p=a.slice(v-d,v),p=h.prototype.getValues.call(this,
85
+ {xData:n,yData:p},c),n=p.xData[0],p=p.yData[0],l=p*(1+b),k=p*(1-g),m.push([n,l,p,k]),q.push(n),C.push([l,p,k]);return{values:m,xData:q,yData:C}}})});u(f,"indicators/psar.src.js",[f["parts/Globals.js"]],function(d){d.seriesType("psar","sma",{lineWidth:0,marker:{enabled:!0},states:{hover:{lineWidthPlus:0}},params:{initialAccelerationFactor:.02,maxAccelerationFactor:.2,increment:.02,index:2,decimals:4}},{nameComponents:!1,getValues:function(d,f){var h=d.xData;d=d.yData;var a=d[0][1],c=f.maxAccelerationFactor,
86
+ e=f.increment,b=f.initialAccelerationFactor,g=d[0][2],r=f.decimals,t=f.index,m=[],p=[],l=[],k=1,n,q,C,v,u,w,x,A;if(t>=d.length)return!1;for(A=0;A<t;A++)a=Math.max(d[A][1],a),g=Math.min(d[A][2],parseFloat(g.toFixed(r)));n=d[A][1]>g?1:-1;f=f.initialAccelerationFactor;q=f*(a-g);m.push([h[t],g]);p.push(h[t]);l.push(parseFloat(g.toFixed(r)));for(A=t+1;A<d.length;A++)t=d[A-1][2],v=d[A-2][2],u=d[A-1][1],w=d[A-2][1],C=d[A][1],x=d[A][2],null!==v&&null!==w&&null!==t&&null!==u&&null!==C&&null!==x&&(g=n===k?
87
+ 1===n?g+q<Math.min(v,t)?g+q:Math.min(v,t):g+q>Math.max(w,u)?g+q:Math.max(w,u):a,t=1===n?C>a?C:a:x<a?x:a,C=1===k&&x>g||-1===k&&C>g?1:-1,k=C,q=t,x=e,v=c,u=b,f=k===n?1===k&&q>a?f===v?v:parseFloat((f+x).toFixed(2)):-1===k&&q<a?f===v?v:parseFloat((f+x).toFixed(2)):f:u,a=t-g,q=f*a,m.push([h[A],parseFloat(g.toFixed(r))]),p.push(h[A]),l.push(parseFloat(g.toFixed(r))),k=n,n=C,a=t);return{values:m,xData:p,yData:l}}})});u(f,"indicators/roc.src.js",[f["parts/Globals.js"]],function(d){var n=d.seriesType,f=d.isArray;
88
+ n("roc","sma",{params:{index:3,period:9}},{nameBase:"Rate of Change",getValues:function(d,a){var c=a.period,e=d.xData,b=(d=d.yData)?d.length:0,g=[],r=[],h=[],m=-1,p;if(e.length<=c)return!1;f(d[0])&&(m=a.index);for(a=c;a<b;a++)p=0>m?(p=d[a-c])?(d[a]-p)/p*100:null:(p=d[a-c][m])?(d[a][m]-p)/p*100:null,p=[e[a],p],g.push(p),r.push(p[0]),h.push(p[1]);return{values:g,xData:r,yData:h}}})});u(f,"indicators/rsi.src.js",[f["parts/Globals.js"]],function(d){var f=d.isArray;d.seriesType("rsi","sma",{params:{period:14,
89
+ decimals:4}},{getValues:function(d,h){var a=h.period,c=d.xData,e=(d=d.yData)?d.length:0;h=h.decimals;var b=1,g=[],r=[],t=[],m=0,p=0,l,k,n;if(c.length<a||!f(d[0])||4!==d[0].length)return!1;for(;b<a;)l=parseFloat((d[b][3]-d[b-1][3]).toFixed(h)),0<l?m+=l:p+=Math.abs(l),b++;k=parseFloat((m/(a-1)).toFixed(h));for(n=parseFloat((p/(a-1)).toFixed(h));b<e;b++)l=parseFloat((d[b][3]-d[b-1][3]).toFixed(h)),0<l?(m=l,p=0):(m=0,p=Math.abs(l)),k=parseFloat(((k*(a-1)+m)/a).toFixed(h)),n=parseFloat(((n*(a-1)+p)/a).toFixed(h)),
90
+ m=0===n?100:0===k?0:parseFloat((100-100/(1+k/n)).toFixed(h)),g.push([c[b],m]),r.push(c[b]),t.push(m);return{values:g,xData:r,yData:t}}})});u(f,"indicators/stochastic.src.js",[f["parts/Globals.js"],f["mixins/reduce-array.js"],f["mixins/multipe-lines.js"]],function(d,n,f){var h=d.merge,a=d.isArray,c=d.seriesTypes.sma,e=n.getArrayExtremes;d.seriesType("stochastic","sma",{params:{periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e\x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3e%K: {point.y}\x3cbr/\x3e%D: {point.smoothed}\x3cbr/\x3e'},
91
+ smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}},d.merge(f,{nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"],init:function(){c.prototype.init.apply(this,arguments);this.options=h({smoothedLine:{styles:{lineColor:this.color}}},this.options)},getValues:function(b,d){var g=d.periods[0];d=d.periods[1];var h=b.xData,m=(b=b.yData)?b.length:0,p=[],
92
+ l=[],k=[],f,n,q=null,v,u;if(m<g||!a(b[0])||4!==b[0].length)return!1;for(u=g-1;u<m;u++)f=b.slice(u-g+1,u+1),v=e(f,2,1),n=v[0],f=b[u][3]-n,n=v[1]-n,f=f/n*100,l.push(h[u]),k.push([f,null]),u>=g-1+(d-1)&&(q=c.prototype.getValues.call(this,{xData:l.slice(-d),yData:k.slice(-d)},{period:d}),q=q.yData[0]),p.push([h[u],f,q]),k[k.length-1][1]=q;return{values:p,xData:l,yData:k}}}))});u(f,"indicators/supertrend.src.js",[f["parts/Globals.js"]],function(d){function f(b,a,c){return{index:a,close:b.yData[a][c],x:b.xData[a]}}
93
+ var q=d.seriesTypes.atr,h=d.seriesTypes.sma,a=d.isArray,c=d.merge,e=d.correctFloat;d.seriesType("supertrend","sma",{params:{multiplier:3,period:10},risingTrendColor:"#06B535",fallingTrendColor:"#F21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}},{nameBase:"Supertrend",nameComponents:["multiplier","period"],requiredIndicators:["atr"],init:function(){var b;h.prototype.init.apply(this,arguments);b=this.options;b.cropThreshold=this.linkedParent.options.cropThreshold-
94
+ (b.params.period-1)},drawGraph:function(){for(var b=this,a=b.options,e=b.linkedParent,t=e?e.points:[],m=b.points,p=b.graph,l=m.length,k=t.length-l,k=0<k?k:0,n={options:{gapSize:a.gapSize}},q={top:[],bottom:[],intersect:[]},u={top:{styles:{lineWidth:a.lineWidth,lineColor:a.fallingTrendColor,dashStyle:a.dashStyle}},bottom:{styles:{lineWidth:a.lineWidth,lineColor:a.risingTrendColor,dashStyle:a.dashStyle}},intersect:a.changeTrendLine},v,G,w,x,A,B,H,z;l--;)v=m[l],G=m[l-1],w=t[l-1+k],x=t[l-2+k],A=t[l+k],
95
+ B=t[l+k+1],H=v.options.color,z={x:v.x,plotX:v.plotX,plotY:v.plotY,isNull:!1},!x&&w&&e.yData[w.index-1]&&(x=f(e,w.index-1,3)),!B&&A&&e.yData[A.index+1]&&(B=f(e,A.index+1,3)),!w&&x&&e.yData[x.index+1]?w=f(e,x.index+1,3):!w&&A&&e.yData[A.index-1]&&(w=f(e,A.index-1,3)),v&&w&&A&&x&&v.x!==w.x&&(v.x===A.x?(x=w,w=A):v.x===x.x?(w=x,x={close:e.yData[w.index-1][3],x:e.xData[w.index-1]}):B&&v.x===B.x&&(w=B,x=A)),G&&x&&w?(A={x:G.x,plotX:G.plotX,plotY:G.plotY,isNull:!1},v.y>=w.close&&G.y>=x.close?(v.color=H||a.fallingTrendColor,
96
+ q.top.push(z)):v.y<w.close&&G.y<x.close?(v.color=H||a.risingTrendColor,q.bottom.push(z)):(q.intersect.push(z),q.intersect.push(A),q.intersect.push(c(A,{isNull:!0})),v.y>=w.close&&G.y<x.close?(v.color=H||a.fallingTrendColor,G.color=H||a.risingTrendColor,q.top.push(z),q.top.push(c(A,{isNull:!0}))):v.y<w.close&&G.y>=x.close&&(v.color=H||a.risingTrendColor,G.color=H||a.fallingTrendColor,q.bottom.push(z),q.bottom.push(c(A,{isNull:!0}))))):w&&(v.y>=w.close?(v.color=H||a.fallingTrendColor,q.top.push(z)):
97
+ (v.color=H||a.risingTrendColor,q.bottom.push(z)));d.objectEach(q,function(a,d){b.points=a;b.options=c(u[d].styles,n);b.graph=b["graph"+d+"Line"];h.prototype.drawGraph.call(b);b["graph"+d+"Line"]=b.graph});b.points=m;b.options=a;b.graph=p},getValues:function(b,c){var d=c.period;c=c.multiplier;var g=b.xData,h=b.yData,p=[],l=[],k=[],f=0===d?0:d-1,n,u=[],v=[],G,w,x,A,B,H,z;if(g.length<=d||!a(h[0])||4!==h[0].length||0>d)return!1;b=q.prototype.getValues.call(this,b,{period:d}).yData;for(z=0;z<b.length;z++){H=
98
+ h[f+z];B=h[f+z-1]||[];w=u[z-1];x=v[z-1];A=k[z-1];0===z&&(w=x=A=0);d=e((H[1]+H[2])/2+c*b[z]);n=e((H[1]+H[2])/2-c*b[z]);u[z]=d<w||B[3]>w?d:w;v[z]=n>x||B[3]<x?n:x;if(A===w&&H[3]<u[z]||A===x&&H[3]<v[z])G=u[z];else if(A===w&&H[3]>u[z]||A===x&&H[3]>v[z])G=v[z];p.push([g[f+z],G]);l.push(g[f+z]);k.push(G)}return{values:p,xData:l,yData:k}}})});u(f,"indicators/volume-by-price.src.js",[f["parts/Globals.js"]],function(d){var f=Math.abs,q=d.noop,h=d.addEvent,a=d.correctFloat,c=d.seriesType,e=d.seriesTypes.column.prototype;
99
99
  c("vbp","sma",{params:{ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1E3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"7px"},verticalAlign:"top"}},
100
100
  {nameBase:"Volume by Price",bindTo:{series:!1,eventName:"afterSetExtremes"},calculateOn:"render",markerAttribs:q,drawGraph:q,getColumnMetrics:e.getColumnMetrics,crispCol:e.crispCol,init:function(b){var a,c;d.seriesTypes.sma.prototype.init.apply(this,arguments);a=this.options.params;c=this.linkedParent;a=b.get(a.volumeSeriesID);this.addCustomEvents(c,a);return this},addCustomEvents:function(b,a){function c(){d.chart.redraw();d.setData([]);d.zoneStarts=[];d.zoneLinesSVG&&(d.zoneLinesSVG.destroy(),delete d.zoneLinesSVG)}
101
- var d=this;d.dataEventsToUnbind.push(k(b,"remove",function(){c()}));a&&d.dataEventsToUnbind.push(k(a,"remove",function(){c()}));return d},animate:function(b){var a=this,c={};d.svg&&!b&&(c.translateX=a.yAxis.pos,a.group.animate(c,d.extend(d.animObject(a.options.animation),{step:function(b,c){a.group.attr({scaleX:Math.max(.001,c.pos)})}})),a.animate=null)},drawPoints:function(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),e.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1));
102
- e.drawPoints.apply(this,arguments)},posNegVolume:function(b,a){var c=a?["positive","negative"]:["negative","positive"],d=this.options.volumeDivision,e=this.points.length,g=[],l=[],h=0,k,f,m,q;b?(this.posWidths=g,this.negWidths=l):(g=this.posWidths,l=this.negWidths);for(;h<e;h++)q=this.points[h],q[c[0]+"Graphic"]=q.graphic,q.graphic=q[c[1]+"Graphic"],b&&(k=q.shapeArgs.width,f=this.priceZones[h],(m=f.wholeVolumeData)?(g.push(k/m*f.positiveVolumeData),l.push(k/m*f.negativeVolumeData)):(g.push(0),l.push(0))),
103
- q.color=a?d.styles.positiveColor:d.styles.negativeColor,q.shapeArgs.width=a?this.posWidths[h]:this.negWidths[h],q.shapeArgs.x=a?q.shapeArgs.x:this.posWidths[h]},translate:function(){var b=this,c=b.options,k=b.chart,m=b.yAxis,n=m.min,p=b.options.zoneLines,l=b.priceZones,h=0,q,t,C,w,G,v,x,A,B,H;e.translate.apply(b);q=b.points;q.length&&(x=.5>c.pointPadding?c.pointPadding:.1,c=b.volumeDataArray,t=d.arrayMax(c),C=k.plotWidth/2,A=k.plotTop,w=f(m.toPixels(n)-m.toPixels(n+b.rangeStep)),G=f(m.toPixels(n)-
104
- m.toPixels(n+b.rangeStep)),x&&(n=f(w*(1-2*x)),h=f((w-n)/2),w=f(n)),q.forEach(function(c,d){B=c.barX=c.plotX=0;H=c.plotY=m.toPixels(l[d].start)-A-(m.reversed?w-G:w)-h;v=a(C*l[d].wholeVolumeData/t);c.pointWidth=v;c.shapeArgs=b.crispCol.apply(b,[B,H,v,w]);c.volumeNeg=l[d].negativeVolumeData;c.volumePos=l[d].positiveVolumeData;c.volumeAll=l[d].wholeVolumeData}),p.enabled&&b.drawZones(k,m,b.zoneStarts,p.styles))},getValues:function(b,a){var c=b.processedXData,e=b.processedYData,g=this.chart,k=a.ranges,
105
- l=[],h=[],f=[],m;if(!b.chart)return d.error("Base series not found! In case it has been removed, add a new one.",!0,g);if(!(m=g.get(a.volumeSeriesID)))return d.error("Series "+a.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,g);if((a=d.isArray(e[0]))&&4!==e[0].length)return d.error("Type of "+b.name+" series is different than line, OHLC or candlestick.",!0,g);(this.priceZones=this.specifyZones(a,c,e,k,m)).forEach(function(b,a){l.push([b.x,b.end]);h.push(l[a][0]);f.push(l[a][1])});return{values:l,
106
- xData:h,yData:f}},specifyZones:function(b,c,e,k,f){var g;if(b){g=e.length;for(var l=e[0][3],h=l,r=1,m;r<g;r++)m=e[r][3],m<l&&(l=m),m>h&&(h=m);g={min:l,max:h}}else g=!1;g=(l=g)?l.min:d.arrayMin(e);m=l?l.max:d.arrayMax(e);var l=this.zoneStarts=[],h=[],n=0,r=1,q;if(!g||!m)return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG.destroy()),[];q=this.rangeStep=a(m-g)/k;for(l.push(g);n<k-1;n++)l.push(a(l[n]+q));l.push(m);for(k=l.length;r<k;r++)h.push({index:r-1,x:c[0],start:l[r-
107
- 1],end:l[r]});return this.volumePerZone(b,h,f,c,e)},volumePerZone:function(b,a,c,d,e){var g=this,k=c.processedXData,h=c.processedYData,r=a.length-1,m=e.length;c=h.length;var n,q,u,t,x;f(m-c)&&(d[0]!==k[0]&&h.unshift(0),d[m-1]!==k[c-1]&&h.push(0));g.volumeDataArray=[];a.forEach(function(a){a.wholeVolumeData=0;a.positiveVolumeData=0;for(x=a.negativeVolumeData=0;x<m;x++)u=q=!1,t=b?e[x][3]:e[x],n=x?b?e[x-1][3]:e[x-1]:t,t<=a.start&&0===a.index&&(q=!0),t>=a.end&&a.index===r&&(u=!0),(t>a.start||q)&&(t<a.end||
108
- u)&&(a.wholeVolumeData+=h[x],n>t?a.negativeVolumeData+=h[x]:a.positiveVolumeData+=h[x]);g.volumeDataArray.push(a.wholeVolumeData)});return a},drawZones:function(a,c,d,e){var b=a.renderer,g=this.zoneLinesSVG,k=[],h=a.plotWidth,r=a.plotTop,f;d.forEach(function(b){f=c.toPixels(b)-r;k=k.concat(a.renderer.crispLine(["M",0,f,"L",h,f],e.lineWidth))});g?g.animate({d:k}):g=this.zoneLinesSVG=b.path(k).attr({"stroke-width":e.lineWidth,stroke:e.color,dashstyle:e.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}},
109
- {destroy:function(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy());return d.Point.prototype.destroy.apply(this,arguments)}})});t(f,"indicators/vwap.src.js",[f["parts/Globals.js"]],function(d){var f=d.isArray,q=d.seriesType;q("vwap","sma",{params:{period:30,volumeSeriesID:"volume"}},{getValues:function(k,a){var c=k.chart,e=k.xData;k=k.yData;var b=a.period,g=!0,r;if(!(r=c.get(a.volumeSeriesID)))return d.error("Series "+a.volumeSeriesID+" not found! Check `volumeSeriesID`.",
110
- !0,c);f(k[0])||(g=!1);return this.calculateVWAPValues(g,e,k,r,b)},calculateVWAPValues:function(d,a,c,e,b){var g=e.yData,k=e.xData.length,f=a.length;e=[];var m=[],p=[],l=[],h=[],q,t,C,k=f<=k?f:k;for(C=f=0;f<k;f++)q=d?(c[f][1]+c[f][2]+c[f][3])/3:c[f],q*=g[f],q=C?e[f-1]+q:q,t=C?m[f-1]+g[f]:g[f],e.push(q),m.push(t),h.push([a[f],q/t]),p.push(h[f][0]),l.push(h[f][1]),C++,C===b&&(C=0);return{values:h,xData:p,yData:l}}})});t(f,"indicators/williams-r.src.js",[f["parts/Globals.js"],f["mixins/reduce-array.js"]],
111
- function(d,f){var m=d.isArray,k=f.getArrayExtremes;d.seriesType("williamsr","sma",{params:{period:14}},{nameBase:"Williams %R",getValues:function(a,c){c=c.period;var d=a.xData,b=(a=a.yData)?a.length:0,g=[],f=[],q=[],n,p,l,h;if(d.length<c||!m(a[0])||4!==a[0].length)return!1;for(h=c-1;h<b;h++)n=a.slice(h-c+1,h+1),p=k(n,2,1),n=p[0],p=p[1],l=a[h][3],n=(p-l)/(p-n)*-100,d[h]&&(g.push([d[h],n]),f.push(d[h]),q.push(n));return{values:g,xData:f,yData:q}}})});t(f,"indicators/wma.src.js",[f["parts/Globals.js"]],
112
- function(d){function f(a,c){c*=(c+1)/2;return a.reduce(function(a,b,c){return[null,a[1]+b[1]*(c+1)]})[1]/c}function q(a,c,d,b){d=f(a,a.length);c=c[b-1];a.shift();return[c,d]}var k=d.isArray;d=d.seriesType;d("wma","sma",{params:{index:3,period:9}},{getValues:function(a,c){var d=c.period,b=a.xData,g=(a=a.yData)?a.length:0,f=1,m=b[0],n=a[0],p=[],l=[],h=[],t=-1;if(b.length<d)return!1;k(a[0])&&(t=c.index,n=a[0][t]);for(c=[[m,n]];f!==d;)c.push([b[f],0>t?a[f]:a[f][t]]),f++;for(d=f;d<g;d++)f=q(c,b,a,d),p.push(f),
113
- l.push(f[0]),h.push(f[1]),c.push([b[d],0>t?a[d]:a[d][t]]);f=q(c,b,a,d);p.push(f);l.push(f[0]);h.push(f[1]);return{values:p,xData:l,yData:h}}})});t(f,"indicators/zigzag.src.js",[f["parts/Globals.js"]],function(d){d=d.seriesType;d("zigzag","sma",{params:{lowIndex:2,highIndex:1,deviation:1}},{nameComponents:["deviation"],nameSuffixes:["%"],nameBase:"Zig Zag",getValues:function(d,f){var k=f.lowIndex,a=f.highIndex,c=f.deviation/100;f=1+c;var e=1-c,c=d.xData,b=d.yData;d=b?b.length:0;var g=[],m=[],q=[],
114
- n,p,l,h,t,E,C=!1,w=!1;if(1>=c.length||d&&(void 0===b[0][k]||void 0===b[0][a]))return!1;h=b[0][k];t=b[0][a];for(n=1;n<d;n++)b[n][k]<=t*e?(g.push([c[0],t]),l=[c[n],b[n][k]],C=E=!0):b[n][a]>=h*f&&(g.push([c[0],h]),l=[c[n],b[n][a]],E=!1,C=!0),C&&(m.push(g[0][0]),q.push(g[0][1]),p=n++,n=d);for(n=p;n<d;n++)E?(b[n][k]<=l[1]&&(l=[c[n],b[n][k]]),b[n][a]>=l[1]*f&&(w=a)):(b[n][a]>=l[1]&&(l=[c[n],b[n][a]]),b[n][k]<=l[1]*e&&(w=k)),!1!==w&&(g.push(l),m.push(l[0]),q.push(l[1]),l=[c[n],b[n][w]],E=!E,w=!1);k=g.length;
115
- 0!==k&&g[k-1][0]<c[d-1]&&(g.push(l),m.push(l[0]),q.push(l[1]));return{values:g,xData:m,yData:q}}})});t(f,"indicators/regressions.src.js",[f["parts/Globals.js"]],function(d){var f=d.seriesType,q=d.isArray;f("linearRegression","sma",{params:{xAxisUnit:void 0},tooltip:{valueDecimals:4}},{nameBase:"Linear Regression Indicator",getRegressionLineParameters:function(d,a){var c=this.options.params.index,e=function(a,b){return q(a)?a[b]:a},b=d.reduce(function(a,b){return b+a},0),g=a.reduce(function(a,b){return e(b,
116
- c)+a},0),b=b/d.length,g=g/a.length,f,k,m=0,p=0,l;for(l=0;l<d.length;l++)f=d[l]-b,k=e(a[l],c)-g,m+=f*k,p+=Math.pow(f,2);d=p?m/p:0;return{slope:d,intercept:g-d*b}},getEndPointY:function(d,a){return d.slope*a+d.intercept},transformXData:function(d,a){var c=d[0];return d.map(function(d){return(d-c)/a})},findClosestDistance:function(d){var a,c,e;for(e=1;e<d.length-1;e++)a=d[e]-d[e-1],0<a&&(void 0===c||a<c)&&(c=a);return c},getValues:function(d,a){var c=d.xData;d=d.yData;a=a.period;var e,b,f,k,m={xData:[],
117
- yData:[],values:[]},n,p=this.options.params.xAxisUnit||this.findClosestDistance(c);for(b=a-1;b<=c.length-1;b++)f=b-a+1,k=b+1,n=c[b],e=c.slice(f,k),f=d.slice(f,k),k=this.transformXData(e,p),e=this.getRegressionLineParameters(k,f),f=this.getEndPointY(e,k[k.length-1]),m.values.push({regressionLineParameters:e,x:n,y:f}),m.xData.push(n),m.yData.push(f);return m}});f("linearRegressionSlope","linearRegression",{},{nameBase:"Linear Regression Slope Indicator",getEndPointY:function(d){return d.slope}});f("linearRegressionIntercept",
118
- "linearRegression",{},{nameBase:"Linear Regression Intercept Indicator",getEndPointY:function(d){return d.intercept}});f("linearRegressionAngle","linearRegression",{tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e{series.name}: \x3cb\x3e{point.y}\u00b0\x3c/b\x3e\x3cbr/\x3e'}},{nameBase:"Linear Regression Angle Indicator",slopeToAngle:function(d){return 180/Math.PI*Math.atan(d)},getEndPointY:function(d){return this.slopeToAngle(d.slope)}})});t(f,"indicators/acceleration-bands.src.js",
119
- [f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,f){var m=d.seriesTypes.sma,k=d.merge,a=d.correctFloat;d.seriesType("abands","sma",{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}},k(f,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Acceleration Bands",nameComponents:["period","factor"],linesApiNames:["topLine","bottomLine"],getValues:function(c,d){var b=
120
- d.period,e=d.factor;d=d.index;var f=c.xData,k=(c=c.yData)?c.length:0,n=[],p=[],l=[],h,q,t,C,w=[],G=[],v;if(k<b)return!1;for(v=0;v<=k;v++)v<k&&(C=c[v][2],t=c[v][1],q=e,C=a(t-C)/(a(t+C)/2)*1E3*q,n.push(c[v][1]*a(1+2*C)),p.push(c[v][2]*a(1-2*C))),v>=b&&(C=f.slice(v-b,v),h=c.slice(v-b,v),q=m.prototype.getValues.call(this,{xData:C,yData:n.slice(v-b,v)},{period:b}),t=m.prototype.getValues.call(this,{xData:C,yData:p.slice(v-b,v)},{period:b}),h=m.prototype.getValues.call(this,{xData:C,yData:h},{period:b,
121
- index:d}),C=h.xData[0],q=q.yData[0],t=t.yData[0],h=h.yData[0],l.push([C,q,h,t]),w.push(C),G.push([q,h,t]));return{values:l,xData:w,yData:G}}}))});t(f,"masters/indicators/indicators-all.src.js",[],function(){})});
101
+ var d=this;d.dataEventsToUnbind.push(h(b,"remove",function(){c()}));a&&d.dataEventsToUnbind.push(h(a,"remove",function(){c()}));return d},animate:function(b){var a=this,c={};d.svg&&!b&&(c.translateX=a.yAxis.pos,a.group.animate(c,d.extend(d.animObject(a.options.animation),{step:function(b,c){a.group.attr({scaleX:Math.max(.001,c.pos)})}})),a.animate=null)},drawPoints:function(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),e.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1));
102
+ e.drawPoints.apply(this,arguments)},posNegVolume:function(b,a){var c=a?["positive","negative"]:["negative","positive"],d=this.options.volumeDivision,e=this.points.length,g=[],h=[],k=0,f,n,q,v;b?(this.posWidths=g,this.negWidths=h):(g=this.posWidths,h=this.negWidths);for(;k<e;k++)v=this.points[k],v[c[0]+"Graphic"]=v.graphic,v.graphic=v[c[1]+"Graphic"],b&&(f=v.shapeArgs.width,n=this.priceZones[k],(q=n.wholeVolumeData)?(g.push(f/q*n.positiveVolumeData),h.push(f/q*n.negativeVolumeData)):(g.push(0),h.push(0))),
103
+ v.color=a?d.styles.positiveColor:d.styles.negativeColor,v.shapeArgs.width=a?this.posWidths[k]:this.negWidths[k],v.shapeArgs.x=a?v.shapeArgs.x:this.posWidths[k]},translate:function(){var b=this,c=b.options,h=b.chart,n=b.yAxis,m=n.min,p=b.options.zoneLines,l=b.priceZones,k=0,q,u,C,v,G,w,x,A,B,H;e.translate.apply(b);q=b.points;q.length&&(x=.5>c.pointPadding?c.pointPadding:.1,c=b.volumeDataArray,u=d.arrayMax(c),C=h.plotWidth/2,A=h.plotTop,v=f(n.toPixels(m)-n.toPixels(m+b.rangeStep)),G=f(n.toPixels(m)-
104
+ n.toPixels(m+b.rangeStep)),x&&(m=f(v*(1-2*x)),k=f((v-m)/2),v=f(m)),q.forEach(function(c,d){B=c.barX=c.plotX=0;H=c.plotY=n.toPixels(l[d].start)-A-(n.reversed?v-G:v)-k;w=a(C*l[d].wholeVolumeData/u);c.pointWidth=w;c.shapeArgs=b.crispCol.apply(b,[B,H,w,v]);c.volumeNeg=l[d].negativeVolumeData;c.volumePos=l[d].positiveVolumeData;c.volumeAll=l[d].wholeVolumeData}),p.enabled&&b.drawZones(h,n,b.zoneStarts,p.styles))},getValues:function(b,a){var c=b.processedXData,e=b.processedYData,g=this.chart,h=a.ranges,
105
+ l=[],k=[],f=[],n;if(!b.chart)return d.error("Base series not found! In case it has been removed, add a new one.",!0,g);if(!(n=g.get(a.volumeSeriesID)))return d.error("Series "+a.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,g);if((a=d.isArray(e[0]))&&4!==e[0].length)return d.error("Type of "+b.name+" series is different than line, OHLC or candlestick.",!0,g);(this.priceZones=this.specifyZones(a,c,e,h,n)).forEach(function(b,a){l.push([b.x,b.end]);k.push(l[a][0]);f.push(l[a][1])});return{values:l,
106
+ xData:k,yData:f}},specifyZones:function(b,c,e,h,f){var g;if(b){g=e.length;for(var l=e[0][3],k=l,r=1,m;r<g;r++)m=e[r][3],m<l&&(l=m),m>k&&(k=m);g={min:l,max:k}}else g=!1;g=(l=g)?l.min:d.arrayMin(e);m=l?l.max:d.arrayMax(e);var l=this.zoneStarts=[],k=[],n=0,r=1,t;if(!g||!m)return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG.destroy()),[];t=this.rangeStep=a(m-g)/h;for(l.push(g);n<h-1;n++)l.push(a(l[n]+t));l.push(m);for(h=l.length;r<h;r++)k.push({index:r-1,x:c[0],start:l[r-
107
+ 1],end:l[r]});return this.volumePerZone(b,k,f,c,e)},volumePerZone:function(b,a,c,d,e){var g=this,h=c.processedXData,k=c.processedYData,r=a.length-1,m=e.length;c=k.length;var n,t,q,u,x;f(m-c)&&(d[0]!==h[0]&&k.unshift(0),d[m-1]!==h[c-1]&&k.push(0));g.volumeDataArray=[];a.forEach(function(a){a.wholeVolumeData=0;a.positiveVolumeData=0;for(x=a.negativeVolumeData=0;x<m;x++)q=t=!1,u=b?e[x][3]:e[x],n=x?b?e[x-1][3]:e[x-1]:u,u<=a.start&&0===a.index&&(t=!0),u>=a.end&&a.index===r&&(q=!0),(u>a.start||t)&&(u<a.end||
108
+ q)&&(a.wholeVolumeData+=k[x],n>u?a.negativeVolumeData+=k[x]:a.positiveVolumeData+=k[x]);g.volumeDataArray.push(a.wholeVolumeData)});return a},drawZones:function(a,c,d,e){var b=a.renderer,g=this.zoneLinesSVG,h=[],k=a.plotWidth,f=a.plotTop,r;d.forEach(function(b){r=c.toPixels(b)-f;h=h.concat(a.renderer.crispLine(["M",0,r,"L",k,r],e.lineWidth))});g?g.animate({d:h}):g=this.zoneLinesSVG=b.path(h).attr({"stroke-width":e.lineWidth,stroke:e.color,dashstyle:e.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}},
109
+ {destroy:function(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy());return d.Point.prototype.destroy.apply(this,arguments)}})});u(f,"indicators/vwap.src.js",[f["parts/Globals.js"]],function(d){var f=d.isArray,q=d.seriesType;q("vwap","sma",{params:{period:30,volumeSeriesID:"volume"}},{getValues:function(h,a){var c=h.chart,e=h.xData;h=h.yData;var b=a.period,g=!0,r;if(!(r=c.get(a.volumeSeriesID)))return d.error("Series "+a.volumeSeriesID+" not found! Check `volumeSeriesID`.",
110
+ !0,c);f(h[0])||(g=!1);return this.calculateVWAPValues(g,e,h,r,b)},calculateVWAPValues:function(d,a,c,e,b){var g=e.yData,h=e.xData.length,f=a.length;e=[];var m=[],n=[],l=[],k=[],q,u,C,h=f<=h?f:h;for(C=f=0;f<h;f++)q=d?(c[f][1]+c[f][2]+c[f][3])/3:c[f],q*=g[f],q=C?e[f-1]+q:q,u=C?m[f-1]+g[f]:g[f],e.push(q),m.push(u),k.push([a[f],q/u]),n.push(k[f][0]),l.push(k[f][1]),C++,C===b&&(C=0);return{values:k,xData:n,yData:l}}})});u(f,"indicators/williams-r.src.js",[f["parts/Globals.js"],f["mixins/reduce-array.js"]],
111
+ function(d,f){var n=d.isArray,h=f.getArrayExtremes;d.seriesType("williamsr","sma",{params:{period:14}},{nameBase:"Williams %R",getValues:function(a,c){c=c.period;var d=a.xData,b=(a=a.yData)?a.length:0,g=[],f=[],q=[],m,p,l,k;if(d.length<c||!n(a[0])||4!==a[0].length)return!1;for(k=c-1;k<b;k++)m=a.slice(k-c+1,k+1),p=h(m,2,1),m=p[0],p=p[1],l=a[k][3],m=(p-l)/(p-m)*-100,d[k]&&(g.push([d[k],m]),f.push(d[k]),q.push(m));return{values:g,xData:f,yData:q}}})});u(f,"indicators/wma.src.js",[f["parts/Globals.js"]],
112
+ function(d){function f(a,c){c*=(c+1)/2;return a.reduce(function(a,b,c){return[null,a[1]+b[1]*(c+1)]})[1]/c}function q(a,c,d,b){d=f(a,a.length);c=c[b-1];a.shift();return[c,d]}var h=d.isArray;d=d.seriesType;d("wma","sma",{params:{index:3,period:9}},{getValues:function(a,c){var d=c.period,b=a.xData,g=(a=a.yData)?a.length:0,f=1,n=b[0],m=a[0],p=[],l=[],k=[],u=-1;if(b.length<d)return!1;h(a[0])&&(u=c.index,m=a[0][u]);for(c=[[n,m]];f!==d;)c.push([b[f],0>u?a[f]:a[f][u]]),f++;for(d=f;d<g;d++)f=q(c,b,a,d),p.push(f),
113
+ l.push(f[0]),k.push(f[1]),c.push([b[d],0>u?a[d]:a[d][u]]);f=q(c,b,a,d);p.push(f);l.push(f[0]);k.push(f[1]);return{values:p,xData:l,yData:k}}})});u(f,"indicators/zigzag.src.js",[f["parts/Globals.js"]],function(d){d=d.seriesType;d("zigzag","sma",{params:{lowIndex:2,highIndex:1,deviation:1}},{nameComponents:["deviation"],nameSuffixes:["%"],nameBase:"Zig Zag",getValues:function(d,f){var h=f.lowIndex,a=f.highIndex,c=f.deviation/100;f=1+c;var e=1-c,c=d.xData,b=d.yData;d=b?b.length:0;var g=[],n=[],q=[],
114
+ m,p,l,k,u,E,C=!1,v=!1;if(1>=c.length||d&&(void 0===b[0][h]||void 0===b[0][a]))return!1;k=b[0][h];u=b[0][a];for(m=1;m<d;m++)b[m][h]<=u*e?(g.push([c[0],u]),l=[c[m],b[m][h]],C=E=!0):b[m][a]>=k*f&&(g.push([c[0],k]),l=[c[m],b[m][a]],E=!1,C=!0),C&&(n.push(g[0][0]),q.push(g[0][1]),p=m++,m=d);for(m=p;m<d;m++)E?(b[m][h]<=l[1]&&(l=[c[m],b[m][h]]),b[m][a]>=l[1]*f&&(v=a)):(b[m][a]>=l[1]&&(l=[c[m],b[m][a]]),b[m][h]<=l[1]*e&&(v=h)),!1!==v&&(g.push(l),n.push(l[0]),q.push(l[1]),l=[c[m],b[m][v]],E=!E,v=!1);h=g.length;
115
+ 0!==h&&g[h-1][0]<c[d-1]&&(g.push(l),n.push(l[0]),q.push(l[1]));return{values:g,xData:n,yData:q}}})});u(f,"indicators/regressions.src.js",[f["parts/Globals.js"]],function(d){var f=d.seriesType,q=d.isArray;f("linearRegression","sma",{params:{xAxisUnit:void 0},tooltip:{valueDecimals:4}},{nameBase:"Linear Regression Indicator",getRegressionLineParameters:function(d,a){var c=this.options.params.index,e=function(a,b){return q(a)?a[b]:a},b=d.reduce(function(a,b){return b+a},0),g=a.reduce(function(a,b){return e(b,
116
+ c)+a},0),b=b/d.length,g=g/a.length,h,f,m=0,n=0,l;for(l=0;l<d.length;l++)h=d[l]-b,f=e(a[l],c)-g,m+=h*f,n+=Math.pow(h,2);d=n?m/n:0;return{slope:d,intercept:g-d*b}},getEndPointY:function(d,a){return d.slope*a+d.intercept},transformXData:function(d,a){var c=d[0];return d.map(function(d){return(d-c)/a})},findClosestDistance:function(d){var a,c,e;for(e=1;e<d.length-1;e++)a=d[e]-d[e-1],0<a&&(void 0===c||a<c)&&(c=a);return c},getValues:function(d,a){var c=d.xData;d=d.yData;a=a.period;var e,b,g,f,h={xData:[],
117
+ yData:[],values:[]},m,n=this.options.params.xAxisUnit||this.findClosestDistance(c);for(b=a-1;b<=c.length-1;b++)g=b-a+1,f=b+1,m=c[b],e=c.slice(g,f),g=d.slice(g,f),f=this.transformXData(e,n),e=this.getRegressionLineParameters(f,g),g=this.getEndPointY(e,f[f.length-1]),h.values.push({regressionLineParameters:e,x:m,y:g}),h.xData.push(m),h.yData.push(g);return h}});f("linearRegressionSlope","linearRegression",{},{nameBase:"Linear Regression Slope Indicator",getEndPointY:function(d){return d.slope}});f("linearRegressionIntercept",
118
+ "linearRegression",{},{nameBase:"Linear Regression Intercept Indicator",getEndPointY:function(d){return d.intercept}});f("linearRegressionAngle","linearRegression",{tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e{series.name}: \x3cb\x3e{point.y}\u00b0\x3c/b\x3e\x3cbr/\x3e'}},{nameBase:"Linear Regression Angle Indicator",slopeToAngle:function(d){return 180/Math.PI*Math.atan(d)},getEndPointY:function(d){return this.slopeToAngle(d.slope)}})});u(f,"indicators/acceleration-bands.src.js",
119
+ [f["parts/Globals.js"],f["mixins/multipe-lines.js"]],function(d,f){var n=d.seriesTypes.sma,h=d.merge,a=d.correctFloat;d.seriesType("abands","sma",{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}},h(f,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Acceleration Bands",nameComponents:["period","factor"],linesApiNames:["topLine","bottomLine"],getValues:function(c,d){var b=
120
+ d.period,e=d.factor;d=d.index;var f=c.xData,h=(c=c.yData)?c.length:0,m=[],p=[],l=[],k,q,u,C,v=[],G=[],w;if(h<b)return!1;for(w=0;w<=h;w++)w<h&&(C=c[w][2],u=c[w][1],q=e,C=a(u-C)/(a(u+C)/2)*1E3*q,m.push(c[w][1]*a(1+2*C)),p.push(c[w][2]*a(1-2*C))),w>=b&&(C=f.slice(w-b,w),k=c.slice(w-b,w),q=n.prototype.getValues.call(this,{xData:C,yData:m.slice(w-b,w)},{period:b}),u=n.prototype.getValues.call(this,{xData:C,yData:p.slice(w-b,w)},{period:b}),k=n.prototype.getValues.call(this,{xData:C,yData:k},{period:b,
121
+ index:d}),C=k.xData[0],q=q.yData[0],u=u.yData[0],k=k.yData[0],l.push([C,q,k,u]),v.push(C),G.push([q,k,u]));return{values:l,xData:v,yData:G}}}))});u(f,"masters/indicators/indicators-all.src.js",[],function(){})});
122
122
  //# sourceMappingURL=indicators-all.js.map