@himalaya-quant/ctrader-x 0.0.7

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 (308) hide show
  1. package/.env +6 -0
  2. package/.prettierrc +7 -0
  3. package/README.md +96 -0
  4. package/changelog.md +46 -0
  5. package/dist/src/classes/client.d.ts +21 -0
  6. package/dist/src/classes/client.d.ts.map +1 -0
  7. package/dist/src/classes/client.js +83 -0
  8. package/dist/src/classes/client.js.map +1 -0
  9. package/dist/src/classes/client.test.d.ts +2 -0
  10. package/dist/src/classes/client.test.d.ts.map +1 -0
  11. package/dist/src/classes/client.test.js +83 -0
  12. package/dist/src/classes/client.test.js.map +1 -0
  13. package/dist/src/classes/errors/client-not-connected.error.d.ts +5 -0
  14. package/dist/src/classes/errors/client-not-connected.error.d.ts.map +1 -0
  15. package/dist/src/classes/errors/client-not-connected.error.js +11 -0
  16. package/dist/src/classes/errors/client-not-connected.error.js.map +1 -0
  17. package/dist/src/classes/errors/connection.error.d.ts +5 -0
  18. package/dist/src/classes/errors/connection.error.d.ts.map +1 -0
  19. package/dist/src/classes/errors/connection.error.js +11 -0
  20. package/dist/src/classes/errors/connection.error.js.map +1 -0
  21. package/dist/src/classes/logger.d.ts +13 -0
  22. package/dist/src/classes/logger.d.ts.map +1 -0
  23. package/dist/src/classes/logger.js +21 -0
  24. package/dist/src/classes/logger.js.map +1 -0
  25. package/dist/src/classes/managers/authentication/authentication.manager.d.ts +13 -0
  26. package/dist/src/classes/managers/authentication/authentication.manager.d.ts.map +1 -0
  27. package/dist/src/classes/managers/authentication/authentication.manager.js +49 -0
  28. package/dist/src/classes/managers/authentication/authentication.manager.js.map +1 -0
  29. package/dist/src/classes/managers/authentication/authentication.manager.test.d.ts +2 -0
  30. package/dist/src/classes/managers/authentication/authentication.manager.test.d.ts.map +1 -0
  31. package/dist/src/classes/managers/authentication/authentication.manager.test.js +114 -0
  32. package/dist/src/classes/managers/authentication/authentication.manager.test.js.map +1 -0
  33. package/dist/src/classes/managers/authentication/errors/application-auth.error.d.ts +5 -0
  34. package/dist/src/classes/managers/authentication/errors/application-auth.error.d.ts.map +1 -0
  35. package/dist/src/classes/managers/authentication/errors/application-auth.error.js +11 -0
  36. package/dist/src/classes/managers/authentication/errors/application-auth.error.js.map +1 -0
  37. package/dist/src/classes/managers/authentication/errors/user-auth.error.d.ts +5 -0
  38. package/dist/src/classes/managers/authentication/errors/user-auth.error.d.ts.map +1 -0
  39. package/dist/src/classes/managers/authentication/errors/user-auth.error.js +11 -0
  40. package/dist/src/classes/managers/authentication/errors/user-auth.error.js.map +1 -0
  41. package/dist/src/classes/managers/models/base.manager.d.ts +15 -0
  42. package/dist/src/classes/managers/models/base.manager.d.ts.map +1 -0
  43. package/dist/src/classes/managers/models/base.manager.js +35 -0
  44. package/dist/src/classes/managers/models/base.manager.js.map +1 -0
  45. package/dist/src/classes/managers/models/credentials.model.d.ts +8 -0
  46. package/dist/src/classes/managers/models/credentials.model.d.ts.map +1 -0
  47. package/dist/src/classes/managers/models/credentials.model.js +3 -0
  48. package/dist/src/classes/managers/models/credentials.model.js.map +1 -0
  49. package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.d.ts +5 -0
  50. package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.d.ts.map +1 -0
  51. package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.js +11 -0
  52. package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.js.map +1 -0
  53. package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.d.ts +5 -0
  54. package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.d.ts.map +1 -0
  55. package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.js +11 -0
  56. package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.js.map +1 -0
  57. package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.d.ts +6 -0
  58. package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.d.ts.map +1 -0
  59. package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.js +13 -0
  60. package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.js.map +1 -0
  61. package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.d.ts +8 -0
  62. package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.d.ts.map +1 -0
  63. package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.js +17 -0
  64. package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.js.map +1 -0
  65. package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.d.ts +5 -0
  66. package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.d.ts.map +1 -0
  67. package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.js +11 -0
  68. package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.js.map +1 -0
  69. package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.d.ts +5 -0
  70. package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.d.ts.map +1 -0
  71. package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.js +11 -0
  72. package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.js.map +1 -0
  73. package/dist/src/classes/managers/symbols/symbols-updates.manager.d.ts +54 -0
  74. package/dist/src/classes/managers/symbols/symbols-updates.manager.d.ts.map +1 -0
  75. package/dist/src/classes/managers/symbols/symbols-updates.manager.js +250 -0
  76. package/dist/src/classes/managers/symbols/symbols-updates.manager.js.map +1 -0
  77. package/dist/src/classes/managers/symbols/symbols.manager.d.ts +30 -0
  78. package/dist/src/classes/managers/symbols/symbols.manager.d.ts.map +1 -0
  79. package/dist/src/classes/managers/symbols/symbols.manager.js +78 -0
  80. package/dist/src/classes/managers/symbols/symbols.manager.js.map +1 -0
  81. package/dist/src/classes/managers/symbols/symbols.manager.test.d.ts +2 -0
  82. package/dist/src/classes/managers/symbols/symbols.manager.test.d.ts.map +1 -0
  83. package/dist/src/classes/managers/symbols/symbols.manager.test.js +364 -0
  84. package/dist/src/classes/managers/symbols/symbols.manager.test.js.map +1 -0
  85. package/dist/src/classes/models/client-configuration.model.d.ts +10 -0
  86. package/dist/src/classes/models/client-configuration.model.d.ts.map +1 -0
  87. package/dist/src/classes/models/client-configuration.model.js +3 -0
  88. package/dist/src/classes/models/client-configuration.model.js.map +1 -0
  89. package/dist/src/classes/models/ctrader-x-error.model.d.ts +6 -0
  90. package/dist/src/classes/models/ctrader-x-error.model.d.ts.map +1 -0
  91. package/dist/src/classes/models/ctrader-x-error.model.js +21 -0
  92. package/dist/src/classes/models/ctrader-x-error.model.js.map +1 -0
  93. package/dist/src/config/config.d.ts +10 -0
  94. package/dist/src/config/config.d.ts.map +1 -0
  95. package/dist/src/config/config.js +40 -0
  96. package/dist/src/config/config.js.map +1 -0
  97. package/dist/src/examples/authentication.example.d.ts +2 -0
  98. package/dist/src/examples/authentication.example.d.ts.map +1 -0
  99. package/dist/src/examples/authentication.example.js +9 -0
  100. package/dist/src/examples/authentication.example.js.map +1 -0
  101. package/dist/src/examples/get-symbols-bars.example.d.ts +2 -0
  102. package/dist/src/examples/get-symbols-bars.example.d.ts.map +1 -0
  103. package/dist/src/examples/get-symbols-bars.example.js +18 -0
  104. package/dist/src/examples/get-symbols-bars.example.js.map +1 -0
  105. package/dist/src/examples/get-symbols-list.example.d.ts +2 -0
  106. package/dist/src/examples/get-symbols-list.example.d.ts.map +1 -0
  107. package/dist/src/examples/get-symbols-list.example.js +13 -0
  108. package/dist/src/examples/get-symbols-list.example.js.map +1 -0
  109. package/dist/src/examples/subscribe-live-bars.example.d.ts +2 -0
  110. package/dist/src/examples/subscribe-live-bars.example.d.ts.map +1 -0
  111. package/dist/src/examples/subscribe-live-bars.example.js +42 -0
  112. package/dist/src/examples/subscribe-live-bars.example.js.map +1 -0
  113. package/dist/src/index.d.ts +4 -0
  114. package/dist/src/index.d.ts.map +1 -0
  115. package/dist/src/index.js +20 -0
  116. package/dist/src/index.js.map +1 -0
  117. package/dist/src/models/common/ohlcv.d.ts +10 -0
  118. package/dist/src/models/common/ohlcv.d.ts.map +1 -0
  119. package/dist/src/models/common/ohlcv.js +13 -0
  120. package/dist/src/models/common/ohlcv.js.map +1 -0
  121. package/dist/src/models/proto/base-proto.d.ts +5 -0
  122. package/dist/src/models/proto/base-proto.d.ts.map +1 -0
  123. package/dist/src/models/proto/base-proto.js +9 -0
  124. package/dist/src/models/proto/base-proto.js.map +1 -0
  125. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.d.ts +5 -0
  126. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.d.ts.map +1 -0
  127. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.js +9 -0
  128. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.js.map +1 -0
  129. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.d.ts +4 -0
  130. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.d.ts.map +1 -0
  131. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.js +8 -0
  132. package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.js.map +1 -0
  133. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.d.ts +6 -0
  134. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.d.ts.map +1 -0
  135. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.js +10 -0
  136. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.js.map +1 -0
  137. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.d.ts +4 -0
  138. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.d.ts.map +1 -0
  139. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.js +8 -0
  140. package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.js.map +1 -0
  141. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.d.ts +6 -0
  142. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.d.ts.map +1 -0
  143. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.js +10 -0
  144. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.js.map +1 -0
  145. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.d.ts +4 -0
  146. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.d.ts.map +1 -0
  147. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.js +8 -0
  148. package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.js.map +1 -0
  149. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.d.ts +10 -0
  150. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.d.ts.map +1 -0
  151. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.js +13 -0
  152. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.js.map +1 -0
  153. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.d.ts +11 -0
  154. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.d.ts.map +1 -0
  155. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.js +13 -0
  156. package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.js.map +1 -0
  157. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.d.ts +7 -0
  158. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.d.ts.map +1 -0
  159. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.js +10 -0
  160. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.js.map +1 -0
  161. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.d.ts +4 -0
  162. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.d.ts.map +1 -0
  163. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.js +8 -0
  164. package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.js.map +1 -0
  165. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.d.ts +5 -0
  166. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.d.ts.map +1 -0
  167. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.js +9 -0
  168. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.js.map +1 -0
  169. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.d.ts +8 -0
  170. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.d.ts.map +1 -0
  171. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.js +10 -0
  172. package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.js.map +1 -0
  173. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.d.ts +5 -0
  174. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.d.ts.map +1 -0
  175. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.js +9 -0
  176. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.js.map +1 -0
  177. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.d.ts +7 -0
  178. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.d.ts.map +1 -0
  179. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.js +10 -0
  180. package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.js.map +1 -0
  181. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.d.ts +7 -0
  182. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.d.ts.map +1 -0
  183. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.js +10 -0
  184. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.js.map +1 -0
  185. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.d.ts +4 -0
  186. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.d.ts.map +1 -0
  187. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.js +8 -0
  188. package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.js.map +1 -0
  189. package/dist/src/models/proto/models/ProtoOAArchivedSymbol.d.ts +7 -0
  190. package/dist/src/models/proto/models/ProtoOAArchivedSymbol.d.ts.map +1 -0
  191. package/dist/src/models/proto/models/ProtoOAArchivedSymbol.js +11 -0
  192. package/dist/src/models/proto/models/ProtoOAArchivedSymbol.js.map +1 -0
  193. package/dist/src/models/proto/models/ProtoOAErrorRes.d.ts +8 -0
  194. package/dist/src/models/proto/models/ProtoOAErrorRes.d.ts.map +1 -0
  195. package/dist/src/models/proto/models/ProtoOAErrorRes.js +12 -0
  196. package/dist/src/models/proto/models/ProtoOAErrorRes.js.map +1 -0
  197. package/dist/src/models/proto/models/ProtoOAHoliday.d.ts +9 -0
  198. package/dist/src/models/proto/models/ProtoOAHoliday.d.ts.map +1 -0
  199. package/dist/src/models/proto/models/ProtoOAHoliday.js +13 -0
  200. package/dist/src/models/proto/models/ProtoOAHoliday.js.map +1 -0
  201. package/dist/src/models/proto/models/ProtoOAInterval.d.ts +6 -0
  202. package/dist/src/models/proto/models/ProtoOAInterval.d.ts.map +1 -0
  203. package/dist/src/models/proto/models/ProtoOAInterval.js +10 -0
  204. package/dist/src/models/proto/models/ProtoOAInterval.js.map +1 -0
  205. package/dist/src/models/proto/models/ProtoOALightSymbol.d.ts +11 -0
  206. package/dist/src/models/proto/models/ProtoOALightSymbol.d.ts.map +1 -0
  207. package/dist/src/models/proto/models/ProtoOALightSymbol.js +15 -0
  208. package/dist/src/models/proto/models/ProtoOALightSymbol.js.map +1 -0
  209. package/dist/src/models/proto/models/ProtoOASpotEvent.d.ts +11 -0
  210. package/dist/src/models/proto/models/ProtoOASpotEvent.d.ts.map +1 -0
  211. package/dist/src/models/proto/models/ProtoOASpotEvent.js +14 -0
  212. package/dist/src/models/proto/models/ProtoOASpotEvent.js.map +1 -0
  213. package/dist/src/models/proto/models/ProtoOASymbol.d.ts +44 -0
  214. package/dist/src/models/proto/models/ProtoOASymbol.d.ts.map +1 -0
  215. package/dist/src/models/proto/models/ProtoOASymbol.js +46 -0
  216. package/dist/src/models/proto/models/ProtoOASymbol.js.map +1 -0
  217. package/dist/src/models/proto/models/ProtoOATrendbar.d.ts +11 -0
  218. package/dist/src/models/proto/models/ProtoOATrendbar.d.ts.map +1 -0
  219. package/dist/src/models/proto/models/ProtoOATrendbar.js +14 -0
  220. package/dist/src/models/proto/models/ProtoOATrendbar.js.map +1 -0
  221. package/dist/src/models/proto/models/ProtoOATrendbarPeriod.d.ts +17 -0
  222. package/dist/src/models/proto/models/ProtoOATrendbarPeriod.d.ts.map +1 -0
  223. package/dist/src/models/proto/models/ProtoOATrendbarPeriod.js +21 -0
  224. package/dist/src/models/proto/models/ProtoOATrendbarPeriod.js.map +1 -0
  225. package/dist/src/models/proto/payload-types/payload-types.enum.d.ts +78 -0
  226. package/dist/src/models/proto/payload-types/payload-types.enum.d.ts.map +1 -0
  227. package/dist/src/models/proto/payload-types/payload-types.enum.js +82 -0
  228. package/dist/src/models/proto/payload-types/payload-types.enum.js.map +1 -0
  229. package/dist/src/utils/price.utils.d.ts +4 -0
  230. package/dist/src/utils/price.utils.d.ts.map +1 -0
  231. package/dist/src/utils/price.utils.js +36 -0
  232. package/dist/src/utils/price.utils.js.map +1 -0
  233. package/dist/src/utils/sleep.utils.d.ts +5 -0
  234. package/dist/src/utils/sleep.utils.d.ts.map +1 -0
  235. package/dist/src/utils/sleep.utils.js +15 -0
  236. package/dist/src/utils/sleep.utils.js.map +1 -0
  237. package/dist/src/utils/timeframe.utils.d.ts +6 -0
  238. package/dist/src/utils/timeframe.utils.d.ts.map +1 -0
  239. package/dist/src/utils/timeframe.utils.js +47 -0
  240. package/dist/src/utils/timeframe.utils.js.map +1 -0
  241. package/dist/src/utils/trendbar.utils.d.ts +7 -0
  242. package/dist/src/utils/trendbar.utils.d.ts.map +1 -0
  243. package/dist/src/utils/trendbar.utils.js +28 -0
  244. package/dist/src/utils/trendbar.utils.js.map +1 -0
  245. package/dist/tsconfig.tsbuildinfo +1 -0
  246. package/dist/vitest.config.d.ts +3 -0
  247. package/dist/vitest.config.d.ts.map +1 -0
  248. package/dist/vitest.config.js +12 -0
  249. package/dist/vitest.config.js.map +1 -0
  250. package/package.json +48 -0
  251. package/src/classes/client.test.ts +100 -0
  252. package/src/classes/client.ts +102 -0
  253. package/src/classes/errors/client-not-connected.error.ts +7 -0
  254. package/src/classes/errors/connection.error.ts +7 -0
  255. package/src/classes/logger.ts +26 -0
  256. package/src/classes/managers/authentication/authentication.manager.test.ts +187 -0
  257. package/src/classes/managers/authentication/authentication.manager.ts +65 -0
  258. package/src/classes/managers/authentication/errors/application-auth.error.ts +9 -0
  259. package/src/classes/managers/authentication/errors/user-auth.error.ts +9 -0
  260. package/src/classes/managers/models/base.manager.ts +50 -0
  261. package/src/classes/managers/models/credentials.model.ts +15 -0
  262. package/src/classes/managers/symbols/errors/get-symbols-details.error.ts +9 -0
  263. package/src/classes/managers/symbols/errors/get-symbols-list.error.ts +9 -0
  264. package/src/classes/managers/symbols/errors/get-trend-bars.error.ts +7 -0
  265. package/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.ts +17 -0
  266. package/src/classes/managers/symbols/errors/subscribe-spot-events.error.ts +9 -0
  267. package/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.ts +9 -0
  268. package/src/classes/managers/symbols/symbols-updates.manager.ts +440 -0
  269. package/src/classes/managers/symbols/symbols.manager.test.ts +455 -0
  270. package/src/classes/managers/symbols/symbols.manager.ts +134 -0
  271. package/src/classes/models/client-configuration.model.ts +39 -0
  272. package/src/classes/models/ctrader-x-error.model.ts +16 -0
  273. package/src/config/config.ts +48 -0
  274. package/src/index.ts +4 -0
  275. package/src/models/common/ohlcv.ts +19 -0
  276. package/src/models/proto/base-proto.ts +13 -0
  277. package/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.ts +8 -0
  278. package/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.ts +3 -0
  279. package/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.ts +13 -0
  280. package/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.ts +3 -0
  281. package/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.ts +6 -0
  282. package/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.ts +3 -0
  283. package/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.ts +29 -0
  284. package/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.ts +30 -0
  285. package/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.ts +7 -0
  286. package/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.ts +3 -0
  287. package/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.ts +8 -0
  288. package/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.ts +15 -0
  289. package/src/models/proto/messages/symbols/ProtoOASymbolsListReq.ts +8 -0
  290. package/src/models/proto/messages/symbols/ProtoOASymbolsListRes.ts +14 -0
  291. package/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.ts +11 -0
  292. package/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.ts +3 -0
  293. package/src/models/proto/models/ProtoOAArchivedSymbol.ts +21 -0
  294. package/src/models/proto/models/ProtoOAErrorRes.ts +20 -0
  295. package/src/models/proto/models/ProtoOAHoliday.ts +31 -0
  296. package/src/models/proto/models/ProtoOAInterval.ts +16 -0
  297. package/src/models/proto/models/ProtoOALightSymbol.ts +38 -0
  298. package/src/models/proto/models/ProtoOASpotEvent.ts +31 -0
  299. package/src/models/proto/models/ProtoOASymbol.ts +220 -0
  300. package/src/models/proto/models/ProtoOATrendbar.ts +11 -0
  301. package/src/models/proto/models/ProtoOATrendbarPeriod.ts +16 -0
  302. package/src/models/proto/payload-types/payload-types.enum.ts +77 -0
  303. package/src/utils/price.utils.ts +42 -0
  304. package/src/utils/sleep.utils.ts +13 -0
  305. package/src/utils/timeframe.utils.ts +50 -0
  306. package/src/utils/trendbar.utils.ts +59 -0
  307. package/tsconfig.tsbuildinfo +1 -0
  308. package/vitest.config.ts +11 -0
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbolsUpdatesManager = void 0;
4
+ const base_manager_1 = require("../models/base.manager");
5
+ const ProtoOASubscribeLiveTrendbarReq_1 = require("../../../models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq");
6
+ const rxjs_1 = require("rxjs");
7
+ const ProtoOASubscribeSpotsReq_1 = require("../../../models/proto/messages/common/ProtoOASubscribeSpotsReq");
8
+ const subscribe_spot_events_error_1 = require("./errors/subscribe-spot-events.error");
9
+ const subscribe_live_trend_bars_error_1 = require("./errors/subscribe-live-trend-bars.error");
10
+ const ProtoOASpotEvent_1 = require("../../../models/proto/models/ProtoOASpotEvent");
11
+ const ohlcv_1 = require("../../../models/common/ohlcv");
12
+ const price_utils_1 = require("../../../utils/price.utils");
13
+ const ProtoOATrendbarPeriod_1 = require("../../../models/proto/models/ProtoOATrendbarPeriod");
14
+ const ProtoOAUnsubscribeLiveTrendbarReq_1 = require("../../../models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq");
15
+ const ctrader_x_error_model_1 = require("../../models/ctrader-x-error.model");
16
+ const unsubscribe_live_trend_bars_error_1 = require("./errors/unsubscribe-live-trend-bars.error");
17
+ class SymbolsUpdatesManager extends base_manager_1.BaseManager {
18
+ credentials;
19
+ connection;
20
+ logger;
21
+ symbolsManager;
22
+ liveBarsSubscriptions$ = new rxjs_1.BehaviorSubject([]);
23
+ liveBarsSubscriptionsMapper$ = this.liveBarsSubscriptions$.pipe((0, rxjs_1.tap)((values) => values.forEach(({ symbolId }, idx) => {
24
+ this.liveBarsSubsSymbolsToSubscribersMap.set(symbolId, idx);
25
+ })));
26
+ liveBarsSubsSymbolsToSubscribersMap = new Map();
27
+ constructor(credentials, connection, logger, symbolsManager) {
28
+ super();
29
+ this.credentials = credentials;
30
+ this.connection = connection;
31
+ this.logger = logger;
32
+ this.symbolsManager = symbolsManager;
33
+ this.liveBarsSubscriptionsMapper$.subscribe();
34
+ this.connection.on(ProtoOASpotEvent_1.ProtoOASpotEvent.name, (event) => {
35
+ if (this.isTrackedSubscribeLiveTrendBarsDescriptor(event)) {
36
+ const { subscribers, idx } = this.getSubscribeLiveTrendBarsSubscriptions(+event.descriptor.symbolId);
37
+ if (idx === null)
38
+ return;
39
+ subscribers.subscribers.forEach(({ lastBar, lastBarTime, period, subscriber, isInitialized, }, idx) => {
40
+ const update = this.spotEventDescriptorToSubscribeLiveBarsEvent(event, period, lastBar, lastBarTime, isInitialized);
41
+ if (!update)
42
+ return;
43
+ lastBar = update.ohlcv;
44
+ lastBarTime = update.lastBarTime;
45
+ subscriber.next({
46
+ ohlcv: update.ohlcv,
47
+ period: update.period,
48
+ symbolId: update.symbolId,
49
+ });
50
+ subscribers.subscribers[idx].isInitialized =
51
+ update.isInitialized;
52
+ subscribers.subscribers[idx].lastBar = lastBar;
53
+ subscribers.subscribers[idx].lastBarTime = lastBarTime;
54
+ });
55
+ this.updateSubscribeLiveTrendBarsSubscriptions(subscribers, idx);
56
+ }
57
+ });
58
+ }
59
+ async unsubscribeLiveTrendBars(opts) {
60
+ this.removeSubscribeLiveTrendBarsSubscription(opts.symbolId, opts.period);
61
+ const symbolSubscriptions = this.getSubscribeLiveTrendBarsSubscriptions(+opts.symbolId);
62
+ if (!symbolSubscriptions.subscribers.subscribers.length) {
63
+ this.logCallAttempt(this.unsubscribeLiveTrendBars, opts);
64
+ const payload = {
65
+ ...opts,
66
+ ctidTraderAccountId: this.credentials.ctidTraderAccountId,
67
+ };
68
+ try {
69
+ await this.connection.sendCommand(ProtoOAUnsubscribeLiveTrendbarReq_1.ProtoOAUnsubscribeLiveTrendbarReq.name, payload);
70
+ }
71
+ catch (e) {
72
+ throw this.handleCTraderCallError(e, this.unsubscribeLiveTrendBars, new unsubscribe_live_trend_bars_error_1.UnsubscribeLiveTrendBarsError(e));
73
+ }
74
+ this.logCallAttemptSuccess(this.unsubscribeLiveTrendBars, opts);
75
+ }
76
+ }
77
+ subscribeLiveTrendBars(opts) {
78
+ const subject = new rxjs_1.Subject();
79
+ this.addSubscribeLiveTrendBarsSubscription(opts.symbolId, {
80
+ lastBar: null,
81
+ lastBarTime: null,
82
+ period: opts.period,
83
+ subscriber: subject,
84
+ isInitialized: false,
85
+ });
86
+ return (0, rxjs_1.from)(this.subscribeSpotEvents({
87
+ symbolId: opts.symbolId,
88
+ ctidTraderAccountId: this.credentials.ctidTraderAccountId,
89
+ })).pipe((0, rxjs_1.switchMap)(() => this.subscribeLiveTrendBarsInternal(opts)), (0, rxjs_1.switchMap)(() => subject), (0, rxjs_1.catchError)((e) => {
90
+ this.logger.error(`[Symbol: ${opts.symbolId} Period: ${opts.period}] Error subscribing to live trend bars: ${ctrader_x_error_model_1.cTraderXError.getMessageError(e)}`);
91
+ this.removeSubscribeLiveTrendBarsSubscription(opts.symbolId, opts.period);
92
+ throw e;
93
+ }));
94
+ }
95
+ spotEventDescriptorToSubscribeLiveBarsEvent(event, period, lastBar, lastBarTime, isInitialized) {
96
+ let lastBarClone = structuredClone(lastBar);
97
+ let lastBarTimeClone = structuredClone(lastBarTime);
98
+ const price = price_utils_1.Price.getPrice(+event.descriptor.bid, +event.descriptor.ask);
99
+ if (price === null)
100
+ return null;
101
+ const trendbar = event.descriptor.trendbar?.find((tb) => tb.period === ProtoOATrendbarPeriod_1.ProtoOATrendbarPeriod[period]);
102
+ if (!trendbar) {
103
+ return null;
104
+ }
105
+ const barTimestamp = trendbar.utcTimestampInMinutes * 60000;
106
+ const LOW = trendbar.low / 100000;
107
+ const OPEN = this.normalizePrice(LOW, trendbar.deltaOpen);
108
+ const HIGH = this.normalizePrice(LOW, trendbar.deltaHigh);
109
+ const VOLUME = trendbar.volume;
110
+ if (!lastBarTimeClone || barTimestamp !== lastBarTimeClone) {
111
+ lastBarClone = [barTimestamp, OPEN, HIGH, LOW, price, VOLUME];
112
+ lastBarTimeClone = barTimestamp;
113
+ isInitialized = true;
114
+ return {
115
+ period,
116
+ isInitialized,
117
+ ohlcv: lastBarClone,
118
+ symbolId: event.descriptor.symbolId,
119
+ lastBarTime: barTimestamp,
120
+ };
121
+ }
122
+ if (!lastBarClone) {
123
+ lastBarClone = [barTimestamp, OPEN, HIGH, LOW, price, VOLUME];
124
+ }
125
+ else {
126
+ lastBarClone[ohlcv_1.OHLCVPositions.OPEN] = OPEN;
127
+ lastBarClone[ohlcv_1.OHLCVPositions.HIGH] = HIGH;
128
+ lastBarClone[ohlcv_1.OHLCVPositions.LOW] = LOW;
129
+ lastBarClone[ohlcv_1.OHLCVPositions.CLOSE] = price;
130
+ lastBarClone[ohlcv_1.OHLCVPositions.VOLUME] = VOLUME;
131
+ }
132
+ return {
133
+ period,
134
+ isInitialized,
135
+ ohlcv: lastBarClone,
136
+ symbolId: event.descriptor.symbolId,
137
+ lastBarTime: barTimestamp,
138
+ };
139
+ }
140
+ normalizePrice(low, priceDelta) {
141
+ return low + (priceDelta || 0) / 100000;
142
+ }
143
+ isTrackedSubscribeLiveTrendBarsDescriptor(event) {
144
+ return this.liveBarsSubsSymbolsToSubscribersMap.has(+event.descriptor.symbolId);
145
+ }
146
+ getSubscribeLiveTrendBarsSubscriptions(symbolId) {
147
+ const idx = this.liveBarsSubsSymbolsToSubscribersMap.get(symbolId);
148
+ if (idx === undefined) {
149
+ this.logger.warn(`Received LiveTrendBars update, but no subscriber was found.`);
150
+ return {
151
+ idx: null,
152
+ subscribers: {
153
+ symbolId,
154
+ subscribers: [],
155
+ pricePrecision: null,
156
+ },
157
+ };
158
+ }
159
+ return {
160
+ subscribers: this.liveBarsSubscriptions$.getValue()[idx],
161
+ idx,
162
+ };
163
+ }
164
+ removeSubscribeLiveTrendBarsSubscription(symbolId, period) {
165
+ const subscriptionIdx = this.liveBarsSubsSymbolsToSubscribersMap.get(symbolId);
166
+ if (subscriptionIdx === undefined)
167
+ return;
168
+ const symbolSubscriptions = this.liveBarsSubscriptions$.getValue()[subscriptionIdx];
169
+ symbolSubscriptions.subscribers =
170
+ symbolSubscriptions.subscribers.filter((s) => {
171
+ if (period === '*' || s.period === period) {
172
+ s.subscriber.complete();
173
+ return false;
174
+ }
175
+ return true;
176
+ });
177
+ const allSubscriptions = this.liveBarsSubscriptions$.getValue();
178
+ allSubscriptions[subscriptionIdx] = symbolSubscriptions;
179
+ this.liveBarsSubscriptions$.next([...allSubscriptions]);
180
+ }
181
+ addSubscribeLiveTrendBarsSubscription(symbolId, subscriber) {
182
+ const allSubscriptions = this.liveBarsSubscriptions$.getValue();
183
+ const existingSubscriptionIdx = this.liveBarsSubsSymbolsToSubscribersMap.get(symbolId);
184
+ if (existingSubscriptionIdx === undefined) {
185
+ allSubscriptions.push({
186
+ symbolId,
187
+ subscribers: [subscriber],
188
+ });
189
+ }
190
+ else {
191
+ const existingSubscriberIdx = allSubscriptions[existingSubscriptionIdx].subscribers.findIndex(({ period }) => period === subscriber.period);
192
+ if (existingSubscriberIdx !== -1) {
193
+ const existingSubscriber = allSubscriptions[existingSubscriptionIdx].subscribers[existingSubscriberIdx];
194
+ this.logger.warn(`[Symbol: ${symbolId} Period: ${subscriber.period}] Completing previous subscriber subscription in favor of new subscriber`);
195
+ existingSubscriber.subscriber.complete();
196
+ existingSubscriber.subscriber = subscriber.subscriber;
197
+ }
198
+ else {
199
+ allSubscriptions[existingSubscriptionIdx].subscribers.push(subscriber);
200
+ }
201
+ }
202
+ this.liveBarsSubscriptions$.next([...allSubscriptions]);
203
+ }
204
+ updateSubscribeLiveTrendBarsSubscriptions(subscribers, idx) {
205
+ const allSubscriptions = this.liveBarsSubscriptions$.getValue();
206
+ allSubscriptions[idx] = subscribers;
207
+ this.liveBarsSubscriptions$.next([...allSubscriptions]);
208
+ }
209
+ async subscribeSpotEvents(opts) {
210
+ this.logCallAttempt(this.subscribeSpotEvents);
211
+ const optsClone = structuredClone(opts);
212
+ optsClone.ctidTraderAccountId = this.credentials.ctidTraderAccountId;
213
+ optsClone.subscribeToSpotTimestamp = true;
214
+ try {
215
+ const result = (await this.connection.sendCommand(ProtoOASubscribeSpotsReq_1.ProtoOASubscribeSpotsReq.name, optsClone));
216
+ this.logCallAttemptSuccess(this.subscribeSpotEvents);
217
+ return result;
218
+ }
219
+ catch (e) {
220
+ if (ctrader_x_error_model_1.cTraderXError.isProtoOAErrorRes(e)) {
221
+ if (e.errorCode === 'ALREADY_SUBSCRIBED')
222
+ return (0, rxjs_1.of)({
223
+ ctidTraderAccountId: optsClone.ctidTraderAccountId,
224
+ });
225
+ }
226
+ throw this.handleCTraderCallError(e, this.subscribeSpotEvents, new subscribe_spot_events_error_1.SubscribeSpotEventsError(e));
227
+ }
228
+ }
229
+ async subscribeLiveTrendBarsInternal(opts) {
230
+ this.logCallAttempt(this.subscribeLiveTrendBarsInternal);
231
+ const optsClone = structuredClone(opts);
232
+ optsClone.ctidTraderAccountId = this.credentials.ctidTraderAccountId;
233
+ try {
234
+ const result = (await this.connection.sendCommand(ProtoOASubscribeLiveTrendbarReq_1.ProtoOASubscribeLiveTrendbarReq.name, optsClone));
235
+ this.logCallAttemptSuccess(this.subscribeLiveTrendBarsInternal);
236
+ return result;
237
+ }
238
+ catch (e) {
239
+ if (ctrader_x_error_model_1.cTraderXError.isProtoOAErrorRes(e)) {
240
+ if (e.errorCode === 'ALREADY_SUBSCRIBED')
241
+ return (0, rxjs_1.of)({
242
+ ctidTraderAccountId: optsClone.ctidTraderAccountId,
243
+ });
244
+ }
245
+ throw this.handleCTraderCallError(e, this.subscribeLiveTrendBarsInternal, new subscribe_live_trend_bars_error_1.SubscribeLiveTrendBarsInternalError(e));
246
+ }
247
+ }
248
+ }
249
+ exports.SymbolsUpdatesManager = SymbolsUpdatesManager;
250
+ //# sourceMappingURL=symbols-updates.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols-updates.manager.js","sourceRoot":"","sources":["../../../../../src/classes/managers/symbols/symbols-updates.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { CTraderConnection } from '@reiryoku/ctrader-layer';
2
+ import { ILogger } from '../../logger';
3
+ import { BaseManager } from '../models/base.manager';
4
+ import { ICredentials } from '../models/credentials.model';
5
+ import { ProtoOAGetTrendbarsReq } from '../../../models/proto/messages/symbols/ProtoOAGetTrendbarsReq';
6
+ import { ProtoOASymbolByIdRes } from '../../../models/proto/messages/symbols/ProtoOASymbolByIdRes';
7
+ import { ProtoOASymbol } from '../../../models/proto/models/ProtoOASymbol';
8
+ import { ProtoOALightSymbol } from '../../../models/proto/models/ProtoOALightSymbol';
9
+ import { OHLCV } from '../../../models/common/ohlcv';
10
+ import { ProtoOATrendbarPeriod } from '../../../models/proto/models/ProtoOATrendbarPeriod';
11
+ export interface IGetSymbolsListOptions {
12
+ includeArchivedSymbols?: boolean;
13
+ }
14
+ export type GetSymbolsListResult = (ProtoOASymbol & ProtoOALightSymbol)[];
15
+ export interface SubscribeLiveTrendBarsEvent {
16
+ symbolId: number;
17
+ ohlcv: OHLCV;
18
+ lastBarTime: number;
19
+ period: ProtoOATrendbarPeriod;
20
+ }
21
+ export declare class SymbolsManager extends BaseManager {
22
+ protected readonly credentials: ICredentials;
23
+ protected readonly connection: CTraderConnection;
24
+ protected readonly logger: ILogger;
25
+ constructor(credentials: ICredentials, connection: CTraderConnection, logger: ILogger);
26
+ getSymbolsList(opts?: IGetSymbolsListOptions): Promise<GetSymbolsListResult>;
27
+ getSymbolsDetails(symbolsIds: number[]): Promise<ProtoOASymbolByIdRes>;
28
+ getTrendBars(opts: Omit<ProtoOAGetTrendbarsReq, 'ctidTraderAccountId'>): Promise<OHLCV[]>;
29
+ }
30
+ //# sourceMappingURL=symbols.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.manager.d.ts","sourceRoot":"","sources":["../../../../../src/classes/managers/symbols/symbols.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+DAA+D,CAAC;AAEvG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AAGnG,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAE3F,MAAM,WAAW,sBAAsB;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,aAAa,GAAG,kBAAkB,CAAC,EAAE,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;CACjC;AAED,qBAAa,cAAe,SAAQ,WAAW;IAEvC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY;IAC5C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAFf,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,OAAO;IAKhC,cAAc,CAChB,IAAI,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAkC1B,iBAAiB,CACnB,UAAU,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,oBAAoB,CAAC;IA0B1B,YAAY,CACd,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,GAC1D,OAAO,CAAC,KAAK,EAAE,CAAC;CA0BtB"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbolsManager = void 0;
4
+ const base_manager_1 = require("../models/base.manager");
5
+ const ProtoOASymbolsListReq_1 = require("../../../models/proto/messages/symbols/ProtoOASymbolsListReq");
6
+ const get_symbols_list_error_1 = require("./errors/get-symbols-list.error");
7
+ const ProtoOAGetTrendbarsReq_1 = require("../../../models/proto/messages/symbols/ProtoOAGetTrendbarsReq");
8
+ const get_trend_bars_error_1 = require("./errors/get-trend-bars.error");
9
+ const ProtoOASymbolByIdReq_1 = require("../../../models/proto/messages/symbols/ProtoOASymbolByIdReq");
10
+ const get_symbols_details_error_1 = require("./errors/get-symbols-details.error");
11
+ const trendbar_utils_1 = require("../../../utils/trendbar.utils");
12
+ class SymbolsManager extends base_manager_1.BaseManager {
13
+ credentials;
14
+ connection;
15
+ logger;
16
+ constructor(credentials, connection, logger) {
17
+ super();
18
+ this.credentials = credentials;
19
+ this.connection = connection;
20
+ this.logger = logger;
21
+ }
22
+ async getSymbolsList(opts) {
23
+ this.logCallAttempt(this.getSymbolsList);
24
+ const payload = {
25
+ includeArchivedSymbols: opts?.includeArchivedSymbols,
26
+ ctidTraderAccountId: this.credentials.ctidTraderAccountId,
27
+ };
28
+ let result;
29
+ try {
30
+ result = (await this.connection.sendCommand(ProtoOASymbolsListReq_1.ProtoOASymbolsListReq.name, payload));
31
+ }
32
+ catch (e) {
33
+ throw this.handleCTraderCallError(e, this.getSymbolsList, new get_symbols_list_error_1.GetSymbolsListError(e));
34
+ }
35
+ this.logCallAttemptSuccess(this.getSymbolsList);
36
+ const fullSymbols = await this.getSymbolsDetails(result.symbol.map(({ symbolId }) => +symbolId));
37
+ return fullSymbols.symbol.map((symbol) => ({
38
+ ...symbol,
39
+ ...result.symbol.find((s) => s.symbolId === symbol.symbolId),
40
+ }));
41
+ }
42
+ async getSymbolsDetails(symbolsIds) {
43
+ this.logCallAttempt(this.getSymbolsDetails);
44
+ const payload = {
45
+ symbolId: symbolsIds,
46
+ ctidTraderAccountId: this.credentials.ctidTraderAccountId,
47
+ };
48
+ let result;
49
+ try {
50
+ result = (await this.connection.sendCommand(ProtoOASymbolByIdReq_1.ProtoOASymbolByIdReq.name, payload));
51
+ }
52
+ catch (e) {
53
+ throw this.handleCTraderCallError(e, this.getSymbolsDetails, new get_symbols_details_error_1.GetSymbolsDetailsError(e));
54
+ }
55
+ this.logCallAttemptSuccess(this.getSymbolsDetails);
56
+ return result;
57
+ }
58
+ async getTrendBars(opts) {
59
+ this.logCallAttempt(this.getTrendBars);
60
+ let result;
61
+ try {
62
+ const payload = {
63
+ ...opts,
64
+ ctidTraderAccountId: this.credentials.ctidTraderAccountId,
65
+ };
66
+ result = (await this.connection.sendCommand(ProtoOAGetTrendbarsReq_1.ProtoOAGetTrendbarsReq.name, payload));
67
+ }
68
+ catch (e) {
69
+ throw this.handleCTraderCallError(e, this.getTrendBars, new get_trend_bars_error_1.GetTrendBarsError(e));
70
+ }
71
+ this.logCallAttemptSuccess(this.getTrendBars);
72
+ const symbolInfo = await this.getSymbolsDetails([opts.symbolId]);
73
+ const precision = +symbolInfo.symbol[0].digits;
74
+ return trendbar_utils_1.TrendBarUtils.mapTrendbarsToOHLCV(result.trendbar, precision);
75
+ }
76
+ }
77
+ exports.SymbolsManager = SymbolsManager;
78
+ //# sourceMappingURL=symbols.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.manager.js","sourceRoot":"","sources":["../../../../../src/classes/managers/symbols/symbols.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=symbols.manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.manager.test.d.ts","sourceRoot":"","sources":["../../../../../src/classes/managers/symbols/symbols.manager.test.ts"],"names":[],"mappings":""}