ctrader-ts 0.1.10 → 1.0.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 (95) hide show
  1. package/README.md +259 -91
  2. package/dist/bin/auth.js +8 -8
  3. package/dist/bin/auth.js.map +1 -1
  4. package/dist/cli/index.js +169 -26
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/src/{client.d.ts → core/client.d.ts} +57 -15
  7. package/dist/src/core/client.d.ts.map +1 -0
  8. package/dist/src/{client.js → core/client.js} +306 -49
  9. package/dist/src/core/client.js.map +1 -0
  10. package/dist/src/core/config.d.ts.map +1 -0
  11. package/dist/src/{config.js → core/config.js} +13 -13
  12. package/dist/src/core/config.js.map +1 -0
  13. package/dist/src/{connect.d.ts → core/connect.d.ts} +3 -3
  14. package/dist/src/core/connect.d.ts.map +1 -0
  15. package/dist/src/{connect.js → core/connect.js} +4 -6
  16. package/dist/src/core/connect.js.map +1 -0
  17. package/dist/src/{connection.d.ts → core/connection.d.ts} +53 -4
  18. package/dist/src/core/connection.d.ts.map +1 -0
  19. package/dist/src/{connection.js → core/connection.js} +152 -18
  20. package/dist/src/core/connection.js.map +1 -0
  21. package/dist/src/{errors.d.ts → core/errors.d.ts} +5 -0
  22. package/dist/src/core/errors.d.ts.map +1 -0
  23. package/dist/src/core/errors.js +85 -0
  24. package/dist/src/core/errors.js.map +1 -0
  25. package/dist/src/{helpers.d.ts → core/helpers.d.ts} +3 -3
  26. package/dist/src/core/helpers.d.ts.map +1 -0
  27. package/dist/src/{helpers.js → core/helpers.js} +9 -7
  28. package/dist/src/core/helpers.js.map +1 -0
  29. package/dist/src/{symbol-cache.d.ts → core/symbol-cache.d.ts} +2 -2
  30. package/dist/src/core/symbol-cache.d.ts.map +1 -0
  31. package/dist/src/core/symbol-cache.js.map +1 -0
  32. package/dist/src/index.d.ts +26 -11
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +24 -9
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/modules/account.d.ts +68 -2
  37. package/dist/src/modules/account.d.ts.map +1 -1
  38. package/dist/src/modules/account.js +91 -34
  39. package/dist/src/modules/account.js.map +1 -1
  40. package/dist/src/modules/auth.d.ts +29 -2
  41. package/dist/src/modules/auth.d.ts.map +1 -1
  42. package/dist/src/modules/auth.js +42 -10
  43. package/dist/src/modules/auth.js.map +1 -1
  44. package/dist/src/modules/market.d.ts +51 -3
  45. package/dist/src/modules/market.d.ts.map +1 -1
  46. package/dist/src/modules/market.js +57 -16
  47. package/dist/src/modules/market.js.map +1 -1
  48. package/dist/src/modules/trading.d.ts +69 -3
  49. package/dist/src/modules/trading.d.ts.map +1 -1
  50. package/dist/src/modules/trading.js +74 -35
  51. package/dist/src/modules/trading.js.map +1 -1
  52. package/dist/src/protocol/codec.d.ts.map +1 -0
  53. package/dist/src/{codec.js → protocol/codec.js} +2 -2
  54. package/dist/src/protocol/codec.js.map +1 -0
  55. package/dist/src/{enums.d.ts → protocol/enums.d.ts} +177 -0
  56. package/dist/src/protocol/enums.d.ts.map +1 -0
  57. package/dist/src/{enums.js → protocol/enums.js} +177 -0
  58. package/dist/src/protocol/enums.js.map +1 -0
  59. package/dist/src/protocol/proto/messages.d.ts +7496 -0
  60. package/dist/src/protocol/proto/messages.js +21525 -0
  61. package/dist/src/protocol/proto/proto/messages.d.ts +7496 -0
  62. package/dist/src/protocol/proto/proto/messages.js +21525 -0
  63. package/dist/src/{types.d.ts → protocol/types.d.ts} +151 -3
  64. package/dist/src/protocol/types.d.ts.map +1 -0
  65. package/dist/src/{types.js.map → protocol/types.js.map} +1 -1
  66. package/llms.txt +280 -0
  67. package/package.json +89 -61
  68. package/dist/src/client.d.ts.map +0 -1
  69. package/dist/src/client.js.map +0 -1
  70. package/dist/src/codec.d.ts.map +0 -1
  71. package/dist/src/codec.js.map +0 -1
  72. package/dist/src/config.d.ts.map +0 -1
  73. package/dist/src/config.js.map +0 -1
  74. package/dist/src/connect.d.ts.map +0 -1
  75. package/dist/src/connect.js.map +0 -1
  76. package/dist/src/connection.d.ts.map +0 -1
  77. package/dist/src/connection.js.map +0 -1
  78. package/dist/src/enums.d.ts.map +0 -1
  79. package/dist/src/enums.js.map +0 -1
  80. package/dist/src/errors.d.ts.map +0 -1
  81. package/dist/src/errors.js +0 -47
  82. package/dist/src/errors.js.map +0 -1
  83. package/dist/src/helpers.d.ts.map +0 -1
  84. package/dist/src/helpers.js.map +0 -1
  85. package/dist/src/proto/messages.d.ts +0 -7076
  86. package/dist/src/proto/messages.js +0 -23289
  87. package/dist/src/proto/proto/messages.d.ts +0 -7076
  88. package/dist/src/proto/proto/messages.js +0 -23289
  89. package/dist/src/symbol-cache.d.ts.map +0 -1
  90. package/dist/src/symbol-cache.js.map +0 -1
  91. package/dist/src/types.d.ts.map +0 -1
  92. /package/dist/src/{config.d.ts → core/config.d.ts} +0 -0
  93. /package/dist/src/{symbol-cache.js → core/symbol-cache.js} +0 -0
  94. /package/dist/src/{codec.d.ts → protocol/codec.d.ts} +0 -0
  95. /package/dist/src/{types.js → protocol/types.js} +0 -0
