ctrader-ts 0.1.11 → 1.0.1

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} +48 -4
  18. package/dist/src/core/connection.d.ts.map +1 -0
  19. package/dist/src/{connection.js → core/connection.js} +70 -14
  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 +65 -18
  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,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":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAe,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACT,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,kBAAkB;IACjC,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;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsCD,qBAAa,aAAa;IACxB,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,CAGxC;IACJ,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;IAUxC,UAAU,CACd,eAAe,UAAQ,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAAC,eAAe,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAYnE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQ1D,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAUhD,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,EAAE,CAAC;IAYnB,cAAc,CAClB,SAAS,EAAE,MAAM,EAAE,EACnB,wBAAwB,CAAC,EAAE,OAAO,GACjC,OAAO,CAAC,IAAI,CAAC;IAWV,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAcV,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAaV,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,YAAY,CAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC;QAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAuBjD,WAAW,CACf,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC;QAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAoBnD,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAMvD,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAMzD,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;IAMnE,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB5C"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/modules/market.ts"],"names":[],"mappings":"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"}
@@ -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,31 @@ 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) {
106
+ // Filter out symbols we already track -- the cTrader API throws
107
+ // ALREADY_SUBSCRIBED on duplicates, which kills watchState internally.
108
+ // Making this idempotent lets watchSpots + watchState overlap safely.
109
+ const newIds = symbolIds.filter((id) => !this.activeSpotSubscriptions.has(id));
110
+ if (newIds.length === 0)
111
+ return;
94
112
  const payload = {
95
113
  ctidTraderAccountId: this.accountId,
96
- symbolId: symbolIds,
114
+ symbolId: newIds,
97
115
  };
98
116
  if (subscribeToSpotTimestamp !== undefined)
99
- payload["subscribeToSpotTimestamp"] = subscribeToSpotTimestamp;
117
+ payload.subscribeToSpotTimestamp = subscribeToSpotTimestamp;
100
118
  await this.connection.request(PayloadType.SUBSCRIBE_SPOTS_REQ, payload);
101
- for (const id of symbolIds)
119
+ for (const id of newIds)
102
120
  this.activeSpotSubscriptions.add(id);
103
121
  }
122
+ /**
123
+ * Unsubscribe from spot prices
124
+ */
104
125
  async unsubscribeSpots(symbolIds) {
105
126
  await this.connection.request(PayloadType.UNSUBSCRIBE_SPOTS_REQ, {
106
127
  ctidTraderAccountId: this.accountId,
@@ -109,6 +130,9 @@ export class CTraderMarket {
109
130
  for (const id of symbolIds)
110
131
  this.activeSpotSubscriptions.delete(id);
111
132
  }
133
+ /**
134
+ * Subscribe to live trendbar updates
135
+ */
112
136
  async subscribeLiveTrendbar(symbolId, period) {
113
137
  await this.connection.request(PayloadType.SUBSCRIBE_LIVE_TRENDBAR_REQ, {
114
138
  ctidTraderAccountId: this.accountId,
@@ -122,6 +146,9 @@ export class CTraderMarket {
122
146
  }
123
147
  periods.add(period);
124
148
  }
149
+ /**
150
+ * Unsubscribe from live trendbar updates
151
+ */
125
152
  async unsubscribeLiveTrendbar(symbolId, period) {
126
153
  await this.connection.request(PayloadType.UNSUBSCRIBE_LIVE_TRENDBAR_REQ, {
127
154
  ctidTraderAccountId: this.accountId,
@@ -135,6 +162,9 @@ export class CTraderMarket {
135
162
  this.activeTrendbarSubscriptions.delete(symbolId);
136
163
  }
137
164
  }
165
+ /**
166
+ * Subscribe to market depth
167
+ */
138
168
  async subscribeDepth(symbolIds) {
139
169
  await this.connection.request(PayloadType.SUBSCRIBE_DEPTH_REQ, {
140
170
  ctidTraderAccountId: this.accountId,
@@ -143,6 +173,9 @@ export class CTraderMarket {
143
173
  for (const id of symbolIds)
144
174
  this.activeDepthSubscriptions.add(id);
145
175
  }
176
+ /**
177
+ * Unsubscribe from market depth
178
+ */
146
179
  async unsubscribeDepth(symbolIds) {
147
180
  await this.connection.request(PayloadType.UNSUBSCRIBE_DEPTH_REQ, {
148
181
  ctidTraderAccountId: this.accountId,
@@ -151,10 +184,12 @@ export class CTraderMarket {
151
184
  for (const id of symbolIds)
152
185
  this.activeDepthSubscriptions.delete(id);
153
186
  }
187
+ /**
188
+ * Get historical trendbar/candle data
189
+ */
154
190
  async getTrendbars(params) {
155
191
  const toTimestamp = params.toTimestamp ?? Date.now();
156
- const fromTimestamp = params.fromTimestamp ??
157
- toTimestamp - periodMs(params.period) * (params.count ?? 300) * 1.5;
192
+ const fromTimestamp = params.fromTimestamp ?? toTimestamp - periodMs(params.period) * (params.count ?? 300) * 1.5;
158
193
  const payload = {
159
194
  ctidTraderAccountId: this.accountId,
160
195
  symbolId: params.symbolId,
@@ -163,13 +198,16 @@ export class CTraderMarket {
163
198
  toTimestamp,
164
199
  };
165
200
  if (params.count !== undefined)
166
- payload["count"] = params.count;
201
+ payload.count = params.count;
167
202
  const res = await this.connection.request(PayloadType.GET_TRENDBARS_REQ, payload);
168
203
  return {
169
- trendbars: res["trendbar"] ?? [],
170
- hasMore: res["hasMore"] ?? false,
204
+ trendbars: res.trendbar ?? [],
205
+ hasMore: res.hasMore ?? false,
171
206
  };
172
207
  }
208
+ /**
209
+ * Get historical tick data
210
+ */
173
211
  async getTickData(params) {
174
212
  const toTimestamp = params.toTimestamp ?? Date.now();
175
213
  const fromTimestamp = params.fromTimestamp ?? toTimestamp - 3_600_000; // default 1 hour
@@ -182,20 +220,29 @@ export class CTraderMarket {
182
220
  };
183
221
  const res = await this.connection.request(PayloadType.GET_TICK_DATA_REQ, payload);
184
222
  return {
185
- ticks: res["tickData"] ?? [],
186
- hasMore: res["hasMore"] ?? false,
223
+ ticks: res.tickData ?? [],
224
+ hasMore: res.hasMore ?? false,
187
225
  };
188
226
  }
227
+ /**
228
+ * Subscribe to spot price events
229
+ */
189
230
  onSpot(handler) {
190
231
  return this.connection.on(PayloadType.SPOT_EVENT, (payload) => {
191
232
  handler(payload);
192
233
  });
193
234
  }
235
+ /**
236
+ * Subscribe to market depth events
237
+ */
194
238
  onDepth(handler) {
195
239
  return this.connection.on(PayloadType.DEPTH_EVENT, (payload) => {
196
240
  handler(payload);
197
241
  });
198
242
  }
243
+ /**
244
+ * Subscribe to symbol change events
245
+ */
199
246
  onSymbolChanged(handler) {
200
247
  return this.connection.on(PayloadType.SYMBOL_CHANGED_EVENT, (payload) => {
201
248
  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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"}