@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.
- package/.env +6 -0
- package/.prettierrc +7 -0
- package/README.md +96 -0
- package/changelog.md +46 -0
- package/dist/src/classes/client.d.ts +21 -0
- package/dist/src/classes/client.d.ts.map +1 -0
- package/dist/src/classes/client.js +83 -0
- package/dist/src/classes/client.js.map +1 -0
- package/dist/src/classes/client.test.d.ts +2 -0
- package/dist/src/classes/client.test.d.ts.map +1 -0
- package/dist/src/classes/client.test.js +83 -0
- package/dist/src/classes/client.test.js.map +1 -0
- package/dist/src/classes/errors/client-not-connected.error.d.ts +5 -0
- package/dist/src/classes/errors/client-not-connected.error.d.ts.map +1 -0
- package/dist/src/classes/errors/client-not-connected.error.js +11 -0
- package/dist/src/classes/errors/client-not-connected.error.js.map +1 -0
- package/dist/src/classes/errors/connection.error.d.ts +5 -0
- package/dist/src/classes/errors/connection.error.d.ts.map +1 -0
- package/dist/src/classes/errors/connection.error.js +11 -0
- package/dist/src/classes/errors/connection.error.js.map +1 -0
- package/dist/src/classes/logger.d.ts +13 -0
- package/dist/src/classes/logger.d.ts.map +1 -0
- package/dist/src/classes/logger.js +21 -0
- package/dist/src/classes/logger.js.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.d.ts +13 -0
- package/dist/src/classes/managers/authentication/authentication.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.js +49 -0
- package/dist/src/classes/managers/authentication/authentication.manager.js.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.d.ts +2 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.js +114 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.js.map +1 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.d.ts +5 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.js +11 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.js.map +1 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.d.ts +5 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.js +11 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.js.map +1 -0
- package/dist/src/classes/managers/models/base.manager.d.ts +15 -0
- package/dist/src/classes/managers/models/base.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/models/base.manager.js +35 -0
- package/dist/src/classes/managers/models/base.manager.js.map +1 -0
- package/dist/src/classes/managers/models/credentials.model.d.ts +8 -0
- package/dist/src/classes/managers/models/credentials.model.d.ts.map +1 -0
- package/dist/src/classes/managers/models/credentials.model.js +3 -0
- package/dist/src/classes/managers/models/credentials.model.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.d.ts +6 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.js +13 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.d.ts +8 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.js +17 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.d.ts +54 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.js +250 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.js.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.d.ts +30 -0
- package/dist/src/classes/managers/symbols/symbols.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.js +78 -0
- package/dist/src/classes/managers/symbols/symbols.manager.js.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.d.ts +2 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.js +364 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.js.map +1 -0
- package/dist/src/classes/models/client-configuration.model.d.ts +10 -0
- package/dist/src/classes/models/client-configuration.model.d.ts.map +1 -0
- package/dist/src/classes/models/client-configuration.model.js +3 -0
- package/dist/src/classes/models/client-configuration.model.js.map +1 -0
- package/dist/src/classes/models/ctrader-x-error.model.d.ts +6 -0
- package/dist/src/classes/models/ctrader-x-error.model.d.ts.map +1 -0
- package/dist/src/classes/models/ctrader-x-error.model.js +21 -0
- package/dist/src/classes/models/ctrader-x-error.model.js.map +1 -0
- package/dist/src/config/config.d.ts +10 -0
- package/dist/src/config/config.d.ts.map +1 -0
- package/dist/src/config/config.js +40 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/examples/authentication.example.d.ts +2 -0
- package/dist/src/examples/authentication.example.d.ts.map +1 -0
- package/dist/src/examples/authentication.example.js +9 -0
- package/dist/src/examples/authentication.example.js.map +1 -0
- package/dist/src/examples/get-symbols-bars.example.d.ts +2 -0
- package/dist/src/examples/get-symbols-bars.example.d.ts.map +1 -0
- package/dist/src/examples/get-symbols-bars.example.js +18 -0
- package/dist/src/examples/get-symbols-bars.example.js.map +1 -0
- package/dist/src/examples/get-symbols-list.example.d.ts +2 -0
- package/dist/src/examples/get-symbols-list.example.d.ts.map +1 -0
- package/dist/src/examples/get-symbols-list.example.js +13 -0
- package/dist/src/examples/get-symbols-list.example.js.map +1 -0
- package/dist/src/examples/subscribe-live-bars.example.d.ts +2 -0
- package/dist/src/examples/subscribe-live-bars.example.d.ts.map +1 -0
- package/dist/src/examples/subscribe-live-bars.example.js +42 -0
- package/dist/src/examples/subscribe-live-bars.example.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/models/common/ohlcv.d.ts +10 -0
- package/dist/src/models/common/ohlcv.d.ts.map +1 -0
- package/dist/src/models/common/ohlcv.js +13 -0
- package/dist/src/models/common/ohlcv.js.map +1 -0
- package/dist/src/models/proto/base-proto.d.ts +5 -0
- package/dist/src/models/proto/base-proto.d.ts.map +1 -0
- package/dist/src/models/proto/base-proto.js +9 -0
- package/dist/src/models/proto/base-proto.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.d.ts +5 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.js +9 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.d.ts +4 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.js +8 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.d.ts +6 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.js +10 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.d.ts +4 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.js +8 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.js.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.d.ts +6 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.js +10 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.js.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.d.ts +4 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.js +8 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.d.ts +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.js +13 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.d.ts +11 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.js +13 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.d.ts +7 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.d.ts +4 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.js +8 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.d.ts +5 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.js +9 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.d.ts +8 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.d.ts +5 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.js +9 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.d.ts +7 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.d.ts +7 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.d.ts +4 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.js +8 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.d.ts +7 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.js +11 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.d.ts +8 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.js +12 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.d.ts +9 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.js +13 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAInterval.d.ts +6 -0
- package/dist/src/models/proto/models/ProtoOAInterval.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAInterval.js +10 -0
- package/dist/src/models/proto/models/ProtoOAInterval.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.d.ts +11 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.js +15 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.d.ts +11 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.js +14 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOASymbol.d.ts +44 -0
- package/dist/src/models/proto/models/ProtoOASymbol.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOASymbol.js +46 -0
- package/dist/src/models/proto/models/ProtoOASymbol.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.d.ts +11 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.js +14 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.d.ts +17 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.js +21 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.js.map +1 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.d.ts +78 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.d.ts.map +1 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.js +82 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.js.map +1 -0
- package/dist/src/utils/price.utils.d.ts +4 -0
- package/dist/src/utils/price.utils.d.ts.map +1 -0
- package/dist/src/utils/price.utils.js +36 -0
- package/dist/src/utils/price.utils.js.map +1 -0
- package/dist/src/utils/sleep.utils.d.ts +5 -0
- package/dist/src/utils/sleep.utils.d.ts.map +1 -0
- package/dist/src/utils/sleep.utils.js +15 -0
- package/dist/src/utils/sleep.utils.js.map +1 -0
- package/dist/src/utils/timeframe.utils.d.ts +6 -0
- package/dist/src/utils/timeframe.utils.d.ts.map +1 -0
- package/dist/src/utils/timeframe.utils.js +47 -0
- package/dist/src/utils/timeframe.utils.js.map +1 -0
- package/dist/src/utils/trendbar.utils.d.ts +7 -0
- package/dist/src/utils/trendbar.utils.d.ts.map +1 -0
- package/dist/src/utils/trendbar.utils.js +28 -0
- package/dist/src/utils/trendbar.utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +12 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +48 -0
- package/src/classes/client.test.ts +100 -0
- package/src/classes/client.ts +102 -0
- package/src/classes/errors/client-not-connected.error.ts +7 -0
- package/src/classes/errors/connection.error.ts +7 -0
- package/src/classes/logger.ts +26 -0
- package/src/classes/managers/authentication/authentication.manager.test.ts +187 -0
- package/src/classes/managers/authentication/authentication.manager.ts +65 -0
- package/src/classes/managers/authentication/errors/application-auth.error.ts +9 -0
- package/src/classes/managers/authentication/errors/user-auth.error.ts +9 -0
- package/src/classes/managers/models/base.manager.ts +50 -0
- package/src/classes/managers/models/credentials.model.ts +15 -0
- package/src/classes/managers/symbols/errors/get-symbols-details.error.ts +9 -0
- package/src/classes/managers/symbols/errors/get-symbols-list.error.ts +9 -0
- package/src/classes/managers/symbols/errors/get-trend-bars.error.ts +7 -0
- package/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.ts +17 -0
- package/src/classes/managers/symbols/errors/subscribe-spot-events.error.ts +9 -0
- package/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.ts +9 -0
- package/src/classes/managers/symbols/symbols-updates.manager.ts +440 -0
- package/src/classes/managers/symbols/symbols.manager.test.ts +455 -0
- package/src/classes/managers/symbols/symbols.manager.ts +134 -0
- package/src/classes/models/client-configuration.model.ts +39 -0
- package/src/classes/models/ctrader-x-error.model.ts +16 -0
- package/src/config/config.ts +48 -0
- package/src/index.ts +4 -0
- package/src/models/common/ohlcv.ts +19 -0
- package/src/models/proto/base-proto.ts +13 -0
- package/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.ts +8 -0
- package/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.ts +3 -0
- package/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.ts +13 -0
- package/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.ts +3 -0
- package/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.ts +6 -0
- package/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.ts +3 -0
- package/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.ts +29 -0
- package/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.ts +30 -0
- package/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.ts +7 -0
- package/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.ts +3 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.ts +8 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.ts +15 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolsListReq.ts +8 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolsListRes.ts +14 -0
- package/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.ts +11 -0
- package/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.ts +3 -0
- package/src/models/proto/models/ProtoOAArchivedSymbol.ts +21 -0
- package/src/models/proto/models/ProtoOAErrorRes.ts +20 -0
- package/src/models/proto/models/ProtoOAHoliday.ts +31 -0
- package/src/models/proto/models/ProtoOAInterval.ts +16 -0
- package/src/models/proto/models/ProtoOALightSymbol.ts +38 -0
- package/src/models/proto/models/ProtoOASpotEvent.ts +31 -0
- package/src/models/proto/models/ProtoOASymbol.ts +220 -0
- package/src/models/proto/models/ProtoOATrendbar.ts +11 -0
- package/src/models/proto/models/ProtoOATrendbarPeriod.ts +16 -0
- package/src/models/proto/payload-types/payload-types.enum.ts +77 -0
- package/src/utils/price.utils.ts +42 -0
- package/src/utils/sleep.utils.ts +13 -0
- package/src/utils/timeframe.utils.ts +50 -0
- package/src/utils/trendbar.utils.ts +59 -0
- package/tsconfig.tsbuildinfo +1 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.manager.test.d.ts","sourceRoot":"","sources":["../../../../../src/classes/managers/symbols/symbols.manager.test.ts"],"names":[],"mappings":""}
|