@@ -1,43 +1,75 @@
1
- import { PayloadType } from "../enums.js";
1
+ import { PayloadType } from "../protocol/enums.js";
2
+ /**
3
+ * Authentication module — app auth, account auth, token management. Used internally by connect() and available via ct.raw.auth for manual auth flows.
4
+ */
2
5
  export class CTraderAuth {
3
6
  connection;
4
7
  constructor(connection) {
5
8
  this.connection = connection;
6
9
  }
10
+ /**
11
+ * Authenticate the application with cTrader backend. Must be called before account auth.
12
+ */
7
13
  async authenticateApp(clientId, clientSecret) {
8
14
  await this.connection.request(PayloadType.APP_AUTH_REQ, { clientId, clientSecret });
9
15
  }
16
+ /**
17
+ * Authenticate a specific trading account. Requires app auth first.
18
+ */
10
19
  async authenticateAccount(ctidTraderAccountId, accessToken) {
11
- await this.connection.request(PayloadType.ACCOUNT_AUTH_REQ, { ctidTraderAccountId, accessToken });
20
+ await this.connection.request(PayloadType.ACCOUNT_AUTH_REQ, {
21
+ ctidTraderAccountId,
22
+ accessToken,
23
+ });
12
24
  }
25
+ /**
26
+ * Convenience: app auth + account auth in one call
27
+ */
13
28
  async authenticate(opts) {
14
29
  await this.authenticateApp(opts.clientId, opts.clientSecret);
15
30
  await this.authenticateAccount(opts.ctidTraderAccountId, opts.accessToken);
16
31
  }
32
+ /**
33
+ * Get all trading accounts associated with an access token
34
+ */
17
35
  async getAccountsByToken(accessToken) {
18
- const res = await this.connection.request(PayloadType.GET_ACCOUNTS_BY_TOKEN_REQ, { accessToken });
19
- const accounts = res["ctidTraderAccount"];
36
+ const res = await this.connection.request(PayloadType.GET_ACCOUNTS_BY_TOKEN_REQ, {
37
+ accessToken,
38
+ });
39
+ const accounts = res.ctidTraderAccount;
20
40
  return Array.isArray(accounts) ? accounts : [];
21
41
  }
42
+ /**
43
+ * Get the cTrader ID profile for a token
44
+ */
22
45
  async getCtidProfile(accessToken) {
23
46
  const res = await this.connection.request(PayloadType.GET_CTID_PROFILE_REQ, { accessToken });
24
- return res["profile"];
47
+ return res.profile;
25
48
  }
49
+ /**
50
+ * Exchange a refresh token for a new access/refresh token pair
51
+ */
26
52
  async refreshToken(refreshToken) {
27
53
  const res = await this.connection.request(PayloadType.REFRESH_TOKEN_REQ, { refreshToken });
28
54
  return {
29
- accessToken: res["accessToken"],
30
- tokenType: res["tokenType"],
31
- expiresIn: res["expiresIn"],
32
- refreshToken: res["refreshToken"],
55
+ accessToken: res.accessToken,
56
+ tokenType: res.tokenType,
57
+ expiresIn: res.expiresIn,
58
+ refreshToken: res.refreshToken,
33
59
  };
34
60
  }
61
+ /**
62
+ * Disconnect a specific account from the session
63
+ */
35
64
  async logout(ctidTraderAccountId) {
36
65
  await this.connection.request(PayloadType.ACCOUNT_LOGOUT_REQ, { ctidTraderAccountId });
37
66
  }
67
+ /**
68
+ * Get the cTrader Open API protocol version
69
+ */
38
70
  async getApiVersion() {
39
71
  const res = await this.connection.request(PayloadType.VERSION_REQ, {});
40
- return res["version"];
72
+ return res.version;
41
73
  }
42
74
  }
