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.
- package/README.md +259 -91
- package/dist/bin/auth.js +8 -8
- package/dist/bin/auth.js.map +1 -1
- package/dist/cli/index.js +169 -26
- package/dist/cli/index.js.map +1 -1
- package/dist/src/{client.d.ts → core/client.d.ts} +57 -15
- package/dist/src/core/client.d.ts.map +1 -0
- package/dist/src/{client.js → core/client.js} +306 -49
- package/dist/src/core/client.js.map +1 -0
- package/dist/src/core/config.d.ts.map +1 -0
- package/dist/src/{config.js → core/config.js} +13 -13
- package/dist/src/core/config.js.map +1 -0
- package/dist/src/{connect.d.ts → core/connect.d.ts} +3 -3
- package/dist/src/core/connect.d.ts.map +1 -0
- package/dist/src/{connect.js → core/connect.js} +4 -6
- package/dist/src/core/connect.js.map +1 -0
- package/dist/src/{connection.d.ts → core/connection.d.ts} +48 -4
- package/dist/src/core/connection.d.ts.map +1 -0
- package/dist/src/{connection.js → core/connection.js} +70 -14
- package/dist/src/core/connection.js.map +1 -0
- package/dist/src/{errors.d.ts → core/errors.d.ts} +5 -0
- package/dist/src/core/errors.d.ts.map +1 -0
- package/dist/src/core/errors.js +85 -0
- package/dist/src/core/errors.js.map +1 -0
- package/dist/src/{helpers.d.ts → core/helpers.d.ts} +3 -3
- package/dist/src/core/helpers.d.ts.map +1 -0
- package/dist/src/{helpers.js → core/helpers.js} +9 -7
- package/dist/src/core/helpers.js.map +1 -0
- package/dist/src/{symbol-cache.d.ts → core/symbol-cache.d.ts} +2 -2
- package/dist/src/core/symbol-cache.d.ts.map +1 -0
- package/dist/src/core/symbol-cache.js.map +1 -0
- package/dist/src/index.d.ts +26 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/modules/account.d.ts +68 -2
- package/dist/src/modules/account.d.ts.map +1 -1
- package/dist/src/modules/account.js +91 -34
- package/dist/src/modules/account.js.map +1 -1
- package/dist/src/modules/auth.d.ts +29 -2
- package/dist/src/modules/auth.d.ts.map +1 -1
- package/dist/src/modules/auth.js +42 -10
- package/dist/src/modules/auth.js.map +1 -1
- package/dist/src/modules/market.d.ts +51 -3
- package/dist/src/modules/market.d.ts.map +1 -1
- package/dist/src/modules/market.js +65 -18
- package/dist/src/modules/market.js.map +1 -1
- package/dist/src/modules/trading.d.ts +69 -3
- package/dist/src/modules/trading.d.ts.map +1 -1
- package/dist/src/modules/trading.js +74 -35
- package/dist/src/modules/trading.js.map +1 -1
- package/dist/src/protocol/codec.d.ts.map +1 -0
- package/dist/src/{codec.js → protocol/codec.js} +2 -2
- package/dist/src/protocol/codec.js.map +1 -0
- package/dist/src/{enums.d.ts → protocol/enums.d.ts} +177 -0
- package/dist/src/protocol/enums.d.ts.map +1 -0
- package/dist/src/{enums.js → protocol/enums.js} +177 -0
- package/dist/src/protocol/enums.js.map +1 -0
- package/dist/src/protocol/proto/messages.d.ts +7496 -0
- package/dist/src/protocol/proto/messages.js +21525 -0
- package/dist/src/protocol/proto/proto/messages.d.ts +7496 -0
- package/dist/src/protocol/proto/proto/messages.js +21525 -0
- package/dist/src/{types.d.ts → protocol/types.d.ts} +151 -3
- package/dist/src/protocol/types.d.ts.map +1 -0
- package/dist/src/{types.js.map → protocol/types.js.map} +1 -1
- package/llms.txt +280 -0
- package/package.json +89 -61
- package/dist/src/client.d.ts.map +0 -1
- package/dist/src/client.js.map +0 -1
- package/dist/src/codec.d.ts.map +0 -1
- package/dist/src/codec.js.map +0 -1
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js.map +0 -1
- package/dist/src/connect.d.ts.map +0 -1
- package/dist/src/connect.js.map +0 -1
- package/dist/src/connection.d.ts.map +0 -1
- package/dist/src/connection.js.map +0 -1
- package/dist/src/enums.d.ts.map +0 -1
- package/dist/src/enums.js.map +0 -1
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js +0 -47
- package/dist/src/errors.js.map +0 -1
- package/dist/src/helpers.d.ts.map +0 -1
- package/dist/src/helpers.js.map +0 -1
- package/dist/src/proto/messages.d.ts +0 -7076
- package/dist/src/proto/messages.js +0 -23289
- package/dist/src/proto/proto/messages.d.ts +0 -7076
- package/dist/src/proto/proto/messages.js +0 -23289
- package/dist/src/symbol-cache.d.ts.map +0 -1
- package/dist/src/symbol-cache.js.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- /package/dist/src/{config.d.ts → core/config.d.ts} +0 -0
- /package/dist/src/{symbol-cache.js → core/symbol-cache.js} +0 -0
- /package/dist/src/{codec.d.ts → protocol/codec.d.ts} +0 -0
- /package/dist/src/{types.js → protocol/types.js} +0 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { OrderType, PayloadType } from "../enums.js";
|
|
1
|
+
import { OrderType, PayloadType, } from "../protocol/enums.js";
|
|
2
|
+
/**
|
|
3
|
+
* Low-level trading operations — direct protocol wrappers for order management. Use CTrader (client.ts) for the high-level API with human-friendly units.
|
|
4
|
+
*/
|
|
2
5
|
export class CTraderTrading {
|
|
3
6
|
connection;
|
|
4
7
|
accountId;
|
|
@@ -9,21 +12,39 @@ export class CTraderTrading {
|
|
|
9
12
|
setAccountId(accountId) {
|
|
10
13
|
this.accountId = accountId;
|
|
11
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute a market order
|
|
17
|
+
*/
|
|
12
18
|
async marketOrder(params) {
|
|
13
19
|
return this.sendNewOrder({ ...params, orderType: OrderType.MARKET });
|
|
14
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Place a limit order
|
|
23
|
+
*/
|
|
15
24
|
async limitOrder(params) {
|
|
16
25
|
return this.sendNewOrder({ ...params, orderType: OrderType.LIMIT });
|
|
17
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Place a stop order
|
|
29
|
+
*/
|
|
18
30
|
async stopOrder(params) {
|
|
19
31
|
return this.sendNewOrder({ ...params, orderType: OrderType.STOP });
|
|
20
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Place a stop-limit order
|
|
35
|
+
*/
|
|
21
36
|
async stopLimitOrder(params) {
|
|
22
37
|
return this.sendNewOrder({ ...params, orderType: OrderType.STOP_LIMIT });
|
|
23
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Place a market range order
|
|
41
|
+
*/
|
|
24
42
|
async marketRangeOrder(params) {
|
|
25
43
|
return this.sendNewOrder({ ...params, orderType: OrderType.MARKET_RANGE });
|
|
26
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Close a position partially or fully
|
|
47
|
+
*/
|
|
27
48
|
async closePosition(positionId, volume) {
|
|
28
49
|
const res = await this.connection.request(PayloadType.CLOSE_POSITION_REQ, {
|
|
29
50
|
ctidTraderAccountId: this.accountId,
|
|
@@ -32,70 +53,88 @@ export class CTraderTrading {
|
|
|
32
53
|
});
|
|
33
54
|
return res;
|
|
34
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Modify SL/TP on an existing position
|
|
58
|
+
*/
|
|
35
59
|
async amendPositionSltp(positionId, params) {
|
|
36
60
|
const payload = {
|
|
37
61
|
ctidTraderAccountId: this.accountId,
|
|
38
62
|
positionId,
|
|
39
63
|
};
|
|
40
64
|
if (params.stopLoss !== undefined)
|
|
41
|
-
payload
|
|
65
|
+
payload.stopLoss = params.stopLoss;
|
|
42
66
|
if (params.takeProfit !== undefined)
|
|
43
|
-
payload
|
|
67
|
+
payload.takeProfit = params.takeProfit;
|
|
44
68
|
if (params.guaranteedStopLoss !== undefined)
|
|
45
|
-
payload
|
|
69
|
+
payload.guaranteedStopLoss = params.guaranteedStopLoss;
|
|
46
70
|
if (params.trailingStopLoss !== undefined)
|
|
47
|
-
payload
|
|
71
|
+
payload.trailingStopLoss = params.trailingStopLoss;
|
|
48
72
|
if (params.stopLossTriggerMethod !== undefined)
|
|
49
|
-
payload
|
|
73
|
+
payload.stopLossTriggerMethod = params.stopLossTriggerMethod;
|
|
50
74
|
await this.connection.request(PayloadType.AMEND_POSITION_SLTP_REQ, payload);
|
|
51
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Modify an existing pending order
|
|
78
|
+
*/
|
|
52
79
|
async amendOrder(orderId, params) {
|
|
53
80
|
const payload = {
|
|
54
81
|
ctidTraderAccountId: this.accountId,
|
|
55
82
|
orderId,
|
|
56
83
|
};
|
|
57
84
|
if (params.volume !== undefined)
|
|
58
|
-
payload
|
|
85
|
+
payload.volume = params.volume;
|
|
59
86
|
if (params.limitPrice !== undefined)
|
|
60
|
-
payload
|
|
87
|
+
payload.limitPrice = params.limitPrice;
|
|
61
88
|
if (params.stopPrice !== undefined)
|
|
62
|
-
payload
|
|
89
|
+
payload.stopPrice = params.stopPrice;
|
|
63
90
|
if (params.expirationTimestamp !== undefined)
|
|
64
|
-
payload
|
|
91
|
+
payload.expirationTimestamp = params.expirationTimestamp;
|
|
65
92
|
if (params.stopLoss !== undefined)
|
|
66
|
-
payload
|
|
93
|
+
payload.stopLoss = params.stopLoss;
|
|
67
94
|
if (params.takeProfit !== undefined)
|
|
68
|
-
payload
|
|
95
|
+
payload.takeProfit = params.takeProfit;
|
|
69
96
|
if (params.slippageInPoints !== undefined)
|
|
70
|
-
payload
|
|
97
|
+
payload.slippageInPoints = params.slippageInPoints;
|
|
71
98
|
if (params.relativeStopLoss !== undefined)
|
|
72
|
-
payload
|
|
99
|
+
payload.relativeStopLoss = params.relativeStopLoss;
|
|
73
100
|
if (params.relativeTakeProfit !== undefined)
|
|
74
|
-
payload
|
|
101
|
+
payload.relativeTakeProfit = params.relativeTakeProfit;
|
|
75
102
|
if (params.guaranteedStopLoss !== undefined)
|
|
76
|
-
payload
|
|
103
|
+
payload.guaranteedStopLoss = params.guaranteedStopLoss;
|
|
77
104
|
if (params.trailingStopLoss !== undefined)
|
|
78
|
-
payload
|
|
105
|
+
payload.trailingStopLoss = params.trailingStopLoss;
|
|
79
106
|
if (params.stopTriggerMethod !== undefined)
|
|
80
|
-
payload
|
|
107
|
+
payload.stopTriggerMethod = params.stopTriggerMethod;
|
|
81
108
|
await this.connection.request(PayloadType.AMEND_ORDER_REQ, payload);
|
|
82
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Cancel a pending order
|
|
112
|
+
*/
|
|
83
113
|
async cancelOrder(orderId) {
|
|
84
114
|
await this.connection.request(PayloadType.CANCEL_ORDER_REQ, {
|
|
85
115
|
ctidTraderAccountId: this.accountId,
|
|
86
116
|
orderId,
|
|
87
117
|
});
|
|
88
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Subscribe to order execution events
|
|
121
|
+
*/
|
|
89
122
|
onExecution(handler) {
|
|
90
123
|
return this.connection.on(PayloadType.EXECUTION_EVENT, (payload) => {
|
|
91
124
|
handler(payload);
|
|
92
125
|
});
|
|
93
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Subscribe to order error events
|
|
129
|
+
*/
|
|
94
130
|
onOrderError(handler) {
|
|
95
131
|
return this.connection.on(PayloadType.ORDER_ERROR_EVENT, (payload) => {
|
|
96
132
|
handler(payload);
|
|
97
133
|
});
|
|
98
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Subscribe to trailing stop loss change events
|
|
137
|
+
*/
|
|
99
138
|
onTrailingSLChanged(handler) {
|
|
100
139
|
return this.connection.on(PayloadType.TRAILING_SL_CHANGED_EVENT, (payload) => {
|
|
101
140
|
handler(payload);
|
|
@@ -110,39 +149,39 @@ export class CTraderTrading {
|
|
|
110
149
|
volume: params.volume,
|
|
111
150
|
};
|
|
112
151
|
if ("limitPrice" in params && params.limitPrice !== undefined)
|
|
113
|
-
payload
|
|
152
|
+
payload.limitPrice = params.limitPrice;
|
|
114
153
|
if ("stopPrice" in params && params.stopPrice !== undefined)
|
|
115
|
-
payload
|
|
154
|
+
payload.stopPrice = params.stopPrice;
|
|
116
155
|
if ("baseSlippagePrice" in params && params.baseSlippagePrice !== undefined)
|
|
117
|
-
payload
|
|
156
|
+
payload.baseSlippagePrice = params.baseSlippagePrice;
|
|
118
157
|
if ("slippageInPoints" in params && params.slippageInPoints !== undefined)
|
|
119
|
-
payload
|
|
158
|
+
payload.slippageInPoints = params.slippageInPoints;
|
|
120
159
|
if ("timeInForce" in params && params.timeInForce !== undefined)
|
|
121
|
-
payload
|
|
160
|
+
payload.timeInForce = params.timeInForce;
|
|
122
161
|
if ("expirationTimestamp" in params && params.expirationTimestamp !== undefined)
|
|
123
|
-
payload
|
|
162
|
+
payload.expirationTimestamp = params.expirationTimestamp;
|
|
124
163
|
if (params.stopLoss !== undefined)
|
|
125
|
-
payload
|
|
164
|
+
payload.stopLoss = params.stopLoss;
|
|
126
165
|
if (params.takeProfit !== undefined)
|
|
127
|
-
payload
|
|
166
|
+
payload.takeProfit = params.takeProfit;
|
|
128
167
|
if (params.relativeStopLoss !== undefined)
|
|
129
|
-
payload
|
|
168
|
+
payload.relativeStopLoss = params.relativeStopLoss;
|
|
130
169
|
if (params.relativeTakeProfit !== undefined)
|
|
131
|
-
payload
|
|
170
|
+
payload.relativeTakeProfit = params.relativeTakeProfit;
|
|
132
171
|
if (params.guaranteedStopLoss !== undefined)
|
|
133
|
-
payload
|
|
172
|
+
payload.guaranteedStopLoss = params.guaranteedStopLoss;
|
|
134
173
|
if (params.trailingStopLoss !== undefined)
|
|
135
|
-
payload
|
|
174
|
+
payload.trailingStopLoss = params.trailingStopLoss;
|
|
136
175
|
if (params.stopTriggerMethod !== undefined)
|
|
137
|
-
payload
|
|
176
|
+
payload.stopTriggerMethod = params.stopTriggerMethod;
|
|
138
177
|
if (params.label !== undefined)
|
|
139
|
-
payload
|
|
178
|
+
payload.label = params.label;
|
|
140
179
|
if (params.comment !== undefined)
|
|
141
|
-
payload
|
|
180
|
+
payload.comment = params.comment;
|
|
142
181
|
if (params.clientOrderId !== undefined)
|
|
143
|
-
payload
|
|
182
|
+
payload.clientOrderId = params.clientOrderId;
|
|
144
183
|
if (params.positionId !== undefined)
|
|
145
|
-
payload
|
|
184
|
+
payload.positionId = params.positionId;
|
|
146
185
|
const res = await this.connection.request(PayloadType.NEW_ORDER_REQ, payload);
|
|
147
186
|
return res;
|
|
148
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trading.js","sourceRoot":"","sources":["../../../src/modules/trading.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"trading.js","sourceRoot":"","sources":["../../../src/modules/trading.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,SAAS,EACT,WAAW,GAGX,MAAM,sBAAsB,CAAC;AA8F9B;;GAEG;AACH,MAAM,OAAO,cAAc;IACT,UAAU,CAAoB;IACvC,SAAS,CAAS;IAE1B,YAAY,UAA6B,EAAE,SAAiB;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAsB;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAwB;QACxC,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAuB;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAA4B;QAChD,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAA8B;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,MAAc;QACrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACzE,mBAAmB,EAAE,IAAI,CAAC,SAAS;YACnC,UAAU;YACV,MAAM;SACN,CAAC,CAAC;QACH,OAAO,GAAgC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,MAAuB;QAClE,MAAM,OAAO,GAA4B;YACxC,mBAAmB,EAAE,IAAI,CAAC,SAAS;YACnC,UAAU;SACV,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;YAC1C,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9F,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS;YAC7C,OAAO,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAwB;QACzD,MAAM,OAAO,GAA4B;YACxC,mBAAmB,EAAE,IAAI,CAAC,SAAS;YACnC,OAAO;SACP,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAChE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACzE,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;YAC3C,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC1D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9F,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9F,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;YAC1C,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxD,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;YAC1C,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9F,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACzC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACtD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC3D,mBAAmB,EAAE,IAAI,CAAC,SAAS;YACnC,OAAO;SACP,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAwC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAClE,OAAO,CAAC,OAAoC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAyC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;YACpE,OAAO,CAAC,OAAqC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAgD;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;YAC5E,OAAO,CAAC,OAA4C,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACzB,MAAiD;QAEjD,MAAM,OAAO,GAA4B;YACxC,mBAAmB,EAAE,IAAI,CAAC,SAAS;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,IAAI,YAAY,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAC5D,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACxC,IAAI,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAC1D,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,IAAI,mBAAmB,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;YAC1E,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACtD,IAAI,kBAAkB,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YACxE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACpD,IAAI,aAAa,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAC9D,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,IAAI,qBAAqB,IAAI,MAAM,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;YAC9E,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC1D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9F,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;YAC1C,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxD,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;YAC1C,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9F,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACzC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACnE,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACrF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAE5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,GAAgC,CAAC;IACzC,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/protocol/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,UAAU,eAAe;IACxB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,IAAI,UAAU,CAAA;KAAE,CAAC;IACrF,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrE;AA4BD;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEhF;AAMD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,WAAW,CAAC,EAAE,MAAM,GAClB,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAexC;AA+CD,MAAM,WAAW,cAAc;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAc9D"}
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* encode the inner object, wrap it in a ProtoMessage, and return the
|
|
15
15
|
* framed bytes ready for the socket.
|
|
16
16
|
*/
|
|
17
|
-
import { ProtoMessage, ProtoHeartbeatEvent } from "./proto/messages.js";
|
|
18
17
|
import { PayloadType } from "./enums.js";
|
|
18
|
+
import { ProtoHeartbeatEvent, ProtoMessage } from "./proto/messages.js";
|
|
19
19
|
// ---------------------------------------------------------------------------
|
|
20
20
|
// Payload-type → Protobuf class registry
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
@@ -33,7 +33,7 @@ for (const key of Object.keys(pb)) {
|
|
|
33
33
|
typeof candidate.decode === "function") {
|
|
34
34
|
try {
|
|
35
35
|
const instance = new candidate();
|
|
36
|
-
const pt = instance
|
|
36
|
+
const pt = instance.payloadType;
|
|
37
37
|
if (typeof pt === "number" && pt > 0) {
|
|
38
38
|
registry.set(pt, candidate);
|
|
39
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/protocol/codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Message type identifiers for the cTrader Open API protocol. Each value maps to a specific request, response, or event message. */
|
|
1
2
|
export declare enum PayloadType {
|
|
2
3
|
PROTO_MESSAGE = 5,
|
|
3
4
|
ERROR_RES = 50,
|
|
@@ -92,85 +93,155 @@ export declare enum PayloadType {
|
|
|
92
93
|
GET_POSITION_UNREALIZED_PNL_REQ = 2187,
|
|
93
94
|
GET_POSITION_UNREALIZED_PNL_RES = 2188
|
|
94
95
|
}
|
|
96
|
+
/** Order type. Determines how the order is filled. */
|
|
95
97
|
export declare enum OrderType {
|
|
98
|
+
/** Instant fill at current market price. */
|
|
96
99
|
MARKET = 1,
|
|
100
|
+
/** Fill at specified price or better. */
|
|
97
101
|
LIMIT = 2,
|
|
102
|
+
/** Trigger market order when price reaches stop price. */
|
|
98
103
|
STOP = 3,
|
|
104
|
+
/** Protection order (SL/TP only, cannot open new position). */
|
|
99
105
|
STOP_LOSS_TAKE_PROFIT = 4,
|
|
106
|
+
/** Market order with maximum allowed slippage. */
|
|
100
107
|
MARKET_RANGE = 5,
|
|
108
|
+
/** Stop order that becomes limit order when triggered. */
|
|
101
109
|
STOP_LIMIT = 6
|
|
102
110
|
}
|
|
111
|
+
/** Trade direction. */
|
|
103
112
|
export declare enum TradeSide {
|
|
113
|
+
/** Long position (buy). */
|
|
104
114
|
BUY = 1,
|
|
115
|
+
/** Short position (sell). */
|
|
105
116
|
SELL = 2
|
|
106
117
|
}
|
|
118
|
+
/** Order expiration policy. */
|
|
107
119
|
export declare enum TimeInForce {
|
|
120
|
+
/** Expires at specified date/time. */
|
|
108
121
|
GOOD_TILL_DATE = 1,
|
|
122
|
+
/** Stays active until manually cancelled. */
|
|
109
123
|
GOOD_TILL_CANCEL = 2,
|
|
124
|
+
/** Fill what you can immediately, cancel the rest. */
|
|
110
125
|
IMMEDIATE_OR_CANCEL = 3,
|
|
126
|
+
/** Fill entirely or cancel. */
|
|
111
127
|
FILL_OR_KILL = 4,
|
|
128
|
+
/** Execute at market open. */
|
|
112
129
|
MARKET_ON_OPEN = 5
|
|
113
130
|
}
|
|
131
|
+
/** Describes what happened in an execution event. */
|
|
114
132
|
export declare enum ExecutionType {
|
|
133
|
+
/** Order accepted by server. */
|
|
115
134
|
ORDER_ACCEPTED = 2,
|
|
135
|
+
/** Order fully filled. */
|
|
116
136
|
ORDER_FILLED = 3,
|
|
137
|
+
/** Order modified. */
|
|
117
138
|
ORDER_REPLACED = 4,
|
|
139
|
+
/** Order cancelled. */
|
|
118
140
|
ORDER_CANCELLED = 5,
|
|
141
|
+
/** Order expired. */
|
|
119
142
|
ORDER_EXPIRED = 6,
|
|
143
|
+
/** Order rejected. */
|
|
120
144
|
ORDER_REJECTED = 7,
|
|
145
|
+
/** Cancel request rejected. */
|
|
121
146
|
ORDER_CANCEL_REJECTED = 8,
|
|
147
|
+
/** Overnight interest swap applied. */
|
|
122
148
|
SWAP = 9,
|
|
149
|
+
/** Balance deposit or withdrawal. */
|
|
123
150
|
DEPOSIT_WITHDRAW = 10,
|
|
151
|
+
/** Order partially filled. */
|
|
124
152
|
ORDER_PARTIAL_FILL = 11,
|
|
153
|
+
/** Bonus deposit or withdrawal. */
|
|
125
154
|
BONUS_DEPOSIT_WITHDRAW = 12
|
|
126
155
|
}
|
|
156
|
+
/** Position lifecycle status. */
|
|
127
157
|
export declare enum PositionStatus {
|
|
158
|
+
/** Position is active. */
|
|
128
159
|
OPEN = 1,
|
|
160
|
+
/** Position is closed. */
|
|
129
161
|
CLOSED = 2,
|
|
162
|
+
/** Position just created (transient state). */
|
|
130
163
|
CREATED = 3,
|
|
164
|
+
/** Position error. */
|
|
131
165
|
ERROR = 4
|
|
132
166
|
}
|
|
167
|
+
/** Pending order status. */
|
|
133
168
|
export declare enum OrderStatus {
|
|
169
|
+
/** Order accepted. */
|
|
134
170
|
ACCEPTED = 1,
|
|
171
|
+
/** Order filled. */
|
|
135
172
|
FILLED = 2,
|
|
173
|
+
/** Order rejected. */
|
|
136
174
|
REJECTED = 3,
|
|
175
|
+
/** Order expired. */
|
|
137
176
|
EXPIRED = 4,
|
|
177
|
+
/** Order cancelled. */
|
|
138
178
|
CANCELLED = 5
|
|
139
179
|
}
|
|
180
|
+
/** Deal (trade execution) status. */
|
|
140
181
|
export declare enum DealStatus {
|
|
182
|
+
/** Deal fully filled. */
|
|
141
183
|
FILLED = 2,
|
|
184
|
+
/** Deal partially filled. */
|
|
142
185
|
PARTIALLY_FILLED = 3,
|
|
186
|
+
/** Deal rejected. */
|
|
143
187
|
REJECTED = 4,
|
|
188
|
+
/** Deal rejected internally. */
|
|
144
189
|
INTERNALLY_REJECTED = 5,
|
|
190
|
+
/** Deal error. */
|
|
145
191
|
ERROR = 6,
|
|
192
|
+
/** Deal missed. */
|
|
146
193
|
MISSED = 7
|
|
147
194
|
}
|
|
195
|
+
/** Candlestick timeframe. M=minute, H=hour, D=day, W=week, MN=month. */
|
|
148
196
|
export declare enum TrendbarPeriod {
|
|
197
|
+
/** 1 minute. */
|
|
149
198
|
M1 = 1,
|
|
199
|
+
/** 2 minutes. */
|
|
150
200
|
M2 = 2,
|
|
201
|
+
/** 3 minutes. */
|
|
151
202
|
M3 = 3,
|
|
203
|
+
/** 4 minutes. */
|
|
152
204
|
M4 = 4,
|
|
205
|
+
/** 5 minutes. */
|
|
153
206
|
M5 = 5,
|
|
207
|
+
/** 10 minutes. */
|
|
154
208
|
M10 = 6,
|
|
209
|
+
/** 15 minutes. */
|
|
155
210
|
M15 = 7,
|
|
211
|
+
/** 30 minutes. */
|
|
156
212
|
M30 = 8,
|
|
213
|
+
/** 1 hour. */
|
|
157
214
|
H1 = 9,
|
|
215
|
+
/** 4 hours. */
|
|
158
216
|
H4 = 10,
|
|
217
|
+
/** 12 hours. */
|
|
159
218
|
H12 = 11,
|
|
219
|
+
/** 1 day. */
|
|
160
220
|
D1 = 12,
|
|
221
|
+
/** 1 week. */
|
|
161
222
|
W1 = 13,
|
|
223
|
+
/** 1 month. */
|
|
162
224
|
MN1 = 14
|
|
163
225
|
}
|
|
226
|
+
/** Quote type (bid or ask). */
|
|
164
227
|
export declare enum QuoteType {
|
|
228
|
+
/** Buy price (broker sells to you). */
|
|
165
229
|
BID = 1,
|
|
230
|
+
/** Sell price (broker buys from you). */
|
|
166
231
|
ASK = 2
|
|
167
232
|
}
|
|
233
|
+
/** How stop order trigger price is determined. */
|
|
168
234
|
export declare enum OrderTriggerMethod {
|
|
235
|
+
/** Trigger on last trade price. */
|
|
169
236
|
TRADE = 1,
|
|
237
|
+
/** Trigger on opposite side quote. */
|
|
170
238
|
OPPOSITE = 2,
|
|
239
|
+
/** Trigger on double trade price. */
|
|
171
240
|
DOUBLE_TRADE = 3,
|
|
241
|
+
/** Trigger on double opposite quote. */
|
|
172
242
|
DOUBLE_OPPOSITE = 4
|
|
173
243
|
}
|
|
244
|
+
/** Day of week. 0=none, 1=Monday...7=Sunday. */
|
|
174
245
|
export declare enum DayOfWeek {
|
|
175
246
|
NONE = 0,
|
|
176
247
|
MONDAY = 1,
|
|
@@ -181,69 +252,120 @@ export declare enum DayOfWeek {
|
|
|
181
252
|
SATURDAY = 6,
|
|
182
253
|
SUNDAY = 7
|
|
183
254
|
}
|
|
255
|
+
/** How broker commissions are calculated. */
|
|
184
256
|
export declare enum CommissionType {
|
|
257
|
+
/** USD per million USD traded. */
|
|
185
258
|
USD_PER_MILLION_USD = 1,
|
|
259
|
+
/** USD per lot. */
|
|
186
260
|
USD_PER_LOT = 2,
|
|
261
|
+
/** Percentage of trade value. */
|
|
187
262
|
PERCENTAGE_OF_VALUE = 3,
|
|
263
|
+
/** Quote currency per lot. */
|
|
188
264
|
QUOTE_CCY_PER_LOT = 4
|
|
189
265
|
}
|
|
266
|
+
/** How SL/TP distance is measured. */
|
|
190
267
|
export declare enum SymbolDistanceType {
|
|
268
|
+
/** Distance in points. */
|
|
191
269
|
SYMBOL_DISTANCE_IN_POINTS = 1,
|
|
270
|
+
/** Distance as percentage. */
|
|
192
271
|
SYMBOL_DISTANCE_IN_PERCENTAGE = 2
|
|
193
272
|
}
|
|
273
|
+
/** Currency for minimum commission. */
|
|
194
274
|
export declare enum MinCommissionType {
|
|
275
|
+
/** Base currency. */
|
|
195
276
|
CURRENCY = 1,
|
|
277
|
+
/** Quote currency. */
|
|
196
278
|
QUOTE_CURRENCY = 2
|
|
197
279
|
}
|
|
280
|
+
/** Whether trading is enabled on symbol. */
|
|
198
281
|
export declare enum TradingMode {
|
|
282
|
+
/** Trading enabled. */
|
|
199
283
|
ENABLED = 0,
|
|
284
|
+
/** Trading disabled, pending orders not executed. */
|
|
200
285
|
DISABLED_WITHOUT_PENDINGS_EXECUTION = 1,
|
|
286
|
+
/** Trading disabled, pending orders executed. */
|
|
201
287
|
DISABLED_WITH_PENDINGS_EXECUTION = 2,
|
|
288
|
+
/** Only closing trades allowed. */
|
|
202
289
|
CLOSE_ONLY_MODE = 3
|
|
203
290
|
}
|
|
291
|
+
/** How overnight swap is calculated. */
|
|
204
292
|
export declare enum SwapCalculationType {
|
|
293
|
+
/** Swap in pips. */
|
|
205
294
|
PIPS = 0,
|
|
295
|
+
/** Swap as percentage. */
|
|
206
296
|
PERCENTAGE = 1,
|
|
297
|
+
/** Swap in points. */
|
|
207
298
|
POINTS = 2
|
|
208
299
|
}
|
|
300
|
+
/** Account access level. */
|
|
209
301
|
export declare enum AccessRights {
|
|
302
|
+
/** Full trading access. */
|
|
210
303
|
FULL_ACCESS = 0,
|
|
304
|
+
/** Can only close positions. */
|
|
211
305
|
CLOSE_ONLY = 1,
|
|
306
|
+
/** No trading allowed. */
|
|
212
307
|
NO_TRADING = 2,
|
|
308
|
+
/** Account disabled. */
|
|
213
309
|
NO_LOGIN = 3
|
|
214
310
|
}
|
|
311
|
+
/** How total margin is calculated across positions. */
|
|
215
312
|
export declare enum TotalMarginCalculationType {
|
|
313
|
+
/** Use maximum of all positions. */
|
|
216
314
|
MAX = 0,
|
|
315
|
+
/** Sum all positions. */
|
|
217
316
|
SUM = 1,
|
|
317
|
+
/** Net hedged positions. */
|
|
218
318
|
NET = 2
|
|
219
319
|
}
|
|
320
|
+
/** Account hedging model. */
|
|
220
321
|
export declare enum AccountType {
|
|
322
|
+
/** Separate positions per direction. */
|
|
221
323
|
HEDGED = 0,
|
|
324
|
+
/** Positions offset each other. */
|
|
222
325
|
NETTED = 1,
|
|
326
|
+
/** Spread betting account. */
|
|
223
327
|
SPREAD_BETTING = 2
|
|
224
328
|
}
|
|
329
|
+
/** How margin is calculated for limited risk accounts. */
|
|
225
330
|
export declare enum LimitedRiskMarginCalculationStrategy {
|
|
331
|
+
/** Use leverage. */
|
|
226
332
|
ACCORDING_TO_LEVERAGE = 0,
|
|
333
|
+
/** Use guaranteed stop loss. */
|
|
227
334
|
ACCORDING_TO_GSL = 1,
|
|
335
|
+
/** Use both GSL and leverage. */
|
|
228
336
|
ACCORDING_TO_GSL_AND_LEVERAGE = 2
|
|
229
337
|
}
|
|
338
|
+
/** Which positions close first on margin call. */
|
|
230
339
|
export declare enum StopOutStrategy {
|
|
340
|
+
/** Close highest margin positions first. */
|
|
231
341
|
MOST_MARGIN_USED_FIRST = 0,
|
|
342
|
+
/** Close most losing positions first. */
|
|
232
343
|
MOST_LOSING_FIRST = 1
|
|
233
344
|
}
|
|
345
|
+
/** OAuth client permission scope. */
|
|
234
346
|
export declare enum ClientPermissionScope {
|
|
347
|
+
/** Read-only access. */
|
|
235
348
|
SCOPE_VIEW = 0,
|
|
349
|
+
/** Trading access. */
|
|
236
350
|
SCOPE_TRADE = 1
|
|
237
351
|
}
|
|
352
|
+
/** Margin level warning notification thresholds. */
|
|
238
353
|
export declare enum NotificationType {
|
|
354
|
+
/** Margin level warning 1. */
|
|
239
355
|
MARGIN_LEVEL_THRESHOLD_1 = 61,
|
|
356
|
+
/** Margin level warning 2. */
|
|
240
357
|
MARGIN_LEVEL_THRESHOLD_2 = 62,
|
|
358
|
+
/** Margin level warning 3. */
|
|
241
359
|
MARGIN_LEVEL_THRESHOLD_3 = 63
|
|
242
360
|
}
|
|
361
|
+
/** Bonus deposit or withdrawal type. */
|
|
243
362
|
export declare enum ChangeBonusType {
|
|
363
|
+
/** Bonus added. */
|
|
244
364
|
BONUS_DEPOSIT = 0,
|
|
365
|
+
/** Bonus removed. */
|
|
245
366
|
BONUS_WITHDRAW = 1
|
|
246
367
|
}
|
|
368
|
+
/** Balance change reasons (deposits, withdrawals, commissions, fees, swaps, etc.). */
|
|
247
369
|
export declare enum ChangeBalanceType {
|
|
248
370
|
BALANCE_DEPOSIT = 0,
|
|
249
371
|
BALANCE_WITHDRAW = 1,
|
|
@@ -281,61 +403,116 @@ export declare enum ChangeBalanceType {
|
|
|
281
403
|
BALANCE_DEPOSIT_CONVERTED_BONUS = 38,
|
|
282
404
|
BALANCE_DEPOSIT_NEGATIVE_BALANCE_PROTECTION = 39
|
|
283
405
|
}
|
|
406
|
+
/** Low-level protocol errors. */
|
|
284
407
|
export declare enum ProtoErrorCode {
|
|
408
|
+
/** Unknown error. */
|
|
285
409
|
UNKNOWN_ERROR = 1,
|
|
410
|
+
/** Message type not supported. */
|
|
286
411
|
UNSUPPORTED_MESSAGE = 2,
|
|
412
|
+
/** Request invalid. */
|
|
287
413
|
INVALID_REQUEST = 3,
|
|
414
|
+
/** Request timed out. */
|
|
288
415
|
TIMEOUT_ERROR = 5,
|
|
416
|
+
/** Entity not found. */
|
|
289
417
|
ENTITY_NOT_FOUND = 6,
|
|
418
|
+
/** Cannot route request. */
|
|
290
419
|
CANT_ROUTE_REQUEST = 7,
|
|
420
|
+
/** Message frame too long. */
|
|
291
421
|
FRAME_TOO_LONG = 8,
|
|
422
|
+
/** Market closed. */
|
|
292
423
|
MARKET_CLOSED = 9,
|
|
424
|
+
/** Concurrent modification. */
|
|
293
425
|
CONCURRENT_MODIFICATION = 10,
|
|
426
|
+
/** Payload type blocked. */
|
|
294
427
|
BLOCKED_PAYLOAD_TYPE = 11
|
|
295
428
|
}
|
|
429
|
+
/** cTrader Open API specific error codes. */
|
|
296
430
|
export declare enum ProtoOAErrorCode {
|
|
431
|
+
/** Access token expired. */
|
|
297
432
|
OA_AUTH_TOKEN_EXPIRED = 1,
|
|
433
|
+
/** Account not authorized. */
|
|
298
434
|
ACCOUNT_NOT_AUTHORIZED = 2,
|
|
435
|
+
/** Login not found. */
|
|
299
436
|
RET_NO_SUCH_LOGIN = 12,
|
|
437
|
+
/** Already logged in. */
|
|
300
438
|
ALREADY_LOGGED_IN = 14,
|
|
439
|
+
/** Account disabled. */
|
|
301
440
|
RET_ACCOUNT_DISABLED = 64,
|
|
441
|
+
/** Too many connections. */
|
|
302
442
|
CONNECTIONS_LIMIT_EXCEEDED = 67,
|
|
443
|
+
/** Cannot widen guaranteed stop loss. */
|
|
303
444
|
WORSE_GSL_NOT_ALLOWED = 68,
|
|
445
|
+
/** Symbol on holiday. */
|
|
304
446
|
SYMBOL_HAS_HOLIDAY = 69,
|
|
447
|
+
/** Authentication failure. */
|
|
305
448
|
CH_CLIENT_AUTH_FAILURE = 101,
|
|
449
|
+
/** Client not authenticated. */
|
|
306
450
|
CH_CLIENT_NOT_AUTHENTICATED = 102,
|
|
451
|
+
/** Client already authenticated. */
|
|
307
452
|
CH_CLIENT_ALREADY_AUTHENTICATED = 103,
|
|
453
|
+
/** Access token invalid. */
|
|
308
454
|
CH_ACCESS_TOKEN_INVALID = 104,
|
|
455
|
+
/** Server not reachable. */
|
|
309
456
|
CH_SERVER_NOT_REACHABLE = 105,
|
|
457
|
+
/** cTrader account not found. */
|
|
310
458
|
CH_CTID_TRADER_ACCOUNT_NOT_FOUND = 106,
|
|
459
|
+
/** Open API client not found. */
|
|
311
460
|
CH_OA_CLIENT_NOT_FOUND = 107,
|
|
461
|
+
/** Request rate limit exceeded. */
|
|
312
462
|
REQUEST_FREQUENCY_EXCEEDED = 108,
|
|
463
|
+
/** Server under maintenance. */
|
|
313
464
|
SERVER_IS_UNDER_MAINTENANCE = 109,
|
|
465
|
+
/** Channel blocked. */
|
|
314
466
|
CHANNEL_IS_BLOCKED = 110,
|
|
467
|
+
/** Not subscribed to spot prices. */
|
|
315
468
|
NOT_SUBSCRIBED_TO_SPOTS = 112,
|
|
469
|
+
/** Already subscribed. */
|
|
316
470
|
ALREADY_SUBSCRIBED = 113,
|
|
471
|
+
/** Symbol not found. */
|
|
317
472
|
SYMBOL_NOT_FOUND = 114,
|
|
473
|
+
/** Unknown symbol. */
|
|
318
474
|
UNKNOWN_SYMBOL = 115,
|
|
475
|
+
/** Incorrect boundaries. */
|
|
319
476
|
INCORRECT_BOUNDARIES = 35,
|
|
477
|
+
/** No quotes available. */
|
|
320
478
|
NO_QUOTES = 117,
|
|
479
|
+
/** Insufficient funds. */
|
|
321
480
|
NOT_ENOUGH_MONEY = 118,
|
|
481
|
+
/** Maximum exposure reached. */
|
|
322
482
|
MAX_EXPOSURE_REACHED = 119,
|
|
483
|
+
/** Position not found. */
|
|
323
484
|
POSITION_NOT_FOUND = 120,
|
|
485
|
+
/** Order not found. */
|
|
324
486
|
ORDER_NOT_FOUND = 121,
|
|
487
|
+
/** Position not open. */
|
|
325
488
|
POSITION_NOT_OPEN = 122,
|
|
489
|
+
/** Position locked. */
|
|
326
490
|
POSITION_LOCKED = 123,
|
|
491
|
+
/** Too many positions. */
|
|
327
492
|
TOO_MANY_POSITIONS = 124,
|
|
493
|
+
/** Invalid volume. */
|
|
328
494
|
TRADING_BAD_VOLUME = 125,
|
|
495
|
+
/** Invalid stop loss or take profit. */
|
|
329
496
|
TRADING_BAD_STOPS = 126,
|
|
497
|
+
/** Invalid prices. */
|
|
330
498
|
TRADING_BAD_PRICES = 127,
|
|
499
|
+
/** Invalid stake. */
|
|
331
500
|
TRADING_BAD_STAKE = 128,
|
|
501
|
+
/** Stop loss or take profit too close to market. */
|
|
332
502
|
PROTECTION_IS_TOO_CLOSE_TO_MARKET = 129,
|
|
503
|
+
/** Invalid expiration date. */
|
|
333
504
|
TRADING_BAD_EXPIRATION_DATE = 130,
|
|
505
|
+
/** Order pending execution. */
|
|
334
506
|
PENDING_EXECUTION = 131,
|
|
507
|
+
/** Trading disabled. */
|
|
335
508
|
TRADING_DISABLED = 132,
|
|
509
|
+
/** Trading not allowed. */
|
|
336
510
|
TRADING_NOT_ALLOWED = 133,
|
|
511
|
+
/** Cannot cancel order. */
|
|
337
512
|
UNABLE_TO_CANCEL_ORDER = 134,
|
|
513
|
+
/** Cannot amend order. */
|
|
338
514
|
UNABLE_TO_AMEND_ORDER = 135,
|
|
515
|
+
/** Short selling not allowed. */
|
|
339
516
|
SHORT_SELLING_NOT_ALLOWED = 136
|
|
340
517
|
}
|
|
341
518
|
//# sourceMappingURL=enums.d.ts.map
|