@continuumdao/continuum-node-sdk 1.3.25 → 1.3.28

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 (586) hide show
  1. package/README.md +15 -1
  2. package/dist/agent-host-catalog.json +189 -0
  3. package/dist/core/agent/agent-chart-data-access-assert.d.ts +7 -0
  4. package/dist/core/agent/agent-chart-data-access-assert.d.ts.map +1 -0
  5. package/dist/core/agent/agent-chart-data-access-assert.js +27 -0
  6. package/dist/core/agent/agent-chart-data-access-assert.js.map +1 -0
  7. package/dist/core/agent/agent-chart-data-access.d.ts +11 -0
  8. package/dist/core/agent/agent-chart-data-access.d.ts.map +1 -0
  9. package/dist/core/agent/agent-chart-data-access.js +42 -0
  10. package/dist/core/agent/agent-chart-data-access.js.map +1 -0
  11. package/dist/core/agent/environment-variables.d.ts +8 -1
  12. package/dist/core/agent/environment-variables.d.ts.map +1 -1
  13. package/dist/core/agent/environment-variables.js +44 -1
  14. package/dist/core/agent/environment-variables.js.map +1 -1
  15. package/dist/core/agent/mcp-servers.d.ts +8 -1
  16. package/dist/core/agent/mcp-servers.d.ts.map +1 -1
  17. package/dist/core/agent/mcp-servers.js +50 -1
  18. package/dist/core/agent/mcp-servers.js.map +1 -1
  19. package/dist/core/agent/skills.d.ts +6 -0
  20. package/dist/core/agent/skills.d.ts.map +1 -1
  21. package/dist/core/agent/skills.js +40 -1
  22. package/dist/core/agent/skills.js.map +1 -1
  23. package/dist/core/candlestick-patterns/calibration-weights.d.ts +3 -0
  24. package/dist/core/candlestick-patterns/calibration-weights.d.ts.map +1 -0
  25. package/dist/core/candlestick-patterns/calibration-weights.js +3 -0
  26. package/dist/core/candlestick-patterns/calibration-weights.js.map +1 -0
  27. package/dist/core/candlestick-patterns/candle-settings.d.ts +50 -0
  28. package/dist/core/candlestick-patterns/candle-settings.d.ts.map +1 -0
  29. package/dist/core/candlestick-patterns/candle-settings.js +127 -0
  30. package/dist/core/candlestick-patterns/candle-settings.js.map +1 -0
  31. package/dist/core/candlestick-patterns/catalog.d.ts +7 -0
  32. package/dist/core/candlestick-patterns/catalog.d.ts.map +1 -0
  33. package/dist/core/candlestick-patterns/catalog.js +191 -0
  34. package/dist/core/candlestick-patterns/catalog.js.map +1 -0
  35. package/dist/core/candlestick-patterns/index.d.ts +7 -0
  36. package/dist/core/candlestick-patterns/index.d.ts.map +1 -0
  37. package/dist/core/candlestick-patterns/index.js +6 -0
  38. package/dist/core/candlestick-patterns/index.js.map +1 -0
  39. package/dist/core/candlestick-patterns/patterns/detect.d.ts +21 -0
  40. package/dist/core/candlestick-patterns/patterns/detect.d.ts.map +1 -0
  41. package/dist/core/candlestick-patterns/patterns/detect.js +515 -0
  42. package/dist/core/candlestick-patterns/patterns/detect.js.map +1 -0
  43. package/dist/core/candlestick-patterns/recommendation.d.ts +3 -0
  44. package/dist/core/candlestick-patterns/recommendation.d.ts.map +1 -0
  45. package/dist/core/candlestick-patterns/recommendation.js +92 -0
  46. package/dist/core/candlestick-patterns/recommendation.js.map +1 -0
  47. package/dist/core/candlestick-patterns/scan.d.ts +8 -0
  48. package/dist/core/candlestick-patterns/scan.d.ts.map +1 -0
  49. package/dist/core/candlestick-patterns/scan.js +70 -0
  50. package/dist/core/candlestick-patterns/scan.js.map +1 -0
  51. package/dist/core/candlestick-patterns/types.d.ts +47 -0
  52. package/dist/core/candlestick-patterns/types.d.ts.map +1 -0
  53. package/dist/core/candlestick-patterns/types.js +2 -0
  54. package/dist/core/candlestick-patterns/types.js.map +1 -0
  55. package/dist/core/chart/analysis/analysis-agent-view.d.ts +6 -0
  56. package/dist/core/chart/analysis/analysis-agent-view.d.ts.map +1 -0
  57. package/dist/core/chart/analysis/analysis-agent-view.js +224 -0
  58. package/dist/core/chart/analysis/analysis-agent-view.js.map +1 -0
  59. package/dist/core/chart/analysis/analysis-catalog.d.ts +18 -0
  60. package/dist/core/chart/analysis/analysis-catalog.d.ts.map +1 -0
  61. package/dist/core/chart/analysis/analysis-catalog.js +108 -0
  62. package/dist/core/chart/analysis/analysis-catalog.js.map +1 -0
  63. package/dist/core/chart/analysis/analysis-meta.d.ts +97 -0
  64. package/dist/core/chart/analysis/analysis-meta.d.ts.map +1 -0
  65. package/dist/core/chart/analysis/analysis-meta.js +86 -0
  66. package/dist/core/chart/analysis/analysis-meta.js.map +1 -0
  67. package/dist/core/chart/analysis/analyze-tools.d.ts +668 -0
  68. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -0
  69. package/dist/core/chart/analysis/analyze-tools.js +859 -0
  70. package/dist/core/chart/analysis/analyze-tools.js.map +1 -0
  71. package/dist/core/chart/analysis/candlestick-highlight.d.ts +55 -0
  72. package/dist/core/chart/analysis/candlestick-highlight.d.ts.map +1 -0
  73. package/dist/core/chart/analysis/candlestick-highlight.js +71 -0
  74. package/dist/core/chart/analysis/candlestick-highlight.js.map +1 -0
  75. package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts +164 -0
  76. package/dist/core/chart/analysis/candlestick-patterns-tools.d.ts.map +1 -0
  77. package/dist/core/chart/analysis/candlestick-patterns-tools.js +205 -0
  78. package/dist/core/chart/analysis/candlestick-patterns-tools.js.map +1 -0
  79. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +105 -0
  80. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -0
  81. package/dist/core/chart/analysis/chart-patterns-drawings-tools.js +512 -0
  82. package/dist/core/chart/analysis/chart-patterns-drawings-tools.js.map +1 -0
  83. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +542 -0
  84. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -0
  85. package/dist/core/chart/analysis/chart-patterns-tools.js +283 -0
  86. package/dist/core/chart/analysis/chart-patterns-tools.js.map +1 -0
  87. package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts +42 -0
  88. package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts.map +1 -0
  89. package/dist/core/chart/analysis/key-fib-drawings-tools.js +140 -0
  90. package/dist/core/chart/analysis/key-fib-drawings-tools.js.map +1 -0
  91. package/dist/core/chart/analysis/key-level-break-detect.d.ts +27 -0
  92. package/dist/core/chart/analysis/key-level-break-detect.d.ts.map +1 -0
  93. package/dist/core/chart/analysis/key-level-break-detect.js +156 -0
  94. package/dist/core/chart/analysis/key-level-break-detect.js.map +1 -0
  95. package/dist/core/chart/analysis/key-level-drawings-shared.d.ts +109 -0
  96. package/dist/core/chart/analysis/key-level-drawings-shared.d.ts.map +1 -0
  97. package/dist/core/chart/analysis/key-level-drawings-shared.js +335 -0
  98. package/dist/core/chart/analysis/key-level-drawings-shared.js.map +1 -0
  99. package/dist/core/chart/analysis/key-level-drawings-tools.d.ts +42 -0
  100. package/dist/core/chart/analysis/key-level-drawings-tools.d.ts.map +1 -0
  101. package/dist/core/chart/analysis/key-level-drawings-tools.js +140 -0
  102. package/dist/core/chart/analysis/key-level-drawings-tools.js.map +1 -0
  103. package/dist/core/chart/analysis/key-level-menu-summary.d.ts +84 -0
  104. package/dist/core/chart/analysis/key-level-menu-summary.d.ts.map +1 -0
  105. package/dist/core/chart/analysis/key-level-menu-summary.js +257 -0
  106. package/dist/core/chart/analysis/key-level-menu-summary.js.map +1 -0
  107. package/dist/core/chart/analysis/key-levels-dataset.d.ts +17 -0
  108. package/dist/core/chart/analysis/key-levels-dataset.d.ts.map +1 -0
  109. package/dist/core/chart/analysis/key-levels-dataset.js +44 -0
  110. package/dist/core/chart/analysis/key-levels-dataset.js.map +1 -0
  111. package/dist/core/chart/analysis/momentum-highlight.d.ts +31 -0
  112. package/dist/core/chart/analysis/momentum-highlight.d.ts.map +1 -0
  113. package/dist/core/chart/analysis/momentum-highlight.js +59 -0
  114. package/dist/core/chart/analysis/momentum-highlight.js.map +1 -0
  115. package/dist/core/chart/analysis/ohlcv-input.d.ts +39 -0
  116. package/dist/core/chart/analysis/ohlcv-input.d.ts.map +1 -0
  117. package/dist/core/chart/analysis/ohlcv-input.js +89 -0
  118. package/dist/core/chart/analysis/ohlcv-input.js.map +1 -0
  119. package/dist/core/chart/analysis/ohlcv-live-merge.d.ts +39 -0
  120. package/dist/core/chart/analysis/ohlcv-live-merge.d.ts.map +1 -0
  121. package/dist/core/chart/analysis/ohlcv-live-merge.js +158 -0
  122. package/dist/core/chart/analysis/ohlcv-live-merge.js.map +1 -0
  123. package/dist/core/chart/analysis/range-volatility-highlight.d.ts +31 -0
  124. package/dist/core/chart/analysis/range-volatility-highlight.d.ts.map +1 -0
  125. package/dist/core/chart/analysis/range-volatility-highlight.js +53 -0
  126. package/dist/core/chart/analysis/range-volatility-highlight.js.map +1 -0
  127. package/dist/core/chart/analysis/time-series-analyze-tools.d.ts +98 -0
  128. package/dist/core/chart/analysis/time-series-analyze-tools.d.ts.map +1 -0
  129. package/dist/core/chart/analysis/time-series-analyze-tools.js +343 -0
  130. package/dist/core/chart/analysis/time-series-analyze-tools.js.map +1 -0
  131. package/dist/core/chart/analysis/time-series-input.d.ts +15 -0
  132. package/dist/core/chart/analysis/time-series-input.d.ts.map +1 -0
  133. package/dist/core/chart/analysis/time-series-input.js +155 -0
  134. package/dist/core/chart/analysis/time-series-input.js.map +1 -0
  135. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts +10 -0
  136. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.d.ts.map +1 -0
  137. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js +128 -0
  138. package/dist/core/chart/analysis/trade-setups/build-trade-uniswap.js.map +1 -0
  139. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts +46 -0
  140. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -0
  141. package/dist/core/chart/analysis/trade-setups/build-trade.js +298 -0
  142. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -0
  143. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts +48 -0
  144. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.d.ts.map +1 -0
  145. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js +76 -0
  146. package/dist/core/chart/analysis/trade-setups/candlestick-trade-setup.js.map +1 -0
  147. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts +56 -0
  148. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.d.ts.map +1 -0
  149. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js +223 -0
  150. package/dist/core/chart/analysis/trade-setups/chart-pattern-trade-setup.js.map +1 -0
  151. package/dist/core/chart/analysis/trade-setups/index.d.ts +13 -0
  152. package/dist/core/chart/analysis/trade-setups/index.d.ts.map +1 -0
  153. package/dist/core/chart/analysis/trade-setups/index.js +13 -0
  154. package/dist/core/chart/analysis/trade-setups/index.js.map +1 -0
  155. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts +105 -0
  156. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts.map +1 -0
  157. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js +452 -0
  158. package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js.map +1 -0
  159. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts +110 -0
  160. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts.map +1 -0
  161. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js +344 -0
  162. package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js.map +1 -0
  163. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.d.ts +39 -0
  164. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.d.ts.map +1 -0
  165. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.js +68 -0
  166. package/dist/core/chart/analysis/trade-setups/momentum-trade-setup.js.map +1 -0
  167. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts +42 -0
  168. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.d.ts.map +1 -0
  169. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js +395 -0
  170. package/dist/core/chart/analysis/trade-setups/pattern-limit-entry.js.map +1 -0
  171. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.d.ts +52 -0
  172. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.d.ts.map +1 -0
  173. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.js +119 -0
  174. package/dist/core/chart/analysis/trade-setups/range-volatility-trade-setup.js.map +1 -0
  175. package/dist/core/chart/analysis/trade-setups/shared.d.ts +21 -0
  176. package/dist/core/chart/analysis/trade-setups/shared.d.ts.map +1 -0
  177. package/dist/core/chart/analysis/trade-setups/shared.js +48 -0
  178. package/dist/core/chart/analysis/trade-setups/shared.js.map +1 -0
  179. package/dist/core/chart/analysis/trade-setups/trade-consensus.d.ts +22 -0
  180. package/dist/core/chart/analysis/trade-setups/trade-consensus.d.ts.map +1 -0
  181. package/dist/core/chart/analysis/trade-setups/trade-consensus.js +95 -0
  182. package/dist/core/chart/analysis/trade-setups/trade-consensus.js.map +1 -0
  183. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts +11 -0
  184. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.d.ts.map +1 -0
  185. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js +13 -0
  186. package/dist/core/chart/analysis/trade-setups/trade-desk-defaults.js.map +1 -0
  187. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts +40 -0
  188. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.d.ts.map +1 -0
  189. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js +84 -0
  190. package/dist/core/chart/analysis/trade-setups/trade-entry-gates.js.map +1 -0
  191. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts +46 -0
  192. package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts.map +1 -0
  193. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js +98 -0
  194. package/dist/core/chart/analysis/trade-setups/trade-idea-list.js.map +1 -0
  195. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts +76 -0
  196. package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts.map +1 -0
  197. package/dist/core/chart/analysis/trade-setups/trade-idea.js +187 -0
  198. package/dist/core/chart/analysis/trade-setups/trade-idea.js.map +1 -0
  199. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts +43 -0
  200. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts.map +1 -0
  201. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js +183 -0
  202. package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js.map +1 -0
  203. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts +59 -0
  204. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.d.ts.map +1 -0
  205. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js +138 -0
  206. package/dist/core/chart/analysis/trade-setups/trend-structure-trade-setup.js.map +1 -0
  207. package/dist/core/chart/analysis/trend-line-drawings-tools.d.ts +56 -0
  208. package/dist/core/chart/analysis/trend-line-drawings-tools.d.ts.map +1 -0
  209. package/dist/core/chart/analysis/trend-line-drawings-tools.js +271 -0
  210. package/dist/core/chart/analysis/trend-line-drawings-tools.js.map +1 -0
  211. package/dist/core/chart/analysis/trend-line-menu-summary.d.ts +38 -0
  212. package/dist/core/chart/analysis/trend-line-menu-summary.d.ts.map +1 -0
  213. package/dist/core/chart/analysis/trend-line-menu-summary.js +94 -0
  214. package/dist/core/chart/analysis/trend-line-menu-summary.js.map +1 -0
  215. package/dist/core/chart/apply-chart-drawings.d.ts +3 -0
  216. package/dist/core/chart/apply-chart-drawings.d.ts.map +1 -1
  217. package/dist/core/chart/apply-chart-drawings.js +101 -31
  218. package/dist/core/chart/apply-chart-drawings.js.map +1 -1
  219. package/dist/core/chart/chart-agent-view.d.ts +4 -0
  220. package/dist/core/chart/chart-agent-view.d.ts.map +1 -0
  221. package/dist/core/chart/chart-agent-view.js +27 -0
  222. package/dist/core/chart/chart-agent-view.js.map +1 -0
  223. package/dist/core/chart/chart-data-validation.d.ts +63 -0
  224. package/dist/core/chart/chart-data-validation.d.ts.map +1 -0
  225. package/dist/core/chart/chart-data-validation.js +320 -0
  226. package/dist/core/chart/chart-data-validation.js.map +1 -0
  227. package/dist/core/chart/chart-ohlcv-load-status.d.ts +39 -0
  228. package/dist/core/chart/chart-ohlcv-load-status.d.ts.map +1 -0
  229. package/dist/core/chart/chart-ohlcv-load-status.js +281 -0
  230. package/dist/core/chart/chart-ohlcv-load-status.js.map +1 -0
  231. package/dist/core/chart/chart-ohlcv-summary.d.ts +58 -0
  232. package/dist/core/chart/chart-ohlcv-summary.d.ts.map +1 -0
  233. package/dist/core/chart/chart-ohlcv-summary.js +118 -0
  234. package/dist/core/chart/chart-ohlcv-summary.js.map +1 -0
  235. package/dist/core/chart/chart-pattern-session-store.d.ts +39 -0
  236. package/dist/core/chart/chart-pattern-session-store.d.ts.map +1 -0
  237. package/dist/core/chart/chart-pattern-session-store.js +94 -0
  238. package/dist/core/chart/chart-pattern-session-store.js.map +1 -0
  239. package/dist/core/chart/customization-catalog.d.ts.map +1 -1
  240. package/dist/core/chart/customization-catalog.js +8 -2
  241. package/dist/core/chart/customization-catalog.js.map +1 -1
  242. package/dist/core/chart/display-downsample.d.ts +9 -0
  243. package/dist/core/chart/display-downsample.d.ts.map +1 -0
  244. package/dist/core/chart/display-downsample.js +79 -0
  245. package/dist/core/chart/display-downsample.js.map +1 -0
  246. package/dist/core/chart/index.d.ts +2 -1
  247. package/dist/core/chart/index.d.ts.map +1 -1
  248. package/dist/core/chart/index.js +2 -1
  249. package/dist/core/chart/index.js.map +1 -1
  250. package/dist/core/chart/levels/calculate-tools.d.ts +8 -0
  251. package/dist/core/chart/levels/calculate-tools.d.ts.map +1 -1
  252. package/dist/core/chart/levels/calculate-tools.js +9 -3
  253. package/dist/core/chart/levels/calculate-tools.js.map +1 -1
  254. package/dist/core/chart/levels/trend-lines.d.ts +3 -0
  255. package/dist/core/chart/levels/trend-lines.d.ts.map +1 -1
  256. package/dist/core/chart/levels/trend-lines.js +6 -3
  257. package/dist/core/chart/levels/trend-lines.js.map +1 -1
  258. package/dist/core/chart/live/binding-extract.d.ts.map +1 -1
  259. package/dist/core/chart/live/binding-extract.js +10 -1
  260. package/dist/core/chart/live/binding-extract.js.map +1 -1
  261. package/dist/core/chart/live/fetch-tick.d.ts +4 -0
  262. package/dist/core/chart/live/fetch-tick.d.ts.map +1 -0
  263. package/dist/core/chart/live/fetch-tick.js +73 -0
  264. package/dist/core/chart/live/fetch-tick.js.map +1 -0
  265. package/dist/core/chart/live/index.d.ts +1 -0
  266. package/dist/core/chart/live/index.d.ts.map +1 -1
  267. package/dist/core/chart/live/index.js +1 -0
  268. package/dist/core/chart/live/index.js.map +1 -1
  269. package/dist/core/chart/ohlcv-integrity-messages.d.ts +5 -0
  270. package/dist/core/chart/ohlcv-integrity-messages.d.ts.map +1 -0
  271. package/dist/core/chart/ohlcv-integrity-messages.js +12 -0
  272. package/dist/core/chart/ohlcv-integrity-messages.js.map +1 -0
  273. package/dist/core/chart/ohlcv-integrity.d.ts +82 -0
  274. package/dist/core/chart/ohlcv-integrity.d.ts.map +1 -0
  275. package/dist/core/chart/ohlcv-integrity.js +266 -0
  276. package/dist/core/chart/ohlcv-integrity.js.map +1 -0
  277. package/dist/core/chart/ohlcv-session-store.d.ts +38 -0
  278. package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -0
  279. package/dist/core/chart/ohlcv-session-store.js +107 -0
  280. package/dist/core/chart/ohlcv-session-store.js.map +1 -0
  281. package/dist/core/chart/ohlcv-window-expectations.d.ts +77 -0
  282. package/dist/core/chart/ohlcv-window-expectations.d.ts.map +1 -0
  283. package/dist/core/chart/ohlcv-window-expectations.js +426 -0
  284. package/dist/core/chart/ohlcv-window-expectations.js.map +1 -0
  285. package/dist/core/chart/ohlcv-window.d.ts +36 -0
  286. package/dist/core/chart/ohlcv-window.d.ts.map +1 -0
  287. package/dist/core/chart/ohlcv-window.js +238 -0
  288. package/dist/core/chart/ohlcv-window.js.map +1 -0
  289. package/dist/core/chart/overlay-schemas.d.ts +545 -0
  290. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  291. package/dist/core/chart/overlay-schemas.js +116 -1
  292. package/dist/core/chart/overlay-schemas.js.map +1 -1
  293. package/dist/core/chart/overlays.d.ts.map +1 -1
  294. package/dist/core/chart/overlays.js +283 -11
  295. package/dist/core/chart/overlays.js.map +1 -1
  296. package/dist/core/chart/point-normalize.d.ts.map +1 -1
  297. package/dist/core/chart/point-normalize.js +21 -14
  298. package/dist/core/chart/point-normalize.js.map +1 -1
  299. package/dist/core/chart/prepare-core.d.ts.map +1 -1
  300. package/dist/core/chart/prepare-core.js +5 -1
  301. package/dist/core/chart/prepare-core.js.map +1 -1
  302. package/dist/core/chart/prepare-from-rows.d.ts +202 -1
  303. package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
  304. package/dist/core/chart/prepare-from-rows.js +81 -11
  305. package/dist/core/chart/prepare-from-rows.js.map +1 -1
  306. package/dist/core/chart/schemas.d.ts +686 -6
  307. package/dist/core/chart/schemas.d.ts.map +1 -1
  308. package/dist/core/chart/schemas.js +49 -6
  309. package/dist/core/chart/schemas.js.map +1 -1
  310. package/dist/core/chart-patterns/atr.d.ts +15 -0
  311. package/dist/core/chart-patterns/atr.d.ts.map +1 -0
  312. package/dist/core/chart-patterns/atr.js +57 -0
  313. package/dist/core/chart-patterns/atr.js.map +1 -0
  314. package/dist/core/chart-patterns/catalog.d.ts +7 -0
  315. package/dist/core/chart-patterns/catalog.d.ts.map +1 -0
  316. package/dist/core/chart-patterns/catalog.js +221 -0
  317. package/dist/core/chart-patterns/catalog.js.map +1 -0
  318. package/dist/core/chart-patterns/confidence.d.ts +12 -0
  319. package/dist/core/chart-patterns/confidence.d.ts.map +1 -0
  320. package/dist/core/chart-patterns/confidence.js +58 -0
  321. package/dist/core/chart-patterns/confidence.js.map +1 -0
  322. package/dist/core/chart-patterns/drawing-spec.d.ts +44 -0
  323. package/dist/core/chart-patterns/drawing-spec.d.ts.map +1 -0
  324. package/dist/core/chart-patterns/drawing-spec.js +425 -0
  325. package/dist/core/chart-patterns/drawing-spec.js.map +1 -0
  326. package/dist/core/chart-patterns/geometry-to-overlay.d.ts +34 -0
  327. package/dist/core/chart-patterns/geometry-to-overlay.d.ts.map +1 -0
  328. package/dist/core/chart-patterns/geometry-to-overlay.js +401 -0
  329. package/dist/core/chart-patterns/geometry-to-overlay.js.map +1 -0
  330. package/dist/core/chart-patterns/index.d.ts +13 -0
  331. package/dist/core/chart-patterns/index.d.ts.map +1 -0
  332. package/dist/core/chart-patterns/index.js +12 -0
  333. package/dist/core/chart-patterns/index.js.map +1 -0
  334. package/dist/core/chart-patterns/interpretation.d.ts +6 -0
  335. package/dist/core/chart-patterns/interpretation.d.ts.map +1 -0
  336. package/dist/core/chart-patterns/interpretation.js +49 -0
  337. package/dist/core/chart-patterns/interpretation.js.map +1 -0
  338. package/dist/core/chart-patterns/measured-move.d.ts +3 -0
  339. package/dist/core/chart-patterns/measured-move.d.ts.map +1 -0
  340. package/dist/core/chart-patterns/measured-move.js +196 -0
  341. package/dist/core/chart-patterns/measured-move.js.map +1 -0
  342. package/dist/core/chart-patterns/pattern-enrich.d.ts +4 -0
  343. package/dist/core/chart-patterns/pattern-enrich.d.ts.map +1 -0
  344. package/dist/core/chart-patterns/pattern-enrich.js +20 -0
  345. package/dist/core/chart-patterns/pattern-enrich.js.map +1 -0
  346. package/dist/core/chart-patterns/pattern-id-aliases.d.ts +3 -0
  347. package/dist/core/chart-patterns/pattern-id-aliases.d.ts.map +1 -0
  348. package/dist/core/chart-patterns/pattern-id-aliases.js +17 -0
  349. package/dist/core/chart-patterns/pattern-id-aliases.js.map +1 -0
  350. package/dist/core/chart-patterns/pattern-menu-summary.d.ts +21 -0
  351. package/dist/core/chart-patterns/pattern-menu-summary.d.ts.map +1 -0
  352. package/dist/core/chart-patterns/pattern-menu-summary.js +68 -0
  353. package/dist/core/chart-patterns/pattern-menu-summary.js.map +1 -0
  354. package/dist/core/chart-patterns/patterns/channel.d.ts +4 -0
  355. package/dist/core/chart-patterns/patterns/channel.d.ts.map +1 -0
  356. package/dist/core/chart-patterns/patterns/channel.js +137 -0
  357. package/dist/core/chart-patterns/patterns/channel.js.map +1 -0
  358. package/dist/core/chart-patterns/patterns/cup-and-handle.d.ts +4 -0
  359. package/dist/core/chart-patterns/patterns/cup-and-handle.d.ts.map +1 -0
  360. package/dist/core/chart-patterns/patterns/cup-and-handle.js +89 -0
  361. package/dist/core/chart-patterns/patterns/cup-and-handle.js.map +1 -0
  362. package/dist/core/chart-patterns/patterns/doubles.d.ts +4 -0
  363. package/dist/core/chart-patterns/patterns/doubles.d.ts.map +1 -0
  364. package/dist/core/chart-patterns/patterns/doubles.js +163 -0
  365. package/dist/core/chart-patterns/patterns/doubles.js.map +1 -0
  366. package/dist/core/chart-patterns/patterns/flag.d.ts +4 -0
  367. package/dist/core/chart-patterns/patterns/flag.d.ts.map +1 -0
  368. package/dist/core/chart-patterns/patterns/flag.js +64 -0
  369. package/dist/core/chart-patterns/patterns/flag.js.map +1 -0
  370. package/dist/core/chart-patterns/patterns/head-and-shoulders.d.ts +5 -0
  371. package/dist/core/chart-patterns/patterns/head-and-shoulders.d.ts.map +1 -0
  372. package/dist/core/chart-patterns/patterns/head-and-shoulders.js +69 -0
  373. package/dist/core/chart-patterns/patterns/head-and-shoulders.js.map +1 -0
  374. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.d.ts +4 -0
  375. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.d.ts.map +1 -0
  376. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.js +66 -0
  377. package/dist/core/chart-patterns/patterns/inverse-head-and-shoulders.js.map +1 -0
  378. package/dist/core/chart-patterns/patterns/pennant.d.ts +4 -0
  379. package/dist/core/chart-patterns/patterns/pennant.d.ts.map +1 -0
  380. package/dist/core/chart-patterns/patterns/pennant.js +66 -0
  381. package/dist/core/chart-patterns/patterns/pennant.js.map +1 -0
  382. package/dist/core/chart-patterns/patterns/trendline-breakout.d.ts +10 -0
  383. package/dist/core/chart-patterns/patterns/trendline-breakout.d.ts.map +1 -0
  384. package/dist/core/chart-patterns/patterns/trendline-breakout.js +241 -0
  385. package/dist/core/chart-patterns/patterns/trendline-breakout.js.map +1 -0
  386. package/dist/core/chart-patterns/patterns/triangles.d.ts +4 -0
  387. package/dist/core/chart-patterns/patterns/triangles.d.ts.map +1 -0
  388. package/dist/core/chart-patterns/patterns/triangles.js +113 -0
  389. package/dist/core/chart-patterns/patterns/triangles.js.map +1 -0
  390. package/dist/core/chart-patterns/patterns/utils.d.ts +20 -0
  391. package/dist/core/chart-patterns/patterns/utils.d.ts.map +1 -0
  392. package/dist/core/chart-patterns/patterns/utils.js +60 -0
  393. package/dist/core/chart-patterns/patterns/utils.js.map +1 -0
  394. package/dist/core/chart-patterns/patterns/wedge.d.ts +4 -0
  395. package/dist/core/chart-patterns/patterns/wedge.d.ts.map +1 -0
  396. package/dist/core/chart-patterns/patterns/wedge.js +88 -0
  397. package/dist/core/chart-patterns/patterns/wedge.js.map +1 -0
  398. package/dist/core/chart-patterns/recommendation.d.ts +5 -0
  399. package/dist/core/chart-patterns/recommendation.d.ts.map +1 -0
  400. package/dist/core/chart-patterns/recommendation.js +84 -0
  401. package/dist/core/chart-patterns/recommendation.js.map +1 -0
  402. package/dist/core/chart-patterns/scan.d.ts +5 -0
  403. package/dist/core/chart-patterns/scan.d.ts.map +1 -0
  404. package/dist/core/chart-patterns/scan.js +121 -0
  405. package/dist/core/chart-patterns/scan.js.map +1 -0
  406. package/dist/core/chart-patterns/smoothing.d.ts +10 -0
  407. package/dist/core/chart-patterns/smoothing.d.ts.map +1 -0
  408. package/dist/core/chart-patterns/smoothing.js +45 -0
  409. package/dist/core/chart-patterns/smoothing.js.map +1 -0
  410. package/dist/core/chart-patterns/swings.d.ts +12 -0
  411. package/dist/core/chart-patterns/swings.d.ts.map +1 -0
  412. package/dist/core/chart-patterns/swings.js +135 -0
  413. package/dist/core/chart-patterns/swings.js.map +1 -0
  414. package/dist/core/chart-patterns/trade-setup.d.ts +2 -0
  415. package/dist/core/chart-patterns/trade-setup.d.ts.map +1 -0
  416. package/dist/core/chart-patterns/trade-setup.js +2 -0
  417. package/dist/core/chart-patterns/trade-setup.js.map +1 -0
  418. package/dist/core/chart-patterns/types.d.ts +225 -0
  419. package/dist/core/chart-patterns/types.d.ts.map +1 -0
  420. package/dist/core/chart-patterns/types.js +2 -0
  421. package/dist/core/chart-patterns/types.js.map +1 -0
  422. package/dist/core/chart-patterns/volume-confirmation.d.ts +13 -0
  423. package/dist/core/chart-patterns/volume-confirmation.d.ts.map +1 -0
  424. package/dist/core/chart-patterns/volume-confirmation.js +172 -0
  425. package/dist/core/chart-patterns/volume-confirmation.js.map +1 -0
  426. package/dist/core/coinmarketcap/api-key.d.ts +8 -0
  427. package/dist/core/coinmarketcap/api-key.d.ts.map +1 -0
  428. package/dist/core/coinmarketcap/api-key.js +30 -0
  429. package/dist/core/coinmarketcap/api-key.js.map +1 -0
  430. package/dist/core/coinmarketcap/client.d.ts +8 -0
  431. package/dist/core/coinmarketcap/client.d.ts.map +1 -0
  432. package/dist/core/coinmarketcap/client.js +103 -0
  433. package/dist/core/coinmarketcap/client.js.map +1 -0
  434. package/dist/core/coinmarketcap/index.d.ts +7 -0
  435. package/dist/core/coinmarketcap/index.d.ts.map +1 -0
  436. package/dist/core/coinmarketcap/index.js +7 -0
  437. package/dist/core/coinmarketcap/index.js.map +1 -0
  438. package/dist/core/coinmarketcap/kline-fallback.d.ts +11 -0
  439. package/dist/core/coinmarketcap/kline-fallback.d.ts.map +1 -0
  440. package/dist/core/coinmarketcap/kline-fallback.js +35 -0
  441. package/dist/core/coinmarketcap/kline-fallback.js.map +1 -0
  442. package/dist/core/coinmarketcap/kline-window.d.ts +26 -0
  443. package/dist/core/coinmarketcap/kline-window.d.ts.map +1 -0
  444. package/dist/core/coinmarketcap/kline-window.js +75 -0
  445. package/dist/core/coinmarketcap/kline-window.js.map +1 -0
  446. package/dist/core/coinmarketcap/kline.d.ts +13 -0
  447. package/dist/core/coinmarketcap/kline.d.ts.map +1 -0
  448. package/dist/core/coinmarketcap/kline.js +49 -0
  449. package/dist/core/coinmarketcap/kline.js.map +1 -0
  450. package/dist/core/coinmarketcap/mcp-server-choice.d.ts +24 -0
  451. package/dist/core/coinmarketcap/mcp-server-choice.d.ts.map +1 -0
  452. package/dist/core/coinmarketcap/mcp-server-choice.js +77 -0
  453. package/dist/core/coinmarketcap/mcp-server-choice.js.map +1 -0
  454. package/dist/core/coinmarketcap/public-api.d.ts +24 -0
  455. package/dist/core/coinmarketcap/public-api.d.ts.map +1 -0
  456. package/dist/core/coinmarketcap/public-api.js +277 -0
  457. package/dist/core/coinmarketcap/public-api.js.map +1 -0
  458. package/dist/core/coinmarketcap/schemas.d.ts +231 -0
  459. package/dist/core/coinmarketcap/schemas.d.ts.map +1 -0
  460. package/dist/core/coinmarketcap/schemas.js +153 -0
  461. package/dist/core/coinmarketcap/schemas.js.map +1 -0
  462. package/dist/core/mpc/mpa-fee-status.d.ts +2 -0
  463. package/dist/core/mpc/mpa-fee-status.d.ts.map +1 -1
  464. package/dist/core/mpc/mpa-fee-status.js +8 -1
  465. package/dist/core/mpc/mpa-fee-status.js.map +1 -1
  466. package/dist/core/node-info.d.ts +3 -1
  467. package/dist/core/node-info.d.ts.map +1 -1
  468. package/dist/core/node-info.js +37 -1
  469. package/dist/core/node-info.js.map +1 -1
  470. package/dist/index.d.ts +6 -4
  471. package/dist/index.d.ts.map +1 -1
  472. package/dist/index.js +6 -4
  473. package/dist/index.js.map +1 -1
  474. package/dist/mcp/agent-chart-data-access-gate.d.ts +5 -0
  475. package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -0
  476. package/dist/mcp/agent-chart-data-access-gate.js +20 -0
  477. package/dist/mcp/agent-chart-data-access-gate.js.map +1 -0
  478. package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
  479. package/dist/mcp/agent-environment-variables.js +13 -2
  480. package/dist/mcp/agent-environment-variables.js.map +1 -1
  481. package/dist/mcp/agent-host-catalog.d.ts +27 -0
  482. package/dist/mcp/agent-host-catalog.d.ts.map +1 -0
  483. package/dist/mcp/agent-host-catalog.js +88 -0
  484. package/dist/mcp/agent-host-catalog.js.map +1 -0
  485. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  486. package/dist/mcp/agent-mcp-servers.js +32 -3
  487. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  488. package/dist/mcp/agent-skills.d.ts.map +1 -1
  489. package/dist/mcp/agent-skills.js +13 -1
  490. package/dist/mcp/agent-skills.js.map +1 -1
  491. package/dist/mcp/chart.d.ts.map +1 -1
  492. package/dist/mcp/chart.js +282 -25
  493. package/dist/mcp/chart.js.map +1 -1
  494. package/dist/mcp/coinmarketcap-public/register.d.ts +6 -0
  495. package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -0
  496. package/dist/mcp/coinmarketcap-public/register.js +99 -0
  497. package/dist/mcp/coinmarketcap-public/register.js.map +1 -0
  498. package/dist/mcp/deferred/discovery-tools.d.ts +6 -0
  499. package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -0
  500. package/dist/mcp/deferred/discovery-tools.js +138 -0
  501. package/dist/mcp/deferred/discovery-tools.js.map +1 -0
  502. package/dist/mcp/deferred/optional-endpoint-groups.d.ts +12 -0
  503. package/dist/mcp/deferred/optional-endpoint-groups.d.ts.map +1 -0
  504. package/dist/mcp/deferred/optional-endpoint-groups.js +51 -0
  505. package/dist/mcp/deferred/optional-endpoint-groups.js.map +1 -0
  506. package/dist/mcp/deferred/session.d.ts +56 -0
  507. package/dist/mcp/deferred/session.d.ts.map +1 -0
  508. package/dist/mcp/deferred/session.js +242 -0
  509. package/dist/mcp/deferred/session.js.map +1 -0
  510. package/dist/mcp/deferred/tool-group-map.d.ts +23 -0
  511. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -0
  512. package/dist/mcp/deferred/tool-group-map.js +317 -0
  513. package/dist/mcp/deferred/tool-group-map.js.map +1 -0
  514. package/dist/mcp/defi/context.d.ts +2 -0
  515. package/dist/mcp/defi/context.d.ts.map +1 -1
  516. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts +30 -0
  517. package/dist/mcp/defi/defi-protocol-fetch-meta.d.ts.map +1 -0
  518. package/dist/mcp/defi/defi-protocol-fetch-meta.js +76 -0
  519. package/dist/mcp/defi/defi-protocol-fetch-meta.js.map +1 -0
  520. package/dist/mcp/defi/discovery.d.ts +2 -1
  521. package/dist/mcp/defi/discovery.d.ts.map +1 -1
  522. package/dist/mcp/defi/discovery.js +46 -6
  523. package/dist/mcp/defi/discovery.js.map +1 -1
  524. package/dist/mcp/defi/handler.d.ts.map +1 -1
  525. package/dist/mcp/defi/handler.js +6 -3
  526. package/dist/mcp/defi/handler.js.map +1 -1
  527. package/dist/mcp/defi/input-adapter.d.ts +6 -0
  528. package/dist/mcp/defi/input-adapter.d.ts.map +1 -1
  529. package/dist/mcp/defi/input-adapter.js +29 -12
  530. package/dist/mcp/defi/input-adapter.js.map +1 -1
  531. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts +5 -1
  532. package/dist/mcp/defi/ohlcv-chart-workflow.d.ts.map +1 -1
  533. package/dist/mcp/defi/ohlcv-chart-workflow.js +28 -6
  534. package/dist/mcp/defi/ohlcv-chart-workflow.js.map +1 -1
  535. package/dist/mcp/defi/register-protocol-tools.d.ts +2 -1
  536. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  537. package/dist/mcp/defi/register-protocol-tools.js +12 -3
  538. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  539. package/dist/mcp/defi/trade-bridge.d.ts +2 -0
  540. package/dist/mcp/defi/trade-bridge.d.ts.map +1 -0
  541. package/dist/mcp/defi/trade-bridge.js +2 -0
  542. package/dist/mcp/defi/trade-bridge.js.map +1 -0
  543. package/dist/mcp/keygen.js +1 -1
  544. package/dist/mcp/keygen.js.map +1 -1
  545. package/dist/mcp/management-signer.d.ts.map +1 -1
  546. package/dist/mcp/management-signer.js +1 -1
  547. package/dist/mcp/management-signer.js.map +1 -1
  548. package/dist/mcp/node.d.ts.map +1 -1
  549. package/dist/mcp/node.js +7 -2
  550. package/dist/mcp/node.js.map +1 -1
  551. package/dist/mcp/ohlcv-session-context.d.ts +4 -0
  552. package/dist/mcp/ohlcv-session-context.d.ts.map +1 -0
  553. package/dist/mcp/ohlcv-session-context.js +13 -0
  554. package/dist/mcp/ohlcv-session-context.js.map +1 -0
  555. package/dist/mcp/ohlcv-session-wrapper.d.ts +8 -0
  556. package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -0
  557. package/dist/mcp/ohlcv-session-wrapper.js +138 -0
  558. package/dist/mcp/ohlcv-session-wrapper.js.map +1 -0
  559. package/dist/mcp/register.d.ts +3 -1
  560. package/dist/mcp/register.d.ts.map +1 -1
  561. package/dist/mcp/register.js +24 -5
  562. package/dist/mcp/register.js.map +1 -1
  563. package/dist/mcp/resources/agent-cron-jobs.md +25 -0
  564. package/dist/mcp/resources/agent-mcp-servers.md +21 -0
  565. package/dist/mcp/resources/chart-analysis.md +368 -0
  566. package/dist/mcp/resources/chart.md +71 -24
  567. package/dist/mcp/resources/coinmarketcap-public.md +109 -0
  568. package/dist/mcp/resources/keygen.md +1 -1
  569. package/dist/mcp/resources/trade-defaults-skill.md +69 -0
  570. package/dist/mcp/server/http-transport.d.ts.map +1 -1
  571. package/dist/mcp/server/http-transport.js +9 -2
  572. package/dist/mcp/server/http-transport.js.map +1 -1
  573. package/dist/mcp/server/index.js +3 -0
  574. package/dist/mcp/server/index.js.map +1 -1
  575. package/dist/mcp/tool-utils.d.ts.map +1 -1
  576. package/dist/mcp/tool-utils.js +7 -1
  577. package/dist/mcp/tool-utils.js.map +1 -1
  578. package/dist/mcp/trade-tools.d.ts +7 -0
  579. package/dist/mcp/trade-tools.d.ts.map +1 -0
  580. package/dist/mcp/trade-tools.js +201 -0
  581. package/dist/mcp/trade-tools.js.map +1 -0
  582. package/dist/schemas/extended.d.ts +30 -0
  583. package/dist/schemas/extended.d.ts.map +1 -1
  584. package/dist/schemas/extended.js +40 -0
  585. package/dist/schemas/extended.js.map +1 -1
  586. package/package.json +4 -4