43
75
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/modules/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,OAAO,WAAW;IACN,UAAU,CAAoB;IAE/C,YAAY,UAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,YAAoB;QAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,mBAA2B,EAAE,WAAmB;QACzE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAKlB;QACA,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAClG,MAAM,QAAQ,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC,SAAS,CAAgB,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAAoB;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3F,OAAO;YACN,WAAW,EAAE,GAAG,CAAC,aAAa,CAAW;YACzC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAW;YACrC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAW;YACrC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAW;SAC3C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,mBAA2B;QACvC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,GAAG,CAAC,SAAS,CAAW,CAAC;IACjC,CAAC;CACD"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/modules/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;GAEG;AACH,MAAM,OAAO,WAAW;IACN,UAAU,CAAoB;IAE/C,YAAY,UAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,YAAoB;QAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,mBAA2B,EAAE,WAAmB;QACzE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC3D,mBAAmB;YACnB,WAAW;SACX,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,IAKlB;QACA,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE;YAChF,WAAW;SACX,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC;QACvC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC,OAAsB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,YAAoB;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3F,OAAO;YACN,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,YAAY,EAAE,GAAG,CAAC,YAAsB;SACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,mBAA2B;QACvC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,GAAG,CAAC,OAAiB,CAAC;IAC9B,CAAC;CACD"}
@@ -1,6 +1,9 @@
1
- import type { CTraderConnection } from "../connection.js";
2
- import { QuoteType, TrendbarPeriod } from "../enums.js";
3
- import type { ArchivedSymbol, Asset, AssetClass, DepthEvent, FullSymbol, LightSymbol, SpotEvent, SymbolCategory, SymbolChangedEvent, TickData, Trendbar } from "../types.js";
1
+ import type { CTraderConnection } from "../core/connection.js";
2
+ import { type QuoteType, TrendbarPeriod } from "../protocol/enums.js";
3
+ import type { ArchivedSymbol, Asset, AssetClass, DepthEvent, FullSymbol, LightSymbol, SpotEvent, SymbolCategory, SymbolChangedEvent, TickData, Trendbar } from "../protocol/types.js";
4
+ /**
5
+ * Parameters for historical candlestick data request
6
+ */
4
7
  export interface GetTrendbarsParams {
5
8
  symbolId: number;
6
9
  period: TrendbarPeriod;
@@ -8,12 +11,18 @@ export interface GetTrendbarsParams {
8
11
  toTimestamp?: number;
9
12
  count?: number;
10
13
  }
14
+ /**
15
+ * Parameters for historical tick data request
16
+ */
11
17
  export interface GetTickDataParams {
12
18
  symbolId: number;
13
19
  type: QuoteType;
14
20
  fromTimestamp?: number;
15
21
  toTimestamp?: number;
16
22
  }
23
+ /**
24
+ * Low-level market data operations — symbols, spot prices, trendbars, depth. Use CTrader (client.ts) for the high-level API.
25
+ */
17
26
  export declare class CTraderMarket {
18
27
  private readonly connection;
19
28
  private accountId;
@@ -24,29 +33,68 @@ export declare class CTraderMarket {
24
33
  setAccountId(accountId: number): void;
25
34
  getAssets(): Promise<Asset[]>;
26
35
  getAssetClasses(): Promise<AssetClass[]>;
36
+ /**
37
+ * Get list of symbols, optionally including archived ones
38
+ */
27
39
  getSymbols(includeArchived?: boolean): Promise<{
28
40
  symbols: LightSymbol[];
29
41
  archivedSymbols: ArchivedSymbol[];
30
42
  }>;
43
+ /**
44
+ * Get full symbol info by IDs
45
+ */
31
46
  getSymbolsById(symbolIds: number[]): Promise<FullSymbol[]>;
32
47
  getSymbolCategories(): Promise<SymbolCategory[]>;
33
48
  getSymbolsForConversion(firstAssetId: number, lastAssetId: number): Promise<LightSymbol[]>;
49
+ /**
50
+ * Subscribe to live spot prices
51
+ */
34
52
  subscribeSpots(symbolIds: number[], subscribeToSpotTimestamp?: boolean): Promise<void>;
53
+ /**
54
+ * Unsubscribe from spot prices
55
+ */
35
56
  unsubscribeSpots(symbolIds: number[]): Promise<void>;
57
+ /**
58
+ * Subscribe to live trendbar updates
59
+ */
36
60
  subscribeLiveTrendbar(symbolId: number, period: TrendbarPeriod): Promise<void>;
61
+ /**
62
+ * Unsubscribe from live trendbar updates
63
+ */
37
64
  unsubscribeLiveTrendbar(symbolId: number, period: TrendbarPeriod): Promise<void>;
65
+ /**
66
+ * Subscribe to market depth
67
+ */
38
68
  subscribeDepth(symbolIds: number[]): Promise<void>;
69
+ /**
70
+ * Unsubscribe from market depth
71
+ */
39
72
  unsubscribeDepth(symbolIds: number[]): Promise<void>;
73
+ /**
74
+ * Get historical trendbar/candle data
75
+ */
40
76
  getTrendbars(params: GetTrendbarsParams): Promise<{
41
77
  trendbars: Trendbar[];
42
78
  hasMore: boolean;
43
79
  }>;
80
+ /**
81
+ * Get historical tick data
82
+ */
44
83
  getTickData(params: GetTickDataParams): Promise<{
45
84
  ticks: TickData[];
46
85
  hasMore: boolean;
47
86
  }>;
87
+ /**
88
+ * Subscribe to spot price events
89
+ */
48
90
  onSpot(handler: (event: SpotEvent) => void): () => void;
91
+ /**
92
+ * Subscribe to market depth events
93
+ */
49
94
  onDepth(handler: (event: DepthEvent) => void): () => void;
95
+ /**
96
+ * Subscribe to symbol change events
97
+ */
50
98
  onSymbolChanged(handler: (event: SymbolChangedEvent) => void): () => void;
51
99
  restoreSubscriptions(): Promise<void>;
52
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/modules/market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/modules/market.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAe,KAAK,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EACX,cAAc,EACd,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAsCD;;GAEG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA0C;IACtF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;gBAElD,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM;IAK5D,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/B,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAO7B,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAO9C;;OAEG;IAEG,UAAU,CACf,eAAe,UAAQ,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAAC,eAAe,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAWzE;;OAEG;IAEG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQ1D,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOhD,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAShG;;OAEG;IAEG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,wBAAwB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5F;;OAEG;IAEG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;OAEG;IAEG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpF;;OAEG;IAEG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF;;OAEG;IAEG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD;;OAEG;IAEG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;OAEG;IAEG,YAAY,CACjB,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC;QAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAmBvD;;OAEG;IAEG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAiB9F;;OAEG;IAEH,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAMvD;;OAEG;IAEH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAMzD;;OAEG;IAEH,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;IAMnE,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB3C"}
@@ -1,4 +1,4 @@
1
- import { PayloadType, TrendbarPeriod } from "../enums.js";
1
+ import { PayloadType, TrendbarPeriod } from "../protocol/enums.js";
2
2
  /** Approximate milliseconds per trendbar period (used for fromTimestamp default). */
3
3
  function periodMs(period) {
4
4
  switch (period) {
@@ -34,6 +34,9 @@ function periodMs(period) {
34
34
  return 3_600_000;
35
35
  }
36
36
  }
37
+ /**
38
+ * Low-level market data operations — symbols, spot prices, trendbars, depth. Use CTrader (client.ts) for the high-level API.
39
+ */
37
40
  export class CTraderMarket {
38
41
  connection;
39
42
  accountId;
@@ -51,36 +54,42 @@ export class CTraderMarket {
51
54
  const res = await this.connection.request(PayloadType.ASSET_LIST_REQ, {
52
55
  ctidTraderAccountId: this.accountId,
53
56
  });
54
- return res["asset"] ?? [];
57
+ return res.asset ?? [];
55
58
  }
56
59
  async getAssetClasses() {
57
60
  const res = await this.connection.request(PayloadType.ASSET_CLASS_LIST_REQ, {
58
61
  ctidTraderAccountId: this.accountId,
59
62
  });
60
- return res["assetClass"] ?? [];
63
+ return res.assetClass ?? [];
61
64
  }
65
+ /**
66
+ * Get list of symbols, optionally including archived ones
67
+ */
62
68
  async getSymbols(includeArchived = false) {
63
69
  const res = await this.connection.request(PayloadType.SYMBOLS_LIST_REQ, {
64
70
  ctidTraderAccountId: this.accountId,
65
71
  includeArchivedSymbols: includeArchived,
66
72
  });
67
73
  return {
68
- symbols: res["symbol"] ?? [],
69
- archivedSymbols: res["archivedSymbol"] ?? [],
74
+ symbols: res.symbol ?? [],
75
+ archivedSymbols: res.archivedSymbol ?? [],
70
76
  };
71
77
  }
78
+ /**
79
+ * Get full symbol info by IDs
80
+ */
72
81
  async getSymbolsById(symbolIds) {
73
82
  const res = await this.connection.request(PayloadType.SYMBOL_BY_ID_REQ, {
74
83
  ctidTraderAccountId: this.accountId,
75
84
  symbolId: symbolIds,
76
85
  });
77
- return res["symbol"] ?? [];
86
+ return res.symbol ?? [];
78
87
  }
79
88
  async getSymbolCategories() {
80
89
  const res = await this.connection.request(PayloadType.SYMBOL_CATEGORY_LIST_REQ, {
81
90
  ctidTraderAccountId: this.accountId,
82
91
  });
83
- return res["symbolCategory"] ?? [];
92
+ return res.symbolCategory ?? [];
84
93
  }
85
94
  async getSymbolsForConversion(firstAssetId, lastAssetId) {
86
95
  const res = await this.connection.request(PayloadType.SYMBOLS_FOR_CONVERSION_REQ, {
@@ -88,19 +97,25 @@ export class CTraderMarket {
88
97
  firstAssetId,
89
98
  lastAssetId,
90
99
  });
91
- return res["symbol"] ?? [];
100
+ return res.symbol ?? [];
92
101
  }
102
+ /**
103
+ * Subscribe to live spot prices
104
+ */
93
105
  async subscribeSpots(symbolIds, subscribeToSpotTimestamp) {
94
106
  const payload = {
95
107
  ctidTraderAccountId: this.accountId,
96
108
  symbolId: symbolIds,
97
109
  };
98
110
  if (subscribeToSpotTimestamp !== undefined)
99
- payload["subscribeToSpotTimestamp"] = subscribeToSpotTimestamp;
111
+ payload.subscribeToSpotTimestamp = subscribeToSpotTimestamp;
100
112
  await this.connection.request(PayloadType.SUBSCRIBE_SPOTS_REQ, payload);
101
113
  for (const id of symbolIds)
102
114
  this.activeSpotSubscriptions.add(id);
103
115
  }
116
+ /**
117
+ * Unsubscribe from spot prices
118
+ */
104
119
  async unsubscribeSpots(symbolIds) {
105
120
  await this.connection.request(PayloadType.UNSUBSCRIBE_SPOTS_REQ, {
106
121
  ctidTraderAccountId: this.accountId,
@@ -109,6 +124,9 @@ export class CTraderMarket {
109
124
  for (const id of symbolIds)
110
125
  this.activeSpotSubscriptions.delete(id);
111
126
  }
127
+ /**
128
+ * Subscribe to live trendbar updates
129
+ */
112
130
  async subscribeLiveTrendbar(symbolId, period) {
113
131
  await this.connection.request(PayloadType.SUBSCRIBE_LIVE_TRENDBAR_REQ, {
114
132
  ctidTraderAccountId: this.accountId,
@@ -122,6 +140,9 @@ export class CTraderMarket {
122
140
  }
123
141
  periods.add(period);
124
142
  }
143
+ /**
144
+ * Unsubscribe from live trendbar updates
145
+ */
125
146
  async unsubscribeLiveTrendbar(symbolId, period) {
126
147
  await this.connection.request(PayloadType.UNSUBSCRIBE_LIVE_TRENDBAR_REQ, {
127
148
  ctidTraderAccountId: this.accountId,
@@ -135,6 +156,9 @@ export class CTraderMarket {
135
156
  this.activeTrendbarSubscriptions.delete(symbolId);
136
157
  }
137
158
  }
159
+ /**
160
+ * Subscribe to market depth
161
+ */
138
162
  async subscribeDepth(symbolIds) {
139
163
  await this.connection.request(PayloadType.SUBSCRIBE_DEPTH_REQ, {
140
164
  ctidTraderAccountId: this.accountId,
@@ -143,6 +167,9 @@ export class CTraderMarket {
143
167
  for (const id of symbolIds)
144
168
  this.activeDepthSubscriptions.add(id);
145
169
  }
170
+ /**
171
+ * Unsubscribe from market depth
172
+ */
146
173
  async unsubscribeDepth(symbolIds) {
147
174
  await this.connection.request(PayloadType.UNSUBSCRIBE_DEPTH_REQ, {
148
175
  ctidTraderAccountId: this.accountId,
@@ -151,10 +178,12 @@ export class CTraderMarket {
151
178
  for (const id of symbolIds)
152
179
  this.activeDepthSubscriptions.delete(id);
153
180
  }
181
+ /**
182
+ * Get historical trendbar/candle data
183
+ */
154
184
  async getTrendbars(params) {
155
185
  const toTimestamp = params.toTimestamp ?? Date.now();
156
- const fromTimestamp = params.fromTimestamp ??
157
- toTimestamp - periodMs(params.period) * (params.count ?? 300) * 1.5;
186
+ const fromTimestamp = params.fromTimestamp ?? toTimestamp - periodMs(params.period) * (params.count ?? 300) * 1.5;
158
187
  const payload = {
159
188
  ctidTraderAccountId: this.accountId,
160
189
  symbolId: params.symbolId,
@@ -163,13 +192,16 @@ export class CTraderMarket {
163
192
  toTimestamp,
164
193
  };
165
194
  if (params.count !== undefined)
166
- payload["count"] = params.count;
195
+ payload.count = params.count;
167
196
  const res = await this.connection.request(PayloadType.GET_TRENDBARS_REQ, payload);
168
197
  return {
169
- trendbars: res["trendbar"] ?? [],
170
- hasMore: res["hasMore"] ?? false,
198
+ trendbars: res.trendbar ?? [],
199
+ hasMore: res.hasMore ?? false,
171
200
  };
172
201
  }
202
+ /**
203
+ * Get historical tick data
204
+ */
173
205
  async getTickData(params) {
174
206
  const toTimestamp = params.toTimestamp ?? Date.now();
175
207
  const fromTimestamp = params.fromTimestamp ?? toTimestamp - 3_600_000; // default 1 hour
@@ -182,20 +214,29 @@ export class CTraderMarket {
182
214
  };
183
215
  const res = await this.connection.request(PayloadType.GET_TICK_DATA_REQ, payload);
184
216
  return {
185
- ticks: res["tickData"] ?? [],
186
- hasMore: res["hasMore"] ?? false,
217
+ ticks: res.tickData ?? [],
218
+ hasMore: res.hasMore ?? false,
187
219
  };
188
220
  }
221
+ /**
222
+ * Subscribe to spot price events
223
+ */
189
224
  onSpot(handler) {
190
225
  return this.connection.on(PayloadType.SPOT_EVENT, (payload) => {
191
226
  handler(payload);
192
227
  });
193
228
  }
229
+ /**
230
+ * Subscribe to market depth events
231
+ */
194
232
  onDepth(handler) {
195
233
  return this.connection.on(PayloadType.DEPTH_EVENT, (payload) => {
196
234
  handler(payload);
197
235
  });
198
236
  }
237
+ /**
238
+ * Subscribe to symbol change events
239
+ */
199
240
  onSymbolChanged(handler) {
200
241
  return this.connection.on(PayloadType.SYMBOL_CHANGED_EVENT, (payload) => {
201
242
  handler(payload);
@@ -1 +1 @@
1
- {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/modules/market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/modules/market.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,66 @@
1
- import type { CTraderConnection } from "../connection.js";
2
- import { OrderTriggerMethod, TimeInForce, TradeSide } from "../enums.js";
3
- import type { ExecutionEvent, OrderErrorEvent, TrailingSLChangedEvent } from "../types.js";
1
+ import type { CTraderConnection } from "../core/connection.js";
2
+ import { type OrderTriggerMethod, type TimeInForce, type TradeSide } from "../protocol/enums.js";
3
+ import type { ExecutionEvent, OrderErrorEvent, TrailingSLChangedEvent } from "../protocol/types.js";
4
+ /**
5
+ * Parameters for creating a new order via the cTrader protocol. Volume is in protocol units (1 lot = 100,000).
6
+ */
4
7
  export interface NewOrderParams {
8
+ /** Numeric symbol identifier */
5
9
  symbolId: number;
10
+ /** BUY or SELL */
6
11
  tradeSide: TradeSide;
12
+ /** Volume in protocol units (1 lot = 100,000 units). Use lotsToUnits() to convert. */
7
13
  volume: number;
8
14
  label?: string;
9
15
  comment?: string;
10
16
  clientOrderId?: string;
17
+ /** Existing position ID — set this to add volume to an existing position */
11
18
  positionId?: number;
12
19
  stopLoss?: number;
13
20
  takeProfit?: number;
21
+ /** Relative SL/TP distance in protocol units (use resolveSlTp helper for human-friendly conversion) */
14
22
  relativeStopLoss?: number;
23
+ /** Relative SL/TP distance in protocol units (use resolveSlTp helper for human-friendly conversion) */
15
24
  relativeTakeProfit?: number;
16
25
  guaranteedStopLoss?: boolean;
17
26
  trailingStopLoss?: boolean;
18
27
  stopTriggerMethod?: OrderTriggerMethod;
19
28
  }
29
+ /**
30
+ * Parameters for a limit order (fill at price or better)
31
+ */
20
32
  export interface LimitOrderParams extends NewOrderParams {
21
33
  limitPrice: number;
22
34
  timeInForce?: TimeInForce;
23
35
  expirationTimestamp?: number;
24
36
  }
37
+ /**
38
+ * Parameters for a stop order (triggers at price)
39
+ */
25
40
  export interface StopOrderParams extends NewOrderParams {
26
41
  stopPrice: number;
27
42
  timeInForce?: TimeInForce;
28
43
  expirationTimestamp?: number;
29
44
  }
45
+ /**
46
+ * Parameters for a market range order (market with slippage control)
47
+ */
30
48
  export interface MarketRangeOrderParams extends NewOrderParams {
31
49
  baseSlippagePrice: number;
32
50
  slippageInPoints: number;
33
51
  }
52
+ /**
53
+ * Parameters for a stop-limit order (stop trigger → limit order)
54
+ */
34
55
  export interface StopLimitOrderParams extends NewOrderParams {
35
56
  stopPrice: number;
36
57
  slippageInPoints: number;
37
58
  timeInForce?: TimeInForce;
38
59
  expirationTimestamp?: number;
39
60
  }
61
+ /**
62
+ * Fields to modify on an existing pending order. Only set the fields you want to change.
63
+ */
40
64
  export interface AmendOrderParams {
41
65
  volume?: number;
42
66
  limitPrice?: number;
@@ -51,6 +75,9 @@ export interface AmendOrderParams {
51
75
  trailingStopLoss?: boolean;
52
76
  stopTriggerMethod?: OrderTriggerMethod;
53
77
  }
78
+ /**
79
+ * Fields to modify SL/TP on an open position
80
+ */
54
81
  export interface AmendSltpParams {
55
82
  stopLoss?: number;
56
83
  takeProfit?: number;
@@ -58,22 +85,61 @@ export interface AmendSltpParams {
58
85
  trailingStopLoss?: boolean;
59
86
  stopLossTriggerMethod?: OrderTriggerMethod;
60
87
  }
88
+ /**
89
+ * Low-level trading operations — direct protocol wrappers for order management. Use CTrader (client.ts) for the high-level API with human-friendly units.
90
+ */
61
91
  export declare class CTraderTrading {
62
92
  private readonly connection;
63
93
  private accountId;
64
94
  constructor(connection: CTraderConnection, accountId: number);
65
95
  setAccountId(accountId: number): void;
96
+ /**
97
+ * Execute a market order
98
+ */
66
99
  marketOrder(params: NewOrderParams): Promise<ExecutionEvent>;
100
+ /**
101
+ * Place a limit order
102
+ */
67
103
  limitOrder(params: LimitOrderParams): Promise<ExecutionEvent>;
104
+ /**
105
+ * Place a stop order
106
+ */
68
107
  stopOrder(params: StopOrderParams): Promise<ExecutionEvent>;
108
+ /**
109
+ * Place a stop-limit order
110
+ */
69
111
  stopLimitOrder(params: StopLimitOrderParams): Promise<ExecutionEvent>;
112
+ /**
113
+ * Place a market range order
114
+ */
70
115
  marketRangeOrder(params: MarketRangeOrderParams): Promise<ExecutionEvent>;
116
+ /**
117
+ * Close a position partially or fully
118
+ */
71
119
  closePosition(positionId: number, volume: number): Promise<ExecutionEvent>;
120
+ /**
121
+ * Modify SL/TP on an existing position
122
+ */
72
123
  amendPositionSltp(positionId: number, params: AmendSltpParams): Promise<void>;
124
+ /**
125
+ * Modify an existing pending order
126
+ */
73
127
  amendOrder(orderId: number, params: AmendOrderParams): Promise<void>;
128
+ /**
129
+ * Cancel a pending order
130
+ */
74
131
  cancelOrder(orderId: number): Promise<void>;
132
+ /**
133
+ * Subscribe to order execution events
134
+ */
75
135
  onExecution(handler: (event: ExecutionEvent) => void): () => void;
136
+ /**
137
+ * Subscribe to order error events
138
+ */
76
139
  onOrderError(handler: (event: OrderErrorEvent) => void): () => void;
140
+ /**
141
+ * Subscribe to trailing stop loss change events
142
+ */
77
143
  onTrailingSLChanged(handler: (event: TrailingSLChangedEvent) => void): () => void;
78
144
  private sendNewOrder;
79
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trading.d.ts","sourceRoot":"","sources":["../../../src/modules/trading.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trading.d.ts","sourceRoot":"","sources":["../../../src/modules/trading.ts"],"names":[],"mappings":"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"}