ctrader-ts 0.1.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 (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +301 -0
  3. package/assets/banner.png +0 -0
  4. package/dist/bin/auth.d.ts +3 -0
  5. package/dist/bin/auth.d.ts.map +1 -0
  6. package/dist/bin/auth.js +193 -0
  7. package/dist/bin/auth.js.map +1 -0
  8. package/dist/cli/index.d.ts +3 -0
  9. package/dist/cli/index.d.ts.map +1 -0
  10. package/dist/cli/index.js +359 -0
  11. package/dist/cli/index.js.map +1 -0
  12. package/dist/src/client.d.ts +310 -0
  13. package/dist/src/client.d.ts.map +1 -0
  14. package/dist/src/client.js +507 -0
  15. package/dist/src/client.js.map +1 -0
  16. package/dist/src/config.d.ts +18 -0
  17. package/dist/src/config.d.ts.map +1 -0
  18. package/dist/src/config.js +70 -0
  19. package/dist/src/config.js.map +1 -0
  20. package/dist/src/connect.d.ts +20 -0
  21. package/dist/src/connect.d.ts.map +1 -0
  22. package/dist/src/connect.js +36 -0
  23. package/dist/src/connect.js.map +1 -0
  24. package/dist/src/connection.d.ts +51 -0
  25. package/dist/src/connection.d.ts.map +1 -0
  26. package/dist/src/connection.js +292 -0
  27. package/dist/src/connection.js.map +1 -0
  28. package/dist/src/enums.d.ts +341 -0
  29. package/dist/src/enums.d.ts.map +1 -0
  30. package/dist/src/enums.js +369 -0
  31. package/dist/src/enums.js.map +1 -0
  32. package/dist/src/errors.d.ts +24 -0
  33. package/dist/src/errors.d.ts.map +1 -0
  34. package/dist/src/errors.js +47 -0
  35. package/dist/src/errors.js.map +1 -0
  36. package/dist/src/helpers.d.ts +28 -0
  37. package/dist/src/helpers.d.ts.map +1 -0
  38. package/dist/src/helpers.js +113 -0
  39. package/dist/src/helpers.js.map +1 -0
  40. package/dist/src/index.d.ts +12 -0
  41. package/dist/src/index.d.ts.map +1 -0
  42. package/dist/src/index.js +11 -0
  43. package/dist/src/index.js.map +1 -0
  44. package/dist/src/modules/account.d.ts +67 -0
  45. package/dist/src/modules/account.d.ts.map +1 -0
  46. package/dist/src/modules/account.js +168 -0
  47. package/dist/src/modules/account.js.map +1 -0
  48. package/dist/src/modules/auth.d.ts +20 -0
  49. package/dist/src/modules/auth.d.ts.map +1 -0
  50. package/dist/src/modules/auth.js +43 -0
  51. package/dist/src/modules/auth.js.map +1 -0
  52. package/dist/src/modules/market.d.ts +53 -0
  53. package/dist/src/modules/market.d.ts.map +1 -0
  54. package/dist/src/modules/market.js +192 -0
  55. package/dist/src/modules/market.js.map +1 -0
  56. package/dist/src/modules/trading.d.ts +80 -0
  57. package/dist/src/modules/trading.d.ts.map +1 -0
  58. package/dist/src/modules/trading.js +150 -0
  59. package/dist/src/modules/trading.js.map +1 -0
  60. package/dist/src/symbol-cache.d.ts +14 -0
  61. package/dist/src/symbol-cache.d.ts.map +1 -0
  62. package/dist/src/symbol-cache.js +41 -0
  63. package/dist/src/symbol-cache.js.map +1 -0
  64. package/dist/src/types.d.ts +413 -0
  65. package/dist/src/types.d.ts.map +1 -0
  66. package/dist/src/types.js +2 -0
  67. package/dist/src/types.js.map +1 -0
  68. package/package.json +61 -0
@@ -0,0 +1,413 @@
1
+ import type { AccessRights, AccountType, ChangeBalanceType, ChangeBonusType, CommissionType, DayOfWeek, DealStatus, ExecutionType, LimitedRiskMarginCalculationStrategy, MinCommissionType, NotificationType, OrderStatus, OrderTriggerMethod, OrderType, PositionStatus, StopOutStrategy, SymbolDistanceType, SwapCalculationType, TimeInForce, TotalMarginCalculationType, TradeSide, TradingMode, TrendbarPeriod } from "./enums.js";
2
+ export interface Envelope {
3
+ clientMsgId?: string;
4
+ payloadType: number;
5
+ payload?: Record<string, unknown>;
6
+ }
7
+ export type ConnectionState = {
8
+ status: "disconnected";
9
+ } | {
10
+ status: "connecting";
11
+ attempt: number;
12
+ } | {
13
+ status: "connected";
14
+ since: number;
15
+ } | {
16
+ status: "reconnecting";
17
+ attempt: number;
18
+ nextRetryMs: number;
19
+ };
20
+ export interface Asset {
21
+ assetId: number;
22
+ name: string;
23
+ displayName?: string;
24
+ digits?: number;
25
+ }
26
+ export interface AssetClass {
27
+ id?: number;
28
+ name?: string;
29
+ sortingNumber?: number;
30
+ }
31
+ export interface Interval {
32
+ startSecond: number;
33
+ endSecond: number;
34
+ }
35
+ export interface Holiday {
36
+ holidayId: number;
37
+ name: string;
38
+ description?: string;
39
+ scheduleTimeZone: string;
40
+ holidayDate: number;
41
+ isRecurring: boolean;
42
+ startSecond?: number;
43
+ endSecond?: number;
44
+ }
45
+ export interface SymbolCategory {
46
+ id: number;
47
+ assetClassId: number;
48
+ name: string;
49
+ sortingNumber?: number;
50
+ }
51
+ export interface LightSymbol {
52
+ symbolId: number;
53
+ symbolName?: string;
54
+ enabled?: boolean;
55
+ baseAssetId?: number;
56
+ quoteAssetId?: number;
57
+ symbolCategoryId?: number;
58
+ description?: string;
59
+ sortingNumber?: number;
60
+ }
61
+ export interface ArchivedSymbol {
62
+ symbolId: number;
63
+ name: string;
64
+ utcLastUpdateTimestamp: number;
65
+ description?: string;
66
+ }
67
+ export interface FullSymbol {
68
+ symbolId: number;
69
+ digits: number;
70
+ pipPosition: number;
71
+ enableShortSelling?: boolean;
72
+ guaranteedStopLoss?: boolean;
73
+ swapRollover3Days?: DayOfWeek;
74
+ swapLong?: number;
75
+ swapShort?: number;
76
+ maxVolume?: number;
77
+ minVolume?: number;
78
+ stepVolume?: number;
79
+ maxExposure?: number;
80
+ schedule?: Interval[];
81
+ commissionType?: CommissionType;
82
+ slDistance?: number;
83
+ tpDistance?: number;
84
+ gslDistance?: number;
85
+ gslCharge?: number;
86
+ distanceSetIn?: SymbolDistanceType;
87
+ minCommissionType?: MinCommissionType;
88
+ minCommissionAsset?: string;
89
+ rolloverCommission?: number;
90
+ skipRolloverDays?: number;
91
+ scheduleTimeZone?: string;
92
+ tradingMode?: TradingMode;
93
+ rolloverCommission3Days?: DayOfWeek;
94
+ swapCalculationType?: SwapCalculationType;
95
+ lotSize?: number;
96
+ preciseTradingCommissionRate?: number;
97
+ preciseMinCommission?: number;
98
+ holiday?: Holiday[];
99
+ pnlConversionFeeRate?: number;
100
+ leverageId?: number;
101
+ swapPeriod?: number;
102
+ swapTime?: number;
103
+ skipSWAPPeriods?: number;
104
+ chargeSwapAtWeekends?: boolean;
105
+ measurementUnits?: string;
106
+ }
107
+ export interface CtidTraderAccount {
108
+ ctidTraderAccountId: number;
109
+ isLive?: boolean;
110
+ traderLogin?: number;
111
+ lastClosingDealTimestamp?: number;
112
+ lastBalanceUpdateTimestamp?: number;
113
+ brokerTitleShort?: string;
114
+ }
115
+ export interface CtidProfile {
116
+ userId: number;
117
+ }
118
+ export interface Trader {
119
+ ctidTraderAccountId: number;
120
+ balance: number;
121
+ balanceVersion?: number;
122
+ managerBonus?: number;
123
+ ibBonus?: number;
124
+ nonWithdrawableBonus?: number;
125
+ accessRights?: AccessRights;
126
+ depositAssetId: number;
127
+ swapFree?: boolean;
128
+ leverageInCents?: number;
129
+ totalMarginCalculationType?: TotalMarginCalculationType;
130
+ maxLeverage?: number;
131
+ traderLogin?: number;
132
+ accountType?: AccountType;
133
+ brokerName?: string;
134
+ registrationTimestamp?: number;
135
+ isLimitedRisk?: boolean;
136
+ limitedRiskMarginCalculationStrategy?: LimitedRiskMarginCalculationStrategy;
137
+ moneyDigits?: number;
138
+ fairStopOut?: boolean;
139
+ stopOutStrategy?: StopOutStrategy;
140
+ }
141
+ export interface TradeData {
142
+ symbolId: number;
143
+ volume: number;
144
+ tradeSide: TradeSide;
145
+ openTimestamp?: number;
146
+ label?: string;
147
+ guaranteedStopLoss?: boolean;
148
+ comment?: string;
149
+ measurementUnits?: string;
150
+ closeTimestamp?: number;
151
+ }
152
+ export interface Position {
153
+ positionId: number;
154
+ tradeData: TradeData;
155
+ positionStatus: PositionStatus;
156
+ swap: number;
157
+ price?: number;
158
+ stopLoss?: number;
159
+ takeProfit?: number;
160
+ utcLastUpdateTimestamp?: number;
161
+ commission?: number;
162
+ marginRate?: number;
163
+ mirroringCommission?: number;
164
+ guaranteedStopLoss?: boolean;
165
+ usedMargin?: number;
166
+ stopLossTriggerMethod?: OrderTriggerMethod;
167
+ moneyDigits?: number;
168
+ trailingStopLoss?: boolean;
169
+ }
170
+ export interface Order {
171
+ orderId: number;
172
+ tradeData: TradeData;
173
+ orderType: OrderType;
174
+ orderStatus: OrderStatus;
175
+ expirationTimestamp?: number;
176
+ executionPrice?: number;
177
+ executedVolume?: number;
178
+ utcLastUpdateTimestamp?: number;
179
+ baseSlippagePrice?: number;
180
+ slippageInPoints?: number;
181
+ closingOrder?: boolean;
182
+ limitPrice?: number;
183
+ stopPrice?: number;
184
+ stopLoss?: number;
185
+ takeProfit?: number;
186
+ clientOrderId?: string;
187
+ timeInForce?: TimeInForce;
188
+ positionId?: number;
189
+ relativeStopLoss?: number;
190
+ relativeTakeProfit?: number;
191
+ isStopOut?: boolean;
192
+ trailingStopLoss?: boolean;
193
+ stopTriggerMethod?: OrderTriggerMethod;
194
+ }
195
+ export interface ClosePositionDetail {
196
+ entryPrice: number;
197
+ grossProfit: number;
198
+ swap: number;
199
+ commission: number;
200
+ balance: number;
201
+ quoteToDepositConversionRate?: number;
202
+ closedVolume?: number;
203
+ balanceVersion?: number;
204
+ moneyDigits?: number;
205
+ pnlConversionFee?: number;
206
+ }
207
+ export interface Deal {
208
+ dealId: number;
209
+ orderId: number;
210
+ positionId: number;
211
+ volume: number;
212
+ filledVolume: number;
213
+ symbolId: number;
214
+ createTimestamp: number;
215
+ executionTimestamp: number;
216
+ utcLastUpdateTimestamp?: number;
217
+ executionPrice?: number;
218
+ tradeSide: TradeSide;
219
+ dealStatus: DealStatus;
220
+ marginRate?: number;
221
+ commission?: number;
222
+ baseToUsdConversionRate?: number;
223
+ closePositionDetail?: ClosePositionDetail;
224
+ moneyDigits?: number;
225
+ }
226
+ export interface DealOffset {
227
+ dealId: number;
228
+ volume: number;
229
+ executionTimestamp?: number;
230
+ executionPrice?: number;
231
+ }
232
+ export interface BonusDepositWithdraw {
233
+ operationType: ChangeBonusType;
234
+ bonusHistoryId: number;
235
+ managerBonus: number;
236
+ managerDelta: number;
237
+ ibBonus: number;
238
+ ibDelta: number;
239
+ changeBonusTimestamp: number;
240
+ externalNote?: string;
241
+ introducingBrokerId?: number;
242
+ moneyDigits?: number;
243
+ }
244
+ export interface DepositWithdraw {
245
+ operationType: ChangeBalanceType;
246
+ balanceHistoryId: number;
247
+ balance: number;
248
+ delta: number;
249
+ changeBalanceTimestamp: number;
250
+ externalNote?: string;
251
+ balanceVersion?: number;
252
+ equity?: number;
253
+ moneyDigits?: number;
254
+ }
255
+ export interface Trendbar {
256
+ volume: number;
257
+ period?: TrendbarPeriod;
258
+ low?: number;
259
+ deltaOpen?: number;
260
+ deltaClose?: number;
261
+ deltaHigh?: number;
262
+ utcTimestampInMinutes?: number;
263
+ }
264
+ export interface TickData {
265
+ timestamp: number;
266
+ tick: number;
267
+ }
268
+ export interface DepthQuote {
269
+ id: number;
270
+ size: number;
271
+ bid?: number;
272
+ ask?: number;
273
+ }
274
+ export interface ExpectedMargin {
275
+ volume: number;
276
+ buyMargin: number;
277
+ sellMargin: number;
278
+ }
279
+ export interface PositionUnrealizedPnL {
280
+ positionId: number;
281
+ grossUnrealizedPnL: number;
282
+ netUnrealizedPnL: number;
283
+ }
284
+ export interface DynamicLeverageTier {
285
+ volume: number;
286
+ leverage: number;
287
+ }
288
+ export interface DynamicLeverage {
289
+ leverageId: number;
290
+ tiers: DynamicLeverageTier[];
291
+ }
292
+ export interface MarginCall {
293
+ marginCallType: NotificationType;
294
+ marginLevelThreshold: number;
295
+ utcLastUpdateTimestamp?: number;
296
+ }
297
+ export interface SpotEvent {
298
+ ctidTraderAccountId: number;
299
+ symbolId: number;
300
+ bid?: number;
301
+ ask?: number;
302
+ trendbar?: Trendbar[];
303
+ sessionClose?: number;
304
+ timestamp?: number;
305
+ }
306
+ export interface ExecutionEvent {
307
+ ctidTraderAccountId: number;
308
+ executionType: ExecutionType;
309
+ position?: Position;
310
+ order?: Order;
311
+ deal?: Deal;
312
+ bonusDepositWithdraw?: BonusDepositWithdraw;
313
+ depositWithdraw?: DepositWithdraw;
314
+ errorCode?: string;
315
+ isServerEvent?: boolean;
316
+ }
317
+ export interface OrderErrorEvent {
318
+ ctidTraderAccountId: number;
319
+ errorCode: string;
320
+ orderId?: number;
321
+ positionId?: number;
322
+ description?: string;
323
+ }
324
+ export interface TraderUpdatedEvent {
325
+ ctidTraderAccountId: number;
326
+ trader: Trader;
327
+ }
328
+ export interface MarginChangedEvent {
329
+ ctidTraderAccountId: number;
330
+ positionId: number;
331
+ usedMargin: number;
332
+ moneyDigits?: number;
333
+ }
334
+ export interface TokenInvalidatedEvent {
335
+ ctidTraderAccountIds: number[];
336
+ reason?: string;
337
+ }
338
+ export interface ClientDisconnectEvent {
339
+ reason?: string;
340
+ }
341
+ export interface AccountDisconnectEvent {
342
+ ctidTraderAccountId: number;
343
+ }
344
+ export interface SymbolChangedEvent {
345
+ ctidTraderAccountId: number;
346
+ symbolId: number[];
347
+ }
348
+ export interface DepthEvent {
349
+ ctidTraderAccountId: number;
350
+ symbolId: number;
351
+ newQuotes?: DepthQuote[];
352
+ deletedQuotes?: number[];
353
+ }
354
+ export interface TrailingSLChangedEvent {
355
+ ctidTraderAccountId: number;
356
+ positionId: number;
357
+ orderId: number;
358
+ stopPrice: number;
359
+ utcLastUpdateTimestamp: number;
360
+ }
361
+ export interface MarginCallEvent {
362
+ ctidTraderAccountId: number;
363
+ marginCall: MarginCall;
364
+ }
365
+ export interface OAErrorPayload {
366
+ ctidTraderAccountId?: number;
367
+ errorCode: string;
368
+ description?: string;
369
+ maintenanceEndTimestamp?: number;
370
+ retryAfter?: number;
371
+ }
372
+ export interface TokenPair {
373
+ accessToken: string;
374
+ tokenType: string;
375
+ expiresIn: number;
376
+ refreshToken: string;
377
+ }
378
+ /**
379
+ * Human-friendly stop loss / take profit specification.
380
+ * Specify distance in pips, dollar amount, or percentage of equity.
381
+ */
382
+ export type SlTpSpec = {
383
+ pips: number;
384
+ } | {
385
+ dollars: number;
386
+ } | {
387
+ equity: number;
388
+ };
389
+ /**
390
+ * Full account state snapshot — balance, equity, margin, positions, and orders.
391
+ * Call this first to understand the current account situation before making any trading decisions.
392
+ */
393
+ export interface AccountState {
394
+ /** Account balance in deposit currency */
395
+ balance: number;
396
+ /** Current equity (balance + unrealised P&L) */
397
+ equity: number;
398
+ /** Margin currently in use across all positions */
399
+ usedMargin: number;
400
+ /** Available margin for new positions (equity - usedMargin) */
401
+ freeMargin: number;
402
+ /** Equity / usedMargin as a percentage, undefined when no positions open */
403
+ marginLevel?: number;
404
+ /** Sum of unrealised P&L across all open positions */
405
+ unrealizedPnl: number;
406
+ /** All currently open positions */
407
+ positions: Position[];
408
+ /** All pending orders (limit, stop, stop-limit) */
409
+ orders: Order[];
410
+ /** Decimal precision for monetary values (e.g. 2 = cents) */
411
+ moneyDigits: number;
412
+ }
413
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "ctrader-ts",
3
+ "version": "0.1.0",
4
+ "description": "Unofficial community TypeScript client for the cTrader Open API — full protocol coverage, type-safe, agent-friendly",
5
+ "keywords": [
6
+ "ctrader",
7
+ "ctrader-api",
8
+ "ctrader-open-api",
9
+ "spotware",
10
+ "trading",
11
+ "forex",
12
+ "websocket"
13
+ ],
14
+ "homepage": "https://github.com/thecommandcat/ctrader-ts",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/thecommandcat/ctrader-ts"
18
+ },
19
+ "license": "MIT",
20
+ "type": "module",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/src/index.d.ts",
24
+ "import": "./dist/src/index.js"
25
+ }
26
+ },
27
+ "main": "./dist/src/index.js",
28
+ "types": "./dist/src/index.d.ts",
29
+ "files": [
30
+ "dist",
31
+ "assets",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "bin": {
36
+ "ctrader-ts": "./dist/cli/index.js"
37
+ },
38
+ "scripts": {
39
+ "build": "tsc && chmod +x dist/cli/index.js dist/bin/auth.js",
40
+ "dev": "tsc --watch",
41
+ "test": "bun test",
42
+ "typecheck": "tsc --noEmit",
43
+ "lint": "bunx biome check src/ bin/ cli/",
44
+ "lint:fix": "bunx biome check --write src/ bin/ cli/",
45
+ "auth": "node dist/bin/auth.js",
46
+ "prepublishOnly": "bun run build"
47
+ },
48
+ "devDependencies": {
49
+ "@biomejs/biome": "^2.4.2",
50
+ "@types/bun": "latest",
51
+ "@types/node": "latest",
52
+ "typescript": "^5.8.0"
53
+ },
54
+ "engines": {
55
+ "node": ">=18.0.0"
56
+ },
57
+ "dependencies": {
58
+ "@clack/prompts": "^1.0.1",
59
+ "commander": "^14.0.3"
60
+ }
61
+ }