@@ -0,0 +1,515 @@
1
+ import { CandleSettingType, DEFAULT_CANDLE_SETTINGS, PeriodTotal, candleColor, emptySignals, realBody, upperShadow, lowerShadow, } from '../candle-settings.js';
2
+ const PENETRATION = 0.3;
3
+ function lookbackBodyShort() {
4
+ return DEFAULT_CANDLE_SETTINGS[CandleSettingType.BodyShort].avgPeriod;
5
+ }
6
+ function lookbackBodyDoji() {
7
+ return DEFAULT_CANDLE_SETTINGS[CandleSettingType.BodyDoji].avgPeriod;
8
+ }
9
+ function lookbackBodyLong() {
10
+ return DEFAULT_CANDLE_SETTINGS[CandleSettingType.BodyLong].avgPeriod;
11
+ }
12
+ function lookbackNear() {
13
+ return DEFAULT_CANDLE_SETTINGS[CandleSettingType.Near].avgPeriod;
14
+ }
15
+ function lookbackThreeBar() {
16
+ return Math.max(lookbackBodyShort(), lookbackBodyLong()) + 2;
17
+ }
18
+ function lookbackThreeBlackCrows() {
19
+ return Math.max(lookbackBodyShort(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod) + 3;
20
+ }
21
+ export function detectDoji(bars) {
22
+ const n = bars.close.length;
23
+ const out = emptySignals(n);
24
+ const lookback = lookbackBodyDoji();
25
+ const period = new PeriodTotal(CandleSettingType.BodyDoji, bars, lookback);
26
+ const startIdx = lookback;
27
+ period.init(startIdx);
28
+ for (let i = startIdx; i < n; i++) {
29
+ if (realBody(bars, i) <= period.average(i)) {
30
+ out[i] = 100;
31
+ }
32
+ period.advance(i);
33
+ }
34
+ return out;
35
+ }
36
+ export function detectSpinningTop(bars) {
37
+ const n = bars.close.length;
38
+ const out = emptySignals(n);
39
+ const lookback = lookbackBodyShort();
40
+ const period = new PeriodTotal(CandleSettingType.BodyShort, bars, lookback);
41
+ const startIdx = lookback;
42
+ period.init(startIdx);
43
+ for (let i = startIdx; i < n; i++) {
44
+ const body = realBody(bars, i);
45
+ if (upperShadow(bars, i) > body &&
46
+ lowerShadow(bars, i) > body &&
47
+ body < period.average(i)) {
48
+ out[i] = candleColor(bars, i) * 100;
49
+ }
50
+ period.advance(i);
51
+ }
52
+ return out;
53
+ }
54
+ export function detectHammer(bars) {
55
+ const n = bars.close.length;
56
+ const out = emptySignals(n);
57
+ const lookback = Math.max(lookbackBodyShort(), lookbackNear(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod) + 1;
58
+ const bodyShort = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
59
+ const shadowLong = new PeriodTotal(CandleSettingType.ShadowLong, bars, 0);
60
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
61
+ const near = new PeriodTotal(CandleSettingType.Near, bars, lookbackNear());
62
+ const startIdx = lookback;
63
+ bodyShort.init(startIdx);
64
+ shadowLong.init(startIdx);
65
+ shadowVeryShort.init(startIdx);
66
+ near.init(startIdx - 1);
67
+ for (let i = startIdx; i < n; i++) {
68
+ const bodyBottom = Math.min(bars.close[i], bars.open[i]);
69
+ if (realBody(bars, i) < bodyShort.average(i) &&
70
+ lowerShadow(bars, i) > shadowLong.average(i) &&
71
+ upperShadow(bars, i) < shadowVeryShort.average(i) &&
72
+ bodyBottom <= bars.low[i - 1] + near.average(i - 1)) {
73
+ out[i] = 100;
74
+ }
75
+ bodyShort.advance(i);
76
+ shadowLong.advance(i);
77
+ shadowVeryShort.advance(i);
78
+ near.advanceAtOffset(i, i - 1);
79
+ }
80
+ return out;
81
+ }
82
+ export function detectHangingMan(bars) {
83
+ const n = bars.close.length;
84
+ const out = emptySignals(n);
85
+ const lookback = Math.max(lookbackBodyShort(), lookbackNear(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod) + 1;
86
+ const bodyShort = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
87
+ const shadowLong = new PeriodTotal(CandleSettingType.ShadowLong, bars, 0);
88
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
89
+ const near = new PeriodTotal(CandleSettingType.Near, bars, lookbackNear());
90
+ const startIdx = lookback;
91
+ bodyShort.init(startIdx);
92
+ shadowLong.init(startIdx);
93
+ shadowVeryShort.init(startIdx);
94
+ near.init(startIdx - 1);
95
+ for (let i = startIdx; i < n; i++) {
96
+ const bodyBottom = Math.min(bars.close[i], bars.open[i]);
97
+ if (realBody(bars, i) < bodyShort.average(i) &&
98
+ lowerShadow(bars, i) > shadowLong.average(i) &&
99
+ upperShadow(bars, i) < shadowVeryShort.average(i) &&
100
+ bodyBottom >= bars.high[i - 1] - near.average(i - 1)) {
101
+ out[i] = -100;
102
+ }
103
+ bodyShort.advance(i);
104
+ shadowLong.advance(i);
105
+ shadowVeryShort.advance(i);
106
+ near.advanceAtOffset(i, i - 1);
107
+ }
108
+ return out;
109
+ }
110
+ export function detectShootingStar(bars) {
111
+ const n = bars.close.length;
112
+ const out = emptySignals(n);
113
+ const lookback = Math.max(lookbackBodyShort(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod) + 1;
114
+ const bodyShort = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
115
+ const shadowLong = new PeriodTotal(CandleSettingType.ShadowLong, bars, 0);
116
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
117
+ const startIdx = lookback;
118
+ bodyShort.init(startIdx);
119
+ shadowLong.init(startIdx);
120
+ shadowVeryShort.init(startIdx);
121
+ for (let i = startIdx; i < n; i++) {
122
+ const gapUp = Math.min(bars.open[i], bars.close[i]) >
123
+ Math.max(bars.open[i - 1], bars.close[i - 1]);
124
+ if (gapUp &&
125
+ realBody(bars, i) < bodyShort.average(i) &&
126
+ upperShadow(bars, i) > shadowLong.average(i) &&
127
+ lowerShadow(bars, i) < shadowVeryShort.average(i)) {
128
+ out[i] = -100;
129
+ }
130
+ bodyShort.advance(i);
131
+ shadowLong.advance(i);
132
+ shadowVeryShort.advance(i);
133
+ }
134
+ return out;
135
+ }
136
+ export function detectInvertedHammer(bars) {
137
+ const n = bars.close.length;
138
+ const out = emptySignals(n);
139
+ const lookback = Math.max(lookbackBodyShort(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod) + 1;
140
+ const bodyShort = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
141
+ const shadowLong = new PeriodTotal(CandleSettingType.ShadowLong, bars, 0);
142
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
143
+ const startIdx = lookback;
144
+ bodyShort.init(startIdx);
145
+ shadowLong.init(startIdx);
146
+ shadowVeryShort.init(startIdx);
147
+ for (let i = startIdx; i < n; i++) {
148
+ const gapDown = Math.max(bars.open[i], bars.close[i]) <
149
+ Math.min(bars.open[i - 1], bars.close[i - 1]);
150
+ if (gapDown &&
151
+ realBody(bars, i) < bodyShort.average(i) &&
152
+ upperShadow(bars, i) > shadowLong.average(i) &&
153
+ lowerShadow(bars, i) < shadowVeryShort.average(i)) {
154
+ out[i] = 100;
155
+ }
156
+ bodyShort.advance(i);
157
+ shadowLong.advance(i);
158
+ shadowVeryShort.advance(i);
159
+ }
160
+ return out;
161
+ }
162
+ export function detectMarubozu(bars) {
163
+ const n = bars.close.length;
164
+ const out = emptySignals(n);
165
+ const lookback = Math.max(lookbackBodyLong(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
166
+ const bodyLong = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
167
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
168
+ const startIdx = lookback;
169
+ bodyLong.init(startIdx);
170
+ shadowVeryShort.init(startIdx);
171
+ for (let i = startIdx; i < n; i++) {
172
+ if (realBody(bars, i) > bodyLong.average(i) &&
173
+ upperShadow(bars, i) < shadowVeryShort.average(i) &&
174
+ lowerShadow(bars, i) < shadowVeryShort.average(i)) {
175
+ out[i] = candleColor(bars, i) * 100;
176
+ }
177
+ bodyLong.advance(i);
178
+ shadowVeryShort.advance(i);
179
+ }
180
+ return out;
181
+ }
182
+ export function detectLongLeggedDoji(bars) {
183
+ const n = bars.close.length;
184
+ const out = emptySignals(n);
185
+ const lookback = lookbackBodyDoji();
186
+ const bodyDoji = new PeriodTotal(CandleSettingType.BodyDoji, bars, lookback);
187
+ const shadowLong = new PeriodTotal(CandleSettingType.ShadowLong, bars, 0);
188
+ const startIdx = lookback;
189
+ bodyDoji.init(startIdx);
190
+ shadowLong.init(startIdx);
191
+ for (let i = startIdx; i < n; i++) {
192
+ if (realBody(bars, i) <= bodyDoji.average(i) &&
193
+ (lowerShadow(bars, i) > shadowLong.average(i) ||
194
+ upperShadow(bars, i) > shadowLong.average(i))) {
195
+ out[i] = 100;
196
+ }
197
+ bodyDoji.advance(i);
198
+ shadowLong.advance(i);
199
+ }
200
+ return out;
201
+ }
202
+ export function detectDragonflyDoji(bars) {
203
+ const n = bars.close.length;
204
+ const out = emptySignals(n);
205
+ const lookback = Math.max(lookbackBodyDoji(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
206
+ const bodyDoji = new PeriodTotal(CandleSettingType.BodyDoji, bars, lookbackBodyDoji());
207
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
208
+ const startIdx = lookback;
209
+ bodyDoji.init(startIdx);
210
+ shadowVeryShort.init(startIdx);
211
+ for (let i = startIdx; i < n; i++) {
212
+ if (realBody(bars, i) <= bodyDoji.average(i) &&
213
+ upperShadow(bars, i) < shadowVeryShort.average(i) &&
214
+ lowerShadow(bars, i) > shadowVeryShort.average(i)) {
215
+ out[i] = 100;
216
+ }
217
+ bodyDoji.advance(i);
218
+ shadowVeryShort.advance(i);
219
+ }
220
+ return out;
221
+ }
222
+ export function detectGravestoneDoji(bars) {
223
+ const n = bars.close.length;
224
+ const out = emptySignals(n);
225
+ const lookback = Math.max(lookbackBodyDoji(), DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
226
+ const bodyDoji = new PeriodTotal(CandleSettingType.BodyDoji, bars, lookbackBodyDoji());
227
+ const shadowVeryShort = new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod);
228
+ const startIdx = lookback;
229
+ bodyDoji.init(startIdx);
230
+ shadowVeryShort.init(startIdx);
231
+ for (let i = startIdx; i < n; i++) {
232
+ if (realBody(bars, i) <= bodyDoji.average(i) &&
233
+ lowerShadow(bars, i) < shadowVeryShort.average(i) &&
234
+ upperShadow(bars, i) > shadowVeryShort.average(i)) {
235
+ out[i] = 100;
236
+ }
237
+ bodyDoji.advance(i);
238
+ shadowVeryShort.advance(i);
239
+ }
240
+ return out;
241
+ }
242
+ export function detectEngulfing(bars) {
243
+ const n = bars.close.length;
244
+ const out = emptySignals(n);
245
+ for (let i = 1; i < n; i++) {
246
+ const curColor = candleColor(bars, i);
247
+ const prevColor = candleColor(bars, i - 1);
248
+ const whiteEngulfsBlack = curColor === 1 &&
249
+ prevColor === -1 &&
250
+ ((bars.close[i] >= bars.open[i - 1] && bars.open[i] < bars.close[i - 1]) ||
251
+ (bars.close[i] > bars.open[i - 1] && bars.open[i] <= bars.close[i - 1]));
252
+ const blackEngulfsWhite = curColor === -1 &&
253
+ prevColor === 1 &&
254
+ ((bars.open[i] >= bars.close[i - 1] && bars.close[i] < bars.open[i - 1]) ||
255
+ (bars.open[i] > bars.close[i - 1] && bars.close[i] <= bars.open[i - 1]));
256
+ if (whiteEngulfsBlack || blackEngulfsWhite) {
257
+ if (bars.open[i] !== bars.close[i - 1] && bars.close[i] !== bars.open[i - 1]) {
258
+ out[i] = curColor * 100;
259
+ }
260
+ else {
261
+ out[i] = curColor * 80;
262
+ }
263
+ }
264
+ }
265
+ return out;
266
+ }
267
+ export function detectHarami(bars) {
268
+ const n = bars.close.length;
269
+ const out = emptySignals(n);
270
+ const lookback = Math.max(lookbackBodyLong(), lookbackBodyShort()) + 1;
271
+ const bodyLong = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
272
+ const bodyShort = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
273
+ const startIdx = lookback;
274
+ bodyLong.init(startIdx - 1);
275
+ bodyShort.init(startIdx);
276
+ for (let i = startIdx; i < n; i++) {
277
+ if (realBody(bars, i - 1) > bodyLong.average(i - 1)) {
278
+ if (realBody(bars, i) <= bodyShort.average(i)) {
279
+ const curMax = Math.max(bars.close[i], bars.open[i]);
280
+ const curMin = Math.min(bars.close[i], bars.open[i]);
281
+ const prevMax = Math.max(bars.close[i - 1], bars.open[i - 1]);
282
+ const prevMin = Math.min(bars.close[i - 1], bars.open[i - 1]);
283
+ if (curMax < prevMax && curMin > prevMin) {
284
+ out[i] = -candleColor(bars, i - 1) * 100;
285
+ }
286
+ else if (curMax <= prevMax && curMin >= prevMin) {
287
+ out[i] = -candleColor(bars, i - 1) * 80;
288
+ }
289
+ }
290
+ }
291
+ bodyLong.advanceAtOffset(i, i - 1);
292
+ bodyShort.advance(i);
293
+ }
294
+ return out;
295
+ }
296
+ export function detectPiercing(bars) {
297
+ const n = bars.close.length;
298
+ const out = emptySignals(n);
299
+ const lookback = lookbackBodyLong() + 1;
300
+ const bodyLongPrev = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
301
+ const bodyLongCur = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
302
+ const startIdx = lookback;
303
+ bodyLongPrev.init(startIdx - 1);
304
+ bodyLongCur.init(startIdx);
305
+ for (let i = startIdx; i < n; i++) {
306
+ const prevBody = realBody(bars, i - 1);
307
+ if (candleColor(bars, i - 1) === -1 &&
308
+ prevBody > bodyLongPrev.average(i - 1) &&
309
+ candleColor(bars, i) === 1 &&
310
+ realBody(bars, i) > bodyLongCur.average(i) &&
311
+ bars.open[i] < bars.low[i - 1] &&
312
+ bars.close[i] < bars.open[i - 1] &&
313
+ bars.close[i] > bars.close[i - 1] + prevBody * 0.5) {
314
+ out[i] = 100;
315
+ }
316
+ bodyLongPrev.advanceAtOffset(i, i - 1);
317
+ bodyLongCur.advance(i);
318
+ }
319
+ return out;
320
+ }
321
+ export function detectDarkCloudCover(bars) {
322
+ const n = bars.close.length;
323
+ const out = emptySignals(n);
324
+ const lookback = lookbackBodyLong() + 1;
325
+ const bodyLong = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
326
+ const startIdx = lookback;
327
+ bodyLong.init(startIdx - 1);
328
+ for (let i = startIdx; i < n; i++) {
329
+ const prevBody = realBody(bars, i - 1);
330
+ if (candleColor(bars, i - 1) === 1 &&
331
+ prevBody > bodyLong.average(i - 1) &&
332
+ candleColor(bars, i) === -1 &&
333
+ bars.open[i] > bars.high[i - 1] &&
334
+ bars.close[i] > bars.open[i - 1] &&
335
+ bars.close[i] < bars.close[i - 1] - prevBody * PENETRATION) {
336
+ out[i] = -100;
337
+ }
338
+ bodyLong.advanceAtOffset(i, i - 1);
339
+ }
340
+ return out;
341
+ }
342
+ export function detectMorningStar(bars) {
343
+ const n = bars.close.length;
344
+ const out = emptySignals(n);
345
+ const lookback = lookbackThreeBar();
346
+ const bodyLong = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
347
+ const bodyShortMid = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
348
+ const bodyShortLast = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
349
+ const startIdx = lookback;
350
+ bodyLong.init(startIdx - 2);
351
+ bodyShortMid.init(startIdx - 1);
352
+ bodyShortLast.init(startIdx);
353
+ for (let i = startIdx; i < n; i++) {
354
+ const firstBody = realBody(bars, i - 2);
355
+ if (candleColor(bars, i - 2) === -1 &&
356
+ candleColor(bars, i) === 1 &&
357
+ Math.max(bars.open[i - 1], bars.close[i - 1]) <
358
+ Math.min(bars.open[i - 2], bars.close[i - 2]) &&
359
+ bars.close[i] > bars.close[i - 2] + firstBody * PENETRATION &&
360
+ firstBody > bodyLong.average(i - 2) &&
361
+ realBody(bars, i - 1) <= bodyShortMid.average(i - 1) &&
362
+ realBody(bars, i) > bodyShortLast.average(i)) {
363
+ out[i] = 100;
364
+ }
365
+ bodyLong.advanceAtOffset(i, i - 2);
366
+ bodyShortMid.advanceAtOffset(i, i - 1);
367
+ bodyShortLast.advance(i);
368
+ }
369
+ return out;
370
+ }
371
+ export function detectEveningStar(bars) {
372
+ const n = bars.close.length;
373
+ const out = emptySignals(n);
374
+ const lookback = lookbackThreeBar();
375
+ const bodyLong = new PeriodTotal(CandleSettingType.BodyLong, bars, lookbackBodyLong());
376
+ const bodyShortMid = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
377
+ const bodyShortLast = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
378
+ const startIdx = lookback;
379
+ bodyLong.init(startIdx - 2);
380
+ bodyShortMid.init(startIdx - 1);
381
+ bodyShortLast.init(startIdx);
382
+ for (let i = startIdx; i < n; i++) {
383
+ const firstBody = realBody(bars, i - 2);
384
+ if (candleColor(bars, i - 2) === 1 &&
385
+ candleColor(bars, i) === -1 &&
386
+ Math.min(bars.open[i - 1], bars.close[i - 1]) >
387
+ Math.max(bars.open[i - 2], bars.close[i - 2]) &&
388
+ bars.close[i] < bars.close[i - 2] - firstBody * PENETRATION &&
389
+ firstBody > bodyLong.average(i - 2) &&
390
+ realBody(bars, i - 1) <= bodyShortMid.average(i - 1) &&
391
+ realBody(bars, i) > bodyShortLast.average(i)) {
392
+ out[i] = -100;
393
+ }
394
+ bodyLong.advanceAtOffset(i, i - 2);
395
+ bodyShortMid.advanceAtOffset(i, i - 1);
396
+ bodyShortLast.advance(i);
397
+ }
398
+ return out;
399
+ }
400
+ export function detectThreeWhiteSoldiers(bars) {
401
+ const n = bars.close.length;
402
+ const out = emptySignals(n);
403
+ const shadowPeriod = DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod;
404
+ const lookback = Math.max(lookbackBodyShort(), lookbackNear(), shadowPeriod) + 2;
405
+ const shadowTotals = [
406
+ new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, shadowPeriod),
407
+ new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, shadowPeriod),
408
+ new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, shadowPeriod),
409
+ ];
410
+ const nearTotals = [
411
+ new PeriodTotal(CandleSettingType.Near, bars, lookbackNear()),
412
+ new PeriodTotal(CandleSettingType.Near, bars, lookbackNear()),
413
+ ];
414
+ const farTotals = [
415
+ new PeriodTotal(CandleSettingType.Far, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.Far].avgPeriod),
416
+ new PeriodTotal(CandleSettingType.Far, bars, DEFAULT_CANDLE_SETTINGS[CandleSettingType.Far].avgPeriod),
417
+ ];
418
+ const bodyShort = new PeriodTotal(CandleSettingType.BodyShort, bars, lookbackBodyShort());
419
+ const startIdx = lookback;
420
+ for (let t = 0; t < 3; t++) {
421
+ shadowTotals[t].init(startIdx - t);
422
+ }
423
+ for (let t = 0; t < 2; t++) {
424
+ nearTotals[t].init(startIdx - 2 + t);
425
+ farTotals[t].init(startIdx - 2 + t);
426
+ }
427
+ bodyShort.init(startIdx);
428
+ for (let i = startIdx; i < n; i++) {
429
+ if (candleColor(bars, i - 2) === 1 &&
430
+ upperShadow(bars, i - 2) < shadowTotals[2].average(i - 2) &&
431
+ candleColor(bars, i - 1) === 1 &&
432
+ upperShadow(bars, i - 1) < shadowTotals[1].average(i - 1) &&
433
+ candleColor(bars, i) === 1 &&
434
+ upperShadow(bars, i) < shadowTotals[0].average(i) &&
435
+ bars.close[i] > bars.close[i - 1] &&
436
+ bars.close[i - 1] > bars.close[i - 2] &&
437
+ bars.open[i - 1] > bars.open[i - 2] &&
438
+ bars.open[i - 1] <= bars.close[i - 2] + nearTotals[0].average(i - 2) &&
439
+ bars.open[i] > bars.open[i - 1] &&
440
+ bars.open[i] <= bars.close[i - 1] + nearTotals[1].average(i - 1) &&
441
+ realBody(bars, i - 1) >
442
+ realBody(bars, i - 2) - farTotals[0].average(i - 2) &&
443
+ realBody(bars, i) > realBody(bars, i - 1) - farTotals[1].average(i - 1) &&
444
+ realBody(bars, i) > bodyShort.average(i)) {
445
+ out[i] = 100;
446
+ }
447
+ for (let t = 0; t < 3; t++) {
448
+ shadowTotals[t].advanceAtOffset(i, i - t);
449
+ }
450
+ for (let t = 0; t < 2; t++) {
451
+ nearTotals[t].advanceAtOffset(i, i - 2 + t);
452
+ farTotals[t].advanceAtOffset(i, i - 2 + t);
453
+ }
454
+ bodyShort.advance(i);
455
+ }
456
+ return out;
457
+ }
458
+ export function detectThreeBlackCrows(bars) {
459
+ const n = bars.close.length;
460
+ const out = emptySignals(n);
461
+ const shadowPeriod = DEFAULT_CANDLE_SETTINGS[CandleSettingType.ShadowVeryShort].avgPeriod;
462
+ const lookback = lookbackThreeBlackCrows();
463
+ const shadowTotals = [
464
+ new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, shadowPeriod),
465
+ new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, shadowPeriod),
466
+ new PeriodTotal(CandleSettingType.ShadowVeryShort, bars, shadowPeriod),
467
+ ];
468
+ const startIdx = lookback;
469
+ for (let t = 0; t < 3; t++) {
470
+ shadowTotals[t].init(startIdx - t);
471
+ }
472
+ for (let i = startIdx; i < n; i++) {
473
+ if (candleColor(bars, i - 3) === 1 &&
474
+ candleColor(bars, i - 2) === -1 &&
475
+ candleColor(bars, i - 1) === -1 &&
476
+ candleColor(bars, i) === -1 &&
477
+ bars.open[i - 1] < bars.open[i - 2] &&
478
+ bars.open[i - 1] > bars.close[i - 2] &&
479
+ bars.open[i] < bars.open[i - 1] &&
480
+ bars.open[i] > bars.close[i - 1] &&
481
+ bars.high[i - 3] > bars.close[i - 2] &&
482
+ bars.close[i - 2] > bars.close[i - 1] &&
483
+ bars.close[i - 1] > bars.close[i] &&
484
+ lowerShadow(bars, i - 2) < shadowTotals[2].average(i - 2) &&
485
+ lowerShadow(bars, i - 1) < shadowTotals[1].average(i - 1) &&
486
+ lowerShadow(bars, i) < shadowTotals[0].average(i)) {
487
+ out[i] = -100;
488
+ }
489
+ for (let t = 0; t < 3; t++) {
490
+ shadowTotals[t].advanceAtOffset(i, i - t);
491
+ }
492
+ }
493
+ return out;
494
+ }
495
+ export const DETECTORS = {
496
+ doji: detectDoji,
497
+ spinning_top: detectSpinningTop,
498
+ hammer: detectHammer,
499
+ hanging_man: detectHangingMan,
500
+ shooting_star: detectShootingStar,
501
+ inverted_hammer: detectInvertedHammer,
502
+ marubozu: detectMarubozu,
503
+ long_legged_doji: detectLongLeggedDoji,
504
+ dragonfly_doji: detectDragonflyDoji,
505
+ gravestone_doji: detectGravestoneDoji,
506
+ engulfing: detectEngulfing,
507
+ harami: detectHarami,
508
+ piercing: detectPiercing,
509
+ dark_cloud_cover: detectDarkCloudCover,
510
+ morning_star: detectMorningStar,
511
+ evening_star: detectEveningStar,
512
+ three_white_soldiers: detectThreeWhiteSoldiers,
513
+ three_black_crows: detectThreeBlackCrows,
514
+ };
515
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../../src/core/candlestick-patterns/patterns/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PatternHit, PatternRecommendation } from './types.js';
2
+ export declare function buildPatternRecommendation(hits: PatternHit[]): PatternRecommendation;
3
+ //# sourceMappingURL=recommendation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendation.d.ts","sourceRoot":"","sources":["../../../src/core/candlestick-patterns/recommendation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAa,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAM7E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,qBAAqB,CAkFpF"}