openalgo-script 0.1.0-alpha.1 → 0.2.0

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 (990) hide show
  1. package/CHANGELOG.md +1200 -0
  2. package/README.md +49 -28
  3. package/dist/adapters/charts/alerts.d.ts +70 -0
  4. package/dist/adapters/charts/alerts.d.ts.map +1 -0
  5. package/dist/adapters/charts/alerts.js +52 -0
  6. package/dist/adapters/charts/alerts.js.map +1 -0
  7. package/dist/adapters/charts/bars.d.ts +39 -0
  8. package/dist/adapters/charts/bars.d.ts.map +1 -0
  9. package/dist/adapters/charts/bars.js +32 -0
  10. package/dist/adapters/charts/bars.js.map +1 -0
  11. package/dist/adapters/charts/candles.d.ts +40 -0
  12. package/dist/adapters/charts/candles.d.ts.map +1 -0
  13. package/dist/adapters/charts/candles.js +85 -0
  14. package/dist/adapters/charts/candles.js.map +1 -0
  15. package/dist/adapters/charts/colours.d.ts +47 -0
  16. package/dist/adapters/charts/colours.d.ts.map +1 -0
  17. package/dist/adapters/charts/colours.js +80 -0
  18. package/dist/adapters/charts/colours.js.map +1 -0
  19. package/dist/adapters/charts/columns.d.ts +37 -0
  20. package/dist/adapters/charts/columns.d.ts.map +1 -0
  21. package/dist/adapters/charts/columns.js +56 -0
  22. package/dist/adapters/charts/columns.js.map +1 -0
  23. package/dist/adapters/charts/contract.d.ts +278 -0
  24. package/dist/adapters/charts/contract.d.ts.map +1 -0
  25. package/dist/adapters/charts/contract.js +2 -0
  26. package/dist/adapters/charts/contract.js.map +1 -0
  27. package/dist/adapters/charts/descriptor.d.ts +48 -0
  28. package/dist/adapters/charts/descriptor.d.ts.map +1 -0
  29. package/dist/adapters/charts/descriptor.js +111 -0
  30. package/dist/adapters/charts/descriptor.js.map +1 -0
  31. package/dist/adapters/charts/drawings.d.ts +43 -0
  32. package/dist/adapters/charts/drawings.d.ts.map +1 -0
  33. package/dist/adapters/charts/drawings.js +172 -0
  34. package/dist/adapters/charts/drawings.js.map +1 -0
  35. package/dist/adapters/charts/errors.d.ts +28 -0
  36. package/dist/adapters/charts/errors.d.ts.map +1 -0
  37. package/dist/adapters/charts/errors.js +21 -0
  38. package/dist/adapters/charts/errors.js.map +1 -0
  39. package/dist/adapters/charts/fields.d.ts +33 -0
  40. package/dist/adapters/charts/fields.d.ts.map +1 -0
  41. package/dist/adapters/charts/fields.js +51 -0
  42. package/dist/adapters/charts/fields.js.map +1 -0
  43. package/dist/adapters/charts/fills.d.ts +23 -0
  44. package/dist/adapters/charts/fills.d.ts.map +1 -0
  45. package/dist/adapters/charts/fills.js +48 -0
  46. package/dist/adapters/charts/fills.js.map +1 -0
  47. package/dist/adapters/charts/index.d.ts +37 -0
  48. package/dist/adapters/charts/index.d.ts.map +1 -0
  49. package/dist/adapters/charts/index.js +33 -0
  50. package/dist/adapters/charts/index.js.map +1 -0
  51. package/dist/adapters/charts/levels.d.ts +39 -0
  52. package/dist/adapters/charts/levels.d.ts.map +1 -0
  53. package/dist/adapters/charts/levels.js +61 -0
  54. package/dist/adapters/charts/levels.js.map +1 -0
  55. package/dist/adapters/charts/markers.d.ts +41 -0
  56. package/dist/adapters/charts/markers.d.ts.map +1 -0
  57. package/dist/adapters/charts/markers.js +75 -0
  58. package/dist/adapters/charts/markers.js.map +1 -0
  59. package/dist/adapters/charts/paint.d.ts +61 -0
  60. package/dist/adapters/charts/paint.d.ts.map +1 -0
  61. package/dist/adapters/charts/paint.js +47 -0
  62. package/dist/adapters/charts/paint.js.map +1 -0
  63. package/dist/adapters/charts/plots.d.ts +39 -0
  64. package/dist/adapters/charts/plots.d.ts.map +1 -0
  65. package/dist/adapters/charts/plots.js +117 -0
  66. package/dist/adapters/charts/plots.js.map +1 -0
  67. package/dist/adapters/charts/produced.d.ts +57 -0
  68. package/dist/adapters/charts/produced.d.ts.map +1 -0
  69. package/dist/adapters/charts/produced.js +11 -0
  70. package/dist/adapters/charts/produced.js.map +1 -0
  71. package/dist/adapters/charts/requests.d.ts +114 -0
  72. package/dist/adapters/charts/requests.d.ts.map +1 -0
  73. package/dist/adapters/charts/requests.js +277 -0
  74. package/dist/adapters/charts/requests.js.map +1 -0
  75. package/dist/adapters/charts/run.d.ts +147 -0
  76. package/dist/adapters/charts/run.d.ts.map +1 -0
  77. package/dist/adapters/charts/run.js +148 -0
  78. package/dist/adapters/charts/run.js.map +1 -0
  79. package/dist/adapters/charts/settings.d.ts +78 -0
  80. package/dist/adapters/charts/settings.d.ts.map +1 -0
  81. package/dist/adapters/charts/settings.js +225 -0
  82. package/dist/adapters/charts/settings.js.map +1 -0
  83. package/dist/adapters/charts/surfaces.d.ts +204 -0
  84. package/dist/adapters/charts/surfaces.d.ts.map +1 -0
  85. package/dist/adapters/charts/surfaces.js +2 -0
  86. package/dist/adapters/charts/surfaces.js.map +1 -0
  87. package/dist/adapters/charts/tables.d.ts +65 -0
  88. package/dist/adapters/charts/tables.d.ts.map +1 -0
  89. package/dist/adapters/charts/tables.js +84 -0
  90. package/dist/adapters/charts/tables.js.map +1 -0
  91. package/dist/core/catalogue/catalogue.generated.d.ts +98 -10
  92. package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
  93. package/dist/core/catalogue/catalogue.generated.js +17 -9
  94. package/dist/core/catalogue/catalogue.generated.js.map +1 -1
  95. package/dist/core/catalogue/values.generated.d.ts +25 -0
  96. package/dist/core/catalogue/values.generated.d.ts.map +1 -1
  97. package/dist/core/check/arguments.d.ts +41 -0
  98. package/dist/core/check/arguments.d.ts.map +1 -0
  99. package/dist/core/check/arguments.js +84 -0
  100. package/dist/core/check/arguments.js.map +1 -0
  101. package/dist/core/check/call-sites.d.ts +22 -0
  102. package/dist/core/check/call-sites.d.ts.map +1 -0
  103. package/dist/core/check/call-sites.js +329 -0
  104. package/dist/core/check/call-sites.js.map +1 -0
  105. package/dist/core/check/call-warmup.d.ts +37 -0
  106. package/dist/core/check/call-warmup.d.ts.map +1 -0
  107. package/dist/core/check/call-warmup.js +97 -0
  108. package/dist/core/check/call-warmup.js.map +1 -0
  109. package/dist/core/check/calls.d.ts +33 -0
  110. package/dist/core/check/calls.d.ts.map +1 -0
  111. package/dist/core/check/calls.js +348 -0
  112. package/dist/core/check/calls.js.map +1 -0
  113. package/dist/core/check/check.d.ts +23 -0
  114. package/dist/core/check/check.d.ts.map +1 -0
  115. package/dist/core/check/check.js +163 -0
  116. package/dist/core/check/check.js.map +1 -0
  117. package/dist/core/check/checked.d.ts +198 -0
  118. package/dist/core/check/checked.d.ts.map +1 -0
  119. package/dist/core/check/checked.js +19 -0
  120. package/dist/core/check/checked.js.map +1 -0
  121. package/dist/core/check/checker.d.ts +182 -0
  122. package/dist/core/check/checker.d.ts.map +1 -0
  123. package/dist/core/check/checker.js +280 -0
  124. package/dist/core/check/checker.js.map +1 -0
  125. package/dist/core/check/conditional.d.ts +35 -0
  126. package/dist/core/check/conditional.d.ts.map +1 -0
  127. package/dist/core/check/conditional.js +100 -0
  128. package/dist/core/check/conditional.js.map +1 -0
  129. package/dist/core/check/constant.d.ts +47 -0
  130. package/dist/core/check/constant.d.ts.map +1 -0
  131. package/dist/core/check/constant.js +101 -0
  132. package/dist/core/check/constant.js.map +1 -0
  133. package/dist/core/check/declaration.d.ts +33 -0
  134. package/dist/core/check/declaration.d.ts.map +1 -0
  135. package/dist/core/check/declaration.js +181 -0
  136. package/dist/core/check/declaration.js.map +1 -0
  137. package/dist/core/check/expressions.d.ts +36 -0
  138. package/dist/core/check/expressions.d.ts.map +1 -0
  139. package/dist/core/check/expressions.js +398 -0
  140. package/dist/core/check/expressions.js.map +1 -0
  141. package/dist/core/check/functions.d.ts +31 -0
  142. package/dist/core/check/functions.d.ts.map +1 -0
  143. package/dist/core/check/functions.js +238 -0
  144. package/dist/core/check/functions.js.map +1 -0
  145. package/dist/core/check/handles.d.ts +48 -0
  146. package/dist/core/check/handles.d.ts.map +1 -0
  147. package/dist/core/check/handles.js +43 -0
  148. package/dist/core/check/handles.js.map +1 -0
  149. package/dist/core/check/index.d.ts +30 -0
  150. package/dist/core/check/index.d.ts.map +1 -0
  151. package/dist/core/check/index.js +26 -0
  152. package/dist/core/check/index.js.map +1 -0
  153. package/dist/core/check/library-bars.d.ts +7 -0
  154. package/dist/core/check/library-bars.d.ts.map +1 -0
  155. package/dist/core/check/library-bars.js +181 -0
  156. package/dist/core/check/library-bars.js.map +1 -0
  157. package/dist/core/check/library-orders.d.ts +5 -0
  158. package/dist/core/check/library-orders.d.ts.map +1 -0
  159. package/dist/core/check/library-orders.js +250 -0
  160. package/dist/core/check/library-orders.js.map +1 -0
  161. package/dist/core/check/library-output.d.ts +7 -0
  162. package/dist/core/check/library-output.d.ts.map +1 -0
  163. package/dist/core/check/library-output.js +195 -0
  164. package/dist/core/check/library-output.js.map +1 -0
  165. package/dist/core/check/library-series.d.ts +3 -0
  166. package/dist/core/check/library-series.d.ts.map +1 -0
  167. package/dist/core/check/library-series.js +415 -0
  168. package/dist/core/check/library-series.js.map +1 -0
  169. package/dist/core/check/library.d.ts +204 -0
  170. package/dist/core/check/library.d.ts.map +1 -0
  171. package/dist/core/check/library.js +198 -0
  172. package/dist/core/check/library.js.map +1 -0
  173. package/dist/core/check/literals.d.ts +19 -0
  174. package/dist/core/check/literals.d.ts.map +1 -0
  175. package/dist/core/check/literals.js +22 -0
  176. package/dist/core/check/literals.js.map +1 -0
  177. package/dist/core/check/outputs.d.ts +31 -0
  178. package/dist/core/check/outputs.d.ts.map +1 -0
  179. package/dist/core/check/outputs.js +113 -0
  180. package/dist/core/check/outputs.js.map +1 -0
  181. package/dist/core/check/statements.d.ts +25 -0
  182. package/dist/core/check/statements.d.ts.map +1 -0
  183. package/dist/core/check/statements.js +377 -0
  184. package/dist/core/check/statements.js.map +1 -0
  185. package/dist/core/check/suggest.d.ts +25 -0
  186. package/dist/core/check/suggest.d.ts.map +1 -0
  187. package/dist/core/check/suggest.js +61 -0
  188. package/dist/core/check/suggest.js.map +1 -0
  189. package/dist/core/check/surface.d.ts +38 -0
  190. package/dist/core/check/surface.d.ts.map +1 -0
  191. package/dist/core/check/surface.js +100 -0
  192. package/dist/core/check/surface.js.map +1 -0
  193. package/dist/core/check/tags.d.ts +4 -0
  194. package/dist/core/check/tags.d.ts.map +1 -0
  195. package/dist/core/check/tags.js +54 -0
  196. package/dist/core/check/tags.js.map +1 -0
  197. package/dist/core/check/types.d.ts +153 -0
  198. package/dist/core/check/types.d.ts.map +1 -0
  199. package/dist/core/check/types.js +221 -0
  200. package/dist/core/check/types.js.map +1 -0
  201. package/dist/core/check/warmup.d.ts +73 -0
  202. package/dist/core/check/warmup.d.ts.map +1 -0
  203. package/dist/core/check/warmup.js +62 -0
  204. package/dist/core/check/warmup.js.map +1 -0
  205. package/dist/core/diagnostics/collector.d.ts +12 -0
  206. package/dist/core/diagnostics/collector.d.ts.map +1 -1
  207. package/dist/core/diagnostics/collector.js +27 -1
  208. package/dist/core/diagnostics/collector.js.map +1 -1
  209. package/dist/core/emit/calls.d.ts +38 -0
  210. package/dist/core/emit/calls.d.ts.map +1 -0
  211. package/dist/core/emit/calls.js +347 -0
  212. package/dist/core/emit/calls.js.map +1 -0
  213. package/dist/core/emit/canonical.d.ts +39 -0
  214. package/dist/core/emit/canonical.d.ts.map +1 -0
  215. package/dist/core/emit/canonical.js +71 -0
  216. package/dist/core/emit/canonical.js.map +1 -0
  217. package/dist/core/emit/channels.d.ts +28 -0
  218. package/dist/core/emit/channels.d.ts.map +1 -0
  219. package/dist/core/emit/channels.js +110 -0
  220. package/dist/core/emit/channels.js.map +1 -0
  221. package/dist/core/emit/code.d.ts +75 -0
  222. package/dist/core/emit/code.d.ts.map +1 -0
  223. package/dist/core/emit/code.js +104 -0
  224. package/dist/core/emit/code.js.map +1 -0
  225. package/dist/core/emit/colours.d.ts +35 -0
  226. package/dist/core/emit/colours.d.ts.map +1 -0
  227. package/dist/core/emit/colours.js +50 -0
  228. package/dist/core/emit/colours.js.map +1 -0
  229. package/dist/core/emit/context.d.ts +271 -0
  230. package/dist/core/emit/context.d.ts.map +1 -0
  231. package/dist/core/emit/context.js +358 -0
  232. package/dist/core/emit/context.js.map +1 -0
  233. package/dist/core/emit/defaults.d.ts +45 -0
  234. package/dist/core/emit/defaults.d.ts.map +1 -0
  235. package/dist/core/emit/defaults.js +116 -0
  236. package/dist/core/emit/defaults.js.map +1 -0
  237. package/dist/core/emit/emit.d.ts +13 -0
  238. package/dist/core/emit/emit.d.ts.map +1 -0
  239. package/dist/core/emit/emit.js +281 -0
  240. package/dist/core/emit/emit.js.map +1 -0
  241. package/dist/core/emit/events.d.ts +21 -0
  242. package/dist/core/emit/events.d.ts.map +1 -0
  243. package/dist/core/emit/events.js +112 -0
  244. package/dist/core/emit/events.js.map +1 -0
  245. package/dist/core/emit/expressions.d.ts +23 -0
  246. package/dist/core/emit/expressions.d.ts.map +1 -0
  247. package/dist/core/emit/expressions.js +253 -0
  248. package/dist/core/emit/expressions.js.map +1 -0
  249. package/dist/core/emit/functions.d.ts +30 -0
  250. package/dist/core/emit/functions.d.ts.map +1 -0
  251. package/dist/core/emit/functions.js +171 -0
  252. package/dist/core/emit/functions.js.map +1 -0
  253. package/dist/core/emit/gaps.d.ts +34 -0
  254. package/dist/core/emit/gaps.d.ts.map +1 -0
  255. package/dist/core/emit/gaps.js +16 -0
  256. package/dist/core/emit/gaps.js.map +1 -0
  257. package/dist/core/emit/index.d.ts +29 -0
  258. package/dist/core/emit/index.d.ts.map +1 -0
  259. package/dist/core/emit/index.js +23 -0
  260. package/dist/core/emit/index.js.map +1 -0
  261. package/dist/core/emit/inputs.d.ts +47 -0
  262. package/dist/core/emit/inputs.d.ts.map +1 -0
  263. package/dist/core/emit/inputs.js +150 -0
  264. package/dist/core/emit/inputs.js.map +1 -0
  265. package/dist/core/emit/layout.d.ts +73 -0
  266. package/dist/core/emit/layout.d.ts.map +1 -0
  267. package/dist/core/emit/layout.js +126 -0
  268. package/dist/core/emit/layout.js.map +1 -0
  269. package/dist/core/emit/meta.d.ts +14 -0
  270. package/dist/core/emit/meta.d.ts.map +1 -0
  271. package/dist/core/emit/meta.js +68 -0
  272. package/dist/core/emit/meta.js.map +1 -0
  273. package/dist/core/emit/opcodes.d.ts +28 -0
  274. package/dist/core/emit/opcodes.d.ts.map +1 -0
  275. package/dist/core/emit/opcodes.js +137 -0
  276. package/dist/core/emit/opcodes.js.map +1 -0
  277. package/dist/core/emit/outputs.d.ts +67 -0
  278. package/dist/core/emit/outputs.d.ts.map +1 -0
  279. package/dist/core/emit/outputs.js +293 -0
  280. package/dist/core/emit/outputs.js.map +1 -0
  281. package/dist/core/emit/pool.d.ts +33 -0
  282. package/dist/core/emit/pool.d.ts.map +1 -0
  283. package/dist/core/emit/pool.js +79 -0
  284. package/dist/core/emit/pool.js.map +1 -0
  285. package/dist/core/emit/program.d.ts +333 -0
  286. package/dist/core/emit/program.d.ts.map +1 -0
  287. package/dist/core/emit/program.js +15 -0
  288. package/dist/core/emit/program.js.map +1 -0
  289. package/dist/core/emit/registers.d.ts +35 -0
  290. package/dist/core/emit/registers.d.ts.map +1 -0
  291. package/dist/core/emit/registers.js +170 -0
  292. package/dist/core/emit/registers.js.map +1 -0
  293. package/dist/core/emit/request-scope.d.ts +36 -0
  294. package/dist/core/emit/request-scope.d.ts.map +1 -0
  295. package/dist/core/emit/request-scope.js +41 -0
  296. package/dist/core/emit/request-scope.js.map +1 -0
  297. package/dist/core/emit/requests.d.ts +69 -0
  298. package/dist/core/emit/requests.d.ts.map +1 -0
  299. package/dist/core/emit/requests.js +230 -0
  300. package/dist/core/emit/requests.js.map +1 -0
  301. package/dist/core/emit/requires.d.ts +4 -0
  302. package/dist/core/emit/requires.d.ts.map +1 -0
  303. package/dist/core/emit/requires.js +71 -0
  304. package/dist/core/emit/requires.js.map +1 -0
  305. package/dist/core/emit/sha256.d.ts +24 -0
  306. package/dist/core/emit/sha256.d.ts.map +1 -0
  307. package/dist/core/emit/sha256.js +109 -0
  308. package/dist/core/emit/sha256.js.map +1 -0
  309. package/dist/core/emit/statements.d.ts +20 -0
  310. package/dist/core/emit/statements.d.ts.map +1 -0
  311. package/dist/core/emit/statements.js +393 -0
  312. package/dist/core/emit/statements.js.map +1 -0
  313. package/dist/core/emit/values.d.ts +80 -0
  314. package/dist/core/emit/values.d.ts.map +1 -0
  315. package/dist/core/emit/values.js +242 -0
  316. package/dist/core/emit/values.js.map +1 -0
  317. package/dist/core/engine/alerts.d.ts +66 -0
  318. package/dist/core/engine/alerts.d.ts.map +1 -0
  319. package/dist/core/engine/alerts.js +119 -0
  320. package/dist/core/engine/alerts.js.map +1 -0
  321. package/dist/core/engine/arithmetic.d.ts +82 -0
  322. package/dist/core/engine/arithmetic.d.ts.map +1 -0
  323. package/dist/core/engine/arithmetic.js +141 -0
  324. package/dist/core/engine/arithmetic.js.map +1 -0
  325. package/dist/core/engine/bars.d.ts +95 -0
  326. package/dist/core/engine/bars.d.ts.map +1 -0
  327. package/dist/core/engine/bars.js +133 -0
  328. package/dist/core/engine/bars.js.map +1 -0
  329. package/dist/core/engine/budget.d.ts +162 -0
  330. package/dist/core/engine/budget.d.ts.map +1 -0
  331. package/dist/core/engine/budget.js +188 -0
  332. package/dist/core/engine/budget.js.map +1 -0
  333. package/dist/core/engine/channels.d.ts +106 -0
  334. package/dist/core/engine/channels.d.ts.map +1 -0
  335. package/dist/core/engine/channels.js +99 -0
  336. package/dist/core/engine/channels.js.map +1 -0
  337. package/dist/core/engine/drawings.d.ts +64 -0
  338. package/dist/core/engine/drawings.d.ts.map +1 -0
  339. package/dist/core/engine/drawings.js +67 -0
  340. package/dist/core/engine/drawings.js.map +1 -0
  341. package/dist/core/engine/engine.d.ts +140 -0
  342. package/dist/core/engine/engine.d.ts.map +1 -0
  343. package/dist/core/engine/engine.js +405 -0
  344. package/dist/core/engine/engine.js.map +1 -0
  345. package/dist/core/engine/errors.d.ts +64 -0
  346. package/dist/core/engine/errors.d.ts.map +1 -0
  347. package/dist/core/engine/errors.js +63 -0
  348. package/dist/core/engine/errors.js.map +1 -0
  349. package/dist/core/engine/frames.d.ts +48 -0
  350. package/dist/core/engine/frames.d.ts.map +1 -0
  351. package/dist/core/engine/frames.js +41 -0
  352. package/dist/core/engine/frames.js.map +1 -0
  353. package/dist/core/engine/grids.d.ts +25 -0
  354. package/dist/core/engine/grids.d.ts.map +1 -0
  355. package/dist/core/engine/grids.js +77 -0
  356. package/dist/core/engine/grids.js.map +1 -0
  357. package/dist/core/engine/guard.d.ts +4 -0
  358. package/dist/core/engine/guard.d.ts.map +1 -0
  359. package/dist/core/engine/guard.js +46 -0
  360. package/dist/core/engine/guard.js.map +1 -0
  361. package/dist/core/engine/host.d.ts +219 -0
  362. package/dist/core/engine/host.d.ts.map +1 -0
  363. package/dist/core/engine/host.js +38 -0
  364. package/dist/core/engine/host.js.map +1 -0
  365. package/dist/core/engine/index.d.ts +49 -0
  366. package/dist/core/engine/index.d.ts.map +1 -0
  367. package/dist/core/engine/index.js +33 -0
  368. package/dist/core/engine/index.js.map +1 -0
  369. package/dist/core/engine/inputs.d.ts +77 -0
  370. package/dist/core/engine/inputs.d.ts.map +1 -0
  371. package/dist/core/engine/inputs.js +205 -0
  372. package/dist/core/engine/inputs.js.map +1 -0
  373. package/dist/core/engine/ledger/call.d.ts +63 -0
  374. package/dist/core/engine/ledger/call.d.ts.map +1 -0
  375. package/dist/core/engine/ledger/call.js +136 -0
  376. package/dist/core/engine/ledger/call.js.map +1 -0
  377. package/dist/core/engine/ledger/closable.d.ts +155 -0
  378. package/dist/core/engine/ledger/closable.d.ts.map +1 -0
  379. package/dist/core/engine/ledger/closable.js +173 -0
  380. package/dist/core/engine/ledger/closable.js.map +1 -0
  381. package/dist/core/engine/ledger/holdings.d.ts +194 -0
  382. package/dist/core/engine/ledger/holdings.d.ts.map +1 -0
  383. package/dist/core/engine/ledger/holdings.js +237 -0
  384. package/dist/core/engine/ledger/holdings.js.map +1 -0
  385. package/dist/core/engine/ledger/index.d.ts +19 -0
  386. package/dist/core/engine/ledger/index.d.ts.map +1 -0
  387. package/dist/core/engine/ledger/index.js +2 -0
  388. package/dist/core/engine/ledger/index.js.map +1 -0
  389. package/dist/core/engine/ledger/intent.d.ts +106 -0
  390. package/dist/core/engine/ledger/intent.d.ts.map +1 -0
  391. package/dist/core/engine/ledger/intent.js +21 -0
  392. package/dist/core/engine/ledger/intent.js.map +1 -0
  393. package/dist/core/engine/ledger/ledger.d.ts +143 -0
  394. package/dist/core/engine/ledger/ledger.d.ts.map +1 -0
  395. package/dist/core/engine/ledger/ledger.js +237 -0
  396. package/dist/core/engine/ledger/ledger.js.map +1 -0
  397. package/dist/core/engine/ledger/place.d.ts +75 -0
  398. package/dist/core/engine/ledger/place.d.ts.map +1 -0
  399. package/dist/core/engine/ledger/place.js +174 -0
  400. package/dist/core/engine/ledger/place.js.map +1 -0
  401. package/dist/core/engine/ledger/positions.d.ts +68 -0
  402. package/dist/core/engine/ledger/positions.d.ts.map +1 -0
  403. package/dist/core/engine/ledger/positions.js +114 -0
  404. package/dist/core/engine/ledger/positions.js.map +1 -0
  405. package/dist/core/engine/ledger/refuse.d.ts +43 -0
  406. package/dist/core/engine/ledger/refuse.d.ts.map +1 -0
  407. package/dist/core/engine/ledger/refuse.js +329 -0
  408. package/dist/core/engine/ledger/refuse.js.map +1 -0
  409. package/dist/core/engine/ledger/row.d.ts +176 -0
  410. package/dist/core/engine/ledger/row.d.ts.map +1 -0
  411. package/dist/core/engine/ledger/row.js +169 -0
  412. package/dist/core/engine/ledger/row.js.map +1 -0
  413. package/dist/core/engine/ledger/sizing.d.ts +142 -0
  414. package/dist/core/engine/ledger/sizing.d.ts.map +1 -0
  415. package/dist/core/engine/ledger/sizing.js +223 -0
  416. package/dist/core/engine/ledger/sizing.js.map +1 -0
  417. package/dist/core/engine/library/arrays.d.ts +14 -0
  418. package/dist/core/engine/library/arrays.d.ts.map +1 -0
  419. package/dist/core/engine/library/arrays.js +285 -0
  420. package/dist/core/engine/library/arrays.js.map +1 -0
  421. package/dist/core/engine/library/averages.d.ts +9 -0
  422. package/dist/core/engine/library/averages.d.ts.map +1 -0
  423. package/dist/core/engine/library/averages.js +41 -0
  424. package/dist/core/engine/library/averages.js.map +1 -0
  425. package/dist/core/engine/library/binding.d.ts +230 -0
  426. package/dist/core/engine/library/binding.d.ts.map +1 -0
  427. package/dist/core/engine/library/binding.js +109 -0
  428. package/dist/core/engine/library/binding.js.map +1 -0
  429. package/dist/core/engine/library/chart.d.ts +3 -0
  430. package/dist/core/engine/library/chart.d.ts.map +1 -0
  431. package/dist/core/engine/library/chart.js +83 -0
  432. package/dist/core/engine/library/chart.js.map +1 -0
  433. package/dist/core/engine/library/colours.d.ts +26 -0
  434. package/dist/core/engine/library/colours.d.ts.map +1 -0
  435. package/dist/core/engine/library/colours.js +81 -0
  436. package/dist/core/engine/library/colours.js.map +1 -0
  437. package/dist/core/engine/library/dates.d.ts +3 -0
  438. package/dist/core/engine/library/dates.d.ts.map +1 -0
  439. package/dist/core/engine/library/dates.js +75 -0
  440. package/dist/core/engine/library/dates.js.map +1 -0
  441. package/dist/core/engine/library/index.d.ts +13 -0
  442. package/dist/core/engine/library/index.d.ts.map +1 -0
  443. package/dist/core/engine/library/index.js +86 -0
  444. package/dist/core/engine/library/index.js.map +1 -0
  445. package/dist/core/engine/library/maths.d.ts +3 -0
  446. package/dist/core/engine/library/maths.d.ts.map +1 -0
  447. package/dist/core/engine/library/maths.js +89 -0
  448. package/dist/core/engine/library/maths.js.map +1 -0
  449. package/dist/core/engine/library/objects.d.ts +3 -0
  450. package/dist/core/engine/library/objects.d.ts.map +1 -0
  451. package/dist/core/engine/library/objects.js +199 -0
  452. package/dist/core/engine/library/objects.js.map +1 -0
  453. package/dist/core/engine/library/oscillators.d.ts +3 -0
  454. package/dist/core/engine/library/oscillators.d.ts.map +1 -0
  455. package/dist/core/engine/library/oscillators.js +29 -0
  456. package/dist/core/engine/library/oscillators.js.map +1 -0
  457. package/dist/core/engine/library/ranges.d.ts +3 -0
  458. package/dist/core/engine/library/ranges.d.ts.map +1 -0
  459. package/dist/core/engine/library/ranges.js +23 -0
  460. package/dist/core/engine/library/ranges.js.map +1 -0
  461. package/dist/core/engine/library/series.d.ts +3 -0
  462. package/dist/core/engine/library/series.d.ts.map +1 -0
  463. package/dist/core/engine/library/series.js +46 -0
  464. package/dist/core/engine/library/series.js.map +1 -0
  465. package/dist/core/engine/library/state.d.ts +35 -0
  466. package/dist/core/engine/library/state.d.ts.map +1 -0
  467. package/dist/core/engine/library/state.js +19 -0
  468. package/dist/core/engine/library/state.js.map +1 -0
  469. package/dist/core/engine/library/studies.d.ts +3 -0
  470. package/dist/core/engine/library/studies.d.ts.map +1 -0
  471. package/dist/core/engine/library/studies.js +35 -0
  472. package/dist/core/engine/library/studies.js.map +1 -0
  473. package/dist/core/engine/library/text.d.ts +6 -0
  474. package/dist/core/engine/library/text.d.ts.map +1 -0
  475. package/dist/core/engine/library/text.js +280 -0
  476. package/dist/core/engine/library/text.js.map +1 -0
  477. package/dist/core/engine/library/trend.d.ts +3 -0
  478. package/dist/core/engine/library/trend.d.ts.map +1 -0
  479. package/dist/core/engine/library/trend.js +29 -0
  480. package/dist/core/engine/library/trend.js.map +1 -0
  481. package/dist/core/engine/library/volume.d.ts +3 -0
  482. package/dist/core/engine/library/volume.d.ts.map +1 -0
  483. package/dist/core/engine/library/volume.js +51 -0
  484. package/dist/core/engine/library/volume.js.map +1 -0
  485. package/dist/core/engine/load.d.ts +45 -0
  486. package/dist/core/engine/load.d.ts.map +1 -0
  487. package/dist/core/engine/load.js +60 -0
  488. package/dist/core/engine/load.js.map +1 -0
  489. package/dist/core/engine/machine.d.ts +107 -0
  490. package/dist/core/engine/machine.d.ts.map +1 -0
  491. package/dist/core/engine/machine.js +337 -0
  492. package/dist/core/engine/machine.js.map +1 -0
  493. package/dist/core/engine/memory.d.ts +60 -0
  494. package/dist/core/engine/memory.d.ts.map +1 -0
  495. package/dist/core/engine/memory.js +92 -0
  496. package/dist/core/engine/memory.js.map +1 -0
  497. package/dist/core/engine/operations.d.ts +62 -0
  498. package/dist/core/engine/operations.d.ts.map +1 -0
  499. package/dist/core/engine/operations.js +149 -0
  500. package/dist/core/engine/operations.js.map +1 -0
  501. package/dist/core/engine/orders.d.ts +56 -0
  502. package/dist/core/engine/orders.d.ts.map +1 -0
  503. package/dist/core/engine/orders.js +83 -0
  504. package/dist/core/engine/orders.js.map +1 -0
  505. package/dist/core/engine/registers.d.ts +50 -0
  506. package/dist/core/engine/registers.d.ts.map +1 -0
  507. package/dist/core/engine/registers.js +85 -0
  508. package/dist/core/engine/registers.js.map +1 -0
  509. package/dist/core/engine/request-body.d.ts +138 -0
  510. package/dist/core/engine/request-body.d.ts.map +1 -0
  511. package/dist/core/engine/request-body.js +227 -0
  512. package/dist/core/engine/request-body.js.map +1 -0
  513. package/dist/core/engine/request-plan.d.ts +79 -0
  514. package/dist/core/engine/request-plan.d.ts.map +1 -0
  515. package/dist/core/engine/request-plan.js +228 -0
  516. package/dist/core/engine/request-plan.js.map +1 -0
  517. package/dist/core/engine/requests.d.ts +105 -0
  518. package/dist/core/engine/requests.d.ts.map +1 -0
  519. package/dist/core/engine/requests.js +260 -0
  520. package/dist/core/engine/requests.js.map +1 -0
  521. package/dist/core/engine/results.d.ts +40 -0
  522. package/dist/core/engine/results.d.ts.map +1 -0
  523. package/dist/core/engine/results.js +2 -0
  524. package/dist/core/engine/results.js.map +1 -0
  525. package/dist/core/engine/series.d.ts +61 -0
  526. package/dist/core/engine/series.d.ts.map +1 -0
  527. package/dist/core/engine/series.js +41 -0
  528. package/dist/core/engine/series.js.map +1 -0
  529. package/dist/core/engine/session/hours.d.ts +49 -0
  530. package/dist/core/engine/session/hours.d.ts.map +1 -0
  531. package/dist/core/engine/session/hours.js +31 -0
  532. package/dist/core/engine/session/hours.js.map +1 -0
  533. package/dist/core/engine/session/index.d.ts +17 -0
  534. package/dist/core/engine/session/index.d.ts.map +1 -0
  535. package/dist/core/engine/session/index.js +3 -0
  536. package/dist/core/engine/session/index.js.map +1 -0
  537. package/dist/core/engine/session/record.d.ts +56 -0
  538. package/dist/core/engine/session/record.d.ts.map +1 -0
  539. package/dist/core/engine/session/record.js +165 -0
  540. package/dist/core/engine/session/record.js.map +1 -0
  541. package/dist/core/engine/session/spec.d.ts +19 -0
  542. package/dist/core/engine/session/spec.d.ts.map +1 -0
  543. package/dist/core/engine/session/spec.js +31 -0
  544. package/dist/core/engine/session/spec.js.map +1 -0
  545. package/dist/core/engine/timeframe.d.ts +59 -0
  546. package/dist/core/engine/timeframe.d.ts.map +1 -0
  547. package/dist/core/engine/timeframe.js +140 -0
  548. package/dist/core/engine/timeframe.js.map +1 -0
  549. package/dist/core/engine/types.d.ts +15 -0
  550. package/dist/core/engine/types.d.ts.map +1 -0
  551. package/dist/core/engine/types.js +2 -0
  552. package/dist/core/engine/types.js.map +1 -0
  553. package/dist/core/engine/values/heap.d.ts +134 -0
  554. package/dist/core/engine/values/heap.d.ts.map +1 -0
  555. package/dist/core/engine/values/heap.js +230 -0
  556. package/dist/core/engine/values/heap.js.map +1 -0
  557. package/dist/core/engine/values/index.d.ts +13 -0
  558. package/dist/core/engine/values/index.d.ts.map +1 -0
  559. package/dist/core/engine/values/index.js +3 -0
  560. package/dist/core/engine/values/index.js.map +1 -0
  561. package/dist/core/engine/values/value.d.ts +82 -0
  562. package/dist/core/engine/values/value.d.ts.map +1 -0
  563. package/dist/core/engine/values/value.js +134 -0
  564. package/dist/core/engine/values/value.js.map +1 -0
  565. package/dist/core/engine/verify-budgets.d.ts +35 -0
  566. package/dist/core/engine/verify-budgets.d.ts.map +1 -0
  567. package/dist/core/engine/verify-budgets.js +172 -0
  568. package/dist/core/engine/verify-budgets.js.map +1 -0
  569. package/dist/core/engine/verify-code.d.ts +32 -0
  570. package/dist/core/engine/verify-code.d.ts.map +1 -0
  571. package/dist/core/engine/verify-code.js +278 -0
  572. package/dist/core/engine/verify-code.js.map +1 -0
  573. package/dist/core/engine/verify-requests.d.ts +44 -0
  574. package/dist/core/engine/verify-requests.d.ts.map +1 -0
  575. package/dist/core/engine/verify-requests.js +220 -0
  576. package/dist/core/engine/verify-requests.js.map +1 -0
  577. package/dist/core/engine/verify-shape.d.ts +46 -0
  578. package/dist/core/engine/verify-shape.d.ts.map +1 -0
  579. package/dist/core/engine/verify-shape.js +147 -0
  580. package/dist/core/engine/verify-shape.js.map +1 -0
  581. package/dist/core/engine/verify-tables.d.ts +19 -0
  582. package/dist/core/engine/verify-tables.d.ts.map +1 -0
  583. package/dist/core/engine/verify-tables.js +171 -0
  584. package/dist/core/engine/verify-tables.js.map +1 -0
  585. package/dist/core/engine/verify.d.ts +19 -0
  586. package/dist/core/engine/verify.d.ts.map +1 -0
  587. package/dist/core/engine/verify.js +309 -0
  588. package/dist/core/engine/verify.js.map +1 -0
  589. package/dist/core/index.d.ts +61 -6
  590. package/dist/core/index.d.ts.map +1 -1
  591. package/dist/core/index.js +48 -6
  592. package/dist/core/index.js.map +1 -1
  593. package/dist/core/parse/expressions.js +1 -1
  594. package/dist/core/parse/expressions.js.map +1 -1
  595. package/dist/core/parse/names.d.ts +7 -1
  596. package/dist/core/parse/names.d.ts.map +1 -1
  597. package/dist/core/parse/names.js +28 -2
  598. package/dist/core/parse/names.js.map +1 -1
  599. package/dist/core/stdlib/averages/exponential.d.ts +51 -0
  600. package/dist/core/stdlib/averages/exponential.d.ts.map +1 -0
  601. package/dist/core/stdlib/averages/exponential.js +72 -0
  602. package/dist/core/stdlib/averages/exponential.js.map +1 -0
  603. package/dist/core/stdlib/averages/index.d.ts +7 -0
  604. package/dist/core/stdlib/averages/index.d.ts.map +1 -0
  605. package/dist/core/stdlib/averages/index.js +5 -0
  606. package/dist/core/stdlib/averages/index.js.map +1 -0
  607. package/dist/core/stdlib/averages/select.d.ts +35 -0
  608. package/dist/core/stdlib/averages/select.d.ts.map +1 -0
  609. package/dist/core/stdlib/averages/select.js +43 -0
  610. package/dist/core/stdlib/averages/select.js.map +1 -0
  611. package/dist/core/stdlib/averages/shaped.d.ts +61 -0
  612. package/dist/core/stdlib/averages/shaped.d.ts.map +1 -0
  613. package/dist/core/stdlib/averages/shaped.js +126 -0
  614. package/dist/core/stdlib/averages/shaped.js.map +1 -0
  615. package/dist/core/stdlib/averages/simple.d.ts +58 -0
  616. package/dist/core/stdlib/averages/simple.d.ts.map +1 -0
  617. package/dist/core/stdlib/averages/simple.js +92 -0
  618. package/dist/core/stdlib/averages/simple.js.map +1 -0
  619. package/dist/core/stdlib/calendar/civil.d.ts +56 -0
  620. package/dist/core/stdlib/calendar/civil.d.ts.map +1 -0
  621. package/dist/core/stdlib/calendar/civil.js +70 -0
  622. package/dist/core/stdlib/calendar/civil.js.map +1 -0
  623. package/dist/core/stdlib/calendar/fields.d.ts +36 -0
  624. package/dist/core/stdlib/calendar/fields.d.ts.map +1 -0
  625. package/dist/core/stdlib/calendar/fields.js +93 -0
  626. package/dist/core/stdlib/calendar/fields.js.map +1 -0
  627. package/dist/core/stdlib/calendar/format.d.ts +19 -0
  628. package/dist/core/stdlib/calendar/format.d.ts.map +1 -0
  629. package/dist/core/stdlib/calendar/format.js +51 -0
  630. package/dist/core/stdlib/calendar/format.js.map +1 -0
  631. package/dist/core/stdlib/calendar/index.d.ts +7 -0
  632. package/dist/core/stdlib/calendar/index.d.ts.map +1 -0
  633. package/dist/core/stdlib/calendar/index.js +5 -0
  634. package/dist/core/stdlib/calendar/index.js.map +1 -0
  635. package/dist/core/stdlib/calendar/zone.d.ts +53 -0
  636. package/dist/core/stdlib/calendar/zone.d.ts.map +1 -0
  637. package/dist/core/stdlib/calendar/zone.js +138 -0
  638. package/dist/core/stdlib/calendar/zone.js.map +1 -0
  639. package/dist/core/stdlib/index.d.ts +57 -0
  640. package/dist/core/stdlib/index.d.ts.map +1 -0
  641. package/dist/core/stdlib/index.js +51 -0
  642. package/dist/core/stdlib/index.js.map +1 -0
  643. package/dist/core/stdlib/maths/arithmetic.d.ts +38 -0
  644. package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -0
  645. package/dist/core/stdlib/maths/arithmetic.js +66 -0
  646. package/dist/core/stdlib/maths/arithmetic.js.map +1 -0
  647. package/dist/core/stdlib/maths/elementary.d.ts +65 -0
  648. package/dist/core/stdlib/maths/elementary.d.ts.map +1 -0
  649. package/dist/core/stdlib/maths/elementary.js +93 -0
  650. package/dist/core/stdlib/maths/elementary.js.map +1 -0
  651. package/dist/core/stdlib/maths/index.d.ts +4 -0
  652. package/dist/core/stdlib/maths/index.d.ts.map +1 -0
  653. package/dist/core/stdlib/maths/index.js +4 -0
  654. package/dist/core/stdlib/maths/index.js.map +1 -0
  655. package/dist/core/stdlib/maths/rounding.d.ts +43 -0
  656. package/dist/core/stdlib/maths/rounding.d.ts.map +1 -0
  657. package/dist/core/stdlib/maths/rounding.js +62 -0
  658. package/dist/core/stdlib/maths/rounding.js.map +1 -0
  659. package/dist/core/stdlib/momentum/convergence.d.ts +36 -0
  660. package/dist/core/stdlib/momentum/convergence.d.ts.map +1 -0
  661. package/dist/core/stdlib/momentum/convergence.js +48 -0
  662. package/dist/core/stdlib/momentum/convergence.js.map +1 -0
  663. package/dist/core/stdlib/momentum/index.d.ts +6 -0
  664. package/dist/core/stdlib/momentum/index.d.ts.map +1 -0
  665. package/dist/core/stdlib/momentum/index.js +6 -0
  666. package/dist/core/stdlib/momentum/index.js.map +1 -0
  667. package/dist/core/stdlib/momentum/pressure.d.ts +43 -0
  668. package/dist/core/stdlib/momentum/pressure.d.ts.map +1 -0
  669. package/dist/core/stdlib/momentum/pressure.js +103 -0
  670. package/dist/core/stdlib/momentum/pressure.js.map +1 -0
  671. package/dist/core/stdlib/momentum/rates.d.ts +74 -0
  672. package/dist/core/stdlib/momentum/rates.d.ts.map +1 -0
  673. package/dist/core/stdlib/momentum/rates.js +134 -0
  674. package/dist/core/stdlib/momentum/rates.js.map +1 -0
  675. package/dist/core/stdlib/momentum/rsi.d.ts +21 -0
  676. package/dist/core/stdlib/momentum/rsi.d.ts.map +1 -0
  677. package/dist/core/stdlib/momentum/rsi.js +30 -0
  678. package/dist/core/stdlib/momentum/rsi.js.map +1 -0
  679. package/dist/core/stdlib/momentum/stochastic.d.ts +44 -0
  680. package/dist/core/stdlib/momentum/stochastic.d.ts.map +1 -0
  681. package/dist/core/stdlib/momentum/stochastic.js +97 -0
  682. package/dist/core/stdlib/momentum/stochastic.js.map +1 -0
  683. package/dist/core/stdlib/series/changes.d.ts +59 -0
  684. package/dist/core/stdlib/series/changes.d.ts.map +1 -0
  685. package/dist/core/stdlib/series/changes.js +129 -0
  686. package/dist/core/stdlib/series/changes.js.map +1 -0
  687. package/dist/core/stdlib/series/conditions.d.ts +34 -0
  688. package/dist/core/stdlib/series/conditions.d.ts.map +1 -0
  689. package/dist/core/stdlib/series/conditions.js +52 -0
  690. package/dist/core/stdlib/series/conditions.js.map +1 -0
  691. package/dist/core/stdlib/series/extremes.d.ts +29 -0
  692. package/dist/core/stdlib/series/extremes.d.ts.map +1 -0
  693. package/dist/core/stdlib/series/extremes.js +62 -0
  694. package/dist/core/stdlib/series/extremes.js.map +1 -0
  695. package/dist/core/stdlib/series/index.d.ts +9 -0
  696. package/dist/core/stdlib/series/index.d.ts.map +1 -0
  697. package/dist/core/stdlib/series/index.js +7 -0
  698. package/dist/core/stdlib/series/index.js.map +1 -0
  699. package/dist/core/stdlib/series/pivots.d.ts +25 -0
  700. package/dist/core/stdlib/series/pivots.d.ts.map +1 -0
  701. package/dist/core/stdlib/series/pivots.js +42 -0
  702. package/dist/core/stdlib/series/pivots.js.map +1 -0
  703. package/dist/core/stdlib/series/statistics.d.ts +64 -0
  704. package/dist/core/stdlib/series/statistics.d.ts.map +1 -0
  705. package/dist/core/stdlib/series/statistics.js +148 -0
  706. package/dist/core/stdlib/series/statistics.js.map +1 -0
  707. package/dist/core/stdlib/series/totals.d.ts +68 -0
  708. package/dist/core/stdlib/series/totals.d.ts.map +1 -0
  709. package/dist/core/stdlib/series/totals.js +115 -0
  710. package/dist/core/stdlib/series/totals.js.map +1 -0
  711. package/dist/core/stdlib/trend/directional.d.ts +69 -0
  712. package/dist/core/stdlib/trend/directional.d.ts.map +1 -0
  713. package/dist/core/stdlib/trend/directional.js +151 -0
  714. package/dist/core/stdlib/trend/directional.js.map +1 -0
  715. package/dist/core/stdlib/trend/index.d.ts +4 -0
  716. package/dist/core/stdlib/trend/index.d.ts.map +1 -0
  717. package/dist/core/stdlib/trend/index.js +4 -0
  718. package/dist/core/stdlib/trend/index.js.map +1 -0
  719. package/dist/core/stdlib/trend/psar.d.ts +33 -0
  720. package/dist/core/stdlib/trend/psar.d.ts.map +1 -0
  721. package/dist/core/stdlib/trend/psar.js +86 -0
  722. package/dist/core/stdlib/trend/psar.js.map +1 -0
  723. package/dist/core/stdlib/trend/supertrend.d.ts +30 -0
  724. package/dist/core/stdlib/trend/supertrend.d.ts.map +1 -0
  725. package/dist/core/stdlib/trend/supertrend.js +65 -0
  726. package/dist/core/stdlib/trend/supertrend.js.map +1 -0
  727. package/dist/core/stdlib/values/bar.d.ts +39 -0
  728. package/dist/core/stdlib/values/bar.d.ts.map +1 -0
  729. package/dist/core/stdlib/values/bar.js +33 -0
  730. package/dist/core/stdlib/values/bar.js.map +1 -0
  731. package/dist/core/stdlib/values/index.d.ts +11 -0
  732. package/dist/core/stdlib/values/index.d.ts.map +1 -0
  733. package/dist/core/stdlib/values/index.js +6 -0
  734. package/dist/core/stdlib/values/index.js.map +1 -0
  735. package/dist/core/stdlib/values/lookback.d.ts +83 -0
  736. package/dist/core/stdlib/values/lookback.d.ts.map +1 -0
  737. package/dist/core/stdlib/values/lookback.js +134 -0
  738. package/dist/core/stdlib/values/lookback.js.map +1 -0
  739. package/dist/core/stdlib/values/region.d.ts +55 -0
  740. package/dist/core/stdlib/values/region.d.ts.map +1 -0
  741. package/dist/core/stdlib/values/region.js +73 -0
  742. package/dist/core/stdlib/values/region.js.map +1 -0
  743. package/dist/core/stdlib/values/tail.d.ts +44 -0
  744. package/dist/core/stdlib/values/tail.d.ts.map +1 -0
  745. package/dist/core/stdlib/values/tail.js +23 -0
  746. package/dist/core/stdlib/values/tail.js.map +1 -0
  747. package/dist/core/stdlib/values/value.d.ts +64 -0
  748. package/dist/core/stdlib/values/value.d.ts.map +1 -0
  749. package/dist/core/stdlib/values/value.js +61 -0
  750. package/dist/core/stdlib/values/value.js.map +1 -0
  751. package/dist/core/stdlib/volatility/bands.d.ts +50 -0
  752. package/dist/core/stdlib/volatility/bands.d.ts.map +1 -0
  753. package/dist/core/stdlib/volatility/bands.js +101 -0
  754. package/dist/core/stdlib/volatility/bands.js.map +1 -0
  755. package/dist/core/stdlib/volatility/deviation.d.ts +43 -0
  756. package/dist/core/stdlib/volatility/deviation.d.ts.map +1 -0
  757. package/dist/core/stdlib/volatility/deviation.js +75 -0
  758. package/dist/core/stdlib/volatility/deviation.js.map +1 -0
  759. package/dist/core/stdlib/volatility/index.d.ts +6 -0
  760. package/dist/core/stdlib/volatility/index.d.ts.map +1 -0
  761. package/dist/core/stdlib/volatility/index.js +5 -0
  762. package/dist/core/stdlib/volatility/index.js.map +1 -0
  763. package/dist/core/stdlib/volatility/measures.d.ts +48 -0
  764. package/dist/core/stdlib/volatility/measures.d.ts.map +1 -0
  765. package/dist/core/stdlib/volatility/measures.js +73 -0
  766. package/dist/core/stdlib/volatility/measures.js.map +1 -0
  767. package/dist/core/stdlib/volatility/range.d.ts +69 -0
  768. package/dist/core/stdlib/volatility/range.d.ts.map +1 -0
  769. package/dist/core/stdlib/volatility/range.js +86 -0
  770. package/dist/core/stdlib/volatility/range.js.map +1 -0
  771. package/dist/core/stdlib/volume/accumulation.d.ts +61 -0
  772. package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -0
  773. package/dist/core/stdlib/volume/accumulation.js +127 -0
  774. package/dist/core/stdlib/volume/accumulation.js.map +1 -0
  775. package/dist/core/stdlib/volume/flow.d.ts +60 -0
  776. package/dist/core/stdlib/volume/flow.d.ts.map +1 -0
  777. package/dist/core/stdlib/volume/flow.js +125 -0
  778. package/dist/core/stdlib/volume/flow.js.map +1 -0
  779. package/dist/core/stdlib/volume/index.d.ts +5 -0
  780. package/dist/core/stdlib/volume/index.d.ts.map +1 -0
  781. package/dist/core/stdlib/volume/index.js +4 -0
  782. package/dist/core/stdlib/volume/index.js.map +1 -0
  783. package/dist/core/stdlib/volume/weighted.d.ts +52 -0
  784. package/dist/core/stdlib/volume/weighted.d.ts.map +1 -0
  785. package/dist/core/stdlib/volume/weighted.js +64 -0
  786. package/dist/core/stdlib/volume/weighted.js.map +1 -0
  787. package/dist/core/version/version.generated.d.ts +2 -2
  788. package/dist/core/version/version.generated.d.ts.map +1 -1
  789. package/dist/core/version/version.generated.js +2 -2
  790. package/dist/core/version/version.generated.js.map +1 -1
  791. package/package.json +38 -14
  792. package/spec/errors.json +382 -183
  793. package/src/adapters/charts/alerts.ts +116 -0
  794. package/src/adapters/charts/bars.ts +63 -0
  795. package/src/adapters/charts/candles.ts +137 -0
  796. package/src/adapters/charts/colours.ts +113 -0
  797. package/src/adapters/charts/columns.ts +99 -0
  798. package/src/adapters/charts/contract.ts +320 -0
  799. package/src/adapters/charts/descriptor.ts +199 -0
  800. package/src/adapters/charts/drawings.ts +213 -0
  801. package/src/adapters/charts/errors.ts +45 -0
  802. package/src/adapters/charts/fields.ts +74 -0
  803. package/src/adapters/charts/fills.ts +71 -0
  804. package/src/adapters/charts/index.ts +78 -0
  805. package/src/adapters/charts/levels.ts +92 -0
  806. package/src/adapters/charts/markers.ts +119 -0
  807. package/src/adapters/charts/paint.ts +101 -0
  808. package/src/adapters/charts/plots.ts +185 -0
  809. package/src/adapters/charts/produced.ts +68 -0
  810. package/src/adapters/charts/requests.ts +357 -0
  811. package/src/adapters/charts/run.ts +327 -0
  812. package/src/adapters/charts/settings.ts +273 -0
  813. package/src/adapters/charts/surfaces.ts +238 -0
  814. package/src/adapters/charts/tables.ts +155 -0
  815. package/src/core/catalogue/catalogue.generated.ts +17 -9
  816. package/src/core/catalogue/values.generated.ts +8 -0
  817. package/src/core/check/arguments.ts +126 -0
  818. package/src/core/check/call-sites.ts +385 -0
  819. package/src/core/check/call-warmup.ts +121 -0
  820. package/src/core/check/calls.ts +412 -0
  821. package/src/core/check/check.ts +183 -0
  822. package/src/core/check/checked.ts +228 -0
  823. package/src/core/check/checker.ts +393 -0
  824. package/src/core/check/conditional.ts +143 -0
  825. package/src/core/check/constant.ts +127 -0
  826. package/src/core/check/declaration.ts +230 -0
  827. package/src/core/check/expressions.ts +471 -0
  828. package/src/core/check/functions.ts +283 -0
  829. package/src/core/check/handles.ts +75 -0
  830. package/src/core/check/index.ts +67 -0
  831. package/src/core/check/library-bars.ts +194 -0
  832. package/src/core/check/library-orders.ts +290 -0
  833. package/src/core/check/library-output.ts +241 -0
  834. package/src/core/check/library-series.ts +457 -0
  835. package/src/core/check/library.ts +374 -0
  836. package/src/core/check/literals.ts +35 -0
  837. package/src/core/check/outputs.ts +152 -0
  838. package/src/core/check/statements.ts +465 -0
  839. package/src/core/check/suggest.ts +63 -0
  840. package/src/core/check/surface.ts +115 -0
  841. package/src/core/check/tags.ts +94 -0
  842. package/src/core/check/types.ts +260 -0
  843. package/src/core/check/warmup.ts +100 -0
  844. package/src/core/diagnostics/collector.ts +27 -1
  845. package/src/core/emit/calls.ts +415 -0
  846. package/src/core/emit/canonical.ts +81 -0
  847. package/src/core/emit/channels.ts +144 -0
  848. package/src/core/emit/code.ts +155 -0
  849. package/src/core/emit/colours.ts +75 -0
  850. package/src/core/emit/context.ts +461 -0
  851. package/src/core/emit/defaults.ts +150 -0
  852. package/src/core/emit/emit.ts +313 -0
  853. package/src/core/emit/events.ts +141 -0
  854. package/src/core/emit/expressions.ts +292 -0
  855. package/src/core/emit/functions.ts +195 -0
  856. package/src/core/emit/gaps.ts +44 -0
  857. package/src/core/emit/index.ts +74 -0
  858. package/src/core/emit/inputs.ts +179 -0
  859. package/src/core/emit/layout.ts +165 -0
  860. package/src/core/emit/meta.ts +104 -0
  861. package/src/core/emit/opcodes.ts +160 -0
  862. package/src/core/emit/outputs.ts +357 -0
  863. package/src/core/emit/pool.ts +102 -0
  864. package/src/core/emit/program.ts +385 -0
  865. package/src/core/emit/registers.ts +179 -0
  866. package/src/core/emit/request-scope.ts +52 -0
  867. package/src/core/emit/requests.ts +258 -0
  868. package/src/core/emit/requires.ts +91 -0
  869. package/src/core/emit/sha256.ts +119 -0
  870. package/src/core/emit/statements.ts +438 -0
  871. package/src/core/emit/values.ts +284 -0
  872. package/src/core/engine/alerts.ts +152 -0
  873. package/src/core/engine/arithmetic.ts +165 -0
  874. package/src/core/engine/bars.ts +224 -0
  875. package/src/core/engine/budget.ts +284 -0
  876. package/src/core/engine/channels.ts +171 -0
  877. package/src/core/engine/drawings.ts +127 -0
  878. package/src/core/engine/engine.ts +498 -0
  879. package/src/core/engine/errors.ts +100 -0
  880. package/src/core/engine/frames.ts +85 -0
  881. package/src/core/engine/grids.ts +98 -0
  882. package/src/core/engine/guard.ts +71 -0
  883. package/src/core/engine/host.ts +251 -0
  884. package/src/core/engine/index.ts +93 -0
  885. package/src/core/engine/inputs.ts +263 -0
  886. package/src/core/engine/ledger/call.ts +218 -0
  887. package/src/core/engine/ledger/closable.ts +269 -0
  888. package/src/core/engine/ledger/holdings.ts +354 -0
  889. package/src/core/engine/ledger/index.ts +28 -0
  890. package/src/core/engine/ledger/intent.ts +112 -0
  891. package/src/core/engine/ledger/ledger.ts +314 -0
  892. package/src/core/engine/ledger/place.ts +277 -0
  893. package/src/core/engine/ledger/positions.ts +123 -0
  894. package/src/core/engine/ledger/refuse.ts +378 -0
  895. package/src/core/engine/ledger/row.ts +318 -0
  896. package/src/core/engine/ledger/sizing.ts +292 -0
  897. package/src/core/engine/library/arrays.ts +316 -0
  898. package/src/core/engine/library/averages.ts +97 -0
  899. package/src/core/engine/library/binding.ts +325 -0
  900. package/src/core/engine/library/chart.ts +115 -0
  901. package/src/core/engine/library/colours.ts +111 -0
  902. package/src/core/engine/library/dates.ts +109 -0
  903. package/src/core/engine/library/index.ts +103 -0
  904. package/src/core/engine/library/maths.ts +134 -0
  905. package/src/core/engine/library/objects.ts +265 -0
  906. package/src/core/engine/library/oscillators.ts +124 -0
  907. package/src/core/engine/library/ranges.ts +51 -0
  908. package/src/core/engine/library/series.ts +236 -0
  909. package/src/core/engine/library/state.ts +47 -0
  910. package/src/core/engine/library/studies.ts +150 -0
  911. package/src/core/engine/library/text.ts +303 -0
  912. package/src/core/engine/library/trend.ts +79 -0
  913. package/src/core/engine/library/volume.ts +101 -0
  914. package/src/core/engine/load.ts +104 -0
  915. package/src/core/engine/machine.ts +446 -0
  916. package/src/core/engine/memory.ts +129 -0
  917. package/src/core/engine/operations.ts +171 -0
  918. package/src/core/engine/orders.ts +121 -0
  919. package/src/core/engine/registers.ts +104 -0
  920. package/src/core/engine/request-body.ts +328 -0
  921. package/src/core/engine/request-plan.ts +270 -0
  922. package/src/core/engine/requests.ts +382 -0
  923. package/src/core/engine/results.ts +41 -0
  924. package/src/core/engine/series.ts +82 -0
  925. package/src/core/engine/session/hours.ts +86 -0
  926. package/src/core/engine/session/index.ts +17 -0
  927. package/src/core/engine/session/record.ts +191 -0
  928. package/src/core/engine/session/spec.ts +45 -0
  929. package/src/core/engine/timeframe.ts +161 -0
  930. package/src/core/engine/types.ts +47 -0
  931. package/src/core/engine/values/heap.ts +295 -0
  932. package/src/core/engine/values/index.ts +34 -0
  933. package/src/core/engine/values/value.ts +158 -0
  934. package/src/core/engine/verify-budgets.ts +202 -0
  935. package/src/core/engine/verify-code.ts +332 -0
  936. package/src/core/engine/verify-requests.ts +255 -0
  937. package/src/core/engine/verify-shape.ts +164 -0
  938. package/src/core/engine/verify-tables.ts +176 -0
  939. package/src/core/engine/verify.ts +341 -0
  940. package/src/core/index.ts +128 -6
  941. package/src/core/parse/expressions.ts +1 -1
  942. package/src/core/parse/names.ts +29 -2
  943. package/src/core/stdlib/averages/exponential.ts +119 -0
  944. package/src/core/stdlib/averages/index.ts +45 -0
  945. package/src/core/stdlib/averages/select.ts +71 -0
  946. package/src/core/stdlib/averages/shaped.ts +161 -0
  947. package/src/core/stdlib/averages/simple.ts +139 -0
  948. package/src/core/stdlib/calendar/civil.ts +89 -0
  949. package/src/core/stdlib/calendar/fields.ts +124 -0
  950. package/src/core/stdlib/calendar/format.ts +71 -0
  951. package/src/core/stdlib/calendar/index.ts +15 -0
  952. package/src/core/stdlib/calendar/zone.ts +161 -0
  953. package/src/core/stdlib/index.ts +400 -0
  954. package/src/core/stdlib/maths/arithmetic.ts +74 -0
  955. package/src/core/stdlib/maths/elementary.ts +124 -0
  956. package/src/core/stdlib/maths/index.ts +43 -0
  957. package/src/core/stdlib/maths/rounding.ts +78 -0
  958. package/src/core/stdlib/momentum/convergence.ts +82 -0
  959. package/src/core/stdlib/momentum/index.ts +47 -0
  960. package/src/core/stdlib/momentum/pressure.ts +141 -0
  961. package/src/core/stdlib/momentum/rates.ts +188 -0
  962. package/src/core/stdlib/momentum/rsi.ts +49 -0
  963. package/src/core/stdlib/momentum/stochastic.ts +147 -0
  964. package/src/core/stdlib/series/changes.ts +177 -0
  965. package/src/core/stdlib/series/conditions.ts +74 -0
  966. package/src/core/stdlib/series/extremes.ts +92 -0
  967. package/src/core/stdlib/series/index.ts +83 -0
  968. package/src/core/stdlib/series/pivots.ts +63 -0
  969. package/src/core/stdlib/series/statistics.ts +207 -0
  970. package/src/core/stdlib/series/totals.ts +164 -0
  971. package/src/core/stdlib/trend/directional.ts +196 -0
  972. package/src/core/stdlib/trend/index.ts +13 -0
  973. package/src/core/stdlib/trend/psar.ts +131 -0
  974. package/src/core/stdlib/trend/supertrend.ts +100 -0
  975. package/src/core/stdlib/values/bar.ts +54 -0
  976. package/src/core/stdlib/values/index.ts +14 -0
  977. package/src/core/stdlib/values/lookback.ts +198 -0
  978. package/src/core/stdlib/values/region.ts +86 -0
  979. package/src/core/stdlib/values/tail.ts +58 -0
  980. package/src/core/stdlib/values/value.ts +82 -0
  981. package/src/core/stdlib/volatility/bands.ts +178 -0
  982. package/src/core/stdlib/volatility/deviation.ts +111 -0
  983. package/src/core/stdlib/volatility/index.ts +48 -0
  984. package/src/core/stdlib/volatility/measures.ts +96 -0
  985. package/src/core/stdlib/volatility/range.ts +143 -0
  986. package/src/core/stdlib/volume/accumulation.ts +152 -0
  987. package/src/core/stdlib/volume/flow.ts +173 -0
  988. package/src/core/stdlib/volume/index.ts +43 -0
  989. package/src/core/stdlib/volume/weighted.ts +101 -0
  990. package/src/core/version/version.generated.ts +2 -2
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The numeric library: the calculations of `stdlib.md` sections 4 to 9.
3
+ *
4
+ * **It depends on nothing else in this repository.** Not the lexer, not the
5
+ * checker, not the engine. A moving average is a moving average, and keeping
6
+ * this tier independently testable is what makes a gate on it worth anything:
7
+ * a number that matches a reference implementation here matches it because the
8
+ * arithmetic is right, not because the rest of the compiler agreed with itself.
9
+ *
10
+ * Three properties hold across everything below, and each has a file that
11
+ * explains it at the place it is implemented:
12
+ *
13
+ * - **Absence is not zero and never becomes zero** (`values/value.ts`). A
14
+ * warmup bar is absent, anything computed from an absent value is absent, and
15
+ * the three functions that deliberately ignore absent bars say so in their
16
+ * names.
17
+ * - **The accumulation order is part of the contract** (`values/lookback.ts`).
18
+ * Binary64 addition is not associative, so two engines that sum a lookback two
19
+ * ways disagree in the last bits. Lookbacks are summed fresh, oldest bar first,
20
+ * and where a formula could be arranged two ways the file that implements it
21
+ * says which way and why.
22
+ * - **Every function is written once, as a step over a state region**
23
+ * (`values/region.ts`): a flat record and a step that takes one bar. The tail
24
+ * form is that step over a region of its own and the whole-series form is the
25
+ * tail folded, so the live path and the history path cannot disagree, because
26
+ * there is only one of them. The record rather than a closure is what lets an
27
+ * engine drive the same step: `compiled-program.md` 2.11 requires a region to
28
+ * be copyable by something that does not know what is in it, and that is the
29
+ * reason there is no second copy of any of this arithmetic in the engine.
30
+ *
31
+ * **What this library does not do: raise.** A length outside its contract is
32
+ * OS3004 at compile time or OS4003 at run time, raised before a call reaches
33
+ * here. Nothing below throws, so nothing below can throw a diagnostic without a
34
+ * code.
35
+ *
36
+ * Two arguments appear here that no script writes, and neither is a numeric
37
+ * fact: the tick size `roundToTick` rounds to, which a host states, and the
38
+ * per-bar flag that says where a trading session begins for `vwap`, which an
39
+ * engine derives from the instrument's session hours. An engine supplies
40
+ * both.
41
+ */
42
+ export type { Bar, Flag, Flags, Lookback, Recurrence, Series, StateField, StateRecord, StateSlot, Tail, Value, } from './values/index.js';
43
+ export { NONE, at, copyState, flag, fold, held, hl2, hlc3, hlcc4, isLength, isPresent, makeLookback, newState, ohlc4, queue, result, ring, slot, smoothed, tailOf, } from './values/index.js';
44
+ export { E, PI, abs, acos, asin, atan, atan2, boolOf, ceil, clamp, cos, exp, floor, hypot, isNone, log, log2, log10, max, min, mod, orElse, pow, round, roundHalfAway, roundTo, roundToStep, roundToTick, sign, sin, sqrt, tan, toDegrees, toRadians, trunc, } from './maths/index.js';
45
+ export type { Boundary, Civil, DateField } from './calendar/index.js';
46
+ export { civilAt, dateField, dateOfDay, dayNumber, dayOfYearOf, fieldsIn, instantFrom, instantOf, isKnownZone, offsetAt, renderPattern, sameDay, startOf, utcInstantOf, weekOfYearOf, weekdayOfDay, } from './calendar/index.js';
47
+ export type { MaType, Weighted } from './averages/index.js';
48
+ export { alma, almaStep, almaTail, dema, demaStep, demaTail, ema, emaStep, emaTail, hma, hmaStep, hmaTail, isMaType, linreg, linregStep, linregTail, ma, maStep, maTail, rma, rmaStep, rmaTail, sma, smaStep, smaTail, swma, swmaStep, swmaTail, tema, temaStep, temaTail, vwma, vwmaStep, vwmaTail, wma, wmaStep, wmaTail, } from './averages/index.js';
49
+ export type { Direction, Occasion, Pair } from './series/index.js';
50
+ export { avgSkip, avgSkipStep, avgSkipTail, barsSince, barsSinceStep, barsSinceTail, change, changeStep, changeTail, correlation, correlationStep, correlationTail, count, countPresent, countPresentStep, countPresentTail, countStep, countTail, covariance, covarianceStep, covarianceTail, cross, crossDown, crossDownTail, crossEitherTail, crossStep, crossUp, crossUpTail, cum, cumStep, cumTail, extremeStep, falling, fallingTail, highest, highestBars, highestBarsTail, highestTail, history, historyStep, historyTail, lowest, lowestBars, lowestBarsTail, lowestTail, median, medianTail, percentRank, percentRankStep, percentRankTail, percentile, percentileStep, percentileTail, pivotHigh, pivotHighTail, pivotLow, pivotLowTail, pivotStep, rising, risingTail, runStep, sum, sumSkip, sumSkipStep, sumSkipTail, sumStep, sumTail, valueWhen, valueWhenStep, valueWhenTail, } from './series/index.js';
51
+ export type { Gap } from './volatility/index.js';
52
+ export { atr, atrStep, atrTail, bbPercent, bbPercentStep, bbPercentTail, bbWidth, bbWidthStep, bbWidthTail, bollinger, bollingerStep, bollingerTail, chop, chopStep, chopTail, donchian, donchianStep, donchianTail, gapOf, gapTrueRange, gapTrueRangeStep, gapTrueRangeTail, hv, hvStep, hvTail, keltner, keltnerStep, keltnerTail, meanDeviation, meanDeviationStep, meanDeviationTail, natr, natrStep, natrTail, stdev, stdevStep, stdevTail, trueRange, trueRangeOf, trueRangeTail, variance, varianceStep, varianceTail, } from './volatility/index.js';
53
+ export { awesomeOsc, awesomeOscStep, awesomeOscTail, cci, cciStep, cciTail, cmo, cmoStep, cmoTail, dpo, dpoStep, dpoTail, macd, macdStep, macdTail, mom, momTail, ppo, ppoStep, ppoTail, roc, rocStep, rocTail, rsi, rsiStep, rsiTail, stoch, stochRsi, stochRsiStep, stochRsiTail, stochStep, stochTail, trix, trixStep, trixTail, tsi, tsiStep, tsiTail, ultimateOsc, ultimateOscStep, ultimateOscTail, williamsR, williamsRStep, williamsRTail, } from './momentum/index.js';
54
+ export { adx, adxStep, adxTail, aroon, aroonStep, aroonTail, ichimoku, ichimokuStep, ichimokuTail, psar, psarStep, psarTail, supertrend, supertrendStep, supertrendTail, } from './trend/index.js';
55
+ export type { Anchored } from './volume/index.js';
56
+ export { ad, adOsc, adOscStep, adOscTail, adStep, adTail, cmf, cmfStep, cmfTail, eom, eomStep, eomTail, forceIndex, forceIndexStep, forceIndexTail, mfi, mfiStep, mfiTail, moneyFlow, obv, obvStep, obvTail, pvt, pvtStep, pvtTail, relativeVolume, relativeVolumeStep, relativeVolumeTail, vwap, vwapAnchor, vwapAnchorStep, vwapAnchorTail, vwapStep, vwapTail, } from './volume/index.js';
57
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/stdlib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,YAAY,EACV,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,IAAI,EACJ,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,IAAI,EACJ,EAAE,EACF,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,MAAM,GACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,CAAC,EACD,EAAE,EACF,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,KAAK,EACL,KAAK,EACL,MAAM,EACN,GAAG,EACH,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,GAAG,EACH,KAAK,EACL,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,GAAG,EACH,SAAS,EACT,SAAS,EACT,KAAK,GACN,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,UAAU,EACV,EAAE,EACF,MAAM,EACN,MAAM,EACN,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,GACR,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,KAAK,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,SAAS,EACT,OAAO,EACP,WAAW,EACX,GAAG,EACH,OAAO,EACP,OAAO,EACP,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,WAAW,EACX,eAAe,EACf,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,EACV,cAAc,EACd,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,GAAG,EACH,OAAO,EACP,WAAW,EACX,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,EAAE,EACF,MAAM,EACN,MAAM,EACN,OAAO,EACP,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,WAAW,EACX,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,EAAE,EACF,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAS,EACT,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The numeric library: the calculations of `stdlib.md` sections 4 to 9.
3
+ *
4
+ * **It depends on nothing else in this repository.** Not the lexer, not the
5
+ * checker, not the engine. A moving average is a moving average, and keeping
6
+ * this tier independently testable is what makes a gate on it worth anything:
7
+ * a number that matches a reference implementation here matches it because the
8
+ * arithmetic is right, not because the rest of the compiler agreed with itself.
9
+ *
10
+ * Three properties hold across everything below, and each has a file that
11
+ * explains it at the place it is implemented:
12
+ *
13
+ * - **Absence is not zero and never becomes zero** (`values/value.ts`). A
14
+ * warmup bar is absent, anything computed from an absent value is absent, and
15
+ * the three functions that deliberately ignore absent bars say so in their
16
+ * names.
17
+ * - **The accumulation order is part of the contract** (`values/lookback.ts`).
18
+ * Binary64 addition is not associative, so two engines that sum a lookback two
19
+ * ways disagree in the last bits. Lookbacks are summed fresh, oldest bar first,
20
+ * and where a formula could be arranged two ways the file that implements it
21
+ * says which way and why.
22
+ * - **Every function is written once, as a step over a state region**
23
+ * (`values/region.ts`): a flat record and a step that takes one bar. The tail
24
+ * form is that step over a region of its own and the whole-series form is the
25
+ * tail folded, so the live path and the history path cannot disagree, because
26
+ * there is only one of them. The record rather than a closure is what lets an
27
+ * engine drive the same step: `compiled-program.md` 2.11 requires a region to
28
+ * be copyable by something that does not know what is in it, and that is the
29
+ * reason there is no second copy of any of this arithmetic in the engine.
30
+ *
31
+ * **What this library does not do: raise.** A length outside its contract is
32
+ * OS3004 at compile time or OS4003 at run time, raised before a call reaches
33
+ * here. Nothing below throws, so nothing below can throw a diagnostic without a
34
+ * code.
35
+ *
36
+ * Two arguments appear here that no script writes, and neither is a numeric
37
+ * fact: the tick size `roundToTick` rounds to, which a host states, and the
38
+ * per-bar flag that says where a trading session begins for `vwap`, which an
39
+ * engine derives from the instrument's session hours. An engine supplies
40
+ * both.
41
+ */
42
+ export { NONE, at, copyState, flag, fold, held, hl2, hlc3, hlcc4, isLength, isPresent, makeLookback, newState, ohlc4, queue, result, ring, slot, smoothed, tailOf, } from './values/index.js';
43
+ export { E, PI, abs, acos, asin, atan, atan2, boolOf, ceil, clamp, cos, exp, floor, hypot, isNone, log, log2, log10, max, min, mod, orElse, pow, round, roundHalfAway, roundTo, roundToStep, roundToTick, sign, sin, sqrt, tan, toDegrees, toRadians, trunc, } from './maths/index.js';
44
+ export { civilAt, dateField, dateOfDay, dayNumber, dayOfYearOf, fieldsIn, instantFrom, instantOf, isKnownZone, offsetAt, renderPattern, sameDay, startOf, utcInstantOf, weekOfYearOf, weekdayOfDay, } from './calendar/index.js';
45
+ export { alma, almaStep, almaTail, dema, demaStep, demaTail, ema, emaStep, emaTail, hma, hmaStep, hmaTail, isMaType, linreg, linregStep, linregTail, ma, maStep, maTail, rma, rmaStep, rmaTail, sma, smaStep, smaTail, swma, swmaStep, swmaTail, tema, temaStep, temaTail, vwma, vwmaStep, vwmaTail, wma, wmaStep, wmaTail, } from './averages/index.js';
46
+ export { avgSkip, avgSkipStep, avgSkipTail, barsSince, barsSinceStep, barsSinceTail, change, changeStep, changeTail, correlation, correlationStep, correlationTail, count, countPresent, countPresentStep, countPresentTail, countStep, countTail, covariance, covarianceStep, covarianceTail, cross, crossDown, crossDownTail, crossEitherTail, crossStep, crossUp, crossUpTail, cum, cumStep, cumTail, extremeStep, falling, fallingTail, highest, highestBars, highestBarsTail, highestTail, history, historyStep, historyTail, lowest, lowestBars, lowestBarsTail, lowestTail, median, medianTail, percentRank, percentRankStep, percentRankTail, percentile, percentileStep, percentileTail, pivotHigh, pivotHighTail, pivotLow, pivotLowTail, pivotStep, rising, risingTail, runStep, sum, sumSkip, sumSkipStep, sumSkipTail, sumStep, sumTail, valueWhen, valueWhenStep, valueWhenTail, } from './series/index.js';
47
+ export { atr, atrStep, atrTail, bbPercent, bbPercentStep, bbPercentTail, bbWidth, bbWidthStep, bbWidthTail, bollinger, bollingerStep, bollingerTail, chop, chopStep, chopTail, donchian, donchianStep, donchianTail, gapOf, gapTrueRange, gapTrueRangeStep, gapTrueRangeTail, hv, hvStep, hvTail, keltner, keltnerStep, keltnerTail, meanDeviation, meanDeviationStep, meanDeviationTail, natr, natrStep, natrTail, stdev, stdevStep, stdevTail, trueRange, trueRangeOf, trueRangeTail, variance, varianceStep, varianceTail, } from './volatility/index.js';
48
+ export { awesomeOsc, awesomeOscStep, awesomeOscTail, cci, cciStep, cciTail, cmo, cmoStep, cmoTail, dpo, dpoStep, dpoTail, macd, macdStep, macdTail, mom, momTail, ppo, ppoStep, ppoTail, roc, rocStep, rocTail, rsi, rsiStep, rsiTail, stoch, stochRsi, stochRsiStep, stochRsiTail, stochStep, stochTail, trix, trixStep, trixTail, tsi, tsiStep, tsiTail, ultimateOsc, ultimateOscStep, ultimateOscTail, williamsR, williamsRStep, williamsRTail, } from './momentum/index.js';
49
+ export { adx, adxStep, adxTail, aroon, aroonStep, aroonTail, ichimoku, ichimokuStep, ichimokuTail, psar, psarStep, psarTail, supertrend, supertrendStep, supertrendTail, } from './trend/index.js';
50
+ export { ad, adOsc, adOscStep, adOscTail, adStep, adTail, cmf, cmfStep, cmfTail, eom, eomStep, eomTail, forceIndex, forceIndexStep, forceIndexTail, mfi, mfiStep, mfiTail, moneyFlow, obv, obvStep, obvTail, pvt, pvtStep, pvtTail, relativeVolume, relativeVolumeStep, relativeVolumeTail, vwap, vwapAnchor, vwapAnchorStep, vwapAnchorTail, vwapStep, vwapTail, } from './volume/index.js';
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/stdlib/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The bare arithmetic of `stdlib.md` section 8.1.
3
+ *
4
+ * None of these has a warmup: they read this bar's values only, so each
5
+ * produces a value on bar 0 whenever its arguments do. Every one is absent when
6
+ * any argument is absent, and every result goes through `result`, so a value
7
+ * with no finite real answer is absence rather than an infinity.
8
+ */
9
+ import type { Value } from '../values/index.js';
10
+ /** `abs(x)`: magnitude without sign. */
11
+ export declare function abs(x: Value): Value;
12
+ /** `sign(x)`: -1, 0 or 1. */
13
+ export declare function sign(x: Value): Value;
14
+ /** `min(a, b)`: the smaller of two. */
15
+ export declare function min(a: Value, b: Value): Value;
16
+ /** `max(a, b)`: the larger of two. */
17
+ export declare function max(a: Value, b: Value): Value;
18
+ /** `clamp(x, lo, hi)`: `x` held inside a range. */
19
+ export declare function clamp(x: Value, lo: Value, hi: Value): Value;
20
+ /**
21
+ * `mod(a, b)`: `a - b * floor(a / b)`, the floored remainder, whose sign
22
+ * follows `b`.
23
+ *
24
+ * Written out rather than described because "the modulo" names two different
25
+ * functions in common use. This is the floored one and the `%` operator is the
26
+ * truncated one: `mod(-7, 3)` is 2 where `-7 % 3` is -1. The two agree for
27
+ * every positive `b`, which is every use that wraps an index or a bar count.
28
+ * `mod(a, 0)` is absent, on the rule that a result with no finite real value is
29
+ * absent.
30
+ */
31
+ export declare function mod(a: Value, b: Value): Value;
32
+ /** True when the value is absent. */
33
+ export declare function isNone(x: Value): boolean;
34
+ /** `x` when present, `fallback` when absent. */
35
+ export declare function orElse(x: Value, fallback: Value): Value;
36
+ /** `toBool(x)`: absence to false, a bool to itself. Numbers are a type error. */
37
+ export declare function boolOf(x: boolean | null): boolean;
38
+ //# sourceMappingURL=arithmetic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/arithmetic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,wCAAwC;AACxC,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEnC;AAED,6BAA6B;AAC7B,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAKpC;AAED,uCAAuC;AACvC,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAG7C;AAED,sCAAsC;AACtC,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAG7C;AAED,mDAAmD;AACnD,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,CAK3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAG7C;AAED,qCAAqC;AACrC,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAExC;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,CAEvD;AAED,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAEjD"}
@@ -0,0 +1,66 @@
1
+ import { NONE, isPresent, result } from '../values/index.js';
2
+ /** `abs(x)`: magnitude without sign. */
3
+ export function abs(x) {
4
+ return isPresent(x) ? result(Math.abs(x)) : NONE;
5
+ }
6
+ /** `sign(x)`: -1, 0 or 1. */
7
+ export function sign(x) {
8
+ if (!isPresent(x))
9
+ return NONE;
10
+ if (x > 0)
11
+ return 1;
12
+ if (x < 0)
13
+ return -1;
14
+ return 0;
15
+ }
16
+ /** `min(a, b)`: the smaller of two. */
17
+ export function min(a, b) {
18
+ if (!isPresent(a) || !isPresent(b))
19
+ return NONE;
20
+ return result(a < b ? a : b);
21
+ }
22
+ /** `max(a, b)`: the larger of two. */
23
+ export function max(a, b) {
24
+ if (!isPresent(a) || !isPresent(b))
25
+ return NONE;
26
+ return result(a > b ? a : b);
27
+ }
28
+ /** `clamp(x, lo, hi)`: `x` held inside a range. */
29
+ export function clamp(x, lo, hi) {
30
+ if (!isPresent(x) || !isPresent(lo) || !isPresent(hi))
31
+ return NONE;
32
+ if (x < lo)
33
+ return result(lo);
34
+ if (x > hi)
35
+ return result(hi);
36
+ return result(x);
37
+ }
38
+ /**
39
+ * `mod(a, b)`: `a - b * floor(a / b)`, the floored remainder, whose sign
40
+ * follows `b`.
41
+ *
42
+ * Written out rather than described because "the modulo" names two different
43
+ * functions in common use. This is the floored one and the `%` operator is the
44
+ * truncated one: `mod(-7, 3)` is 2 where `-7 % 3` is -1. The two agree for
45
+ * every positive `b`, which is every use that wraps an index or a bar count.
46
+ * `mod(a, 0)` is absent, on the rule that a result with no finite real value is
47
+ * absent.
48
+ */
49
+ export function mod(a, b) {
50
+ if (!isPresent(a) || !isPresent(b) || b === 0)
51
+ return NONE;
52
+ return result(a - b * Math.floor(a / b));
53
+ }
54
+ /** True when the value is absent. */
55
+ export function isNone(x) {
56
+ return !isPresent(x);
57
+ }
58
+ /** `x` when present, `fallback` when absent. */
59
+ export function orElse(x, fallback) {
60
+ return isPresent(x) ? x : fallback;
61
+ }
62
+ /** `toBool(x)`: absence to false, a bool to itself. Numbers are a type error. */
63
+ export function boolOf(x) {
64
+ return x === null ? false : x;
65
+ }
66
+ //# sourceMappingURL=arithmetic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arithmetic.js","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/arithmetic.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE7D,wCAAwC;AACxC,MAAM,UAAU,GAAG,CAAC,CAAQ;IAC1B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,IAAI,CAAC,CAAQ;IAC3B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,GAAG,CAAC,CAAQ,EAAE,CAAQ;IACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,GAAG,CAAC,CAAQ,EAAE,CAAQ;IACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,KAAK,CAAC,CAAQ,EAAE,EAAS,EAAE,EAAS;IAClD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAG,CAAC,CAAQ,EAAE,CAAQ;IACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,MAAM,CAAC,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,MAAM,CAAC,CAAQ,EAAE,QAAe;IAC9C,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,MAAM,CAAC,CAAiB;IACtC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Square root, the logarithms, the powers and the trigonometry.
3
+ *
4
+ * **A gap, stated here rather than discovered later.**
5
+ * `compiled-program.md` section 8.3 requires that the transcendental functions
6
+ * not use the platform's own maths library, because a platform implementation
7
+ * is correct to within an ulp or so and differs between platforms in the last
8
+ * bit, which this project has declared a release blocker. It names the portable
9
+ * reference algorithm as living in the library manifest. **That manifest does
10
+ * not exist yet**, so there is nothing to implement against, and the functions
11
+ * below call the host until it does. Everything in this file except `sqrt` is
12
+ * therefore portable in value but not yet guaranteed in the last bit.
13
+ *
14
+ * `sqrt` is the exception and is not affected: IEEE-754 requires it to be
15
+ * correctly rounded, so every conforming platform returns the same bits.
16
+ *
17
+ * The consequence is worth stating plainly, because it decides what is safe to
18
+ * gate on today. Of the five gate studies, EMA, RSI, MACD, Bollinger Bands and
19
+ * Supertrend, four use only addition, subtraction, multiplication and division,
20
+ * and Bollinger Bands adds `sqrt`. None of them reaches this file's uncertain
21
+ * half. The functions that do are `alma` (exp), `hv` (log) and `chop` (log10).
22
+ */
23
+ import type { Value } from '../values/index.js';
24
+ /**
25
+ * `sqrt(x)`: square root, absent below zero.
26
+ *
27
+ * Correctly rounded on every conforming platform, so this one is bit-identical
28
+ * everywhere without a portable implementation of its own.
29
+ */
30
+ export declare function sqrt(x: Value): Value;
31
+ /** `pow(x, y)`: absent where the result is not a finite real. */
32
+ export declare function pow(x: Value, y: Value): Value;
33
+ /** `exp(x)`: e to the power x. */
34
+ export declare function exp(x: Value): Value;
35
+ /** `log(x)`: natural logarithm, absent at or below zero. */
36
+ export declare function log(x: Value): Value;
37
+ /** `log10(x)`: base ten logarithm, absent at or below zero. */
38
+ export declare function log10(x: Value): Value;
39
+ /** `math.log2(x)`: base two logarithm, absent at or below zero. */
40
+ export declare function log2(x: Value): Value;
41
+ /** The circle constant. */
42
+ export declare const PI: number;
43
+ /** The base of the natural logarithm. */
44
+ export declare const E: number;
45
+ /** `math.hypot(x, y)`: `sqrt(x * x + y * y)` without intermediate overflow. */
46
+ export declare function hypot(x: Value, y: Value): Value;
47
+ /** `math.toDegrees(x)`: radians to degrees. */
48
+ export declare function toDegrees(x: Value): Value;
49
+ /** `math.toRadians(x)`: degrees to radians. */
50
+ export declare function toRadians(x: Value): Value;
51
+ /** `math.sin(x)`: sine of an angle in radians. */
52
+ export declare function sin(x: Value): Value;
53
+ /** `math.cos(x)`: cosine. */
54
+ export declare function cos(x: Value): Value;
55
+ /** `math.tan(x)`: tangent. */
56
+ export declare function tan(x: Value): Value;
57
+ /** `math.asin(x)`: inverse sine, absent outside -1 to 1. */
58
+ export declare function asin(x: Value): Value;
59
+ /** `math.acos(x)`: inverse cosine, absent outside -1 to 1. */
60
+ export declare function acos(x: Value): Value;
61
+ /** `math.atan(x)`: inverse tangent. */
62
+ export declare function atan(x: Value): Value;
63
+ /** `math.atan2(y, x)`: angle of a vector, correct in all four quadrants. */
64
+ export declare function atan2(y: Value, x: Value): Value;
65
+ //# sourceMappingURL=elementary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementary.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/elementary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGpC;AAED,iEAAiE;AACjE,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAG7C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEnC;AAED,4DAA4D;AAC5D,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGnC;AAED,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGrC;AAED,mEAAmE;AACnE,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGpC;AAED,2BAA2B;AAC3B,eAAO,MAAM,EAAE,EAAE,MAAgB,CAAC;AAElC,yCAAyC;AACzC,eAAO,MAAM,CAAC,EAAE,MAAe,CAAC;AAEhC,+EAA+E;AAC/E,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAG/C;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEzC;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEzC;AAED,kDAAkD;AAClD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEnC;AAED,6BAA6B;AAC7B,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEnC;AAED,8BAA8B;AAC9B,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEnC;AAED,4DAA4D;AAC5D,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGpC;AAED,8DAA8D;AAC9D,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGpC;AAED,uCAAuC;AACvC,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEpC;AAED,4EAA4E;AAC5E,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAG/C"}
@@ -0,0 +1,93 @@
1
+ import { NONE, isPresent, result } from '../values/index.js';
2
+ /**
3
+ * `sqrt(x)`: square root, absent below zero.
4
+ *
5
+ * Correctly rounded on every conforming platform, so this one is bit-identical
6
+ * everywhere without a portable implementation of its own.
7
+ */
8
+ export function sqrt(x) {
9
+ if (!isPresent(x) || x < 0)
10
+ return NONE;
11
+ return result(Math.sqrt(x));
12
+ }
13
+ /** `pow(x, y)`: absent where the result is not a finite real. */
14
+ export function pow(x, y) {
15
+ if (!isPresent(x) || !isPresent(y))
16
+ return NONE;
17
+ return result(Math.pow(x, y));
18
+ }
19
+ /** `exp(x)`: e to the power x. */
20
+ export function exp(x) {
21
+ return isPresent(x) ? result(Math.exp(x)) : NONE;
22
+ }
23
+ /** `log(x)`: natural logarithm, absent at or below zero. */
24
+ export function log(x) {
25
+ if (!isPresent(x) || x <= 0)
26
+ return NONE;
27
+ return result(Math.log(x));
28
+ }
29
+ /** `log10(x)`: base ten logarithm, absent at or below zero. */
30
+ export function log10(x) {
31
+ if (!isPresent(x) || x <= 0)
32
+ return NONE;
33
+ return result(Math.log10(x));
34
+ }
35
+ /** `math.log2(x)`: base two logarithm, absent at or below zero. */
36
+ export function log2(x) {
37
+ if (!isPresent(x) || x <= 0)
38
+ return NONE;
39
+ return result(Math.log2(x));
40
+ }
41
+ /** The circle constant. */
42
+ export const PI = Math.PI;
43
+ /** The base of the natural logarithm. */
44
+ export const E = Math.E;
45
+ /** `math.hypot(x, y)`: `sqrt(x * x + y * y)` without intermediate overflow. */
46
+ export function hypot(x, y) {
47
+ if (!isPresent(x) || !isPresent(y))
48
+ return NONE;
49
+ return result(Math.hypot(x, y));
50
+ }
51
+ /** `math.toDegrees(x)`: radians to degrees. */
52
+ export function toDegrees(x) {
53
+ return isPresent(x) ? result((x * 180) / Math.PI) : NONE;
54
+ }
55
+ /** `math.toRadians(x)`: degrees to radians. */
56
+ export function toRadians(x) {
57
+ return isPresent(x) ? result((x * Math.PI) / 180) : NONE;
58
+ }
59
+ /** `math.sin(x)`: sine of an angle in radians. */
60
+ export function sin(x) {
61
+ return isPresent(x) ? result(Math.sin(x)) : NONE;
62
+ }
63
+ /** `math.cos(x)`: cosine. */
64
+ export function cos(x) {
65
+ return isPresent(x) ? result(Math.cos(x)) : NONE;
66
+ }
67
+ /** `math.tan(x)`: tangent. */
68
+ export function tan(x) {
69
+ return isPresent(x) ? result(Math.tan(x)) : NONE;
70
+ }
71
+ /** `math.asin(x)`: inverse sine, absent outside -1 to 1. */
72
+ export function asin(x) {
73
+ if (!isPresent(x) || x < -1 || x > 1)
74
+ return NONE;
75
+ return result(Math.asin(x));
76
+ }
77
+ /** `math.acos(x)`: inverse cosine, absent outside -1 to 1. */
78
+ export function acos(x) {
79
+ if (!isPresent(x) || x < -1 || x > 1)
80
+ return NONE;
81
+ return result(Math.acos(x));
82
+ }
83
+ /** `math.atan(x)`: inverse tangent. */
84
+ export function atan(x) {
85
+ return isPresent(x) ? result(Math.atan(x)) : NONE;
86
+ }
87
+ /** `math.atan2(y, x)`: angle of a vector, correct in all four quadrants. */
88
+ export function atan2(y, x) {
89
+ if (!isPresent(y) || !isPresent(x))
90
+ return NONE;
91
+ return result(Math.atan2(y, x));
92
+ }
93
+ //# sourceMappingURL=elementary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementary.js","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/elementary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { abs, boolOf, clamp, isNone, max, min, mod, orElse, sign, } from './arithmetic.js';
2
+ export { ceil, floor, round, roundHalfAway, roundTo, roundToStep, roundToTick, trunc, } from './rounding.js';
3
+ export { E, PI, acos, asin, atan, atan2, cos, exp, hypot, log, log2, log10, pow, sin, sqrt, tan, toDegrees, toRadians, } from './elementary.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,MAAM,EACN,KAAK,EACL,MAAM,EACN,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,IAAI,GACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,KAAK,GACN,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,CAAC,EACD,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAI,EACJ,GAAG,EACH,SAAS,EACT,SAAS,GACV,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { abs, boolOf, clamp, isNone, max, min, mod, orElse, sign, } from './arithmetic.js';
2
+ export { ceil, floor, round, roundHalfAway, roundTo, roundToStep, roundToTick, trunc, } from './rounding.js';
3
+ export { E, PI, acos, asin, atan, atan2, cos, exp, hypot, log, log2, log10, pow, sin, sqrt, tan, toDegrees, toRadians, } from './elementary.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,MAAM,EACN,KAAK,EACL,MAAM,EACN,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,IAAI,GACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,KAAK,GACN,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,CAAC,EACD,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAI,EACJ,GAAG,EACH,SAAS,EACT,SAAS,GACV,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Rounding, and the one rule that decides every case.
3
+ *
4
+ * **Halves go away from zero, never to even.** `stdlib.md` section 8.1 fixes it
5
+ * there and the reason is legibility: a price rounded for display should agree
6
+ * with what a trader would write down, and round-half-to-even surprises people
7
+ * at exactly the values that matter. Fixing it also means two engines cannot
8
+ * differ by one tick.
9
+ *
10
+ * The implementation does not add a half and take the floor. That is the usual
11
+ * shortcut and it is wrong for the value just below a half, where adding 0.5
12
+ * rounds up to the next representable number before the floor ever runs. The
13
+ * fractional part is compared instead, which has no such case.
14
+ */
15
+ import type { Value } from '../values/index.js';
16
+ /** The nearest whole number, halves away from zero. */
17
+ export declare function roundHalfAway(x: number): number;
18
+ /** `round(x)`: to the nearest whole number, halves away from zero. */
19
+ export declare function round(x: Value): Value;
20
+ /**
21
+ * `round(x, decimals)`: to a fixed number of decimals, halves away from zero.
22
+ *
23
+ * A digit count is a whole number of zero or more; anything else is OS3004 or
24
+ * OS4003 before the call reaches here, and absence is the backstop.
25
+ */
26
+ export declare function roundTo(x: Value, decimals: number): Value;
27
+ /** `floor(x)`: toward negative infinity. */
28
+ export declare function floor(x: Value): Value;
29
+ /** `ceil(x)`: toward positive infinity. */
30
+ export declare function ceil(x: Value): Value;
31
+ /** `trunc(x)`: toward zero. */
32
+ export declare function trunc(x: Value): Value;
33
+ /** `roundToStep(x, step)`: to the nearest multiple of `step`. */
34
+ export declare function roundToStep(x: Value, step: Value): Value;
35
+ /**
36
+ * `roundToTick(price)`: to the instrument's tick.
37
+ *
38
+ * Absent when the host supplied no tick size, rather than the price unrounded.
39
+ * Returning the input would produce an order price that looks rounded and is
40
+ * not, which is a defect nothing downstream can see.
41
+ */
42
+ export declare function roundToTick(price: Value, tickSize: Value): Value;
43
+ //# sourceMappingURL=rounding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rounding.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/rounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED,sEAAsE;AACtE,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAErC;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAKzD;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAErC;AAED,2CAA2C;AAC3C,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEpC;AAED,+BAA+B;AAC/B,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAErC;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CAGxD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,CAGhE"}
@@ -0,0 +1,62 @@
1
+ import { NONE, isPresent, result } from '../values/index.js';
2
+ /** The nearest whole number, halves away from zero. */
3
+ export function roundHalfAway(x) {
4
+ const below = Math.floor(x);
5
+ const fraction = x - below;
6
+ if (fraction > 0.5)
7
+ return below + 1;
8
+ if (fraction < 0.5)
9
+ return below;
10
+ // Exactly a half. Away from zero: upward above zero, and `below` already is
11
+ // the downward answer for a negative, since floor(-2.5) is -3.
12
+ return x > 0 ? below + 1 : below;
13
+ }
14
+ /** `round(x)`: to the nearest whole number, halves away from zero. */
15
+ export function round(x) {
16
+ return isPresent(x) ? result(roundHalfAway(x)) : NONE;
17
+ }
18
+ /**
19
+ * `round(x, decimals)`: to a fixed number of decimals, halves away from zero.
20
+ *
21
+ * A digit count is a whole number of zero or more; anything else is OS3004 or
22
+ * OS4003 before the call reaches here, and absence is the backstop.
23
+ */
24
+ export function roundTo(x, decimals) {
25
+ if (!isPresent(x))
26
+ return NONE;
27
+ if (!Number.isInteger(decimals) || decimals < 0)
28
+ return NONE;
29
+ const scale = Math.pow(10, decimals);
30
+ return result(roundHalfAway(x * scale) / scale);
31
+ }
32
+ /** `floor(x)`: toward negative infinity. */
33
+ export function floor(x) {
34
+ return isPresent(x) ? result(Math.floor(x)) : NONE;
35
+ }
36
+ /** `ceil(x)`: toward positive infinity. */
37
+ export function ceil(x) {
38
+ return isPresent(x) ? result(Math.ceil(x)) : NONE;
39
+ }
40
+ /** `trunc(x)`: toward zero. */
41
+ export function trunc(x) {
42
+ return isPresent(x) ? result(Math.trunc(x)) : NONE;
43
+ }
44
+ /** `roundToStep(x, step)`: to the nearest multiple of `step`. */
45
+ export function roundToStep(x, step) {
46
+ if (!isPresent(x) || !isPresent(step) || step <= 0)
47
+ return NONE;
48
+ return result(roundHalfAway(x / step) * step);
49
+ }
50
+ /**
51
+ * `roundToTick(price)`: to the instrument's tick.
52
+ *
53
+ * Absent when the host supplied no tick size, rather than the price unrounded.
54
+ * Returning the input would produce an order price that looks rounded and is
55
+ * not, which is a defect nothing downstream can see.
56
+ */
57
+ export function roundToTick(price, tickSize) {
58
+ if (!isPresent(tickSize) || tickSize <= 0)
59
+ return NONE;
60
+ return roundToStep(price, tickSize);
61
+ }
62
+ //# sourceMappingURL=rounding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rounding.js","sourceRoot":"","sources":["../../../../src/core/stdlib/maths/rounding.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE7D,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,IAAI,QAAQ,GAAG,GAAG;QAAE,OAAO,KAAK,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IACjC,4EAA4E;IAC5E,+DAA+D;IAC/D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACnC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,KAAK,CAAC,CAAQ;IAC5B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,CAAQ,EAAE,QAAgB;IAChD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,KAAK,CAAC,CAAQ;IAC5B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,IAAI,CAAC,CAAQ;IAC3B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,KAAK,CAAC,CAAQ;IAC5B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,CAAQ,EAAE,IAAW;IAC/C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,QAAe;IACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `macd` and `ppo`: the gap between a fast and a slow exponential mean, once as
3
+ * a difference and once as a percentage.
4
+ *
5
+ * Both return an array holding this bar's outputs, per `stdlib.md` section 2.3.
6
+ * One call, one state region: the alternative of three named functions would be
7
+ * three call sites and therefore three independent states, and the shared
8
+ * smoothing would be computed three times per bar.
9
+ *
10
+ * The signal average is fed the difference series, absences and all, so it
11
+ * seeds on the first `signal` values the difference produced. That is where the
12
+ * declared warmup of bar `slow + signal - 2` comes from.
13
+ */
14
+ import type { Series, StateRecord, Tail, Value } from '../values/index.js';
15
+ /**
16
+ * `macd(src, fast, slow, signal)`: `[macd, signal, histogram]`, element 0 from
17
+ * bar `slow - 1` and the other two from bar `slow + signal - 2`.
18
+ */
19
+ export declare function macdStep(state: StateRecord, key: string, value: Value, fast: number | null, slow: number | null, signal: number | null): Value[];
20
+ /** `macd(src, fast, slow, signal)` as a tail. */
21
+ export declare function macdTail(fast?: number, slow?: number, signal?: number): Tail<Value, Value[]>;
22
+ /** `macd(src, fast, slow, signal)` over a whole series. */
23
+ export declare function macd(src: Series, fast?: number, slow?: number, signal?: number): Value[][];
24
+ /**
25
+ * `ppo(src, fast, slow, signal)`: `[ppo, signal, histogram]`, on the same
26
+ * warmups as `macd`.
27
+ *
28
+ * The same gap divided by the slow average, so the reading is a percentage and
29
+ * two instruments at different price levels can be compared.
30
+ */
31
+ export declare function ppoStep(state: StateRecord, key: string, value: Value, fast: number | null, slow: number | null, signal: number | null): Value[];
32
+ /** `ppo(src, fast, slow, signal)` as a tail. */
33
+ export declare function ppoTail(fast?: number, slow?: number, signal?: number): Tail<Value, Value[]>;
34
+ /** `ppo(src, fast, slow, signal)` over a whole series. */
35
+ export declare function ppo(src: Series, fast?: number, slow?: number, signal?: number): Value[][];
36
+ //# sourceMappingURL=convergence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convergence.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/momentum/convergence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3E;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,KAAK,EAAE,CAOT;AAED,iDAAiD;AACjD,wBAAgB,QAAQ,CAAC,IAAI,SAAK,EAAE,IAAI,SAAK,EAAE,MAAM,SAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAE/E;AAED,2DAA2D;AAC3D,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,IAAI,SAAK,EAAE,MAAM,SAAI,GAAG,KAAK,EAAE,EAAE,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,KAAK,EAAE,CAUT;AAED,gDAAgD;AAChD,wBAAgB,OAAO,CAAC,IAAI,SAAK,EAAE,IAAI,SAAK,EAAE,MAAM,SAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAE9E;AAED,0DAA0D;AAC1D,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,IAAI,SAAK,EAAE,MAAM,SAAI,GAAG,KAAK,EAAE,EAAE,CAE5E"}