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,369 @@
1
+ export var PayloadType;
2
+ (function (PayloadType) {
3
+ PayloadType[PayloadType["PROTO_MESSAGE"] = 5] = "PROTO_MESSAGE";
4
+ PayloadType[PayloadType["ERROR_RES"] = 50] = "ERROR_RES";
5
+ PayloadType[PayloadType["HEARTBEAT_EVENT"] = 51] = "HEARTBEAT_EVENT";
6
+ PayloadType[PayloadType["APP_AUTH_REQ"] = 2100] = "APP_AUTH_REQ";
7
+ PayloadType[PayloadType["APP_AUTH_RES"] = 2101] = "APP_AUTH_RES";
8
+ PayloadType[PayloadType["ACCOUNT_AUTH_REQ"] = 2102] = "ACCOUNT_AUTH_REQ";
9
+ PayloadType[PayloadType["ACCOUNT_AUTH_RES"] = 2103] = "ACCOUNT_AUTH_RES";
10
+ PayloadType[PayloadType["VERSION_REQ"] = 2104] = "VERSION_REQ";
11
+ PayloadType[PayloadType["VERSION_RES"] = 2105] = "VERSION_RES";
12
+ PayloadType[PayloadType["NEW_ORDER_REQ"] = 2106] = "NEW_ORDER_REQ";
13
+ PayloadType[PayloadType["TRAILING_SL_CHANGED_EVENT"] = 2107] = "TRAILING_SL_CHANGED_EVENT";
14
+ PayloadType[PayloadType["CANCEL_ORDER_REQ"] = 2108] = "CANCEL_ORDER_REQ";
15
+ PayloadType[PayloadType["AMEND_ORDER_REQ"] = 2109] = "AMEND_ORDER_REQ";
16
+ PayloadType[PayloadType["AMEND_POSITION_SLTP_REQ"] = 2110] = "AMEND_POSITION_SLTP_REQ";
17
+ PayloadType[PayloadType["CLOSE_POSITION_REQ"] = 2111] = "CLOSE_POSITION_REQ";
18
+ PayloadType[PayloadType["ASSET_LIST_REQ"] = 2112] = "ASSET_LIST_REQ";
19
+ PayloadType[PayloadType["ASSET_LIST_RES"] = 2113] = "ASSET_LIST_RES";
20
+ PayloadType[PayloadType["SYMBOLS_LIST_REQ"] = 2114] = "SYMBOLS_LIST_REQ";
21
+ PayloadType[PayloadType["SYMBOLS_LIST_RES"] = 2115] = "SYMBOLS_LIST_RES";
22
+ PayloadType[PayloadType["SYMBOL_BY_ID_REQ"] = 2116] = "SYMBOL_BY_ID_REQ";
23
+ PayloadType[PayloadType["SYMBOL_BY_ID_RES"] = 2117] = "SYMBOL_BY_ID_RES";
24
+ PayloadType[PayloadType["SYMBOLS_FOR_CONVERSION_REQ"] = 2118] = "SYMBOLS_FOR_CONVERSION_REQ";
25
+ PayloadType[PayloadType["SYMBOLS_FOR_CONVERSION_RES"] = 2119] = "SYMBOLS_FOR_CONVERSION_RES";
26
+ PayloadType[PayloadType["SYMBOL_CHANGED_EVENT"] = 2120] = "SYMBOL_CHANGED_EVENT";
27
+ PayloadType[PayloadType["TRADER_REQ"] = 2121] = "TRADER_REQ";
28
+ PayloadType[PayloadType["TRADER_RES"] = 2122] = "TRADER_RES";
29
+ PayloadType[PayloadType["TRADER_UPDATED_EVENT"] = 2123] = "TRADER_UPDATED_EVENT";
30
+ PayloadType[PayloadType["RECONCILE_REQ"] = 2124] = "RECONCILE_REQ";
31
+ PayloadType[PayloadType["RECONCILE_RES"] = 2125] = "RECONCILE_RES";
32
+ PayloadType[PayloadType["EXECUTION_EVENT"] = 2126] = "EXECUTION_EVENT";
33
+ PayloadType[PayloadType["SUBSCRIBE_SPOTS_REQ"] = 2127] = "SUBSCRIBE_SPOTS_REQ";
34
+ PayloadType[PayloadType["SUBSCRIBE_SPOTS_RES"] = 2128] = "SUBSCRIBE_SPOTS_RES";
35
+ PayloadType[PayloadType["UNSUBSCRIBE_SPOTS_REQ"] = 2129] = "UNSUBSCRIBE_SPOTS_REQ";
36
+ PayloadType[PayloadType["UNSUBSCRIBE_SPOTS_RES"] = 2130] = "UNSUBSCRIBE_SPOTS_RES";
37
+ PayloadType[PayloadType["SPOT_EVENT"] = 2131] = "SPOT_EVENT";
38
+ PayloadType[PayloadType["ORDER_ERROR_EVENT"] = 2132] = "ORDER_ERROR_EVENT";
39
+ PayloadType[PayloadType["DEAL_LIST_REQ"] = 2133] = "DEAL_LIST_REQ";
40
+ PayloadType[PayloadType["DEAL_LIST_RES"] = 2134] = "DEAL_LIST_RES";
41
+ PayloadType[PayloadType["SUBSCRIBE_LIVE_TRENDBAR_REQ"] = 2135] = "SUBSCRIBE_LIVE_TRENDBAR_REQ";
42
+ PayloadType[PayloadType["UNSUBSCRIBE_LIVE_TRENDBAR_REQ"] = 2136] = "UNSUBSCRIBE_LIVE_TRENDBAR_REQ";
43
+ PayloadType[PayloadType["GET_TRENDBARS_REQ"] = 2137] = "GET_TRENDBARS_REQ";
44
+ PayloadType[PayloadType["GET_TRENDBARS_RES"] = 2138] = "GET_TRENDBARS_RES";
45
+ PayloadType[PayloadType["EXPECTED_MARGIN_REQ"] = 2139] = "EXPECTED_MARGIN_REQ";
46
+ PayloadType[PayloadType["EXPECTED_MARGIN_RES"] = 2140] = "EXPECTED_MARGIN_RES";
47
+ PayloadType[PayloadType["MARGIN_CHANGED_EVENT"] = 2141] = "MARGIN_CHANGED_EVENT";
48
+ PayloadType[PayloadType["OA_ERROR_RES"] = 2142] = "OA_ERROR_RES";
49
+ PayloadType[PayloadType["CASH_FLOW_HISTORY_REQ"] = 2143] = "CASH_FLOW_HISTORY_REQ";
50
+ PayloadType[PayloadType["CASH_FLOW_HISTORY_RES"] = 2144] = "CASH_FLOW_HISTORY_RES";
51
+ PayloadType[PayloadType["GET_TICK_DATA_REQ"] = 2145] = "GET_TICK_DATA_REQ";
52
+ PayloadType[PayloadType["GET_TICK_DATA_RES"] = 2146] = "GET_TICK_DATA_RES";
53
+ PayloadType[PayloadType["ACCOUNTS_TOKEN_INVALIDATED_EVENT"] = 2147] = "ACCOUNTS_TOKEN_INVALIDATED_EVENT";
54
+ PayloadType[PayloadType["CLIENT_DISCONNECT_EVENT"] = 2148] = "CLIENT_DISCONNECT_EVENT";
55
+ PayloadType[PayloadType["GET_ACCOUNTS_BY_TOKEN_REQ"] = 2149] = "GET_ACCOUNTS_BY_TOKEN_REQ";
56
+ PayloadType[PayloadType["GET_ACCOUNTS_BY_TOKEN_RES"] = 2150] = "GET_ACCOUNTS_BY_TOKEN_RES";
57
+ PayloadType[PayloadType["GET_CTID_PROFILE_REQ"] = 2151] = "GET_CTID_PROFILE_REQ";
58
+ PayloadType[PayloadType["GET_CTID_PROFILE_RES"] = 2152] = "GET_CTID_PROFILE_RES";
59
+ PayloadType[PayloadType["ASSET_CLASS_LIST_REQ"] = 2153] = "ASSET_CLASS_LIST_REQ";
60
+ PayloadType[PayloadType["ASSET_CLASS_LIST_RES"] = 2154] = "ASSET_CLASS_LIST_RES";
61
+ PayloadType[PayloadType["DEPTH_EVENT"] = 2155] = "DEPTH_EVENT";
62
+ PayloadType[PayloadType["SUBSCRIBE_DEPTH_REQ"] = 2156] = "SUBSCRIBE_DEPTH_REQ";
63
+ PayloadType[PayloadType["SUBSCRIBE_DEPTH_RES"] = 2157] = "SUBSCRIBE_DEPTH_RES";
64
+ PayloadType[PayloadType["UNSUBSCRIBE_DEPTH_REQ"] = 2158] = "UNSUBSCRIBE_DEPTH_REQ";
65
+ PayloadType[PayloadType["UNSUBSCRIBE_DEPTH_RES"] = 2159] = "UNSUBSCRIBE_DEPTH_RES";
66
+ PayloadType[PayloadType["SYMBOL_CATEGORY_LIST_REQ"] = 2160] = "SYMBOL_CATEGORY_LIST_REQ";
67
+ PayloadType[PayloadType["SYMBOL_CATEGORY_LIST_RES"] = 2161] = "SYMBOL_CATEGORY_LIST_RES";
68
+ PayloadType[PayloadType["ACCOUNT_LOGOUT_REQ"] = 2162] = "ACCOUNT_LOGOUT_REQ";
69
+ PayloadType[PayloadType["ACCOUNT_LOGOUT_RES"] = 2163] = "ACCOUNT_LOGOUT_RES";
70
+ PayloadType[PayloadType["ACCOUNT_DISCONNECT_EVENT"] = 2164] = "ACCOUNT_DISCONNECT_EVENT";
71
+ PayloadType[PayloadType["SUBSCRIBE_LIVE_TRENDBAR_RES"] = 2165] = "SUBSCRIBE_LIVE_TRENDBAR_RES";
72
+ PayloadType[PayloadType["UNSUBSCRIBE_LIVE_TRENDBAR_RES"] = 2166] = "UNSUBSCRIBE_LIVE_TRENDBAR_RES";
73
+ PayloadType[PayloadType["MARGIN_CALL_LIST_REQ"] = 2167] = "MARGIN_CALL_LIST_REQ";
74
+ PayloadType[PayloadType["MARGIN_CALL_LIST_RES"] = 2168] = "MARGIN_CALL_LIST_RES";
75
+ PayloadType[PayloadType["MARGIN_CALL_UPDATE_REQ"] = 2169] = "MARGIN_CALL_UPDATE_REQ";
76
+ PayloadType[PayloadType["MARGIN_CALL_UPDATE_RES"] = 2170] = "MARGIN_CALL_UPDATE_RES";
77
+ PayloadType[PayloadType["MARGIN_CALL_UPDATE_EVENT"] = 2171] = "MARGIN_CALL_UPDATE_EVENT";
78
+ PayloadType[PayloadType["MARGIN_CALL_TRIGGER_EVENT"] = 2172] = "MARGIN_CALL_TRIGGER_EVENT";
79
+ PayloadType[PayloadType["REFRESH_TOKEN_REQ"] = 2173] = "REFRESH_TOKEN_REQ";
80
+ PayloadType[PayloadType["REFRESH_TOKEN_RES"] = 2174] = "REFRESH_TOKEN_RES";
81
+ PayloadType[PayloadType["ORDER_LIST_REQ"] = 2175] = "ORDER_LIST_REQ";
82
+ PayloadType[PayloadType["ORDER_LIST_RES"] = 2176] = "ORDER_LIST_RES";
83
+ PayloadType[PayloadType["GET_DYNAMIC_LEVERAGE_REQ"] = 2177] = "GET_DYNAMIC_LEVERAGE_REQ";
84
+ PayloadType[PayloadType["GET_DYNAMIC_LEVERAGE_RES"] = 2178] = "GET_DYNAMIC_LEVERAGE_RES";
85
+ PayloadType[PayloadType["DEAL_LIST_BY_POSITION_REQ"] = 2179] = "DEAL_LIST_BY_POSITION_REQ";
86
+ PayloadType[PayloadType["DEAL_LIST_BY_POSITION_RES"] = 2180] = "DEAL_LIST_BY_POSITION_RES";
87
+ PayloadType[PayloadType["ORDER_DETAILS_REQ"] = 2181] = "ORDER_DETAILS_REQ";
88
+ PayloadType[PayloadType["ORDER_DETAILS_RES"] = 2182] = "ORDER_DETAILS_RES";
89
+ PayloadType[PayloadType["ORDER_LIST_BY_POSITION_REQ"] = 2183] = "ORDER_LIST_BY_POSITION_REQ";
90
+ PayloadType[PayloadType["ORDER_LIST_BY_POSITION_RES"] = 2184] = "ORDER_LIST_BY_POSITION_RES";
91
+ PayloadType[PayloadType["DEAL_OFFSET_LIST_REQ"] = 2185] = "DEAL_OFFSET_LIST_REQ";
92
+ PayloadType[PayloadType["DEAL_OFFSET_LIST_RES"] = 2186] = "DEAL_OFFSET_LIST_RES";
93
+ PayloadType[PayloadType["GET_POSITION_UNREALIZED_PNL_REQ"] = 2187] = "GET_POSITION_UNREALIZED_PNL_REQ";
94
+ PayloadType[PayloadType["GET_POSITION_UNREALIZED_PNL_RES"] = 2188] = "GET_POSITION_UNREALIZED_PNL_RES";
95
+ })(PayloadType || (PayloadType = {}));
96
+ export var OrderType;
97
+ (function (OrderType) {
98
+ OrderType[OrderType["MARKET"] = 1] = "MARKET";
99
+ OrderType[OrderType["LIMIT"] = 2] = "LIMIT";
100
+ OrderType[OrderType["STOP"] = 3] = "STOP";
101
+ OrderType[OrderType["STOP_LOSS_TAKE_PROFIT"] = 4] = "STOP_LOSS_TAKE_PROFIT";
102
+ OrderType[OrderType["MARKET_RANGE"] = 5] = "MARKET_RANGE";
103
+ OrderType[OrderType["STOP_LIMIT"] = 6] = "STOP_LIMIT";
104
+ })(OrderType || (OrderType = {}));
105
+ export var TradeSide;
106
+ (function (TradeSide) {
107
+ TradeSide[TradeSide["BUY"] = 1] = "BUY";
108
+ TradeSide[TradeSide["SELL"] = 2] = "SELL";
109
+ })(TradeSide || (TradeSide = {}));
110
+ export var TimeInForce;
111
+ (function (TimeInForce) {
112
+ TimeInForce[TimeInForce["GOOD_TILL_DATE"] = 1] = "GOOD_TILL_DATE";
113
+ TimeInForce[TimeInForce["GOOD_TILL_CANCEL"] = 2] = "GOOD_TILL_CANCEL";
114
+ TimeInForce[TimeInForce["IMMEDIATE_OR_CANCEL"] = 3] = "IMMEDIATE_OR_CANCEL";
115
+ TimeInForce[TimeInForce["FILL_OR_KILL"] = 4] = "FILL_OR_KILL";
116
+ TimeInForce[TimeInForce["MARKET_ON_OPEN"] = 5] = "MARKET_ON_OPEN";
117
+ })(TimeInForce || (TimeInForce = {}));
118
+ export var ExecutionType;
119
+ (function (ExecutionType) {
120
+ ExecutionType[ExecutionType["ORDER_ACCEPTED"] = 2] = "ORDER_ACCEPTED";
121
+ ExecutionType[ExecutionType["ORDER_FILLED"] = 3] = "ORDER_FILLED";
122
+ ExecutionType[ExecutionType["ORDER_REPLACED"] = 4] = "ORDER_REPLACED";
123
+ ExecutionType[ExecutionType["ORDER_CANCELLED"] = 5] = "ORDER_CANCELLED";
124
+ ExecutionType[ExecutionType["ORDER_EXPIRED"] = 6] = "ORDER_EXPIRED";
125
+ ExecutionType[ExecutionType["ORDER_REJECTED"] = 7] = "ORDER_REJECTED";
126
+ ExecutionType[ExecutionType["ORDER_CANCEL_REJECTED"] = 8] = "ORDER_CANCEL_REJECTED";
127
+ ExecutionType[ExecutionType["SWAP"] = 9] = "SWAP";
128
+ ExecutionType[ExecutionType["DEPOSIT_WITHDRAW"] = 10] = "DEPOSIT_WITHDRAW";
129
+ ExecutionType[ExecutionType["ORDER_PARTIAL_FILL"] = 11] = "ORDER_PARTIAL_FILL";
130
+ ExecutionType[ExecutionType["BONUS_DEPOSIT_WITHDRAW"] = 12] = "BONUS_DEPOSIT_WITHDRAW";
131
+ })(ExecutionType || (ExecutionType = {}));
132
+ export var PositionStatus;
133
+ (function (PositionStatus) {
134
+ PositionStatus[PositionStatus["OPEN"] = 1] = "OPEN";
135
+ PositionStatus[PositionStatus["CLOSED"] = 2] = "CLOSED";
136
+ PositionStatus[PositionStatus["CREATED"] = 3] = "CREATED";
137
+ PositionStatus[PositionStatus["ERROR"] = 4] = "ERROR";
138
+ })(PositionStatus || (PositionStatus = {}));
139
+ export var OrderStatus;
140
+ (function (OrderStatus) {
141
+ OrderStatus[OrderStatus["ACCEPTED"] = 1] = "ACCEPTED";
142
+ OrderStatus[OrderStatus["FILLED"] = 2] = "FILLED";
143
+ OrderStatus[OrderStatus["REJECTED"] = 3] = "REJECTED";
144
+ OrderStatus[OrderStatus["EXPIRED"] = 4] = "EXPIRED";
145
+ OrderStatus[OrderStatus["CANCELLED"] = 5] = "CANCELLED";
146
+ })(OrderStatus || (OrderStatus = {}));
147
+ export var DealStatus;
148
+ (function (DealStatus) {
149
+ DealStatus[DealStatus["FILLED"] = 2] = "FILLED";
150
+ DealStatus[DealStatus["PARTIALLY_FILLED"] = 3] = "PARTIALLY_FILLED";
151
+ DealStatus[DealStatus["REJECTED"] = 4] = "REJECTED";
152
+ DealStatus[DealStatus["INTERNALLY_REJECTED"] = 5] = "INTERNALLY_REJECTED";
153
+ DealStatus[DealStatus["ERROR"] = 6] = "ERROR";
154
+ DealStatus[DealStatus["MISSED"] = 7] = "MISSED";
155
+ })(DealStatus || (DealStatus = {}));
156
+ export var TrendbarPeriod;
157
+ (function (TrendbarPeriod) {
158
+ TrendbarPeriod[TrendbarPeriod["M1"] = 1] = "M1";
159
+ TrendbarPeriod[TrendbarPeriod["M2"] = 2] = "M2";
160
+ TrendbarPeriod[TrendbarPeriod["M3"] = 3] = "M3";
161
+ TrendbarPeriod[TrendbarPeriod["M4"] = 4] = "M4";
162
+ TrendbarPeriod[TrendbarPeriod["M5"] = 5] = "M5";
163
+ TrendbarPeriod[TrendbarPeriod["M10"] = 6] = "M10";
164
+ TrendbarPeriod[TrendbarPeriod["M15"] = 7] = "M15";
165
+ TrendbarPeriod[TrendbarPeriod["M30"] = 8] = "M30";
166
+ TrendbarPeriod[TrendbarPeriod["H1"] = 9] = "H1";
167
+ TrendbarPeriod[TrendbarPeriod["H4"] = 10] = "H4";
168
+ TrendbarPeriod[TrendbarPeriod["H12"] = 11] = "H12";
169
+ TrendbarPeriod[TrendbarPeriod["D1"] = 12] = "D1";
170
+ TrendbarPeriod[TrendbarPeriod["W1"] = 13] = "W1";
171
+ TrendbarPeriod[TrendbarPeriod["MN1"] = 14] = "MN1";
172
+ })(TrendbarPeriod || (TrendbarPeriod = {}));
173
+ export var QuoteType;
174
+ (function (QuoteType) {
175
+ QuoteType[QuoteType["BID"] = 1] = "BID";
176
+ QuoteType[QuoteType["ASK"] = 2] = "ASK";
177
+ })(QuoteType || (QuoteType = {}));
178
+ export var OrderTriggerMethod;
179
+ (function (OrderTriggerMethod) {
180
+ OrderTriggerMethod[OrderTriggerMethod["TRADE"] = 1] = "TRADE";
181
+ OrderTriggerMethod[OrderTriggerMethod["OPPOSITE"] = 2] = "OPPOSITE";
182
+ OrderTriggerMethod[OrderTriggerMethod["DOUBLE_TRADE"] = 3] = "DOUBLE_TRADE";
183
+ OrderTriggerMethod[OrderTriggerMethod["DOUBLE_OPPOSITE"] = 4] = "DOUBLE_OPPOSITE";
184
+ })(OrderTriggerMethod || (OrderTriggerMethod = {}));
185
+ export var DayOfWeek;
186
+ (function (DayOfWeek) {
187
+ DayOfWeek[DayOfWeek["NONE"] = 0] = "NONE";
188
+ DayOfWeek[DayOfWeek["MONDAY"] = 1] = "MONDAY";
189
+ DayOfWeek[DayOfWeek["TUESDAY"] = 2] = "TUESDAY";
190
+ DayOfWeek[DayOfWeek["WEDNESDAY"] = 3] = "WEDNESDAY";
191
+ DayOfWeek[DayOfWeek["THURSDAY"] = 4] = "THURSDAY";
192
+ DayOfWeek[DayOfWeek["FRIDAY"] = 5] = "FRIDAY";
193
+ DayOfWeek[DayOfWeek["SATURDAY"] = 6] = "SATURDAY";
194
+ DayOfWeek[DayOfWeek["SUNDAY"] = 7] = "SUNDAY";
195
+ })(DayOfWeek || (DayOfWeek = {}));
196
+ export var CommissionType;
197
+ (function (CommissionType) {
198
+ CommissionType[CommissionType["USD_PER_MILLION_USD"] = 1] = "USD_PER_MILLION_USD";
199
+ CommissionType[CommissionType["USD_PER_LOT"] = 2] = "USD_PER_LOT";
200
+ CommissionType[CommissionType["PERCENTAGE_OF_VALUE"] = 3] = "PERCENTAGE_OF_VALUE";
201
+ CommissionType[CommissionType["QUOTE_CCY_PER_LOT"] = 4] = "QUOTE_CCY_PER_LOT";
202
+ })(CommissionType || (CommissionType = {}));
203
+ export var SymbolDistanceType;
204
+ (function (SymbolDistanceType) {
205
+ SymbolDistanceType[SymbolDistanceType["SYMBOL_DISTANCE_IN_POINTS"] = 1] = "SYMBOL_DISTANCE_IN_POINTS";
206
+ SymbolDistanceType[SymbolDistanceType["SYMBOL_DISTANCE_IN_PERCENTAGE"] = 2] = "SYMBOL_DISTANCE_IN_PERCENTAGE";
207
+ })(SymbolDistanceType || (SymbolDistanceType = {}));
208
+ export var MinCommissionType;
209
+ (function (MinCommissionType) {
210
+ MinCommissionType[MinCommissionType["CURRENCY"] = 1] = "CURRENCY";
211
+ MinCommissionType[MinCommissionType["QUOTE_CURRENCY"] = 2] = "QUOTE_CURRENCY";
212
+ })(MinCommissionType || (MinCommissionType = {}));
213
+ export var TradingMode;
214
+ (function (TradingMode) {
215
+ TradingMode[TradingMode["ENABLED"] = 0] = "ENABLED";
216
+ TradingMode[TradingMode["DISABLED_WITHOUT_PENDINGS_EXECUTION"] = 1] = "DISABLED_WITHOUT_PENDINGS_EXECUTION";
217
+ TradingMode[TradingMode["DISABLED_WITH_PENDINGS_EXECUTION"] = 2] = "DISABLED_WITH_PENDINGS_EXECUTION";
218
+ TradingMode[TradingMode["CLOSE_ONLY_MODE"] = 3] = "CLOSE_ONLY_MODE";
219
+ })(TradingMode || (TradingMode = {}));
220
+ export var SwapCalculationType;
221
+ (function (SwapCalculationType) {
222
+ SwapCalculationType[SwapCalculationType["PIPS"] = 0] = "PIPS";
223
+ SwapCalculationType[SwapCalculationType["PERCENTAGE"] = 1] = "PERCENTAGE";
224
+ SwapCalculationType[SwapCalculationType["POINTS"] = 2] = "POINTS";
225
+ })(SwapCalculationType || (SwapCalculationType = {}));
226
+ export var AccessRights;
227
+ (function (AccessRights) {
228
+ AccessRights[AccessRights["FULL_ACCESS"] = 0] = "FULL_ACCESS";
229
+ AccessRights[AccessRights["CLOSE_ONLY"] = 1] = "CLOSE_ONLY";
230
+ AccessRights[AccessRights["NO_TRADING"] = 2] = "NO_TRADING";
231
+ AccessRights[AccessRights["NO_LOGIN"] = 3] = "NO_LOGIN";
232
+ })(AccessRights || (AccessRights = {}));
233
+ export var TotalMarginCalculationType;
234
+ (function (TotalMarginCalculationType) {
235
+ TotalMarginCalculationType[TotalMarginCalculationType["MAX"] = 0] = "MAX";
236
+ TotalMarginCalculationType[TotalMarginCalculationType["SUM"] = 1] = "SUM";
237
+ TotalMarginCalculationType[TotalMarginCalculationType["NET"] = 2] = "NET";
238
+ })(TotalMarginCalculationType || (TotalMarginCalculationType = {}));
239
+ export var AccountType;
240
+ (function (AccountType) {
241
+ AccountType[AccountType["HEDGED"] = 0] = "HEDGED";
242
+ AccountType[AccountType["NETTED"] = 1] = "NETTED";
243
+ AccountType[AccountType["SPREAD_BETTING"] = 2] = "SPREAD_BETTING";
244
+ })(AccountType || (AccountType = {}));
245
+ export var LimitedRiskMarginCalculationStrategy;
246
+ (function (LimitedRiskMarginCalculationStrategy) {
247
+ LimitedRiskMarginCalculationStrategy[LimitedRiskMarginCalculationStrategy["ACCORDING_TO_LEVERAGE"] = 0] = "ACCORDING_TO_LEVERAGE";
248
+ LimitedRiskMarginCalculationStrategy[LimitedRiskMarginCalculationStrategy["ACCORDING_TO_GSL"] = 1] = "ACCORDING_TO_GSL";
249
+ LimitedRiskMarginCalculationStrategy[LimitedRiskMarginCalculationStrategy["ACCORDING_TO_GSL_AND_LEVERAGE"] = 2] = "ACCORDING_TO_GSL_AND_LEVERAGE";
250
+ })(LimitedRiskMarginCalculationStrategy || (LimitedRiskMarginCalculationStrategy = {}));
251
+ export var StopOutStrategy;
252
+ (function (StopOutStrategy) {
253
+ StopOutStrategy[StopOutStrategy["MOST_MARGIN_USED_FIRST"] = 0] = "MOST_MARGIN_USED_FIRST";
254
+ StopOutStrategy[StopOutStrategy["MOST_LOSING_FIRST"] = 1] = "MOST_LOSING_FIRST";
255
+ })(StopOutStrategy || (StopOutStrategy = {}));
256
+ export var ClientPermissionScope;
257
+ (function (ClientPermissionScope) {
258
+ ClientPermissionScope[ClientPermissionScope["SCOPE_VIEW"] = 0] = "SCOPE_VIEW";
259
+ ClientPermissionScope[ClientPermissionScope["SCOPE_TRADE"] = 1] = "SCOPE_TRADE";
260
+ })(ClientPermissionScope || (ClientPermissionScope = {}));
261
+ export var NotificationType;
262
+ (function (NotificationType) {
263
+ NotificationType[NotificationType["MARGIN_LEVEL_THRESHOLD_1"] = 61] = "MARGIN_LEVEL_THRESHOLD_1";
264
+ NotificationType[NotificationType["MARGIN_LEVEL_THRESHOLD_2"] = 62] = "MARGIN_LEVEL_THRESHOLD_2";
265
+ NotificationType[NotificationType["MARGIN_LEVEL_THRESHOLD_3"] = 63] = "MARGIN_LEVEL_THRESHOLD_3";
266
+ })(NotificationType || (NotificationType = {}));
267
+ export var ChangeBonusType;
268
+ (function (ChangeBonusType) {
269
+ ChangeBonusType[ChangeBonusType["BONUS_DEPOSIT"] = 0] = "BONUS_DEPOSIT";
270
+ ChangeBonusType[ChangeBonusType["BONUS_WITHDRAW"] = 1] = "BONUS_WITHDRAW";
271
+ })(ChangeBonusType || (ChangeBonusType = {}));
272
+ export var ChangeBalanceType;
273
+ (function (ChangeBalanceType) {
274
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT"] = 0] = "BALANCE_DEPOSIT";
275
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW"] = 1] = "BALANCE_WITHDRAW";
276
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_STRATEGY_COMMISSION_INNER"] = 3] = "BALANCE_DEPOSIT_STRATEGY_COMMISSION_INNER";
277
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_STRATEGY_COMMISSION_INNER"] = 4] = "BALANCE_WITHDRAW_STRATEGY_COMMISSION_INNER";
278
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_IB_COMMISSIONS"] = 5] = "BALANCE_DEPOSIT_IB_COMMISSIONS";
279
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE"] = 6] = "BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE";
280
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_SUB_IB"] = 7] = "BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_SUB_IB";
281
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_BROKER"] = 8] = "BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_BROKER";
282
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_REBATE"] = 9] = "BALANCE_DEPOSIT_REBATE";
283
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_REBATE"] = 10] = "BALANCE_WITHDRAW_REBATE";
284
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_STRATEGY_COMMISSION_OUTER"] = 11] = "BALANCE_DEPOSIT_STRATEGY_COMMISSION_OUTER";
285
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_STRATEGY_COMMISSION_OUTER"] = 12] = "BALANCE_WITHDRAW_STRATEGY_COMMISSION_OUTER";
286
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_BONUS_COMPENSATION"] = 13] = "BALANCE_WITHDRAW_BONUS_COMPENSATION";
287
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE_TO_BROKER"] = 14] = "BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE_TO_BROKER";
288
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_DIVIDENDS"] = 15] = "BALANCE_DEPOSIT_DIVIDENDS";
289
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_DIVIDENDS"] = 16] = "BALANCE_WITHDRAW_DIVIDENDS";
290
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_GSL_CHARGE"] = 17] = "BALANCE_WITHDRAW_GSL_CHARGE";
291
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_ROLLOVER"] = 18] = "BALANCE_WITHDRAW_ROLLOVER";
292
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_NONWITHDRAWABLE_BONUS"] = 19] = "BALANCE_DEPOSIT_NONWITHDRAWABLE_BONUS";
293
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_NONWITHDRAWABLE_BONUS"] = 20] = "BALANCE_WITHDRAW_NONWITHDRAWABLE_BONUS";
294
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_SWAP"] = 21] = "BALANCE_DEPOSIT_SWAP";
295
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_SWAP"] = 22] = "BALANCE_WITHDRAW_SWAP";
296
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_MANAGEMENT_FEE"] = 27] = "BALANCE_DEPOSIT_MANAGEMENT_FEE";
297
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_MANAGEMENT_FEE"] = 28] = "BALANCE_WITHDRAW_MANAGEMENT_FEE";
298
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_PERFORMANCE_FEE"] = 29] = "BALANCE_DEPOSIT_PERFORMANCE_FEE";
299
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_FOR_SUBACCOUNT"] = 30] = "BALANCE_WITHDRAW_FOR_SUBACCOUNT";
300
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_TO_SUBACCOUNT"] = 31] = "BALANCE_DEPOSIT_TO_SUBACCOUNT";
301
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_FROM_SUBACCOUNT"] = 32] = "BALANCE_WITHDRAW_FROM_SUBACCOUNT";
302
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_FROM_SUBACCOUNT"] = 33] = "BALANCE_DEPOSIT_FROM_SUBACCOUNT";
303
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_COPY_FEE"] = 34] = "BALANCE_WITHDRAW_COPY_FEE";
304
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_INACTIVITY_FEE"] = 35] = "BALANCE_WITHDRAW_INACTIVITY_FEE";
305
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_TRANSFER"] = 36] = "BALANCE_DEPOSIT_TRANSFER";
306
+ ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_TRANSFER"] = 37] = "BALANCE_WITHDRAW_TRANSFER";
307
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_CONVERTED_BONUS"] = 38] = "BALANCE_DEPOSIT_CONVERTED_BONUS";
308
+ ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_NEGATIVE_BALANCE_PROTECTION"] = 39] = "BALANCE_DEPOSIT_NEGATIVE_BALANCE_PROTECTION";
309
+ })(ChangeBalanceType || (ChangeBalanceType = {}));
310
+ export var ProtoErrorCode;
311
+ (function (ProtoErrorCode) {
312
+ ProtoErrorCode[ProtoErrorCode["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
313
+ ProtoErrorCode[ProtoErrorCode["UNSUPPORTED_MESSAGE"] = 2] = "UNSUPPORTED_MESSAGE";
314
+ ProtoErrorCode[ProtoErrorCode["INVALID_REQUEST"] = 3] = "INVALID_REQUEST";
315
+ ProtoErrorCode[ProtoErrorCode["TIMEOUT_ERROR"] = 5] = "TIMEOUT_ERROR";
316
+ ProtoErrorCode[ProtoErrorCode["ENTITY_NOT_FOUND"] = 6] = "ENTITY_NOT_FOUND";
317
+ ProtoErrorCode[ProtoErrorCode["CANT_ROUTE_REQUEST"] = 7] = "CANT_ROUTE_REQUEST";
318
+ ProtoErrorCode[ProtoErrorCode["FRAME_TOO_LONG"] = 8] = "FRAME_TOO_LONG";
319
+ ProtoErrorCode[ProtoErrorCode["MARKET_CLOSED"] = 9] = "MARKET_CLOSED";
320
+ ProtoErrorCode[ProtoErrorCode["CONCURRENT_MODIFICATION"] = 10] = "CONCURRENT_MODIFICATION";
321
+ ProtoErrorCode[ProtoErrorCode["BLOCKED_PAYLOAD_TYPE"] = 11] = "BLOCKED_PAYLOAD_TYPE";
322
+ })(ProtoErrorCode || (ProtoErrorCode = {}));
323
+ export var ProtoOAErrorCode;
324
+ (function (ProtoOAErrorCode) {
325
+ ProtoOAErrorCode[ProtoOAErrorCode["OA_AUTH_TOKEN_EXPIRED"] = 1] = "OA_AUTH_TOKEN_EXPIRED";
326
+ ProtoOAErrorCode[ProtoOAErrorCode["ACCOUNT_NOT_AUTHORIZED"] = 2] = "ACCOUNT_NOT_AUTHORIZED";
327
+ ProtoOAErrorCode[ProtoOAErrorCode["RET_NO_SUCH_LOGIN"] = 12] = "RET_NO_SUCH_LOGIN";
328
+ ProtoOAErrorCode[ProtoOAErrorCode["ALREADY_LOGGED_IN"] = 14] = "ALREADY_LOGGED_IN";
329
+ ProtoOAErrorCode[ProtoOAErrorCode["RET_ACCOUNT_DISABLED"] = 64] = "RET_ACCOUNT_DISABLED";
330
+ ProtoOAErrorCode[ProtoOAErrorCode["CONNECTIONS_LIMIT_EXCEEDED"] = 67] = "CONNECTIONS_LIMIT_EXCEEDED";
331
+ ProtoOAErrorCode[ProtoOAErrorCode["WORSE_GSL_NOT_ALLOWED"] = 68] = "WORSE_GSL_NOT_ALLOWED";
332
+ ProtoOAErrorCode[ProtoOAErrorCode["SYMBOL_HAS_HOLIDAY"] = 69] = "SYMBOL_HAS_HOLIDAY";
333
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_CLIENT_AUTH_FAILURE"] = 101] = "CH_CLIENT_AUTH_FAILURE";
334
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_CLIENT_NOT_AUTHENTICATED"] = 102] = "CH_CLIENT_NOT_AUTHENTICATED";
335
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_CLIENT_ALREADY_AUTHENTICATED"] = 103] = "CH_CLIENT_ALREADY_AUTHENTICATED";
336
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_ACCESS_TOKEN_INVALID"] = 104] = "CH_ACCESS_TOKEN_INVALID";
337
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_SERVER_NOT_REACHABLE"] = 105] = "CH_SERVER_NOT_REACHABLE";
338
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_CTID_TRADER_ACCOUNT_NOT_FOUND"] = 106] = "CH_CTID_TRADER_ACCOUNT_NOT_FOUND";
339
+ ProtoOAErrorCode[ProtoOAErrorCode["CH_OA_CLIENT_NOT_FOUND"] = 107] = "CH_OA_CLIENT_NOT_FOUND";
340
+ ProtoOAErrorCode[ProtoOAErrorCode["REQUEST_FREQUENCY_EXCEEDED"] = 108] = "REQUEST_FREQUENCY_EXCEEDED";
341
+ ProtoOAErrorCode[ProtoOAErrorCode["SERVER_IS_UNDER_MAINTENANCE"] = 109] = "SERVER_IS_UNDER_MAINTENANCE";
342
+ ProtoOAErrorCode[ProtoOAErrorCode["CHANNEL_IS_BLOCKED"] = 110] = "CHANNEL_IS_BLOCKED";
343
+ ProtoOAErrorCode[ProtoOAErrorCode["NOT_SUBSCRIBED_TO_SPOTS"] = 112] = "NOT_SUBSCRIBED_TO_SPOTS";
344
+ ProtoOAErrorCode[ProtoOAErrorCode["ALREADY_SUBSCRIBED"] = 113] = "ALREADY_SUBSCRIBED";
345
+ ProtoOAErrorCode[ProtoOAErrorCode["SYMBOL_NOT_FOUND"] = 114] = "SYMBOL_NOT_FOUND";
346
+ ProtoOAErrorCode[ProtoOAErrorCode["UNKNOWN_SYMBOL"] = 115] = "UNKNOWN_SYMBOL";
347
+ ProtoOAErrorCode[ProtoOAErrorCode["INCORRECT_BOUNDARIES"] = 35] = "INCORRECT_BOUNDARIES";
348
+ ProtoOAErrorCode[ProtoOAErrorCode["NO_QUOTES"] = 117] = "NO_QUOTES";
349
+ ProtoOAErrorCode[ProtoOAErrorCode["NOT_ENOUGH_MONEY"] = 118] = "NOT_ENOUGH_MONEY";
350
+ ProtoOAErrorCode[ProtoOAErrorCode["MAX_EXPOSURE_REACHED"] = 119] = "MAX_EXPOSURE_REACHED";
351
+ ProtoOAErrorCode[ProtoOAErrorCode["POSITION_NOT_FOUND"] = 120] = "POSITION_NOT_FOUND";
352
+ ProtoOAErrorCode[ProtoOAErrorCode["ORDER_NOT_FOUND"] = 121] = "ORDER_NOT_FOUND";
353
+ ProtoOAErrorCode[ProtoOAErrorCode["POSITION_NOT_OPEN"] = 122] = "POSITION_NOT_OPEN";
354
+ ProtoOAErrorCode[ProtoOAErrorCode["POSITION_LOCKED"] = 123] = "POSITION_LOCKED";
355
+ ProtoOAErrorCode[ProtoOAErrorCode["TOO_MANY_POSITIONS"] = 124] = "TOO_MANY_POSITIONS";
356
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_VOLUME"] = 125] = "TRADING_BAD_VOLUME";
357
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_STOPS"] = 126] = "TRADING_BAD_STOPS";
358
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_PRICES"] = 127] = "TRADING_BAD_PRICES";
359
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_STAKE"] = 128] = "TRADING_BAD_STAKE";
360
+ ProtoOAErrorCode[ProtoOAErrorCode["PROTECTION_IS_TOO_CLOSE_TO_MARKET"] = 129] = "PROTECTION_IS_TOO_CLOSE_TO_MARKET";
361
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_EXPIRATION_DATE"] = 130] = "TRADING_BAD_EXPIRATION_DATE";
362
+ ProtoOAErrorCode[ProtoOAErrorCode["PENDING_EXECUTION"] = 131] = "PENDING_EXECUTION";
363
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_DISABLED"] = 132] = "TRADING_DISABLED";
364
+ ProtoOAErrorCode[ProtoOAErrorCode["TRADING_NOT_ALLOWED"] = 133] = "TRADING_NOT_ALLOWED";
365
+ ProtoOAErrorCode[ProtoOAErrorCode["UNABLE_TO_CANCEL_ORDER"] = 134] = "UNABLE_TO_CANCEL_ORDER";
366
+ ProtoOAErrorCode[ProtoOAErrorCode["UNABLE_TO_AMEND_ORDER"] = 135] = "UNABLE_TO_AMEND_ORDER";
367
+ ProtoOAErrorCode[ProtoOAErrorCode["SHORT_SELLING_NOT_ALLOWED"] = 136] = "SHORT_SELLING_NOT_ALLOWED";
368
+ })(ProtoOAErrorCode || (ProtoOAErrorCode = {}));
369
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare class CTraderError extends Error {
2
+ readonly code: string;
3
+ readonly description: string;
4
+ readonly retryAfter?: number;
5
+ readonly maintenanceEndTimestamp?: number;
6
+ constructor(opts: {
7
+ code: string;
8
+ description: string;
9
+ retryAfter?: number;
10
+ maintenanceEndTimestamp?: number;
11
+ });
12
+ get isAuthError(): boolean;
13
+ get isRateLimit(): boolean;
14
+ get isMaintenance(): boolean;
15
+ }
16
+ export declare class RequestTimeoutError extends Error {
17
+ readonly payloadType: number;
18
+ readonly clientMsgId: string;
19
+ constructor(payloadType: number, clientMsgId: string, timeoutMs: number);
20
+ }
21
+ export declare class NotConnectedError extends Error {
22
+ constructor();
23
+ }
24
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;gBAE9B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;KAAE;IAS9G,IAAI,WAAW,IAAI,OAAO,CASzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;CACD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMvE;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAK3C"}
@@ -0,0 +1,47 @@
1
+ export class CTraderError extends Error {
2
+ code;
3
+ description;
4
+ retryAfter;
5
+ maintenanceEndTimestamp;
6
+ constructor(opts) {
7
+ super(`[${opts.code}] ${opts.description}`);
8
+ this.name = "CTraderError";
9
+ this.code = opts.code;
10
+ this.description = opts.description;
11
+ if (opts.retryAfter !== undefined)
12
+ this.retryAfter = opts.retryAfter;
13
+ if (opts.maintenanceEndTimestamp !== undefined)
14
+ this.maintenanceEndTimestamp = opts.maintenanceEndTimestamp;
15
+ }
16
+ get isAuthError() {
17
+ return (this.code === "OA_AUTH_TOKEN_EXPIRED" ||
18
+ this.code === "ACCOUNT_NOT_AUTHORIZED" ||
19
+ this.code === "CH_CLIENT_AUTH_FAILURE" ||
20
+ this.code === "CH_CLIENT_NOT_AUTHENTICATED" ||
21
+ this.code === "CH_ACCESS_TOKEN_INVALID" ||
22
+ this.code === "OAUTH_TOKEN_INVALIDATED");
23
+ }
24
+ get isRateLimit() {
25
+ return this.code === "REQUEST_FREQUENCY_EXCEEDED" || this.code === "BLOCKED_PAYLOAD_TYPE";
26
+ }
27
+ get isMaintenance() {
28
+ return this.code === "SERVER_IS_UNDER_MAINTENANCE";
29
+ }
30
+ }
31
+ export class RequestTimeoutError extends Error {
32
+ payloadType;
33
+ clientMsgId;
34
+ constructor(payloadType, clientMsgId, timeoutMs) {
35
+ super(`Request timed out after ${timeoutMs}ms (payloadType: ${payloadType}, id: ${clientMsgId})`);
36
+ this.name = "RequestTimeoutError";
37
+ this.payloadType = payloadType;
38
+ this.clientMsgId = clientMsgId;
39
+ }
40
+ }
41
+ export class NotConnectedError extends Error {
42
+ constructor() {
43
+ super("Not connected to cTrader API");
44
+ this.name = "NotConnectedError";
45
+ }
46
+ }
47
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC7B,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,UAAU,CAAU;IACpB,uBAAuB,CAAU;IAE1C,YAAY,IAAkG;QAC7G,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACrE,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS;YAAE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAC7G,CAAC;IAED,IAAI,WAAW;QACd,OAAO,CACN,IAAI,CAAC,IAAI,KAAK,uBAAuB;YACrC,IAAI,CAAC,IAAI,KAAK,wBAAwB;YACtC,IAAI,CAAC,IAAI,KAAK,wBAAwB;YACtC,IAAI,CAAC,IAAI,KAAK,6BAA6B;YAC3C,IAAI,CAAC,IAAI,KAAK,yBAAyB;YACvC,IAAI,CAAC,IAAI,KAAK,yBAAyB,CACvC,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,4BAA4B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC;IAC3F,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,6BAA6B,CAAC;IACpD,CAAC;CACD;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACpC,WAAW,CAAS;IACpB,WAAW,CAAS;IAE7B,YAAY,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QACtE,KAAK,CAAC,2BAA2B,SAAS,oBAAoB,WAAW,SAAS,WAAW,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C;QACC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD"}
@@ -0,0 +1,28 @@
1
+ import type { CTraderAccount } from "./modules/account.js";
2
+ import type { CTraderMarket } from "./modules/market.js";
3
+ import type { SymbolCache } from "./symbol-cache.js";
4
+ import type { SlTpSpec } from "./types.js";
5
+ export type { SlTpSpec };
6
+ interface SlTpContext {
7
+ account: CTraderAccount;
8
+ market: CTraderMarket;
9
+ symbols: SymbolCache;
10
+ symbolId: number;
11
+ volumeInUnits: number;
12
+ }
13
+ interface ResolvedSlTp {
14
+ relativeStopLoss?: number;
15
+ relativeTakeProfit?: number;
16
+ }
17
+ /**
18
+ * Convert pips to protocol relative SL/TP units.
19
+ * Formula: pips * 10^(5 - pipPosition)
20
+ */
21
+ export declare function pipsToRelative(pips: number, pipPosition?: number): number;
22
+ /**
23
+ * Resolve human-friendly SlTpSpec (pips / dollars / equity) into protocol-level
24
+ * relative SL/TP values. Fetches symbol details, account equity, and spot price
25
+ * as needed, with per-call caching to avoid duplicate requests.
26
+ */
27
+ export declare function resolveSlTp(ctx: SlTpContext, sl: SlTpSpec | undefined, tp: SlTpSpec | undefined): Promise<ResolvedSlTp>;
28
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,UAAU,WAAW;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,MAAM,CAEpE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAChC,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,QAAQ,GAAG,SAAS,EACxB,EAAE,EAAE,QAAQ,GAAG,SAAS,GACtB,OAAO,CAAC,YAAY,CAAC,CAmBvB"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Convert pips to protocol relative SL/TP units.
3
+ * Formula: pips * 10^(5 - pipPosition)
4
+ */
5
+ export function pipsToRelative(pips, pipPosition = 4) {
6
+ return Math.round(pips * Math.pow(10, 5 - pipPosition));
7
+ }
8
+ /**
9
+ * Resolve human-friendly SlTpSpec (pips / dollars / equity) into protocol-level
10
+ * relative SL/TP values. Fetches symbol details, account equity, and spot price
11
+ * as needed, with per-call caching to avoid duplicate requests.
12
+ */
13
+ export async function resolveSlTp(ctx, sl, tp) {
14
+ const result = {};
15
+ if (sl === undefined && tp === undefined)
16
+ return result;
17
+ const cache = new RequestCache(ctx);
18
+ if (sl !== undefined) {
19
+ const pips = await specToPips(cache, sl, ctx.volumeInUnits);
20
+ const sym = await cache.getSymbolDetails();
21
+ result.relativeStopLoss = pipsToRelative(pips, sym.pipPosition);
22
+ }
23
+ if (tp !== undefined) {
24
+ const pips = await specToPips(cache, tp, ctx.volumeInUnits);
25
+ const sym = await cache.getSymbolDetails();
26
+ result.relativeTakeProfit = pipsToRelative(pips, sym.pipPosition);
27
+ }
28
+ return result;
29
+ }
30
+ async function specToPips(cache, spec, volumeInUnits) {
31
+ if ("pips" in spec)
32
+ return spec.pips;
33
+ const sym = await cache.getSymbolDetails();
34
+ const pipSize = Math.pow(10, -sym.pipPosition);
35
+ const lotSize = sym.lotSize ?? 100_000;
36
+ const lots = volumeInUnits / 100_000;
37
+ // pipValue = pipSize * lotSize * quoteToAccountRate (assumed 1:1 for USD accounts)
38
+ const pipValue = pipSize * lotSize * 1;
39
+ let dollars;
40
+ if ("dollars" in spec) {
41
+ dollars = spec.dollars;
42
+ }
43
+ else {
44
+ const trader = await cache.getTrader();
45
+ const equity = trader.balance;
46
+ dollars = equity * spec.equity;
47
+ }
48
+ // distancePips = dollars / (pipValue * lots)
49
+ const distancePips = dollars / (pipValue * lots);
50
+ return distancePips;
51
+ }
52
+ /**
53
+ * Per-call cache: ensures parallel resolutions within the same order don't
54
+ * double-fetch symbol details, trader info, or spot prices.
55
+ */
56
+ class RequestCache {
57
+ ctx;
58
+ symbolPromise = null;
59
+ traderPromise = null;
60
+ spotPromise = null;
61
+ constructor(ctx) {
62
+ this.ctx = ctx;
63
+ }
64
+ getSymbolDetails() {
65
+ if (this.symbolPromise === null) {
66
+ this.symbolPromise = this.ctx.market
67
+ .getSymbolsById([this.ctx.symbolId])
68
+ .then((symbols) => {
69
+ const sym = symbols[0];
70
+ if (sym === undefined) {
71
+ throw new Error(`Symbol details not found for id ${this.ctx.symbolId}`);
72
+ }
73
+ return sym;
74
+ });
75
+ }
76
+ return this.symbolPromise;
77
+ }
78
+ getTrader() {
79
+ if (this.traderPromise === null) {
80
+ this.traderPromise = this.ctx.account.getTrader();
81
+ }
82
+ return this.traderPromise;
83
+ }
84
+ getSpotPrice() {
85
+ if (this.spotPromise === null) {
86
+ this.spotPromise = this.fetchOneSpot();
87
+ }
88
+ return this.spotPromise;
89
+ }
90
+ fetchOneSpot() {
91
+ return new Promise((resolve, reject) => {
92
+ const timeout = setTimeout(() => {
93
+ unsub();
94
+ void this.ctx.market.unsubscribeSpots([this.ctx.symbolId]).catch(() => { });
95
+ reject(new Error(`Timed out waiting for spot price on symbol ${this.ctx.symbolId}`));
96
+ }, 10_000);
97
+ const unsub = this.ctx.market.onSpot((event) => {
98
+ if (event.symbolId === this.ctx.symbolId) {
99
+ clearTimeout(timeout);
100
+ unsub();
101
+ void this.ctx.market.unsubscribeSpots([this.ctx.symbolId]).catch(() => { });
102
+ resolve(event);
103
+ }
104
+ });
105
+ this.ctx.market.subscribeSpots([this.ctx.symbolId]).catch((err) => {
106
+ clearTimeout(timeout);
107
+ unsub();
108
+ reject(err);
109
+ });
110
+ });
111
+ }
112
+ }
113
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}