@gbozee/ultimate 0.0.2-98 → 0.0.2-next.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.
- package/dist/frontend-index.d.ts +1085 -24
- package/dist/frontend-index.js +1645 -78
- package/dist/index.cjs +8691 -2988
- package/dist/index.d.ts +1858 -303
- package/dist/index.js +8695 -2996
- package/dist/mcp-client.cjs +25 -50
- package/dist/mcp-client.js +25 -50
- package/dist/mcp-server.cjs +8632 -2693
- package/dist/mcp-server.js +8636 -2701
- package/package.json +7 -4
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,21 @@ import PocketBase from 'pocketbase';
|
|
|
5
5
|
import { RecordModel as PocketBaseRecordModel } from 'pocketbase';
|
|
6
6
|
import { SocksProxyAgent } from 'socks-proxy-agent';
|
|
7
7
|
|
|
8
|
+
export interface GetEntriesParams {
|
|
9
|
+
kind: "long" | "short";
|
|
10
|
+
distribution: "arithmetic" | "geometric" | "normal" | "exponential" | "inverse-exponential";
|
|
11
|
+
margin_range: [
|
|
12
|
+
number,
|
|
13
|
+
number
|
|
14
|
+
];
|
|
15
|
+
risk_reward: number;
|
|
16
|
+
price_places?: string;
|
|
17
|
+
distribution_params?: {
|
|
18
|
+
curveFactor?: number;
|
|
19
|
+
stdDevFactor?: number;
|
|
20
|
+
lambda?: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
8
23
|
export type RecordModel = PocketBaseRecordModel;
|
|
9
24
|
export interface BaseSystemFields {
|
|
10
25
|
id: string;
|
|
@@ -71,6 +86,32 @@ export interface ScheduledTrade extends BaseSystemFields {
|
|
|
71
86
|
sell_ratio?: number;
|
|
72
87
|
threshold_qty?: number;
|
|
73
88
|
pause_tp?: boolean;
|
|
89
|
+
stop_percent?: number;
|
|
90
|
+
kelly?: {
|
|
91
|
+
use_kelly?: boolean;
|
|
92
|
+
kelly_confidence_factor?: number;
|
|
93
|
+
kelly_minimum_risk?: number;
|
|
94
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
95
|
+
};
|
|
96
|
+
distribution?: GetEntriesParams["distribution"];
|
|
97
|
+
distribution_params?: {
|
|
98
|
+
curveFactor?: number;
|
|
99
|
+
stdDevFactor?: number;
|
|
100
|
+
lambda?: number;
|
|
101
|
+
};
|
|
102
|
+
settings?: {
|
|
103
|
+
gap_trading?: {
|
|
104
|
+
entry_risk?: number;
|
|
105
|
+
hedge_stop_ratio?: number;
|
|
106
|
+
};
|
|
107
|
+
bad_hedge?: {
|
|
108
|
+
hedges_distribution?: GetEntriesParams["distribution"];
|
|
109
|
+
hedges_ratio?: number;
|
|
110
|
+
opposite_trade_distribution?: GetEntriesParams["distribution"];
|
|
111
|
+
opposite_trade_ratio?: number;
|
|
112
|
+
stop_loss?: number;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
74
115
|
}
|
|
75
116
|
export interface AccountStrategy extends BaseSystemFields {
|
|
76
117
|
account: string;
|
|
@@ -83,16 +124,13 @@ export interface AccountStrategy extends BaseSystemFields {
|
|
|
83
124
|
running?: boolean;
|
|
84
125
|
max_reward_factor?: number;
|
|
85
126
|
follow?: boolean;
|
|
127
|
+
risk_reward?: number;
|
|
128
|
+
dynamic?: boolean;
|
|
86
129
|
}
|
|
87
130
|
interface Proxy$1 extends BaseSystemFields {
|
|
88
131
|
ip_address?: string;
|
|
89
132
|
type?: "http" | "socks5";
|
|
90
133
|
}
|
|
91
|
-
export interface TradeBlockTracking extends BaseSystemFields {
|
|
92
|
-
account?: string;
|
|
93
|
-
symbol?: string;
|
|
94
|
-
running?: boolean;
|
|
95
|
-
}
|
|
96
134
|
export interface PositionsView {
|
|
97
135
|
id: string;
|
|
98
136
|
symbol?: any;
|
|
@@ -122,6 +160,26 @@ export interface PositionsView {
|
|
|
122
160
|
follow?: boolean | 1 | 0;
|
|
123
161
|
current_price?: number;
|
|
124
162
|
usd_balance?: number;
|
|
163
|
+
tp?: {
|
|
164
|
+
price: number;
|
|
165
|
+
quantity: number;
|
|
166
|
+
};
|
|
167
|
+
next_risk?: number;
|
|
168
|
+
proxy?: string;
|
|
169
|
+
expand?: {
|
|
170
|
+
p_account?: ExchangeAccount;
|
|
171
|
+
b_config?: ScheduledTrade;
|
|
172
|
+
proxy?: Proxy$1;
|
|
173
|
+
account_strategy?: AccountStrategy;
|
|
174
|
+
compound_instance?: CompoundInstance;
|
|
175
|
+
support?: SupportTable;
|
|
176
|
+
symbol_config: SymbolConfig;
|
|
177
|
+
resistance?: SupportTable;
|
|
178
|
+
anchor?: Omit<PositionsView, "expand">;
|
|
179
|
+
record?: any;
|
|
180
|
+
};
|
|
181
|
+
pnl?: number;
|
|
182
|
+
support_price?: number;
|
|
125
183
|
}
|
|
126
184
|
export interface BullishMarket extends RecordModel {
|
|
127
185
|
id: string;
|
|
@@ -133,26 +191,54 @@ export interface WindingDownMarket extends RecordModel {
|
|
|
133
191
|
symbol: string;
|
|
134
192
|
risk_reward: number;
|
|
135
193
|
}
|
|
194
|
+
export interface Compounder extends BaseSystemFields {
|
|
195
|
+
risk?: number;
|
|
196
|
+
profit_percent?: number;
|
|
197
|
+
owner?: string;
|
|
198
|
+
completed?: boolean;
|
|
199
|
+
start_balance?: number;
|
|
200
|
+
starting_risk?: number;
|
|
201
|
+
fee_rate?: number;
|
|
202
|
+
}
|
|
203
|
+
export interface CompoundInstance extends BaseSystemFields {
|
|
204
|
+
ref?: string;
|
|
205
|
+
position?: string;
|
|
206
|
+
risk?: number;
|
|
207
|
+
hedged?: boolean;
|
|
208
|
+
loss?: number;
|
|
209
|
+
expand?: {
|
|
210
|
+
ref?: Compounder;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
export interface SupportTable extends BaseSystemFields {
|
|
214
|
+
symbol?: string;
|
|
215
|
+
price?: number;
|
|
216
|
+
counter?: number;
|
|
217
|
+
last_updated?: string;
|
|
218
|
+
kind?: "long" | "short";
|
|
219
|
+
}
|
|
136
220
|
export type GlobalConfig = {
|
|
137
|
-
profit_percent
|
|
221
|
+
profit_percent?: number;
|
|
138
222
|
symbol: string;
|
|
139
|
-
profit
|
|
140
|
-
risk
|
|
141
|
-
stop_percent
|
|
223
|
+
profit?: number;
|
|
224
|
+
risk?: number;
|
|
225
|
+
stop_percent?: number;
|
|
142
226
|
kind: "long" | "short";
|
|
143
|
-
reduce_percent
|
|
227
|
+
reduce_percent?: number;
|
|
144
228
|
support: number;
|
|
145
229
|
resistance: number;
|
|
146
230
|
price_places: string;
|
|
147
231
|
decimal_places: string;
|
|
148
|
-
min_size
|
|
149
|
-
accounts
|
|
232
|
+
min_size?: number;
|
|
233
|
+
accounts?: {
|
|
150
234
|
owner: string;
|
|
151
235
|
exchange?: string;
|
|
152
236
|
}[];
|
|
153
|
-
risk_reward
|
|
154
|
-
reverse_factor
|
|
237
|
+
risk_reward?: number;
|
|
238
|
+
reverse_factor?: number;
|
|
155
239
|
leverage?: number;
|
|
240
|
+
max_quantity?: number;
|
|
241
|
+
fee_percent?: number;
|
|
156
242
|
};
|
|
157
243
|
interface Position$1 {
|
|
158
244
|
id: number;
|
|
@@ -169,6 +255,7 @@ interface Position$1 {
|
|
|
169
255
|
target_pnl?: number;
|
|
170
256
|
reduce_ratio?: number;
|
|
171
257
|
use_full?: boolean;
|
|
258
|
+
liquidation?: number;
|
|
172
259
|
}
|
|
173
260
|
export interface Account {
|
|
174
261
|
id: number | string;
|
|
@@ -218,40 +305,86 @@ interface Order$1 {
|
|
|
218
305
|
stop: number;
|
|
219
306
|
triggerPrice?: number;
|
|
220
307
|
}
|
|
308
|
+
export interface CandlestickAnalysisResult {
|
|
309
|
+
candlesticks: {
|
|
310
|
+
[key: string]: any[];
|
|
311
|
+
};
|
|
312
|
+
resistance: {
|
|
313
|
+
[key: string]: number;
|
|
314
|
+
};
|
|
315
|
+
support: {
|
|
316
|
+
[key: string]: number;
|
|
317
|
+
};
|
|
318
|
+
current_price: number;
|
|
319
|
+
minimum_weekly: number;
|
|
320
|
+
}
|
|
221
321
|
declare abstract class BaseExchange {
|
|
222
322
|
client: any;
|
|
323
|
+
name: string;
|
|
324
|
+
getCredentials: (payload: {
|
|
325
|
+
account: string;
|
|
326
|
+
}) => Promise<{
|
|
327
|
+
api_key: string;
|
|
328
|
+
api_secret: string;
|
|
329
|
+
email: string;
|
|
330
|
+
}>;
|
|
331
|
+
proxyAgent?: any;
|
|
332
|
+
remoteActionBaseUrl?: string;
|
|
223
333
|
constructor(client: any);
|
|
224
|
-
abstract
|
|
334
|
+
protected abstract getPositionInfo(symbol: string): Promise<any>;
|
|
335
|
+
abstract cancelAllOrders(symbol: string, payload: {
|
|
336
|
+
type?: "limit" | "stop" | "tp";
|
|
337
|
+
side?: "buy" | "sell";
|
|
338
|
+
kind?: "long" | "short";
|
|
339
|
+
}): Promise<any>;
|
|
340
|
+
protected abstract getCurrentPrice(symbol: string): Promise<any>;
|
|
341
|
+
protected abstract getExchangeInfo(options: {
|
|
342
|
+
price_places?: string;
|
|
343
|
+
decimal_places?: string;
|
|
344
|
+
account: {
|
|
345
|
+
owner: string;
|
|
346
|
+
exchange: string;
|
|
347
|
+
};
|
|
348
|
+
symbol: string;
|
|
349
|
+
}): Promise<any>;
|
|
350
|
+
protected abstract _createLimitPurchaseOrders(payload: {
|
|
351
|
+
symbol: string;
|
|
352
|
+
orders: any[];
|
|
353
|
+
price_places?: string;
|
|
354
|
+
decimal_places?: string;
|
|
355
|
+
}): Promise<any>;
|
|
356
|
+
rawCreateLimitPurchaseOrders(payload: {
|
|
225
357
|
symbol: string;
|
|
226
358
|
orders: Order$1[];
|
|
227
359
|
price_places?: string;
|
|
228
360
|
decimal_places?: string;
|
|
229
361
|
}): Promise<any>;
|
|
230
|
-
|
|
362
|
+
placeStopOrders(payload: {
|
|
231
363
|
symbol: string;
|
|
232
364
|
quantity: number;
|
|
233
365
|
kind: "long" | "short";
|
|
234
366
|
stop: number;
|
|
235
367
|
price_places?: string;
|
|
236
368
|
decimal_places?: string;
|
|
369
|
+
hedge?: boolean;
|
|
237
370
|
place?: boolean;
|
|
238
371
|
}): Promise<any>;
|
|
239
|
-
|
|
240
|
-
orders:
|
|
372
|
+
bulkPlaceLimitOrders(payload: {
|
|
373
|
+
orders: Order$1[];
|
|
241
374
|
kind: "long" | "short";
|
|
242
375
|
decimal_places?: string;
|
|
243
376
|
price_places?: string;
|
|
244
377
|
symbol: string;
|
|
245
378
|
place?: boolean;
|
|
246
|
-
}): Promise<any>;
|
|
247
|
-
|
|
379
|
+
}): Promise<any[]>;
|
|
380
|
+
get_current_price(symbol: string): Promise<any>;
|
|
248
381
|
abstract analyzeCharts(payload: {
|
|
249
382
|
symbol: string;
|
|
250
383
|
chartType: any;
|
|
251
|
-
|
|
384
|
+
limit: number;
|
|
252
385
|
raw?: boolean;
|
|
253
386
|
}): Promise<any>;
|
|
254
|
-
|
|
387
|
+
getExchangeAccountInfo(options: {
|
|
255
388
|
price_places?: string;
|
|
256
389
|
decimal_places?: string;
|
|
257
390
|
account: {
|
|
@@ -260,11 +393,27 @@ declare abstract class BaseExchange {
|
|
|
260
393
|
};
|
|
261
394
|
symbol: string;
|
|
262
395
|
}): Promise<any>;
|
|
263
|
-
abstract
|
|
396
|
+
protected abstract _cancelOrders(payload: {
|
|
397
|
+
symbol: string;
|
|
398
|
+
orders: Array<{
|
|
399
|
+
orderId?: any;
|
|
400
|
+
clientOrderId?: any;
|
|
401
|
+
}>;
|
|
402
|
+
}): Promise<any>;
|
|
403
|
+
cancelOrders(payload: {
|
|
264
404
|
symbol: string;
|
|
265
405
|
orders: number[];
|
|
266
406
|
}): Promise<any>;
|
|
267
|
-
abstract
|
|
407
|
+
protected abstract _placeTpOrder(payload: {
|
|
408
|
+
symbol: string;
|
|
409
|
+
tp: number;
|
|
410
|
+
kind: "long" | "short";
|
|
411
|
+
cancel?: boolean;
|
|
412
|
+
quantity?: number;
|
|
413
|
+
price_places?: string;
|
|
414
|
+
decimal_places?: string;
|
|
415
|
+
}): Promise<any>;
|
|
416
|
+
placeTpOrder(payload: {
|
|
268
417
|
symbol: string;
|
|
269
418
|
take_profit: number;
|
|
270
419
|
kind: "long" | "short";
|
|
@@ -273,7 +422,18 @@ declare abstract class BaseExchange {
|
|
|
273
422
|
price_places?: string;
|
|
274
423
|
decimal_places?: string;
|
|
275
424
|
}): Promise<any>;
|
|
276
|
-
abstract
|
|
425
|
+
protected abstract placeLimitOrders(payload: {
|
|
426
|
+
symbol: string;
|
|
427
|
+
orders: Array<{
|
|
428
|
+
entry: number;
|
|
429
|
+
quantity: number;
|
|
430
|
+
}>;
|
|
431
|
+
kind: "long" | "short";
|
|
432
|
+
cancel?: boolean;
|
|
433
|
+
price_places?: string;
|
|
434
|
+
decimal_places?: string;
|
|
435
|
+
}): Promise<any>;
|
|
436
|
+
placeLimitOrder(payload: {
|
|
277
437
|
symbol: string;
|
|
278
438
|
quantity: number;
|
|
279
439
|
kind: "long" | "short";
|
|
@@ -281,13 +441,27 @@ declare abstract class BaseExchange {
|
|
|
281
441
|
price_places?: string;
|
|
282
442
|
decimal_places?: string;
|
|
283
443
|
}): Promise<any>;
|
|
284
|
-
abstract
|
|
444
|
+
protected abstract _placeStopOrder(payload: {
|
|
445
|
+
symbol: string;
|
|
446
|
+
stop: number;
|
|
447
|
+
quantity: number;
|
|
448
|
+
kind: "long" | "short";
|
|
449
|
+
price_places?: string;
|
|
450
|
+
decimal_places?: string;
|
|
451
|
+
final_stop: number;
|
|
452
|
+
cancel?: boolean;
|
|
453
|
+
is_limit?: boolean;
|
|
454
|
+
current_price: number;
|
|
455
|
+
hedge?: boolean;
|
|
456
|
+
}): Promise<any>;
|
|
457
|
+
placeStopOrder(payload: {
|
|
285
458
|
symbol: string;
|
|
286
459
|
stop: number;
|
|
287
460
|
quantity: number;
|
|
288
461
|
kind: "long" | "short";
|
|
289
462
|
price_places?: string;
|
|
290
463
|
decimal_places?: string;
|
|
464
|
+
hedge?: boolean;
|
|
291
465
|
}): Promise<any>;
|
|
292
466
|
abstract setLeverage(payload: {
|
|
293
467
|
symbol: string;
|
|
@@ -302,14 +476,15 @@ declare abstract class BaseExchange {
|
|
|
302
476
|
movePercent: number;
|
|
303
477
|
include_delisted?: boolean;
|
|
304
478
|
}): Promise<any>;
|
|
305
|
-
|
|
479
|
+
closePosition(payload: {
|
|
306
480
|
symbol: string;
|
|
307
481
|
kind: "long" | "short";
|
|
308
482
|
price_places?: string;
|
|
309
483
|
decimal_places?: string;
|
|
310
484
|
}): Promise<any>;
|
|
311
|
-
abstract
|
|
312
|
-
|
|
485
|
+
protected abstract getAllOpenOrders(): Promise<any>;
|
|
486
|
+
getAllOpenSymbols(): Promise<unknown[]>;
|
|
487
|
+
createLimitPurchaseOrders(payload: {
|
|
313
488
|
orders: any[];
|
|
314
489
|
kind: "long" | "short";
|
|
315
490
|
decimal_places?: string;
|
|
@@ -330,12 +505,13 @@ declare abstract class BaseExchange {
|
|
|
330
505
|
asset: string;
|
|
331
506
|
amount: number;
|
|
332
507
|
}): Promise<any>;
|
|
333
|
-
|
|
508
|
+
placeMarketOrder(payload: {
|
|
334
509
|
symbol: string;
|
|
335
510
|
kind: "long" | "short";
|
|
336
511
|
quantity: number;
|
|
337
512
|
price_places?: string;
|
|
338
513
|
decimal_places?: string;
|
|
514
|
+
close?: boolean;
|
|
339
515
|
}): Promise<any>;
|
|
340
516
|
customStopLoss(payload: {
|
|
341
517
|
price_places: string;
|
|
@@ -345,8 +521,46 @@ declare abstract class BaseExchange {
|
|
|
345
521
|
stop: number;
|
|
346
522
|
quantity: number;
|
|
347
523
|
increase?: boolean;
|
|
524
|
+
place?: boolean;
|
|
525
|
+
increase_ratio?: number;
|
|
526
|
+
}): Promise<any>;
|
|
527
|
+
abstract getOpenOrders(payload: {
|
|
528
|
+
symbol: string;
|
|
529
|
+
}): Promise<any>;
|
|
530
|
+
placeBadStopEntry(payload: {
|
|
531
|
+
symbol: string;
|
|
532
|
+
orders: Order$1[];
|
|
533
|
+
price_places?: string;
|
|
534
|
+
decimal_places?: string;
|
|
348
535
|
}): Promise<any>;
|
|
536
|
+
analyzeCandlesticks(payload: {
|
|
537
|
+
symbol: string;
|
|
538
|
+
}): Promise<CandlestickAnalysisResult>;
|
|
539
|
+
setAccountDetails(payload: {
|
|
540
|
+
getCredentials: (payload: {
|
|
541
|
+
account: string;
|
|
542
|
+
}) => Promise<{
|
|
543
|
+
api_key: string;
|
|
544
|
+
api_secret: string;
|
|
545
|
+
email: string;
|
|
546
|
+
}>;
|
|
547
|
+
proxyAgent?: any;
|
|
548
|
+
remoteActionBaseUrl?: string;
|
|
549
|
+
}): void;
|
|
550
|
+
getSymbolInformation(payload: {
|
|
551
|
+
symbol: string;
|
|
552
|
+
variant?: "full" | "short";
|
|
553
|
+
}): Promise<{
|
|
554
|
+
candlesticks: Record<string, any[]>;
|
|
555
|
+
resistance: Record<string, number>;
|
|
556
|
+
support: Record<string, number>;
|
|
557
|
+
currentPrice: number;
|
|
558
|
+
minimumWeekly?: number;
|
|
559
|
+
lowest?: number;
|
|
560
|
+
}>;
|
|
349
561
|
}
|
|
562
|
+
declare function encryptObject(obj: any, password: string): string;
|
|
563
|
+
declare function decryptObject(encryptedString: string, password: string): any;
|
|
350
564
|
declare function initPocketBaseClient(proxy_credentials: {
|
|
351
565
|
host: string;
|
|
352
566
|
email: string;
|
|
@@ -359,14 +573,40 @@ export type ExchangeType = {
|
|
|
359
573
|
};
|
|
360
574
|
export declare class AppDatabase {
|
|
361
575
|
pb: PocketBase;
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
576
|
+
email?: string;
|
|
577
|
+
salt?: string;
|
|
578
|
+
constructor(pb: PocketBase, payload: {
|
|
579
|
+
email?: string;
|
|
580
|
+
salt?: string;
|
|
581
|
+
});
|
|
582
|
+
getUserByEmail(): Promise<import("pocketbase").RecordModel>;
|
|
583
|
+
verifyUserPassword(password: string): Promise<boolean>;
|
|
584
|
+
generateUserPassword(): Promise<boolean>;
|
|
585
|
+
getUserCredentials(): Promise<any>;
|
|
586
|
+
getCredentials(payload: {
|
|
587
|
+
password?: string;
|
|
588
|
+
}): Promise<any>;
|
|
589
|
+
saveCredentials(params: {
|
|
590
|
+
password?: string;
|
|
591
|
+
credentials: any;
|
|
592
|
+
}): Promise<import("pocketbase").RecordModel>;
|
|
593
|
+
changeUserPassword(payload: {
|
|
594
|
+
password: string;
|
|
595
|
+
}): Promise<boolean>;
|
|
596
|
+
verifyAdminPassword(password: string): Promise<boolean>;
|
|
597
|
+
setAdminPassword(payload: {
|
|
598
|
+
password: string;
|
|
599
|
+
salt: string;
|
|
600
|
+
}): Promise<boolean>;
|
|
601
|
+
addNewCredential(params: {
|
|
602
|
+
password?: string;
|
|
603
|
+
payload: {
|
|
604
|
+
name: string;
|
|
605
|
+
email: string;
|
|
606
|
+
exchange: string;
|
|
607
|
+
api_key: string;
|
|
608
|
+
api_secret: string;
|
|
609
|
+
};
|
|
370
610
|
}): Promise<void>;
|
|
371
611
|
getAccountWithActivePositions(): Promise<import("pocketbase").RecordModel[]>;
|
|
372
612
|
getAllSymbolsFromPositions(options?: {
|
|
@@ -395,6 +635,12 @@ export declare class AppDatabase {
|
|
|
395
635
|
proxy: Proxy$1;
|
|
396
636
|
};
|
|
397
637
|
}>;
|
|
638
|
+
get positionExpand(): string;
|
|
639
|
+
fetchCentralPositions(payload: {
|
|
640
|
+
asset?: string;
|
|
641
|
+
symbol?: string;
|
|
642
|
+
customFilter?: string;
|
|
643
|
+
}): Promise<import("pocketbase").RecordModel[]>;
|
|
398
644
|
getPositions(options: {
|
|
399
645
|
account?: ExchangeType;
|
|
400
646
|
symbol?: string;
|
|
@@ -404,6 +650,7 @@ export declare class AppDatabase {
|
|
|
404
650
|
expand?: {
|
|
405
651
|
config: ScheduledTrade;
|
|
406
652
|
account: ExchangeAccount;
|
|
653
|
+
proxy: Proxy$1;
|
|
407
654
|
};
|
|
408
655
|
})[]>;
|
|
409
656
|
private _createOrUpdatePosition;
|
|
@@ -416,14 +663,11 @@ export declare class AppDatabase {
|
|
|
416
663
|
expand?: {
|
|
417
664
|
config: ScheduledTrade;
|
|
418
665
|
account: ExchangeAccount;
|
|
666
|
+
proxy: Proxy$1;
|
|
419
667
|
};
|
|
420
668
|
})[]>;
|
|
421
669
|
update_db_position(position: any, payload: any): Promise<import("pocketbase").RecordModel>;
|
|
422
670
|
getSymbolConfigFromDB(symbol: string): Promise<SymbolConfig>;
|
|
423
|
-
getRunningInstanceFromDB(account: ExchangeType, symbol: string, options?: {
|
|
424
|
-
delay?: number;
|
|
425
|
-
}): Promise<TradeBlockTracking>;
|
|
426
|
-
updateRunningInstance(id: string, running: boolean): Promise<import("pocketbase").RecordModel>;
|
|
427
671
|
getOrders(account: ExchangeType, options: {
|
|
428
672
|
symbol: string;
|
|
429
673
|
kind: "long" | "short";
|
|
@@ -455,17 +699,19 @@ export declare class AppDatabase {
|
|
|
455
699
|
stop: number;
|
|
456
700
|
order_id: string;
|
|
457
701
|
triggerPrice?: number;
|
|
702
|
+
clientOrderId?: string;
|
|
458
703
|
}>;
|
|
459
704
|
}): Promise<void>;
|
|
460
705
|
cancelLimitOrders(payload: {
|
|
461
706
|
symbol: string;
|
|
462
707
|
kind: "long" | "short";
|
|
463
708
|
account: ExchangeType;
|
|
709
|
+
raw?: boolean;
|
|
464
710
|
cancelExchangeOrders: (payload: {
|
|
465
711
|
symbol: string;
|
|
466
712
|
orders: number[];
|
|
467
713
|
}) => Promise<any>;
|
|
468
|
-
}): Promise<
|
|
714
|
+
}): Promise<any[]>;
|
|
469
715
|
cancelOrders(payload: {
|
|
470
716
|
cancelExchangeOrders: (payload: {
|
|
471
717
|
symbol: string;
|
|
@@ -508,13 +754,14 @@ export declare class AppDatabase {
|
|
|
508
754
|
profit_percent?: number;
|
|
509
755
|
place_tp?: boolean;
|
|
510
756
|
profit?: number;
|
|
757
|
+
reduce_ratio?: number;
|
|
511
758
|
}): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
|
|
512
759
|
getPositionConfig(payload: {
|
|
513
760
|
symbol: string;
|
|
514
761
|
kind: "long" | "short";
|
|
515
762
|
account: ExchangeType;
|
|
516
763
|
}): Promise<ScheduledTrade | null>;
|
|
517
|
-
getRunningAccountStrategies(): Promise<(AccountStrategy & {
|
|
764
|
+
getRunningAccountStrategies(filter?: string): Promise<(AccountStrategy & {
|
|
518
765
|
expand?: {
|
|
519
766
|
account: ExchangeAccount;
|
|
520
767
|
};
|
|
@@ -556,10 +803,72 @@ export declare class AppDatabase {
|
|
|
556
803
|
} | SymbolConfig[]>;
|
|
557
804
|
unwindSymbolFromDB(symbol: string): Promise<boolean>;
|
|
558
805
|
hasExistingPosition(symbol: string): Promise<import("pocketbase").RecordModel[]>;
|
|
806
|
+
getPositionWithLowestNextOrder(options: {
|
|
807
|
+
symbol?: string;
|
|
808
|
+
kind: "long" | "short";
|
|
809
|
+
asset?: string;
|
|
810
|
+
exclude?: ExchangeType[];
|
|
811
|
+
}): Promise<PositionsView | null>;
|
|
559
812
|
hasExistingOrders(symbol: string): Promise<import("pocketbase").RecordModel[]>;
|
|
560
813
|
removeSymbolFromUnwindingMarkets(symbol: string): Promise<boolean>;
|
|
561
814
|
removePosition(position: any): Promise<void>;
|
|
562
815
|
removePositionConfig(position: any): Promise<void>;
|
|
816
|
+
getConfigProfiles(payload: {
|
|
817
|
+
config_id: string;
|
|
818
|
+
}): Promise<{
|
|
819
|
+
id: any;
|
|
820
|
+
entry: any;
|
|
821
|
+
stop: any;
|
|
822
|
+
kind: "long" | "short";
|
|
823
|
+
risk_reward: any;
|
|
824
|
+
risk: any;
|
|
825
|
+
profit_percent: any;
|
|
826
|
+
}[]>;
|
|
827
|
+
editConfigProfile(payload: {
|
|
828
|
+
id: string;
|
|
829
|
+
params: {
|
|
830
|
+
entry?: number;
|
|
831
|
+
stop?: number;
|
|
832
|
+
risk_reward?: number;
|
|
833
|
+
risk?: number;
|
|
834
|
+
profit_percent?: number;
|
|
835
|
+
};
|
|
836
|
+
}): Promise<void>;
|
|
837
|
+
createConfigProfile(payload: {
|
|
838
|
+
config_id: string;
|
|
839
|
+
symbol: string;
|
|
840
|
+
params: {
|
|
841
|
+
entry: number;
|
|
842
|
+
stop: number;
|
|
843
|
+
kind: "long" | "short";
|
|
844
|
+
risk_reward: number;
|
|
845
|
+
risk: number;
|
|
846
|
+
profit_percent: number;
|
|
847
|
+
};
|
|
848
|
+
}): Promise<void>;
|
|
849
|
+
getCompoundInstance(payload: {
|
|
850
|
+
position: Position$1;
|
|
851
|
+
}): Promise<CompoundInstance & {
|
|
852
|
+
expand: {
|
|
853
|
+
ref: Compounder;
|
|
854
|
+
};
|
|
855
|
+
}>;
|
|
856
|
+
getSupportTable(payload: {
|
|
857
|
+
symbol: string;
|
|
858
|
+
kind: "long" | "short";
|
|
859
|
+
}): Promise<SupportTable>;
|
|
860
|
+
updateCompoundInstance(payload: {
|
|
861
|
+
id: string;
|
|
862
|
+
params: any;
|
|
863
|
+
}): Promise<import("pocketbase").RecordModel>;
|
|
864
|
+
getPositionsByAssetPair(payload: {
|
|
865
|
+
asset: string;
|
|
866
|
+
symbol?: string;
|
|
867
|
+
isCompound?: boolean;
|
|
868
|
+
}): Promise<{
|
|
869
|
+
pairObject: any;
|
|
870
|
+
asset: string;
|
|
871
|
+
}>;
|
|
563
872
|
}
|
|
564
873
|
export type StrategyPosition = {
|
|
565
874
|
entry: number;
|
|
@@ -746,15 +1055,48 @@ export declare class Strategy {
|
|
|
746
1055
|
gap?: number;
|
|
747
1056
|
rr?: number;
|
|
748
1057
|
max_size?: number;
|
|
1058
|
+
max_quantity?: number;
|
|
1059
|
+
kelly?: {
|
|
1060
|
+
use_kelly?: boolean;
|
|
1061
|
+
kelly_confidence_factor?: number;
|
|
1062
|
+
kelly_minimum_risk?: number;
|
|
1063
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1064
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1065
|
+
};
|
|
1066
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1067
|
+
distribution_params?: {
|
|
1068
|
+
curveFactor?: number;
|
|
1069
|
+
stdDevFactor?: number;
|
|
1070
|
+
lambda?: number;
|
|
1071
|
+
};
|
|
749
1072
|
};
|
|
750
1073
|
identifyGapConfig(payload: {
|
|
751
1074
|
factor?: number;
|
|
1075
|
+
sell_factor?: number;
|
|
1076
|
+
kind?: "long" | "short";
|
|
1077
|
+
risk?: number;
|
|
752
1078
|
}): {
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
1079
|
+
profit_percent: {
|
|
1080
|
+
long: number;
|
|
1081
|
+
short: number;
|
|
1082
|
+
};
|
|
1083
|
+
risk: {
|
|
1084
|
+
short: number;
|
|
1085
|
+
long: number;
|
|
1086
|
+
};
|
|
1087
|
+
take_profit: {
|
|
1088
|
+
long: number;
|
|
1089
|
+
short: number;
|
|
1090
|
+
};
|
|
1091
|
+
to_reduce: {
|
|
1092
|
+
short: number;
|
|
1093
|
+
long: number;
|
|
1094
|
+
};
|
|
1095
|
+
full_reduce: {
|
|
1096
|
+
short: number;
|
|
1097
|
+
long: number;
|
|
1098
|
+
};
|
|
1099
|
+
sell_quantity: {
|
|
758
1100
|
short: number;
|
|
759
1101
|
long: number;
|
|
760
1102
|
};
|
|
@@ -769,6 +1111,7 @@ export declare class Strategy {
|
|
|
769
1111
|
}): {
|
|
770
1112
|
pnl: number;
|
|
771
1113
|
loss: number;
|
|
1114
|
+
full_loss: number;
|
|
772
1115
|
original_pnl: number;
|
|
773
1116
|
reward_factor: number;
|
|
774
1117
|
profit_percent: number;
|
|
@@ -778,8 +1121,57 @@ export declare class Strategy {
|
|
|
778
1121
|
price_places: string;
|
|
779
1122
|
decimal_places: string;
|
|
780
1123
|
};
|
|
1124
|
+
simulateGapReduction(payload: {
|
|
1125
|
+
iterations?: number;
|
|
1126
|
+
factor?: number;
|
|
1127
|
+
direction: "long" | "short";
|
|
1128
|
+
kind?: "long" | "short";
|
|
1129
|
+
risk?: number;
|
|
1130
|
+
sell_factor?: number;
|
|
1131
|
+
}): {
|
|
1132
|
+
results: {
|
|
1133
|
+
profit_percent: {
|
|
1134
|
+
long: number;
|
|
1135
|
+
short: number;
|
|
1136
|
+
};
|
|
1137
|
+
risk: {
|
|
1138
|
+
short: number;
|
|
1139
|
+
long: number;
|
|
1140
|
+
};
|
|
1141
|
+
take_profit: {
|
|
1142
|
+
long: number;
|
|
1143
|
+
short: number;
|
|
1144
|
+
};
|
|
1145
|
+
sell_quantity: {
|
|
1146
|
+
short: number;
|
|
1147
|
+
long: number;
|
|
1148
|
+
};
|
|
1149
|
+
gap_loss: number;
|
|
1150
|
+
position: {
|
|
1151
|
+
long: {
|
|
1152
|
+
entry: number;
|
|
1153
|
+
quantity: number;
|
|
1154
|
+
};
|
|
1155
|
+
short: {
|
|
1156
|
+
entry: number;
|
|
1157
|
+
quantity: number;
|
|
1158
|
+
};
|
|
1159
|
+
};
|
|
1160
|
+
}[];
|
|
1161
|
+
quantity: number;
|
|
1162
|
+
};
|
|
781
1163
|
}
|
|
1164
|
+
export declare function determine_average_entry_and_size(orders: Array<{
|
|
1165
|
+
price: number;
|
|
1166
|
+
quantity: number;
|
|
1167
|
+
}>, places?: string, price_places?: string): {
|
|
1168
|
+
entry: number;
|
|
1169
|
+
price: number;
|
|
1170
|
+
quantity: number;
|
|
1171
|
+
};
|
|
1172
|
+
export declare const createArray: (start: number, stop: number, step: number) => number[];
|
|
782
1173
|
export type SignalConfigType = {
|
|
1174
|
+
symbol?: string;
|
|
783
1175
|
focus: number;
|
|
784
1176
|
budget: number;
|
|
785
1177
|
percent_change?: number;
|
|
@@ -800,12 +1192,32 @@ export type SignalConfigType = {
|
|
|
800
1192
|
first_order_size?: number;
|
|
801
1193
|
gap?: number;
|
|
802
1194
|
max_size?: number;
|
|
1195
|
+
use_kelly?: boolean;
|
|
1196
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1197
|
+
kelly_confidence_factor?: number;
|
|
1198
|
+
kelly_minimum_risk?: number;
|
|
1199
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1200
|
+
full_distribution?: {
|
|
1201
|
+
long: GetEntriesParams["distribution"];
|
|
1202
|
+
short: GetEntriesParams["distribution"];
|
|
1203
|
+
};
|
|
1204
|
+
max_quantity?: number;
|
|
1205
|
+
distribution_params?: {
|
|
1206
|
+
curveFactor?: number;
|
|
1207
|
+
stdDevFactor?: number;
|
|
1208
|
+
lambda?: number;
|
|
1209
|
+
};
|
|
803
1210
|
};
|
|
804
1211
|
declare class Signal {
|
|
805
1212
|
focus: number;
|
|
806
1213
|
budget: number;
|
|
807
1214
|
percent_change: number;
|
|
808
1215
|
price_places: string;
|
|
1216
|
+
distribution_params: {
|
|
1217
|
+
curveFactor?: number;
|
|
1218
|
+
stdDevFactor?: number;
|
|
1219
|
+
lambda?: number;
|
|
1220
|
+
};
|
|
809
1221
|
decimal_places: string;
|
|
810
1222
|
zone_risk: number;
|
|
811
1223
|
fee: number;
|
|
@@ -822,8 +1234,19 @@ declare class Signal {
|
|
|
822
1234
|
first_order_size: number;
|
|
823
1235
|
gap: number;
|
|
824
1236
|
max_size: number;
|
|
825
|
-
|
|
826
|
-
|
|
1237
|
+
use_kelly: boolean;
|
|
1238
|
+
kelly_prediction_model: "exponential" | "normal" | "uniform";
|
|
1239
|
+
kelly_confidence_factor: number;
|
|
1240
|
+
kelly_minimum_risk: number;
|
|
1241
|
+
kelly_func: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1242
|
+
symbol?: string;
|
|
1243
|
+
distribution: {
|
|
1244
|
+
long: GetEntriesParams["distribution"];
|
|
1245
|
+
short: GetEntriesParams["distribution"];
|
|
1246
|
+
};
|
|
1247
|
+
max_quantity: number;
|
|
1248
|
+
constructor({ focus, symbol, budget, percent_change, price_places, decimal_places, zone_risk, fee, support, risk_reward, resistance, risk_per_trade, increase_size, additional_increase, minimum_pnl, take_profit, increase_position, minimum_size, first_order_size, gap, max_size, use_kelly, kelly_prediction_model, kelly_confidence_factor, kelly_minimum_risk, kelly_func, full_distribution, max_quantity, distribution_params, }: SignalConfigType);
|
|
1249
|
+
build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, distribution, distribution_params, }: {
|
|
827
1250
|
take_profit?: number;
|
|
828
1251
|
no_of_trades?: number;
|
|
829
1252
|
current_price: number;
|
|
@@ -832,6 +1255,12 @@ declare class Signal {
|
|
|
832
1255
|
risk: number;
|
|
833
1256
|
stop_percent?: number;
|
|
834
1257
|
pnl?: number;
|
|
1258
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1259
|
+
distribution_params?: {
|
|
1260
|
+
curveFactor?: number;
|
|
1261
|
+
stdDevFactor?: number;
|
|
1262
|
+
lambda?: number;
|
|
1263
|
+
};
|
|
835
1264
|
}): any;
|
|
836
1265
|
get risk(): number;
|
|
837
1266
|
get min_trades(): number;
|
|
@@ -865,6 +1294,11 @@ declare class Signal {
|
|
|
865
1294
|
kind?: "long" | "short";
|
|
866
1295
|
limit?: boolean;
|
|
867
1296
|
}): any;
|
|
1297
|
+
get_future_zones_simple({ current_price, kind, raw, }: {
|
|
1298
|
+
raw?: boolean;
|
|
1299
|
+
current_price: number;
|
|
1300
|
+
kind?: "long" | "short";
|
|
1301
|
+
}): number[];
|
|
868
1302
|
get_future_zones({ current_price, kind, raw, }: {
|
|
869
1303
|
raw?: boolean;
|
|
870
1304
|
current_price: number;
|
|
@@ -908,15 +1342,6 @@ declare class Signal {
|
|
|
908
1342
|
};
|
|
909
1343
|
to_df(currentPrice: number, places?: string): number;
|
|
910
1344
|
}
|
|
911
|
-
export declare function determine_average_entry_and_size(orders: Array<{
|
|
912
|
-
price: number;
|
|
913
|
-
quantity: number;
|
|
914
|
-
}>, places?: string, price_places?: string): {
|
|
915
|
-
entry: number;
|
|
916
|
-
price: number;
|
|
917
|
-
quantity: number;
|
|
918
|
-
};
|
|
919
|
-
export declare const createArray: (start: number, stop: number, step: number) => number[];
|
|
920
1345
|
export type AppConfig = {
|
|
921
1346
|
fee: number;
|
|
922
1347
|
risk_per_trade: number;
|
|
@@ -944,6 +1369,20 @@ export type AppConfig = {
|
|
|
944
1369
|
max_size?: number;
|
|
945
1370
|
last_value?: any;
|
|
946
1371
|
entries?: any[];
|
|
1372
|
+
max_quantity?: number;
|
|
1373
|
+
kelly?: {
|
|
1374
|
+
use_kelly?: boolean;
|
|
1375
|
+
kelly_confidence_factor?: number;
|
|
1376
|
+
kelly_minimum_risk?: number;
|
|
1377
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1378
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1379
|
+
};
|
|
1380
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1381
|
+
distribution_params?: {
|
|
1382
|
+
curveFactor?: number;
|
|
1383
|
+
stdDevFactor?: number;
|
|
1384
|
+
lambda?: number;
|
|
1385
|
+
};
|
|
947
1386
|
};
|
|
948
1387
|
export type ExtendConfigType = {
|
|
949
1388
|
take_profit?: number;
|
|
@@ -960,8 +1399,20 @@ export type ExtendConfigType = {
|
|
|
960
1399
|
kind?: "long" | "short";
|
|
961
1400
|
gap?: number;
|
|
962
1401
|
rr?: number;
|
|
1402
|
+
min_avg_size?: number;
|
|
1403
|
+
use_kelly?: boolean;
|
|
1404
|
+
kelly_confidence_factor?: number;
|
|
1405
|
+
kelly_minimum_risk?: number;
|
|
1406
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1407
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1408
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1409
|
+
distribution_params?: {
|
|
1410
|
+
curveFactor?: number;
|
|
1411
|
+
stdDevFactor?: number;
|
|
1412
|
+
lambda?: number;
|
|
1413
|
+
};
|
|
963
1414
|
};
|
|
964
|
-
export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, }: ExtendConfigType): any[] | Signal;
|
|
1415
|
+
export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, use_kelly, kelly_confidence_factor, kelly_minimum_risk, kelly_prediction_model, kelly_func, min_avg_size, distribution, distribution_params, }: ExtendConfigType): any[] | Signal;
|
|
965
1416
|
export declare function buildAvg({ _trades, kind, }: {
|
|
966
1417
|
_trades: any[];
|
|
967
1418
|
kind: "long" | "short";
|
|
@@ -971,6 +1422,17 @@ export declare function get_app_config_and_max_size(config: GlobalConfig, payloa
|
|
|
971
1422
|
entry: number;
|
|
972
1423
|
stop: number;
|
|
973
1424
|
kind: "long" | "short";
|
|
1425
|
+
use_kelly?: boolean;
|
|
1426
|
+
kelly_confidence_factor?: number;
|
|
1427
|
+
kelly_minimum_risk?: number;
|
|
1428
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1429
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1430
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1431
|
+
distribution_params?: {
|
|
1432
|
+
curveFactor?: number;
|
|
1433
|
+
stdDevFactor?: number;
|
|
1434
|
+
lambda?: number;
|
|
1435
|
+
};
|
|
974
1436
|
}): {
|
|
975
1437
|
app_config: AppConfig;
|
|
976
1438
|
max_size: any;
|
|
@@ -990,11 +1452,28 @@ export declare function buildAppConfig(config: GlobalConfig, payload: {
|
|
|
990
1452
|
risk: number;
|
|
991
1453
|
symbol: string;
|
|
992
1454
|
profit?: number;
|
|
1455
|
+
use_kelly?: boolean;
|
|
1456
|
+
kelly_confidence_factor?: number;
|
|
1457
|
+
kelly_minimum_risk?: number;
|
|
1458
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1459
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1460
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1461
|
+
distribution_params?: {
|
|
1462
|
+
curveFactor?: number;
|
|
1463
|
+
stdDevFactor?: number;
|
|
1464
|
+
lambda?: number;
|
|
1465
|
+
};
|
|
993
1466
|
}): AppConfig;
|
|
994
1467
|
export declare function getOptimumStopAndRisk(app_config: AppConfig, params: {
|
|
995
1468
|
max_size: number;
|
|
996
1469
|
target_stop: number;
|
|
997
1470
|
highest_risk?: number;
|
|
1471
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1472
|
+
distribution_params?: {
|
|
1473
|
+
curveFactor?: number;
|
|
1474
|
+
stdDevFactor?: number;
|
|
1475
|
+
lambda?: number;
|
|
1476
|
+
};
|
|
998
1477
|
}): {
|
|
999
1478
|
optimal_stop: number;
|
|
1000
1479
|
optimal_risk: number;
|
|
@@ -1051,26 +1530,82 @@ export declare function generateOptimumAppConfig(config: GlobalConfig, payload:
|
|
|
1051
1530
|
risk_reward: number;
|
|
1052
1531
|
start_risk: number;
|
|
1053
1532
|
max_risk?: number;
|
|
1533
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1534
|
+
distribution_params?: {
|
|
1535
|
+
curveFactor?: number;
|
|
1536
|
+
stdDevFactor?: number;
|
|
1537
|
+
lambda?: number;
|
|
1538
|
+
};
|
|
1054
1539
|
}, position: {
|
|
1055
1540
|
entry: number;
|
|
1056
1541
|
quantity: number;
|
|
1057
1542
|
kind: "long" | "short";
|
|
1058
1543
|
}): AppConfig | null;
|
|
1059
|
-
export declare function determineOptimumReward(
|
|
1544
|
+
export declare function determineOptimumReward(payload: {
|
|
1545
|
+
app_config: AppConfig;
|
|
1546
|
+
increase?: boolean;
|
|
1547
|
+
low_range?: number;
|
|
1548
|
+
high_range?: number;
|
|
1549
|
+
target_loss?: number;
|
|
1550
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1551
|
+
distribution_params?: {
|
|
1552
|
+
curveFactor?: number;
|
|
1553
|
+
stdDevFactor?: number;
|
|
1554
|
+
lambda?: number;
|
|
1555
|
+
};
|
|
1556
|
+
max_size?: number;
|
|
1557
|
+
}): number | {
|
|
1060
1558
|
result: any[];
|
|
1061
1559
|
value: number;
|
|
1062
1560
|
total: number;
|
|
1063
1561
|
risk_per_trade: number;
|
|
1064
1562
|
max: number;
|
|
1065
1563
|
min: number;
|
|
1564
|
+
avg_size: any;
|
|
1066
1565
|
neg_pnl: any;
|
|
1067
1566
|
entry: any;
|
|
1068
1567
|
};
|
|
1568
|
+
export declare function determineOptimumRisk(config: GlobalConfig, payload: {
|
|
1569
|
+
entry: number;
|
|
1570
|
+
stop: number;
|
|
1571
|
+
risk_reward: number;
|
|
1572
|
+
risk: number;
|
|
1573
|
+
symbol: string;
|
|
1574
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1575
|
+
distribution_params?: {
|
|
1576
|
+
curveFactor?: number;
|
|
1577
|
+
stdDevFactor?: number;
|
|
1578
|
+
lambda?: number;
|
|
1579
|
+
};
|
|
1580
|
+
}, params: {
|
|
1581
|
+
highest_risk: number;
|
|
1582
|
+
tolerance?: number;
|
|
1583
|
+
max_iterations?: number;
|
|
1584
|
+
}): {
|
|
1585
|
+
optimal_risk: number;
|
|
1586
|
+
achieved_neg_pnl: number;
|
|
1587
|
+
target_neg_pnl: number;
|
|
1588
|
+
difference: number;
|
|
1589
|
+
iterations: number;
|
|
1590
|
+
converged: boolean;
|
|
1591
|
+
last_value: any;
|
|
1592
|
+
entries: any[];
|
|
1593
|
+
app_config: AppConfig;
|
|
1594
|
+
};
|
|
1069
1595
|
export declare function computeRiskReward(payload: {
|
|
1070
1596
|
app_config: AppConfig;
|
|
1071
1597
|
entry: number;
|
|
1072
1598
|
stop: number;
|
|
1073
1599
|
risk_per_trade: number;
|
|
1600
|
+
target_loss?: number;
|
|
1601
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1602
|
+
distribution_params?: {
|
|
1603
|
+
curveFactor?: number;
|
|
1604
|
+
stdDevFactor?: number;
|
|
1605
|
+
lambda?: number;
|
|
1606
|
+
};
|
|
1607
|
+
high_range?: number;
|
|
1608
|
+
max_size?: number;
|
|
1074
1609
|
}): number | {
|
|
1075
1610
|
result: any[];
|
|
1076
1611
|
value: number;
|
|
@@ -1078,6 +1613,7 @@ export declare function computeRiskReward(payload: {
|
|
|
1078
1613
|
risk_per_trade: number;
|
|
1079
1614
|
max: number;
|
|
1080
1615
|
min: number;
|
|
1616
|
+
avg_size: any;
|
|
1081
1617
|
neg_pnl: any;
|
|
1082
1618
|
entry: any;
|
|
1083
1619
|
};
|
|
@@ -1086,6 +1622,17 @@ export declare function getRiskReward(payload: {
|
|
|
1086
1622
|
stop: number;
|
|
1087
1623
|
risk: number;
|
|
1088
1624
|
global_config: GlobalConfig;
|
|
1625
|
+
force_exact_risk?: boolean;
|
|
1626
|
+
target_loss?: number;
|
|
1627
|
+
max_size?: number;
|
|
1628
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1629
|
+
distribution_params?: {
|
|
1630
|
+
curveFactor?: number;
|
|
1631
|
+
stdDevFactor?: number;
|
|
1632
|
+
lambda?: number;
|
|
1633
|
+
};
|
|
1634
|
+
risk_factor?: number;
|
|
1635
|
+
high_range?: number;
|
|
1089
1636
|
}): any;
|
|
1090
1637
|
export declare function computeProfitDetail(payload: {
|
|
1091
1638
|
focus_position: {
|
|
@@ -1095,11 +1642,12 @@ export declare function computeProfitDetail(payload: {
|
|
|
1095
1642
|
avg_qty: number;
|
|
1096
1643
|
avg_price: number;
|
|
1097
1644
|
};
|
|
1098
|
-
strategy
|
|
1645
|
+
strategy?: {
|
|
1099
1646
|
reward_factor: number;
|
|
1100
1647
|
max_reward_factor: number;
|
|
1101
1648
|
risk: number;
|
|
1102
1649
|
};
|
|
1650
|
+
pnl: number;
|
|
1103
1651
|
reduce_position?: {
|
|
1104
1652
|
kind: "long" | "short";
|
|
1105
1653
|
entry: number;
|
|
@@ -1116,11 +1664,13 @@ export declare function computeProfitDetail(payload: {
|
|
|
1116
1664
|
quantity: number;
|
|
1117
1665
|
};
|
|
1118
1666
|
};
|
|
1667
|
+
full_ratio?: number;
|
|
1119
1668
|
price_places?: string;
|
|
1120
1669
|
decimal_places?: string;
|
|
1121
1670
|
}): {
|
|
1122
1671
|
pnl: number;
|
|
1123
1672
|
loss: number;
|
|
1673
|
+
full_loss: number;
|
|
1124
1674
|
original_pnl: number;
|
|
1125
1675
|
reward_factor: number;
|
|
1126
1676
|
profit_percent: number;
|
|
@@ -1139,40 +1689,656 @@ export declare function generateGapTp(payload: {
|
|
|
1139
1689
|
entry: number;
|
|
1140
1690
|
quantity: number;
|
|
1141
1691
|
};
|
|
1692
|
+
risk?: number;
|
|
1693
|
+
kind?: "long" | "short";
|
|
1142
1694
|
factor?: number;
|
|
1695
|
+
sell_factor?: number;
|
|
1143
1696
|
price_places?: string;
|
|
1144
1697
|
decimal_places?: string;
|
|
1145
1698
|
}): {
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1699
|
+
profit_percent: {
|
|
1700
|
+
long: number;
|
|
1701
|
+
short: number;
|
|
1702
|
+
};
|
|
1703
|
+
risk: {
|
|
1151
1704
|
short: number;
|
|
1152
1705
|
long: number;
|
|
1153
1706
|
};
|
|
1154
|
-
|
|
1155
|
-
|
|
1707
|
+
take_profit: {
|
|
1708
|
+
long: number;
|
|
1709
|
+
short: number;
|
|
1710
|
+
};
|
|
1711
|
+
to_reduce: {
|
|
1712
|
+
short: number;
|
|
1713
|
+
long: number;
|
|
1714
|
+
};
|
|
1715
|
+
full_reduce: {
|
|
1716
|
+
short: number;
|
|
1717
|
+
long: number;
|
|
1718
|
+
};
|
|
1719
|
+
sell_quantity: {
|
|
1720
|
+
short: number;
|
|
1721
|
+
long: number;
|
|
1722
|
+
};
|
|
1723
|
+
gap: number;
|
|
1724
|
+
gap_loss: number;
|
|
1725
|
+
};
|
|
1726
|
+
export declare function calculateFactorFromTakeProfit(payload: {
|
|
1727
|
+
long: {
|
|
1728
|
+
entry: number;
|
|
1729
|
+
quantity: number;
|
|
1730
|
+
};
|
|
1731
|
+
short: {
|
|
1732
|
+
entry: number;
|
|
1733
|
+
quantity: number;
|
|
1734
|
+
};
|
|
1735
|
+
knownTp: number;
|
|
1736
|
+
tpType: "long" | "short";
|
|
1737
|
+
price_places?: string;
|
|
1738
|
+
}): number;
|
|
1739
|
+
export declare function calculateFactorFromSellQuantity(payload: {
|
|
1740
|
+
long: {
|
|
1741
|
+
entry: number;
|
|
1742
|
+
quantity: number;
|
|
1743
|
+
};
|
|
1744
|
+
short: {
|
|
1745
|
+
entry: number;
|
|
1746
|
+
quantity: number;
|
|
1747
|
+
};
|
|
1748
|
+
knownSellQuantity: number;
|
|
1749
|
+
sellType: "long" | "short";
|
|
1750
|
+
sell_factor?: number;
|
|
1751
|
+
price_places?: string;
|
|
1752
|
+
decimal_places?: string;
|
|
1753
|
+
}): number;
|
|
1754
|
+
export declare function determineRewardFactor(payload: {
|
|
1755
|
+
quantity: number;
|
|
1756
|
+
avg_qty: number;
|
|
1757
|
+
minimum_pnl: number;
|
|
1758
|
+
risk: number;
|
|
1759
|
+
}): number;
|
|
1760
|
+
export type BotPosition = {
|
|
1761
|
+
kind: "long" | "short";
|
|
1762
|
+
entry: number;
|
|
1763
|
+
quantity: number;
|
|
1764
|
+
tp: {
|
|
1765
|
+
price: number;
|
|
1766
|
+
};
|
|
1767
|
+
};
|
|
1768
|
+
export declare function getHedgeZone(payload: {
|
|
1769
|
+
symbol_config: GlobalConfig;
|
|
1770
|
+
risk: number;
|
|
1771
|
+
position: BotPosition;
|
|
1772
|
+
reward_factor?: number;
|
|
1773
|
+
risk_factor?: number;
|
|
1774
|
+
support?: number;
|
|
1775
|
+
}): {
|
|
1776
|
+
support: number;
|
|
1777
|
+
resistance: number;
|
|
1778
|
+
risk: number;
|
|
1779
|
+
profit_percent: number;
|
|
1780
|
+
};
|
|
1781
|
+
export declare function getOptimumHedgeFactor(payload: {
|
|
1782
|
+
target_support: number;
|
|
1783
|
+
tolerance?: number;
|
|
1784
|
+
max_iterations?: number;
|
|
1785
|
+
min_factor?: number;
|
|
1786
|
+
max_factor?: number;
|
|
1787
|
+
symbol_config: GlobalConfig;
|
|
1788
|
+
risk: number;
|
|
1789
|
+
position: BotPosition;
|
|
1790
|
+
}): {
|
|
1791
|
+
reward_factor: number;
|
|
1792
|
+
achieved_support: number;
|
|
1793
|
+
target_support: number;
|
|
1794
|
+
difference: number;
|
|
1795
|
+
iterations: number;
|
|
1796
|
+
converged?: undefined;
|
|
1797
|
+
} | {
|
|
1798
|
+
reward_factor: number;
|
|
1799
|
+
achieved_support: number;
|
|
1800
|
+
target_support: number;
|
|
1801
|
+
difference: number;
|
|
1802
|
+
iterations: number;
|
|
1803
|
+
converged: boolean;
|
|
1804
|
+
};
|
|
1805
|
+
export type CType = {
|
|
1806
|
+
next_order: number;
|
|
1807
|
+
take_profit: number;
|
|
1808
|
+
};
|
|
1809
|
+
export declare function determineCompoundLongTrade(payload: {
|
|
1810
|
+
focus_short_position: CType;
|
|
1811
|
+
focus_long_position: CType;
|
|
1812
|
+
shortConfig: {
|
|
1813
|
+
entry: number;
|
|
1814
|
+
stop: number;
|
|
1815
|
+
risk_reward: number;
|
|
1816
|
+
risk: number;
|
|
1817
|
+
symbol: string;
|
|
1818
|
+
profit_percent: number;
|
|
1819
|
+
};
|
|
1820
|
+
rr?: number;
|
|
1821
|
+
global_config: GlobalConfig;
|
|
1822
|
+
}): {
|
|
1823
|
+
start_risk: number;
|
|
1824
|
+
short_profit: number;
|
|
1825
|
+
support: number;
|
|
1826
|
+
resistance: number;
|
|
1827
|
+
long_v: any;
|
|
1828
|
+
profit_percent: number;
|
|
1829
|
+
result: any;
|
|
1830
|
+
short_max_size: any;
|
|
1831
|
+
};
|
|
1832
|
+
export declare function generateOppositeTradeConfig(payload: {
|
|
1833
|
+
kind: "long" | "short";
|
|
1834
|
+
entry: number;
|
|
1835
|
+
quantity: number;
|
|
1836
|
+
target_pnl: number;
|
|
1837
|
+
global_config: GlobalConfig;
|
|
1838
|
+
ratio?: number;
|
|
1839
|
+
}): {
|
|
1840
|
+
entry: number;
|
|
1841
|
+
stop: number;
|
|
1842
|
+
risk: number;
|
|
1843
|
+
risk_reward: number | {
|
|
1844
|
+
result: any[];
|
|
1845
|
+
value: number;
|
|
1846
|
+
total: number;
|
|
1847
|
+
risk_per_trade: number;
|
|
1848
|
+
max: number;
|
|
1849
|
+
min: number;
|
|
1850
|
+
avg_size: any;
|
|
1851
|
+
neg_pnl: any;
|
|
1852
|
+
entry: any;
|
|
1853
|
+
};
|
|
1854
|
+
};
|
|
1855
|
+
export declare function constructAppConfig(payload: {
|
|
1856
|
+
account: PositionsView;
|
|
1857
|
+
global_config: GlobalConfig;
|
|
1858
|
+
kelly_config?: {
|
|
1859
|
+
use_kelly: boolean;
|
|
1860
|
+
kelly_confidence_factor: number;
|
|
1861
|
+
kelly_minimum_risk: number;
|
|
1862
|
+
kelly_prediction_model: string;
|
|
1863
|
+
};
|
|
1864
|
+
distribution_config?: {
|
|
1865
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1866
|
+
distribution_params?: {
|
|
1867
|
+
curveFactor?: number;
|
|
1868
|
+
stdDevFactor?: number;
|
|
1869
|
+
lambda?: number;
|
|
1870
|
+
};
|
|
1871
|
+
};
|
|
1872
|
+
}): {
|
|
1873
|
+
fee: number;
|
|
1874
|
+
risk_per_trade: number;
|
|
1875
|
+
risk_reward: number;
|
|
1876
|
+
symbol?: string;
|
|
1877
|
+
focus: number;
|
|
1878
|
+
budget: number;
|
|
1879
|
+
support: number;
|
|
1880
|
+
resistance: number;
|
|
1881
|
+
percent_change: number;
|
|
1882
|
+
tradeSplit?: number;
|
|
1883
|
+
take_profit?: number;
|
|
1884
|
+
kind: "long" | "short";
|
|
1885
|
+
entry: number;
|
|
1886
|
+
stop: number;
|
|
1887
|
+
min_size: number;
|
|
1888
|
+
price_places?: string;
|
|
1889
|
+
strategy?: "quantity" | "entry";
|
|
1890
|
+
as_array?: boolean;
|
|
1891
|
+
decimal_places?: string;
|
|
1892
|
+
min_profit?: number;
|
|
1893
|
+
raw?: boolean;
|
|
1894
|
+
gap?: number;
|
|
1895
|
+
rr?: number;
|
|
1896
|
+
max_size?: number;
|
|
1897
|
+
last_value?: any;
|
|
1898
|
+
max_quantity?: number;
|
|
1899
|
+
kelly?: {
|
|
1900
|
+
use_kelly?: boolean;
|
|
1901
|
+
kelly_confidence_factor?: number;
|
|
1902
|
+
kelly_minimum_risk?: number;
|
|
1903
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1904
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1905
|
+
};
|
|
1906
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1907
|
+
distribution_params?: {
|
|
1908
|
+
curveFactor?: number;
|
|
1909
|
+
stdDevFactor?: number;
|
|
1910
|
+
lambda?: number;
|
|
1911
|
+
};
|
|
1912
|
+
};
|
|
1913
|
+
export declare function generateDangerousConfig(payload: {
|
|
1914
|
+
account: PositionsView;
|
|
1915
|
+
global_config: GlobalConfig;
|
|
1916
|
+
config: {
|
|
1917
|
+
quantity: number;
|
|
1918
|
+
stop: number;
|
|
1919
|
+
entry: number;
|
|
1920
|
+
};
|
|
1921
|
+
}): {
|
|
1922
|
+
entry: number;
|
|
1923
|
+
risk: number;
|
|
1924
|
+
stop: number;
|
|
1925
|
+
risk_reward: number | {
|
|
1926
|
+
result: any[];
|
|
1927
|
+
value: number;
|
|
1928
|
+
total: number;
|
|
1929
|
+
risk_per_trade: number;
|
|
1930
|
+
max: number;
|
|
1931
|
+
min: number;
|
|
1932
|
+
avg_size: any;
|
|
1933
|
+
neg_pnl: any;
|
|
1934
|
+
entry: any;
|
|
1935
|
+
};
|
|
1936
|
+
};
|
|
1937
|
+
export interface ComputedTrade {
|
|
1938
|
+
entry: number;
|
|
1939
|
+
quantity: number;
|
|
1940
|
+
avg_size: number;
|
|
1941
|
+
neg_pnl: number;
|
|
1942
|
+
avg_entry: number;
|
|
1943
|
+
stop: number;
|
|
1944
|
+
reverse_avg_entry: number;
|
|
1945
|
+
reverse_avg_quantity: number;
|
|
1946
|
+
fee: number;
|
|
1947
|
+
}
|
|
1948
|
+
export type TradeConfig = {
|
|
1949
|
+
entry: number;
|
|
1950
|
+
stop: number;
|
|
1951
|
+
risk_reward: number;
|
|
1952
|
+
risk: number;
|
|
1953
|
+
symbol: string;
|
|
1954
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1955
|
+
distribution_params?: {
|
|
1956
|
+
curveFactor?: number;
|
|
1957
|
+
stdDevFactor?: number;
|
|
1958
|
+
lambda?: number;
|
|
1959
|
+
};
|
|
1960
|
+
};
|
|
1961
|
+
declare function constructAppConfig$1({ config, global_config, }: {
|
|
1962
|
+
config: TradeConfig;
|
|
1963
|
+
global_config: GlobalConfig;
|
|
1964
|
+
}): {
|
|
1965
|
+
fee: number;
|
|
1966
|
+
risk_per_trade: number;
|
|
1967
|
+
risk_reward: number;
|
|
1968
|
+
symbol?: string;
|
|
1969
|
+
focus: number;
|
|
1970
|
+
budget: number;
|
|
1971
|
+
support: number;
|
|
1972
|
+
resistance: number;
|
|
1973
|
+
percent_change: number;
|
|
1974
|
+
tradeSplit?: number;
|
|
1975
|
+
take_profit?: number;
|
|
1976
|
+
kind: "long" | "short";
|
|
1977
|
+
entry: number;
|
|
1978
|
+
stop: number;
|
|
1979
|
+
min_size: number;
|
|
1980
|
+
price_places?: string;
|
|
1981
|
+
strategy?: "quantity" | "entry";
|
|
1982
|
+
as_array?: boolean;
|
|
1983
|
+
decimal_places?: string;
|
|
1984
|
+
min_profit?: number;
|
|
1985
|
+
raw?: boolean;
|
|
1986
|
+
gap?: number;
|
|
1987
|
+
rr?: number;
|
|
1988
|
+
max_size?: number;
|
|
1989
|
+
last_value?: any;
|
|
1990
|
+
max_quantity?: number;
|
|
1991
|
+
kelly?: {
|
|
1992
|
+
use_kelly?: boolean;
|
|
1993
|
+
kelly_confidence_factor?: number;
|
|
1994
|
+
kelly_minimum_risk?: number;
|
|
1995
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1996
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1997
|
+
};
|
|
1998
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1999
|
+
distribution_params?: {
|
|
2000
|
+
curveFactor?: number;
|
|
2001
|
+
stdDevFactor?: number;
|
|
2002
|
+
lambda?: number;
|
|
2003
|
+
};
|
|
2004
|
+
};
|
|
2005
|
+
declare function buildWithOptimumReward({ config, settings, global_config, force_exact, }: {
|
|
2006
|
+
config: TradeConfig;
|
|
2007
|
+
global_config: GlobalConfig;
|
|
2008
|
+
settings: {
|
|
2009
|
+
entry?: number;
|
|
2010
|
+
stop?: number;
|
|
2011
|
+
risk: number;
|
|
2012
|
+
stop_ratio?: number;
|
|
2013
|
+
risk_reward?: number;
|
|
2014
|
+
distribution?: GetEntriesParams["distribution"];
|
|
2015
|
+
distribution_params?: {
|
|
2016
|
+
curveFactor?: number;
|
|
2017
|
+
stdDevFactor?: number;
|
|
2018
|
+
lambda?: number;
|
|
2019
|
+
};
|
|
2020
|
+
};
|
|
2021
|
+
force_exact?: boolean;
|
|
2022
|
+
}): {
|
|
2023
|
+
trades: any[];
|
|
2024
|
+
summary: {
|
|
2025
|
+
entry: number;
|
|
2026
|
+
stop: number;
|
|
2027
|
+
risk: number;
|
|
2028
|
+
risk_reward: any;
|
|
2029
|
+
avg_entry: number;
|
|
2030
|
+
avg_size: number;
|
|
2031
|
+
first_entry: number;
|
|
2032
|
+
pnl: number;
|
|
2033
|
+
fee: number;
|
|
2034
|
+
loss: number;
|
|
2035
|
+
last_entry: number;
|
|
2036
|
+
margin: number;
|
|
2037
|
+
};
|
|
2038
|
+
config: any;
|
|
2039
|
+
stop_order: {
|
|
2040
|
+
quantity: number;
|
|
2041
|
+
price: number;
|
|
2042
|
+
};
|
|
2043
|
+
kind: string;
|
|
2044
|
+
};
|
|
2045
|
+
declare function generateOppositeOptimum({ config, global_config, settings, ratio, distribution, distribution_params, risk_factor, }: {
|
|
2046
|
+
settings: {
|
|
2047
|
+
entry: number;
|
|
2048
|
+
stop: number;
|
|
2049
|
+
risk: number;
|
|
2050
|
+
};
|
|
2051
|
+
config: TradeConfig;
|
|
2052
|
+
global_config: GlobalConfig;
|
|
2053
|
+
fee_percent?: number;
|
|
2054
|
+
ratio?: number;
|
|
2055
|
+
distribution?: any;
|
|
2056
|
+
distribution_params?: {
|
|
2057
|
+
curveFactor?: number;
|
|
2058
|
+
stdDevFactor?: number;
|
|
2059
|
+
lambda?: number;
|
|
2060
|
+
};
|
|
2061
|
+
risk_factor?: number;
|
|
2062
|
+
}): {
|
|
2063
|
+
trades: any[];
|
|
2064
|
+
summary: any;
|
|
2065
|
+
config: {
|
|
2066
|
+
entry: number;
|
|
2067
|
+
stop: number;
|
|
2068
|
+
risk: number;
|
|
2069
|
+
distribution: any;
|
|
2070
|
+
distribution_params: {
|
|
2071
|
+
curveFactor?: number;
|
|
2072
|
+
stdDevFactor?: number;
|
|
2073
|
+
lambda?: number;
|
|
2074
|
+
};
|
|
2075
|
+
risk_factor: number;
|
|
2076
|
+
};
|
|
2077
|
+
kind: string;
|
|
2078
|
+
} | {
|
|
2079
|
+
trades: any[];
|
|
2080
|
+
summary: {
|
|
2081
|
+
entry: number;
|
|
2082
|
+
stop: number;
|
|
2083
|
+
risk: number;
|
|
2084
|
+
risk_reward: any;
|
|
2085
|
+
avg_entry: number;
|
|
2086
|
+
avg_size: number;
|
|
2087
|
+
first_entry: number;
|
|
2088
|
+
pnl: number;
|
|
2089
|
+
fee: number;
|
|
2090
|
+
loss: number;
|
|
2091
|
+
last_entry: number;
|
|
2092
|
+
defaultEntry: number;
|
|
2093
|
+
};
|
|
2094
|
+
config: any;
|
|
2095
|
+
kind: string;
|
|
2096
|
+
};
|
|
2097
|
+
declare function increaseTradeHelper({ increase_qty, stop, config, global_config, style, entry, position, stop_ratio, distribution: default_distribution, distribution_params: default_distribution_params, }: {
|
|
2098
|
+
position: {
|
|
2099
|
+
entry: number;
|
|
2100
|
+
quantity: number;
|
|
2101
|
+
};
|
|
2102
|
+
entry: number;
|
|
2103
|
+
stop: number;
|
|
2104
|
+
config: TradeConfig;
|
|
2105
|
+
global_config: GlobalConfig;
|
|
2106
|
+
increase_qty: number;
|
|
2107
|
+
style: "minimum" | "optimum";
|
|
2108
|
+
stop_ratio?: number;
|
|
2109
|
+
distribution?: any;
|
|
2110
|
+
distribution_params?: {
|
|
2111
|
+
curveFactor?: number;
|
|
2112
|
+
stdDevFactor?: number;
|
|
2113
|
+
lambda?: number;
|
|
2114
|
+
};
|
|
2115
|
+
}): {
|
|
2116
|
+
trades: any[];
|
|
2117
|
+
summary: any;
|
|
2118
|
+
config: any;
|
|
2119
|
+
kind: string;
|
|
2120
|
+
current: {
|
|
2121
|
+
trades: any[];
|
|
2122
|
+
summary: {
|
|
2123
|
+
first_entry: number;
|
|
2124
|
+
last_entry: number;
|
|
2125
|
+
quantity: number;
|
|
2126
|
+
entry: number;
|
|
2127
|
+
loss: number;
|
|
2128
|
+
number_of_trades: number;
|
|
2129
|
+
fee: number;
|
|
2130
|
+
anchor_pnl: any;
|
|
2131
|
+
};
|
|
2132
|
+
};
|
|
2133
|
+
stop_order?: undefined;
|
|
2134
|
+
} | {
|
|
2135
|
+
trades: any[];
|
|
2136
|
+
summary: {
|
|
2137
|
+
entry: number;
|
|
2138
|
+
stop: number;
|
|
2139
|
+
risk: number;
|
|
2140
|
+
risk_reward: any;
|
|
2141
|
+
avg_entry: number;
|
|
2142
|
+
avg_size: number;
|
|
2143
|
+
first_entry: number;
|
|
2144
|
+
pnl: number;
|
|
2145
|
+
fee: number;
|
|
2146
|
+
loss: number;
|
|
2147
|
+
last_entry: number;
|
|
2148
|
+
margin: number;
|
|
2149
|
+
};
|
|
2150
|
+
stop_order: {
|
|
2151
|
+
quantity: number;
|
|
2152
|
+
price: number;
|
|
2153
|
+
};
|
|
2154
|
+
config: any;
|
|
2155
|
+
kind: string;
|
|
2156
|
+
current: {
|
|
2157
|
+
trades: any[];
|
|
2158
|
+
summary: {
|
|
2159
|
+
first_entry: number;
|
|
2160
|
+
last_entry: number;
|
|
2161
|
+
quantity: number;
|
|
2162
|
+
entry: number;
|
|
2163
|
+
loss: number;
|
|
2164
|
+
number_of_trades: number;
|
|
2165
|
+
fee: number;
|
|
2166
|
+
anchor_pnl: any;
|
|
2167
|
+
};
|
|
2168
|
+
};
|
|
2169
|
+
};
|
|
2170
|
+
declare function generatePositionIncreaseTrade({ account, zoneAccount, ratio, config, global_config, style, distribution, distribution_params, }: {
|
|
2171
|
+
style?: "optimum" | "minimum";
|
|
2172
|
+
account: {
|
|
2173
|
+
long: {
|
|
2174
|
+
entry: number;
|
|
2175
|
+
quantity: number;
|
|
2176
|
+
};
|
|
2177
|
+
short: {
|
|
2178
|
+
entry: number;
|
|
2179
|
+
quantity: number;
|
|
2180
|
+
};
|
|
2181
|
+
};
|
|
2182
|
+
config: TradeConfig;
|
|
2183
|
+
global_config: GlobalConfig;
|
|
2184
|
+
zoneAccount: {
|
|
2185
|
+
entry: number;
|
|
2186
|
+
stop: number;
|
|
2187
|
+
};
|
|
2188
|
+
ratio?: number;
|
|
2189
|
+
distribution?: any;
|
|
2190
|
+
distribution_params?: {
|
|
2191
|
+
curveFactor?: number;
|
|
2192
|
+
stdDevFactor?: number;
|
|
2193
|
+
lambda?: number;
|
|
2194
|
+
};
|
|
2195
|
+
}): {
|
|
2196
|
+
trades: any[];
|
|
2197
|
+
summary: any;
|
|
2198
|
+
config: any;
|
|
2199
|
+
kind: string;
|
|
2200
|
+
current: {
|
|
2201
|
+
trades: any[];
|
|
2202
|
+
summary: {
|
|
2203
|
+
first_entry: number;
|
|
2204
|
+
last_entry: number;
|
|
2205
|
+
quantity: number;
|
|
2206
|
+
entry: number;
|
|
2207
|
+
loss: number;
|
|
2208
|
+
number_of_trades: number;
|
|
2209
|
+
fee: number;
|
|
2210
|
+
anchor_pnl: any;
|
|
2211
|
+
};
|
|
2212
|
+
};
|
|
2213
|
+
stop_order?: undefined;
|
|
2214
|
+
} | {
|
|
2215
|
+
trades: any[];
|
|
2216
|
+
summary: {
|
|
2217
|
+
entry: number;
|
|
2218
|
+
stop: number;
|
|
2219
|
+
risk: number;
|
|
2220
|
+
risk_reward: any;
|
|
2221
|
+
avg_entry: number;
|
|
2222
|
+
avg_size: number;
|
|
2223
|
+
first_entry: number;
|
|
2224
|
+
pnl: number;
|
|
2225
|
+
fee: number;
|
|
2226
|
+
loss: number;
|
|
2227
|
+
last_entry: number;
|
|
2228
|
+
margin: number;
|
|
2229
|
+
};
|
|
2230
|
+
stop_order: {
|
|
2231
|
+
quantity: number;
|
|
2232
|
+
price: number;
|
|
2233
|
+
};
|
|
2234
|
+
config: any;
|
|
2235
|
+
kind: string;
|
|
2236
|
+
current: {
|
|
2237
|
+
trades: any[];
|
|
2238
|
+
summary: {
|
|
2239
|
+
first_entry: number;
|
|
2240
|
+
last_entry: number;
|
|
2241
|
+
quantity: number;
|
|
2242
|
+
entry: number;
|
|
2243
|
+
loss: number;
|
|
2244
|
+
number_of_trades: number;
|
|
2245
|
+
fee: number;
|
|
2246
|
+
anchor_pnl: any;
|
|
2247
|
+
};
|
|
2248
|
+
};
|
|
2249
|
+
};
|
|
2250
|
+
declare function determineHedgeTradeToPlace({ position, config, global_config, profit_risk, allowable_loss, }: {
|
|
2251
|
+
position: {
|
|
2252
|
+
entry: number;
|
|
2253
|
+
quantity: number;
|
|
2254
|
+
kind: "long" | "short";
|
|
2255
|
+
};
|
|
2256
|
+
config: TradeConfig;
|
|
2257
|
+
global_config: GlobalConfig;
|
|
2258
|
+
profit_risk?: number;
|
|
2259
|
+
allowable_loss?: number;
|
|
2260
|
+
}): {
|
|
2261
|
+
opposite: {
|
|
2262
|
+
trades: any[];
|
|
2263
|
+
summary: {
|
|
2264
|
+
entry: number;
|
|
2265
|
+
stop: number;
|
|
2266
|
+
risk: number;
|
|
2267
|
+
risk_reward: any;
|
|
2268
|
+
avg_entry: number;
|
|
2269
|
+
avg_size: number;
|
|
2270
|
+
first_entry: number;
|
|
2271
|
+
pnl: number;
|
|
2272
|
+
fee: number;
|
|
2273
|
+
loss: number;
|
|
2274
|
+
last_entry: number;
|
|
2275
|
+
margin: number;
|
|
2276
|
+
};
|
|
2277
|
+
config: any;
|
|
2278
|
+
stop_order: {
|
|
2279
|
+
quantity: number;
|
|
2280
|
+
price: number;
|
|
2281
|
+
};
|
|
2282
|
+
kind: string;
|
|
2283
|
+
};
|
|
2284
|
+
take_profit: number;
|
|
2285
|
+
};
|
|
2286
|
+
export declare const compoundAPI: {
|
|
2287
|
+
determineHedgeTradeToPlace: typeof determineHedgeTradeToPlace;
|
|
2288
|
+
buildWithOptimumReward: typeof buildWithOptimumReward;
|
|
2289
|
+
constructAppConfig: typeof constructAppConfig$1;
|
|
2290
|
+
generateOppositeOptimum: typeof generateOppositeOptimum;
|
|
2291
|
+
increaseTradeHelper: typeof increaseTradeHelper;
|
|
2292
|
+
generatePositionIncreaseTrade: typeof generatePositionIncreaseTrade;
|
|
2293
|
+
};
|
|
2294
|
+
export type ExchangeOrder = {
|
|
2295
|
+
symbol: string;
|
|
2296
|
+
price: number;
|
|
2297
|
+
quantity: number;
|
|
2298
|
+
kind: "long" | "short";
|
|
2299
|
+
side: "buy" | "sell";
|
|
2300
|
+
stop: number;
|
|
2301
|
+
order_id: string;
|
|
2302
|
+
triggerPrice?: number;
|
|
1156
2303
|
};
|
|
1157
|
-
declare class ExchangePosition {
|
|
2304
|
+
export declare class ExchangePosition {
|
|
1158
2305
|
exchange: BaseExchange;
|
|
1159
2306
|
exchange_account: ExchangeAccount$1;
|
|
1160
2307
|
private app_db;
|
|
1161
2308
|
private instance;
|
|
2309
|
+
orders: {
|
|
2310
|
+
entries: ExchangeOrder[];
|
|
2311
|
+
stop_orders: ExchangeOrder[];
|
|
2312
|
+
tp_orders: ExchangeOrder[];
|
|
2313
|
+
};
|
|
1162
2314
|
constructor(payload: {
|
|
1163
2315
|
exchange: BaseExchange;
|
|
1164
2316
|
app_db: AppDatabase;
|
|
1165
2317
|
instance: PositionsView;
|
|
1166
2318
|
exchange_account: ExchangeAccount$1;
|
|
1167
2319
|
without_view?: PositionsView;
|
|
2320
|
+
orders?: {
|
|
2321
|
+
entries: any[];
|
|
2322
|
+
stop_orders: any[];
|
|
2323
|
+
tp_orders: any[];
|
|
2324
|
+
};
|
|
1168
2325
|
});
|
|
2326
|
+
get symbol_config(): SymbolConfig;
|
|
2327
|
+
initialize(): Promise<void>;
|
|
2328
|
+
getInstance(): PositionsView;
|
|
1169
2329
|
get symbol(): any;
|
|
1170
2330
|
get kind(): any;
|
|
1171
|
-
get account():
|
|
2331
|
+
get account(): ExchangeAccount;
|
|
2332
|
+
get compound(): CompoundInstance & {
|
|
2333
|
+
amount_to_risk?: number;
|
|
2334
|
+
profit_percent?: number;
|
|
2335
|
+
};
|
|
2336
|
+
getProxyForAccount(): Promise<HttpsProxyAgent<`http://${string}`> | SocksProxyAgent>;
|
|
1172
2337
|
cancelOrders(payload: {
|
|
1173
2338
|
limit?: boolean;
|
|
1174
2339
|
price?: number;
|
|
1175
|
-
|
|
2340
|
+
raw?: boolean;
|
|
2341
|
+
}): Promise<any[] | {
|
|
1176
2342
|
success: boolean;
|
|
1177
2343
|
message: string;
|
|
1178
2344
|
exchange_result?: undefined;
|
|
@@ -1197,9 +2363,10 @@ declare class ExchangePosition {
|
|
|
1197
2363
|
profit_percent?: number;
|
|
1198
2364
|
place_tp?: boolean;
|
|
1199
2365
|
profit?: number;
|
|
2366
|
+
reduce_ratio?: number;
|
|
1200
2367
|
};
|
|
1201
2368
|
}): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
|
|
1202
|
-
updateTargetPnl(): Promise<
|
|
2369
|
+
updateTargetPnl(): Promise<any>;
|
|
1203
2370
|
updateConfigPnl(): Promise<void>;
|
|
1204
2371
|
triggerTradeFromConfig(payload: {
|
|
1205
2372
|
place?: boolean;
|
|
@@ -1208,8 +2375,11 @@ declare class ExchangePosition {
|
|
|
1208
2375
|
stop?: boolean;
|
|
1209
2376
|
use_current?: boolean;
|
|
1210
2377
|
ignore_config?: boolean;
|
|
2378
|
+
risky?: boolean;
|
|
2379
|
+
hedge?: boolean;
|
|
2380
|
+
stop_ratio?: number;
|
|
1211
2381
|
}): Promise<any>;
|
|
1212
|
-
placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders", payload: {
|
|
2382
|
+
placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
|
|
1213
2383
|
entry: number;
|
|
1214
2384
|
stop: number;
|
|
1215
2385
|
risk_reward: number;
|
|
@@ -1218,6 +2388,15 @@ declare class ExchangePosition {
|
|
|
1218
2388
|
update_db?: boolean;
|
|
1219
2389
|
raw?: boolean;
|
|
1220
2390
|
use_current?: boolean;
|
|
2391
|
+
stop_percent?: number;
|
|
2392
|
+
distribution?: GetEntriesParams["distribution"];
|
|
2393
|
+
distribution_params?: {
|
|
2394
|
+
curveFactor?: number;
|
|
2395
|
+
stdDevFactor?: number;
|
|
2396
|
+
lambda?: number;
|
|
2397
|
+
};
|
|
2398
|
+
hedge?: boolean;
|
|
2399
|
+
stop_ratio?: number;
|
|
1221
2400
|
}): Promise<any>;
|
|
1222
2401
|
buildAppConfig(payload: {
|
|
1223
2402
|
entry: number;
|
|
@@ -1227,6 +2406,17 @@ declare class ExchangePosition {
|
|
|
1227
2406
|
profit?: number;
|
|
1228
2407
|
update_db?: boolean;
|
|
1229
2408
|
profit_percent?: number;
|
|
2409
|
+
use_kelly?: boolean;
|
|
2410
|
+
kelly_confidence_factor?: number;
|
|
2411
|
+
kelly_minimum_risk?: number;
|
|
2412
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
2413
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
2414
|
+
distribution?: GetEntriesParams["distribution"];
|
|
2415
|
+
distribution_params?: {
|
|
2416
|
+
curveFactor?: number;
|
|
2417
|
+
stdDevFactor?: number;
|
|
2418
|
+
lambda?: number;
|
|
2419
|
+
};
|
|
1230
2420
|
}): Promise<AppConfig>;
|
|
1231
2421
|
placeConfigOrders(app_config: AppConfig, solution: {
|
|
1232
2422
|
risk_reward: number;
|
|
@@ -1237,6 +2427,18 @@ declare class ExchangePosition {
|
|
|
1237
2427
|
neg_pnl: number;
|
|
1238
2428
|
min_size: number;
|
|
1239
2429
|
symbol: string;
|
|
2430
|
+
stop_percent?: number;
|
|
2431
|
+
use_kelly?: boolean;
|
|
2432
|
+
kelly_confidence_factor?: number;
|
|
2433
|
+
kelly_minimum_risk?: number;
|
|
2434
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
2435
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
2436
|
+
distribution?: GetEntriesParams["distribution"];
|
|
2437
|
+
distribution_params?: {
|
|
2438
|
+
curveFactor?: number;
|
|
2439
|
+
stdDevFactor?: number;
|
|
2440
|
+
lambda?: number;
|
|
2441
|
+
};
|
|
1240
2442
|
}, place?: boolean, skip_stop?: boolean): Promise<{
|
|
1241
2443
|
entry_orders: {
|
|
1242
2444
|
orders: {
|
|
@@ -1277,17 +2479,318 @@ declare class ExchangePosition {
|
|
|
1277
2479
|
tp?: boolean;
|
|
1278
2480
|
stop?: boolean;
|
|
1279
2481
|
raw?: boolean;
|
|
2482
|
+
limit?: boolean;
|
|
1280
2483
|
cancel?: boolean;
|
|
1281
2484
|
ignore_config?: boolean;
|
|
2485
|
+
risky?: boolean;
|
|
2486
|
+
target_pnl?: number;
|
|
2487
|
+
hedge?: boolean;
|
|
2488
|
+
stop_ratio?: number;
|
|
2489
|
+
}): Promise<any>;
|
|
2490
|
+
placeStopLimit(payload: {
|
|
2491
|
+
place?: boolean;
|
|
2492
|
+
stop: number;
|
|
2493
|
+
quantity?: number;
|
|
2494
|
+
}): Promise<any>;
|
|
2495
|
+
computeTargetPnl(payload: {
|
|
2496
|
+
secondary: ExchangePosition;
|
|
2497
|
+
}): Promise<number>;
|
|
2498
|
+
runSimulation(payload: {
|
|
2499
|
+
iterations?: number;
|
|
2500
|
+
long_position: ExchangePosition;
|
|
2501
|
+
short_position: ExchangePosition;
|
|
2502
|
+
raw?: boolean;
|
|
2503
|
+
}): Promise<Strategy | {
|
|
2504
|
+
last_entry: any;
|
|
2505
|
+
first_entry: any;
|
|
2506
|
+
threshold: any;
|
|
2507
|
+
risk: number;
|
|
2508
|
+
risk_reward: number;
|
|
2509
|
+
spread: number;
|
|
2510
|
+
gap_loss: number;
|
|
2511
|
+
net_profit: number;
|
|
2512
|
+
long: {
|
|
2513
|
+
avg_entry: number;
|
|
2514
|
+
avg_size: number;
|
|
2515
|
+
loss: number;
|
|
2516
|
+
stop: number;
|
|
2517
|
+
stop_quantity: number;
|
|
2518
|
+
re_entry_quantity: number;
|
|
2519
|
+
initial_pnl: number;
|
|
2520
|
+
tp: number;
|
|
2521
|
+
incurred_loss: number;
|
|
2522
|
+
pnl: number;
|
|
2523
|
+
remaining_quantity: number;
|
|
2524
|
+
};
|
|
2525
|
+
short: {
|
|
2526
|
+
avg_entry: number;
|
|
2527
|
+
avg_size: number;
|
|
2528
|
+
loss: number;
|
|
2529
|
+
stop: number;
|
|
2530
|
+
stop_quantity: number;
|
|
2531
|
+
re_entry_quantity: number;
|
|
2532
|
+
initial_pnl: number;
|
|
2533
|
+
tp: number;
|
|
2534
|
+
incurred_loss: number;
|
|
2535
|
+
pnl: number;
|
|
2536
|
+
remaining_quantity: number;
|
|
2537
|
+
};
|
|
2538
|
+
}[]>;
|
|
2539
|
+
rawConfigUpdate(payload: any): Promise<void>;
|
|
2540
|
+
/**
|
|
2541
|
+
* This method is used to place the opposite trade action
|
|
2542
|
+
*/
|
|
2543
|
+
placeOppositeTradeAction(payload: {
|
|
2544
|
+
data: {
|
|
2545
|
+
avg: {
|
|
2546
|
+
quantity: number;
|
|
2547
|
+
price: number;
|
|
2548
|
+
};
|
|
2549
|
+
entry: number;
|
|
2550
|
+
stop: number;
|
|
2551
|
+
risk_per_trade: number;
|
|
2552
|
+
profit_percent: number;
|
|
2553
|
+
risk_reward: number;
|
|
2554
|
+
};
|
|
2555
|
+
}): Promise<void>;
|
|
2556
|
+
/**
|
|
2557
|
+
* Updates the risk configuration for an empty position using the next_risk value.
|
|
2558
|
+
* This implements progressive risk management where successful trades increase future risk tolerance.
|
|
2559
|
+
*
|
|
2560
|
+
* @param payload.symbol - The trading symbol (e.g., "BTCUSDT")
|
|
2561
|
+
* @param payload.kind - Position type: "long" or "short"
|
|
2562
|
+
* @returns Object indicating if update was successful with old/new risk values
|
|
2563
|
+
*/
|
|
2564
|
+
updateRiskOnEmpty(): Promise<{
|
|
2565
|
+
updated: boolean;
|
|
2566
|
+
symbol: any;
|
|
2567
|
+
kind: any;
|
|
2568
|
+
old_risk: number;
|
|
2569
|
+
new_risk: number;
|
|
2570
|
+
reason?: undefined;
|
|
2571
|
+
} | {
|
|
2572
|
+
updated: boolean;
|
|
2573
|
+
symbol: any;
|
|
2574
|
+
kind: any;
|
|
2575
|
+
reason: string;
|
|
2576
|
+
old_risk?: undefined;
|
|
2577
|
+
new_risk?: undefined;
|
|
2578
|
+
}>;
|
|
2579
|
+
increasePositionAtStop(payload: {
|
|
2580
|
+
place?: boolean;
|
|
2581
|
+
price?: number;
|
|
2582
|
+
quantity?: number;
|
|
2583
|
+
increase?: boolean;
|
|
2584
|
+
ratio_to_loose?: number;
|
|
2585
|
+
reverse_position?: ExchangePosition;
|
|
2586
|
+
increase_ratio?: number;
|
|
2587
|
+
}): Promise<any>;
|
|
2588
|
+
lockReduction({ pnl, place, pause_tp, }: {
|
|
2589
|
+
pnl: number;
|
|
2590
|
+
place?: boolean;
|
|
2591
|
+
pause_tp?: boolean;
|
|
2592
|
+
}): Promise<{
|
|
2593
|
+
sell_ratio: number;
|
|
2594
|
+
current_pnl: number;
|
|
2595
|
+
profit_percent: number;
|
|
2596
|
+
current_price: number;
|
|
2597
|
+
notional_value: number;
|
|
2598
|
+
}>;
|
|
2599
|
+
placeSingleOrder(payload: {
|
|
2600
|
+
long_position: ExchangePosition;
|
|
2601
|
+
short_position: ExchangePosition;
|
|
2602
|
+
}): Promise<string>;
|
|
2603
|
+
placeMarketOrder(payload: {
|
|
2604
|
+
quantity?: number;
|
|
2605
|
+
close?: boolean;
|
|
2606
|
+
}): Promise<void>;
|
|
2607
|
+
generate_config_params(payload: {
|
|
2608
|
+
entry: number;
|
|
2609
|
+
stop: number;
|
|
2610
|
+
risk_reward: number;
|
|
2611
|
+
risk: number;
|
|
2612
|
+
with_trades?: boolean;
|
|
2613
|
+
}): Promise<any>;
|
|
2614
|
+
extrapolateConfig(payload: {
|
|
2615
|
+
risk_reward?: number;
|
|
2616
|
+
risk?: number;
|
|
2617
|
+
kind?: "long" | "short";
|
|
2618
|
+
}): Promise<any>;
|
|
2619
|
+
build_short_order(): Promise<any>;
|
|
2620
|
+
/**
|
|
2621
|
+
* This function builds a config for a symbol
|
|
2622
|
+
* @param payload
|
|
2623
|
+
* @returns
|
|
2624
|
+
*/
|
|
2625
|
+
buildConfigForSymbol(payload: {
|
|
2626
|
+
risk: number;
|
|
2627
|
+
risk_reward?: number;
|
|
2628
|
+
as_config?: boolean;
|
|
2629
|
+
with_trades?: boolean;
|
|
2630
|
+
}): Promise<any>;
|
|
2631
|
+
buildTrades(payload: {
|
|
2632
|
+
risk?: number;
|
|
2633
|
+
}): Promise<{
|
|
2634
|
+
trades: any[];
|
|
2635
|
+
max_size: any;
|
|
2636
|
+
last_price: any;
|
|
2637
|
+
total_size: number;
|
|
2638
|
+
avg_entry: number;
|
|
2639
|
+
}>;
|
|
2640
|
+
tradeConfig(payload: {
|
|
2641
|
+
override?: any;
|
|
2642
|
+
}): Promise<AppConfig>;
|
|
2643
|
+
getOrCreatePositionConfig(payload: {
|
|
2644
|
+
risk?: number;
|
|
2645
|
+
risk_reward?: number;
|
|
2646
|
+
}): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
|
|
2647
|
+
getOppositeConfig(payload: {
|
|
2648
|
+
ratio?: number;
|
|
2649
|
+
}): {
|
|
2650
|
+
entry: number;
|
|
2651
|
+
stop: number;
|
|
2652
|
+
risk: number;
|
|
2653
|
+
risk_reward: number | {
|
|
2654
|
+
result: any[];
|
|
2655
|
+
value: number;
|
|
2656
|
+
total: number;
|
|
2657
|
+
risk_per_trade: number;
|
|
2658
|
+
max: number;
|
|
2659
|
+
min: number;
|
|
2660
|
+
avg_size: any;
|
|
2661
|
+
neg_pnl: any;
|
|
2662
|
+
entry: any;
|
|
2663
|
+
};
|
|
2664
|
+
};
|
|
2665
|
+
getOptimumRiskReward(): Promise<number | {
|
|
2666
|
+
result: any[];
|
|
2667
|
+
value: number;
|
|
2668
|
+
total: number;
|
|
2669
|
+
risk_per_trade: number;
|
|
2670
|
+
max: number;
|
|
2671
|
+
min: number;
|
|
2672
|
+
avg_size: any;
|
|
2673
|
+
neg_pnl: any;
|
|
2674
|
+
entry: any;
|
|
2675
|
+
}>;
|
|
2676
|
+
get appConfig(): {
|
|
2677
|
+
fee: number;
|
|
2678
|
+
risk_per_trade: number;
|
|
2679
|
+
risk_reward: number;
|
|
2680
|
+
symbol?: string;
|
|
2681
|
+
focus: number;
|
|
2682
|
+
budget: number;
|
|
2683
|
+
support: number;
|
|
2684
|
+
resistance: number;
|
|
2685
|
+
percent_change: number;
|
|
2686
|
+
tradeSplit?: number;
|
|
2687
|
+
take_profit?: number;
|
|
2688
|
+
kind: "long" | "short";
|
|
2689
|
+
entry: number;
|
|
2690
|
+
stop: number;
|
|
2691
|
+
min_size: number;
|
|
2692
|
+
price_places?: string;
|
|
2693
|
+
strategy?: "quantity" | "entry";
|
|
2694
|
+
as_array?: boolean;
|
|
2695
|
+
decimal_places?: string;
|
|
2696
|
+
min_profit?: number;
|
|
2697
|
+
raw?: boolean;
|
|
2698
|
+
gap?: number;
|
|
2699
|
+
rr?: number;
|
|
2700
|
+
max_size?: number;
|
|
2701
|
+
last_value?: any;
|
|
2702
|
+
max_quantity?: number;
|
|
2703
|
+
kelly?: {
|
|
2704
|
+
use_kelly?: boolean;
|
|
2705
|
+
kelly_confidence_factor?: number;
|
|
2706
|
+
kelly_minimum_risk?: number;
|
|
2707
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
2708
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
2709
|
+
};
|
|
2710
|
+
distribution?: GetEntriesParams["distribution"];
|
|
2711
|
+
distribution_params?: {
|
|
2712
|
+
curveFactor?: number;
|
|
2713
|
+
stdDevFactor?: number;
|
|
2714
|
+
lambda?: number;
|
|
2715
|
+
};
|
|
2716
|
+
};
|
|
2717
|
+
updateProfitPercentWithRisk(payload: {
|
|
2718
|
+
focus_position: ExchangePosition;
|
|
2719
|
+
}): Promise<{
|
|
2720
|
+
profit_percent: number;
|
|
2721
|
+
take_profit: number;
|
|
2722
|
+
last_order: number;
|
|
2723
|
+
}>;
|
|
2724
|
+
getOrders(payload: {
|
|
2725
|
+
type?: "limit" | "stop" | "tp";
|
|
2726
|
+
}): {
|
|
2727
|
+
symbol: any;
|
|
2728
|
+
price: any;
|
|
2729
|
+
quantity: any;
|
|
2730
|
+
kind: any;
|
|
2731
|
+
side: any;
|
|
2732
|
+
stop: any;
|
|
2733
|
+
order_id: any;
|
|
2734
|
+
triggerPrice: any;
|
|
2735
|
+
client_order_id: any;
|
|
2736
|
+
}[];
|
|
2737
|
+
cancelExchangeOrder(payload: {
|
|
2738
|
+
type: "limit" | "stop" | "tp";
|
|
2739
|
+
refresh?: boolean;
|
|
2740
|
+
}): Promise<any>;
|
|
2741
|
+
placeDangerousTrade(payload: {
|
|
2742
|
+
entry: number;
|
|
2743
|
+
quantity: number;
|
|
2744
|
+
stop?: number;
|
|
2745
|
+
}): {
|
|
2746
|
+
entry: number;
|
|
2747
|
+
risk: number;
|
|
2748
|
+
stop: number;
|
|
2749
|
+
risk_reward: number | {
|
|
2750
|
+
result: any[];
|
|
2751
|
+
value: number;
|
|
2752
|
+
total: number;
|
|
2753
|
+
risk_per_trade: number;
|
|
2754
|
+
max: number;
|
|
2755
|
+
min: number;
|
|
2756
|
+
avg_size: any;
|
|
2757
|
+
neg_pnl: any;
|
|
2758
|
+
entry: any;
|
|
2759
|
+
};
|
|
2760
|
+
};
|
|
2761
|
+
followStop(payload: {
|
|
2762
|
+
focus_position: ExchangePosition;
|
|
2763
|
+
fee_percent?: number;
|
|
2764
|
+
place?: boolean;
|
|
1282
2765
|
}): Promise<any>;
|
|
2766
|
+
get support(): SupportTable;
|
|
2767
|
+
get linkedConfig(): ScheduledTrade;
|
|
2768
|
+
get isActiveTrade(): {
|
|
2769
|
+
config: ScheduledTrade;
|
|
2770
|
+
condition: boolean;
|
|
2771
|
+
};
|
|
2772
|
+
updateCompound(payload?: {
|
|
2773
|
+
place?: boolean;
|
|
2774
|
+
}): Promise<{
|
|
2775
|
+
support: number;
|
|
2776
|
+
counter: number;
|
|
2777
|
+
new_risk: number;
|
|
2778
|
+
condition: boolean;
|
|
2779
|
+
stop: number;
|
|
2780
|
+
}>;
|
|
2781
|
+
cleanOnActiveCompoundInstance(): Promise<void>;
|
|
1283
2782
|
}
|
|
1284
2783
|
declare class ExchangeAccount$1 {
|
|
1285
|
-
|
|
2784
|
+
instance: {
|
|
2785
|
+
owner: string;
|
|
2786
|
+
exchange: string;
|
|
2787
|
+
};
|
|
1286
2788
|
exchange: BaseExchange;
|
|
1287
2789
|
main_exchange?: BaseExchange;
|
|
1288
2790
|
private app_db;
|
|
1289
|
-
|
|
1290
|
-
|
|
2791
|
+
long_position?: ExchangePosition;
|
|
2792
|
+
short_position?: ExchangePosition;
|
|
2793
|
+
raw_positions?: PositionsView[];
|
|
1291
2794
|
constructor(payload: ExchangeType, options: {
|
|
1292
2795
|
exchange: BaseExchange;
|
|
1293
2796
|
app_db: AppDatabase;
|
|
@@ -1306,8 +2809,8 @@ declare class ExchangeAccount$1 {
|
|
|
1306
2809
|
}): Promise<import("pocketbase").RecordModel>;
|
|
1307
2810
|
initializePositions(payload: {
|
|
1308
2811
|
symbol: string;
|
|
1309
|
-
as_view?: boolean;
|
|
1310
2812
|
kind: "long" | "short";
|
|
2813
|
+
update?: boolean;
|
|
1311
2814
|
}): Promise<ExchangePosition>;
|
|
1312
2815
|
getActiveAccount(payload: {
|
|
1313
2816
|
symbol: string;
|
|
@@ -1330,6 +2833,7 @@ declare class ExchangeAccount$1 {
|
|
|
1330
2833
|
expand?: {
|
|
1331
2834
|
config: ScheduledTrade;
|
|
1332
2835
|
account: ExchangeAccount;
|
|
2836
|
+
proxy: Proxy$1;
|
|
1333
2837
|
};
|
|
1334
2838
|
})[]>;
|
|
1335
2839
|
syncAccount(options: {
|
|
@@ -1343,9 +2847,9 @@ declare class ExchangeAccount$1 {
|
|
|
1343
2847
|
expand?: {
|
|
1344
2848
|
config: ScheduledTrade;
|
|
1345
2849
|
account: ExchangeAccount;
|
|
2850
|
+
proxy: Proxy$1;
|
|
1346
2851
|
};
|
|
1347
2852
|
})[]>;
|
|
1348
|
-
getRunningInstanceFromDB(symbol: string): Promise<TradeBlockTracking>;
|
|
1349
2853
|
syncOrders(options: {
|
|
1350
2854
|
symbol: string;
|
|
1351
2855
|
kind?: "long" | "short";
|
|
@@ -1356,6 +2860,11 @@ declare class ExchangeAccount$1 {
|
|
|
1356
2860
|
kind: "long" | "short";
|
|
1357
2861
|
should_stop?: boolean;
|
|
1358
2862
|
}): Promise<import("pocketbase").RecordModel>;
|
|
2863
|
+
getFocusPosition(payload: {
|
|
2864
|
+
symbol: string;
|
|
2865
|
+
kind: "long" | "short";
|
|
2866
|
+
update?: boolean;
|
|
2867
|
+
}): Promise<ExchangePosition>;
|
|
1359
2868
|
cancelOrders(payload: {
|
|
1360
2869
|
symbol: string;
|
|
1361
2870
|
kind: "long" | "short";
|
|
@@ -1363,7 +2872,8 @@ declare class ExchangeAccount$1 {
|
|
|
1363
2872
|
all?: boolean;
|
|
1364
2873
|
stop?: boolean;
|
|
1365
2874
|
limit?: boolean;
|
|
1366
|
-
|
|
2875
|
+
raw?: boolean;
|
|
2876
|
+
}): Promise<any[] | {
|
|
1367
2877
|
success: boolean;
|
|
1368
2878
|
message: string;
|
|
1369
2879
|
exchange_result?: undefined;
|
|
@@ -1384,24 +2894,15 @@ declare class ExchangeAccount$1 {
|
|
|
1384
2894
|
orders: number[];
|
|
1385
2895
|
}): Promise<any>;
|
|
1386
2896
|
getBreakEvenPrice(payload: {
|
|
1387
|
-
symbol: string;
|
|
1388
|
-
}): Promise<{
|
|
1389
|
-
price: number;
|
|
1390
|
-
direction: string;
|
|
1391
|
-
}>;
|
|
1392
|
-
buildAppConfig(payload: {
|
|
1393
|
-
entry: number;
|
|
1394
|
-
stop: number;
|
|
1395
|
-
risk_reward: number;
|
|
1396
|
-
risk: number;
|
|
1397
|
-
symbol: string;
|
|
1398
|
-
profit?: number;
|
|
1399
|
-
update_db?: boolean;
|
|
1400
|
-
profit_percent?: number;
|
|
1401
|
-
}): Promise<AppConfig>;
|
|
2897
|
+
symbol: string;
|
|
2898
|
+
}): Promise<{
|
|
2899
|
+
price: number;
|
|
2900
|
+
direction: string;
|
|
2901
|
+
}>;
|
|
1402
2902
|
tradeConfig(payload: {
|
|
1403
2903
|
symbol: string;
|
|
1404
2904
|
kind: "long" | "short";
|
|
2905
|
+
override?: any;
|
|
1405
2906
|
}): Promise<AppConfig>;
|
|
1406
2907
|
justInTimeProfit(payload: {
|
|
1407
2908
|
symbol: string;
|
|
@@ -1429,48 +2930,7 @@ declare class ExchangeAccount$1 {
|
|
|
1429
2930
|
total_size: number;
|
|
1430
2931
|
avg_entry: number;
|
|
1431
2932
|
}>;
|
|
1432
|
-
|
|
1433
|
-
risk_reward: number;
|
|
1434
|
-
entry: number;
|
|
1435
|
-
stop: number;
|
|
1436
|
-
risk_per_trade: number;
|
|
1437
|
-
avg_size: number;
|
|
1438
|
-
neg_pnl: number;
|
|
1439
|
-
min_size: number;
|
|
1440
|
-
symbol: string;
|
|
1441
|
-
}, place?: boolean, skip_stop?: boolean): Promise<{
|
|
1442
|
-
entry_orders: {
|
|
1443
|
-
orders: {
|
|
1444
|
-
entry: any;
|
|
1445
|
-
quantity: any;
|
|
1446
|
-
reverse_avg_entry: any;
|
|
1447
|
-
reverse_avg_quantity: any;
|
|
1448
|
-
avg_entry: any;
|
|
1449
|
-
avg_size: any;
|
|
1450
|
-
}[];
|
|
1451
|
-
kind: "long" | "short";
|
|
1452
|
-
};
|
|
1453
|
-
stop_orders: {
|
|
1454
|
-
stop: number;
|
|
1455
|
-
final_stop: number;
|
|
1456
|
-
kind: "long" | "short";
|
|
1457
|
-
quantity: any;
|
|
1458
|
-
is_limit: boolean;
|
|
1459
|
-
neg_pnl: any;
|
|
1460
|
-
};
|
|
1461
|
-
trades: any[];
|
|
1462
|
-
}>;
|
|
1463
|
-
determineAmountToBuy(payload: {
|
|
1464
|
-
orders: any[];
|
|
1465
|
-
kind: "long" | "short";
|
|
1466
|
-
refresh?: boolean;
|
|
1467
|
-
decimal_places?: string;
|
|
1468
|
-
price_places?: string;
|
|
1469
|
-
symbol: string;
|
|
1470
|
-
cancel?: boolean;
|
|
1471
|
-
place?: boolean;
|
|
1472
|
-
}): Promise<any[]>;
|
|
1473
|
-
placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders", payload: {
|
|
2933
|
+
placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
|
|
1474
2934
|
symbol: string;
|
|
1475
2935
|
entry: number;
|
|
1476
2936
|
stop: number;
|
|
@@ -1480,6 +2940,7 @@ declare class ExchangeAccount$1 {
|
|
|
1480
2940
|
update_db?: boolean;
|
|
1481
2941
|
raw?: boolean;
|
|
1482
2942
|
use_current?: boolean;
|
|
2943
|
+
stop_percent?: number;
|
|
1483
2944
|
}): Promise<any>;
|
|
1484
2945
|
getOrCreatePositionConfig(payload: {
|
|
1485
2946
|
symbol: string;
|
|
@@ -1548,7 +3009,7 @@ declare class ExchangeAccount$1 {
|
|
|
1548
3009
|
not_reduce: boolean;
|
|
1549
3010
|
ratio: any;
|
|
1550
3011
|
use_full: boolean;
|
|
1551
|
-
sell_ratio:
|
|
3012
|
+
sell_ratio: number;
|
|
1552
3013
|
};
|
|
1553
3014
|
trigger: {
|
|
1554
3015
|
long: boolean;
|
|
@@ -1581,14 +3042,6 @@ declare class ExchangeAccount$1 {
|
|
|
1581
3042
|
target_pnl?: number;
|
|
1582
3043
|
}): Promise<any>;
|
|
1583
3044
|
reEnterPositionOnEmpty(symbol: string): Promise<void>;
|
|
1584
|
-
generate_config_params(payload: {
|
|
1585
|
-
entry: number;
|
|
1586
|
-
stop: number;
|
|
1587
|
-
risk_reward: number;
|
|
1588
|
-
risk: number;
|
|
1589
|
-
symbol: string;
|
|
1590
|
-
with_trades?: boolean;
|
|
1591
|
-
}): Promise<any>;
|
|
1592
3045
|
build_short_order(payload: {
|
|
1593
3046
|
symbol: string;
|
|
1594
3047
|
kind: "long" | "short";
|
|
@@ -1602,12 +3055,29 @@ declare class ExchangeAccount$1 {
|
|
|
1602
3055
|
placeMarketOrder(payload: {
|
|
1603
3056
|
symbol: string;
|
|
1604
3057
|
kind: "long" | "short";
|
|
1605
|
-
quantity
|
|
3058
|
+
quantity?: number;
|
|
3059
|
+
close?: boolean;
|
|
1606
3060
|
}): Promise<void>;
|
|
1607
3061
|
placeSingleOrder(payload: {
|
|
1608
3062
|
symbol: string;
|
|
1609
3063
|
kind: "long" | "short";
|
|
1610
3064
|
}): Promise<string>;
|
|
3065
|
+
followStop(payload: {
|
|
3066
|
+
symbol: string;
|
|
3067
|
+
kind: "long" | "short";
|
|
3068
|
+
fee_percent?: number;
|
|
3069
|
+
focus_position: ExchangePosition;
|
|
3070
|
+
place?: boolean;
|
|
3071
|
+
}): Promise<any>;
|
|
3072
|
+
increasePositionAtStop(payload: {
|
|
3073
|
+
symbol: string;
|
|
3074
|
+
kind: "long" | "short";
|
|
3075
|
+
place?: boolean;
|
|
3076
|
+
price?: number;
|
|
3077
|
+
quantity?: number;
|
|
3078
|
+
increase?: boolean;
|
|
3079
|
+
ratio_to_loose?: number;
|
|
3080
|
+
}): Promise<any>;
|
|
1611
3081
|
triggerTradeFromConfig(payload: {
|
|
1612
3082
|
symbol: string;
|
|
1613
3083
|
kind: "long" | "short";
|
|
@@ -1617,6 +3087,7 @@ declare class ExchangeAccount$1 {
|
|
|
1617
3087
|
stop?: boolean;
|
|
1618
3088
|
use_current?: boolean;
|
|
1619
3089
|
ignore_config?: boolean;
|
|
3090
|
+
risky?: boolean;
|
|
1620
3091
|
}): Promise<any>;
|
|
1621
3092
|
verifyStopLoss(payload: {
|
|
1622
3093
|
symbol: string;
|
|
@@ -1631,7 +3102,46 @@ declare class ExchangeAccount$1 {
|
|
|
1631
3102
|
updateTargetPnl(payload: {
|
|
1632
3103
|
symbol: string;
|
|
1633
3104
|
kind: "long" | "short";
|
|
1634
|
-
}): Promise<
|
|
3105
|
+
}): Promise<any>;
|
|
3106
|
+
updateRiskOnEmpty(payload: {
|
|
3107
|
+
symbol: string;
|
|
3108
|
+
kind: "long" | "short";
|
|
3109
|
+
}): Promise<{
|
|
3110
|
+
updated: boolean;
|
|
3111
|
+
symbol: any;
|
|
3112
|
+
kind: any;
|
|
3113
|
+
old_risk: number;
|
|
3114
|
+
new_risk: number;
|
|
3115
|
+
reason?: undefined;
|
|
3116
|
+
} | {
|
|
3117
|
+
updated: boolean;
|
|
3118
|
+
symbol: any;
|
|
3119
|
+
kind: any;
|
|
3120
|
+
reason: string;
|
|
3121
|
+
old_risk?: undefined;
|
|
3122
|
+
new_risk?: undefined;
|
|
3123
|
+
}>;
|
|
3124
|
+
updateGoodHedgeConfig(payload: {
|
|
3125
|
+
symbol: string;
|
|
3126
|
+
params?: {
|
|
3127
|
+
support: number;
|
|
3128
|
+
resistance: number;
|
|
3129
|
+
risk: number;
|
|
3130
|
+
profit_percent: number;
|
|
3131
|
+
};
|
|
3132
|
+
risk_factor?: number;
|
|
3133
|
+
update?: boolean;
|
|
3134
|
+
place?: boolean;
|
|
3135
|
+
update_tp?: boolean;
|
|
3136
|
+
}): Promise<{
|
|
3137
|
+
support: number;
|
|
3138
|
+
resistance: number;
|
|
3139
|
+
risk: number;
|
|
3140
|
+
profit_percent: number;
|
|
3141
|
+
}>;
|
|
3142
|
+
/**
|
|
3143
|
+
* This method is used to place the opposite trade action
|
|
3144
|
+
*/
|
|
1635
3145
|
placeOppositeTradeAction(payload: {
|
|
1636
3146
|
symbol: string;
|
|
1637
3147
|
kind: "long" | "short";
|
|
@@ -1684,6 +3194,20 @@ declare class ExchangeAccount$1 {
|
|
|
1684
3194
|
gap?: number;
|
|
1685
3195
|
rr?: number;
|
|
1686
3196
|
max_size?: number;
|
|
3197
|
+
max_quantity?: number;
|
|
3198
|
+
kelly?: {
|
|
3199
|
+
use_kelly?: boolean;
|
|
3200
|
+
kelly_confidence_factor?: number;
|
|
3201
|
+
kelly_minimum_risk?: number;
|
|
3202
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
3203
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
3204
|
+
};
|
|
3205
|
+
distribution?: GetEntriesParams["distribution"];
|
|
3206
|
+
distribution_params?: {
|
|
3207
|
+
curveFactor?: number;
|
|
3208
|
+
stdDevFactor?: number;
|
|
3209
|
+
lambda?: number;
|
|
3210
|
+
};
|
|
1687
3211
|
}>;
|
|
1688
3212
|
runSimulation(payload: {
|
|
1689
3213
|
symbol: string;
|
|
@@ -1785,6 +3309,37 @@ declare class ExchangeAccount$1 {
|
|
|
1785
3309
|
symbol: string;
|
|
1786
3310
|
kind: "long" | "short";
|
|
1787
3311
|
}): Promise<number>;
|
|
3312
|
+
placeStopLimit(payload: {
|
|
3313
|
+
symbol: string;
|
|
3314
|
+
kind: "long" | "short";
|
|
3315
|
+
place?: boolean;
|
|
3316
|
+
stop: number;
|
|
3317
|
+
quantity?: number;
|
|
3318
|
+
}): Promise<any>;
|
|
3319
|
+
placeDangerousTrade(payload: {
|
|
3320
|
+
symbol: string;
|
|
3321
|
+
config: {
|
|
3322
|
+
entry: number;
|
|
3323
|
+
quantity: number;
|
|
3324
|
+
stop: number;
|
|
3325
|
+
};
|
|
3326
|
+
kind: "long" | "short";
|
|
3327
|
+
}): Promise<{
|
|
3328
|
+
entry: number;
|
|
3329
|
+
risk: number;
|
|
3330
|
+
stop: number;
|
|
3331
|
+
risk_reward: number | {
|
|
3332
|
+
result: any[];
|
|
3333
|
+
value: number;
|
|
3334
|
+
total: number;
|
|
3335
|
+
risk_per_trade: number;
|
|
3336
|
+
max: number;
|
|
3337
|
+
min: number;
|
|
3338
|
+
avg_size: any;
|
|
3339
|
+
neg_pnl: any;
|
|
3340
|
+
entry: any;
|
|
3341
|
+
};
|
|
3342
|
+
}>;
|
|
1788
3343
|
placeTrade(payload: {
|
|
1789
3344
|
symbol: string;
|
|
1790
3345
|
kind: "long" | "short";
|
|
@@ -1796,6 +3351,7 @@ declare class ExchangeAccount$1 {
|
|
|
1796
3351
|
cancel?: boolean;
|
|
1797
3352
|
ignore_config?: boolean;
|
|
1798
3353
|
target_pnl?: number;
|
|
3354
|
+
risky?: boolean;
|
|
1799
3355
|
}): Promise<any>;
|
|
1800
3356
|
updateConfigPnl(payload: {
|
|
1801
3357
|
symbol: string;
|
|
@@ -1814,57 +3370,18 @@ declare class ExchangeAccount$1 {
|
|
|
1814
3370
|
long_percent: number;
|
|
1815
3371
|
short_percent: number;
|
|
1816
3372
|
}>;
|
|
3373
|
+
oppositeGapExists(payload: {
|
|
3374
|
+
symbol: string;
|
|
3375
|
+
kind: "long" | "short";
|
|
3376
|
+
}): Promise<void>;
|
|
1817
3377
|
profitWithinGapStrategy(payload: {
|
|
1818
3378
|
symbol: string;
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
avg: {
|
|
1823
|
-
entry: number;
|
|
1824
|
-
price: number;
|
|
1825
|
-
quantity: number;
|
|
1826
|
-
};
|
|
1827
|
-
loss: number;
|
|
1828
|
-
profit_percent: number;
|
|
1829
|
-
fee: number;
|
|
1830
|
-
risk_per_trade: number;
|
|
1831
|
-
risk_reward: number;
|
|
1832
|
-
symbol?: string;
|
|
1833
|
-
focus: number;
|
|
1834
|
-
budget: number;
|
|
1835
|
-
support: number;
|
|
1836
|
-
resistance: number;
|
|
1837
|
-
percent_change: number;
|
|
1838
|
-
tradeSplit?: number;
|
|
1839
|
-
take_profit?: number;
|
|
3379
|
+
callback?: (params: {
|
|
3380
|
+
symbol: string;
|
|
3381
|
+
account: ExchangeType;
|
|
1840
3382
|
kind: "long" | "short";
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
min_size: number;
|
|
1844
|
-
price_places?: string;
|
|
1845
|
-
strategy?: "quantity" | "entry";
|
|
1846
|
-
as_array?: boolean;
|
|
1847
|
-
decimal_places?: string;
|
|
1848
|
-
min_profit?: number;
|
|
1849
|
-
raw?: boolean;
|
|
1850
|
-
gap?: number;
|
|
1851
|
-
rr?: number;
|
|
1852
|
-
max_size?: number;
|
|
1853
|
-
};
|
|
1854
|
-
reverse_orders_to_buy: any;
|
|
1855
|
-
positions: {
|
|
1856
|
-
long: PositionsView & {
|
|
1857
|
-
expand?: {
|
|
1858
|
-
account_strategy?: AccountStrategy;
|
|
1859
|
-
};
|
|
1860
|
-
};
|
|
1861
|
-
short: PositionsView & {
|
|
1862
|
-
expand?: {
|
|
1863
|
-
account_strategy?: AccountStrategy;
|
|
1864
|
-
};
|
|
1865
|
-
};
|
|
1866
|
-
};
|
|
1867
|
-
orders_to_place: any;
|
|
3383
|
+
}) => Promise<any>;
|
|
3384
|
+
}): Promise<{
|
|
1868
3385
|
config_details: {
|
|
1869
3386
|
app_config: {
|
|
1870
3387
|
fee: number;
|
|
@@ -1891,36 +3408,49 @@ declare class ExchangeAccount$1 {
|
|
|
1891
3408
|
gap?: number;
|
|
1892
3409
|
rr?: number;
|
|
1893
3410
|
max_size?: number;
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
neg_pnl: any;
|
|
1908
|
-
entry: any;
|
|
3411
|
+
max_quantity?: number;
|
|
3412
|
+
kelly?: {
|
|
3413
|
+
use_kelly?: boolean;
|
|
3414
|
+
kelly_confidence_factor?: number;
|
|
3415
|
+
kelly_minimum_risk?: number;
|
|
3416
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
3417
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
3418
|
+
};
|
|
3419
|
+
distribution?: GetEntriesParams["distribution"];
|
|
3420
|
+
distribution_params?: {
|
|
3421
|
+
curveFactor?: number;
|
|
3422
|
+
stdDevFactor?: number;
|
|
3423
|
+
lambda?: number;
|
|
1909
3424
|
};
|
|
1910
|
-
profit_percent: number;
|
|
1911
3425
|
};
|
|
1912
|
-
|
|
3426
|
+
last_value: any;
|
|
1913
3427
|
};
|
|
1914
3428
|
}>;
|
|
1915
3429
|
generateGapTp(payload: {
|
|
1916
3430
|
symbol: string;
|
|
1917
3431
|
factor?: number;
|
|
1918
3432
|
}): Promise<{
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
3433
|
+
profit_percent: {
|
|
3434
|
+
long: number;
|
|
3435
|
+
short: number;
|
|
3436
|
+
};
|
|
3437
|
+
risk: {
|
|
3438
|
+
short: number;
|
|
3439
|
+
long: number;
|
|
3440
|
+
};
|
|
3441
|
+
take_profit: {
|
|
3442
|
+
long: number;
|
|
3443
|
+
short: number;
|
|
3444
|
+
};
|
|
3445
|
+
to_reduce: {
|
|
3446
|
+
short: number;
|
|
3447
|
+
long: number;
|
|
3448
|
+
};
|
|
3449
|
+
full_reduce: {
|
|
3450
|
+
short: number;
|
|
3451
|
+
long: number;
|
|
3452
|
+
};
|
|
3453
|
+
sell_quantity: {
|
|
1924
3454
|
short: number;
|
|
1925
3455
|
long: number;
|
|
1926
3456
|
};
|
|
@@ -1930,9 +3460,12 @@ declare class ExchangeAccount$1 {
|
|
|
1930
3460
|
getSellPriceFromStrategy(payload: {
|
|
1931
3461
|
symbol: string;
|
|
1932
3462
|
reduce_position: PositionsView;
|
|
3463
|
+
kind?: "long" | "short";
|
|
3464
|
+
full_ratio?: number;
|
|
1933
3465
|
}): Promise<{
|
|
1934
3466
|
pnl: number;
|
|
1935
3467
|
loss: number;
|
|
3468
|
+
full_loss: number;
|
|
1936
3469
|
original_pnl: number;
|
|
1937
3470
|
reward_factor: number;
|
|
1938
3471
|
profit_percent: number;
|
|
@@ -1942,15 +3475,43 @@ declare class ExchangeAccount$1 {
|
|
|
1942
3475
|
price_places: string;
|
|
1943
3476
|
decimal_places: string;
|
|
1944
3477
|
}>;
|
|
3478
|
+
placeCompoundShortTrade(payload: {}): Promise<void>;
|
|
3479
|
+
placeCompoundLongTrade(payload: {
|
|
3480
|
+
symbol: string;
|
|
3481
|
+
params: {
|
|
3482
|
+
resistance: number;
|
|
3483
|
+
support: number;
|
|
3484
|
+
profit_percent: number;
|
|
3485
|
+
risk_reward: number;
|
|
3486
|
+
risk: number;
|
|
3487
|
+
};
|
|
3488
|
+
place?: boolean;
|
|
3489
|
+
}): Promise<void>;
|
|
3490
|
+
getConfigProfiles(payload: {
|
|
3491
|
+
symbol: string;
|
|
3492
|
+
kind: "long" | "short";
|
|
3493
|
+
}): Promise<{
|
|
3494
|
+
id: any;
|
|
3495
|
+
entry: any;
|
|
3496
|
+
stop: any;
|
|
3497
|
+
kind: "long" | "short";
|
|
3498
|
+
risk_reward: any;
|
|
3499
|
+
risk: any;
|
|
3500
|
+
profit_percent: any;
|
|
3501
|
+
}[]>;
|
|
1945
3502
|
}
|
|
1946
3503
|
declare function getExchangeAccount(payload: {
|
|
1947
3504
|
account: ExchangeType;
|
|
1948
3505
|
app_db: AppDatabase;
|
|
1949
|
-
getCredentials: (
|
|
3506
|
+
getCredentials: (payload: {
|
|
3507
|
+
account: string;
|
|
3508
|
+
exchange: string;
|
|
3509
|
+
app_db: AppDatabase;
|
|
3510
|
+
}) => Promise<{
|
|
1950
3511
|
api_key: string;
|
|
1951
3512
|
api_secret: string;
|
|
1952
3513
|
email: string;
|
|
1953
|
-
}
|
|
3514
|
+
}>;
|
|
1954
3515
|
proxyOptions?: {
|
|
1955
3516
|
proxy?: any;
|
|
1956
3517
|
ignore_proxy?: boolean;
|
|
@@ -1965,11 +3526,14 @@ declare class App {
|
|
|
1965
3526
|
canWithdraw?: boolean;
|
|
1966
3527
|
};
|
|
1967
3528
|
private getCredentials;
|
|
1968
|
-
constructor(app_db: AppDatabase, getCredentials: (
|
|
3529
|
+
constructor(app_db: AppDatabase, getCredentials: (payload: {
|
|
3530
|
+
account: string;
|
|
3531
|
+
exchange: string;
|
|
3532
|
+
}) => Promise<{
|
|
1969
3533
|
api_key: string;
|
|
1970
3534
|
api_secret: string;
|
|
1971
3535
|
email: string;
|
|
1972
|
-
}
|
|
3536
|
+
}>, proxyOptions?: {
|
|
1973
3537
|
proxy?: any;
|
|
1974
3538
|
ignore_proxy?: boolean;
|
|
1975
3539
|
canWithdraw?: boolean;
|
|
@@ -1985,13 +3549,14 @@ declare class App {
|
|
|
1985
3549
|
expand?: {
|
|
1986
3550
|
config: ScheduledTrade;
|
|
1987
3551
|
account: ExchangeAccount;
|
|
3552
|
+
proxy: Proxy$1;
|
|
1988
3553
|
};
|
|
1989
3554
|
})[]>;
|
|
1990
3555
|
syncOrders(payload: {
|
|
1991
3556
|
account: ExchangeType;
|
|
1992
3557
|
symbol: string;
|
|
1993
3558
|
kind: "long" | "short";
|
|
1994
|
-
}): Promise<
|
|
3559
|
+
}): Promise<boolean>;
|
|
1995
3560
|
cancelOrders(payload: {
|
|
1996
3561
|
account: ExchangeType;
|
|
1997
3562
|
symbol: string;
|
|
@@ -1999,7 +3564,7 @@ declare class App {
|
|
|
1999
3564
|
price?: number;
|
|
2000
3565
|
all?: boolean;
|
|
2001
3566
|
stop?: boolean;
|
|
2002
|
-
}): Promise<
|
|
3567
|
+
}): Promise<any[] | {
|
|
2003
3568
|
success: boolean;
|
|
2004
3569
|
message: string;
|
|
2005
3570
|
exchange_result?: undefined;
|
|
@@ -2038,10 +3603,16 @@ declare class App {
|
|
|
2038
3603
|
getNonEssentialSymbols(): Promise<Set<any>>;
|
|
2039
3604
|
refreshAllPositionsWithSymbol(payload: {
|
|
2040
3605
|
symbol: string;
|
|
3606
|
+
callback?: (payload: {
|
|
3607
|
+
symbol: string;
|
|
3608
|
+
account: ExchangeType;
|
|
3609
|
+
}) => Promise<any>;
|
|
2041
3610
|
}): Promise<void>;
|
|
2042
3611
|
autoFollowPositions(): Promise<void>;
|
|
2043
3612
|
getMoverExchangeInstances(): Promise<ExchangeAccount[]>;
|
|
2044
|
-
updateTpOnAllMarkets(
|
|
3613
|
+
updateTpOnAllMarkets(callback?: (payload: {
|
|
3614
|
+
account: ExchangeType;
|
|
3615
|
+
}) => Promise<any>): Promise<void>;
|
|
2045
3616
|
triggerMoverTask(payload: {
|
|
2046
3617
|
callback: (params: {
|
|
2047
3618
|
symbol: string;
|
|
@@ -2061,62 +3632,21 @@ declare class App {
|
|
|
2061
3632
|
cancel?: boolean;
|
|
2062
3633
|
raw?: boolean;
|
|
2063
3634
|
}): Promise<any>;
|
|
2064
|
-
runDbStrategyAccounts(
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
3635
|
+
runDbStrategyAccounts(payload: {
|
|
3636
|
+
runningCallback: (params: {
|
|
3637
|
+
symbol: string;
|
|
3638
|
+
account: ExchangeType;
|
|
3639
|
+
}) => Promise<any>;
|
|
3640
|
+
notRunningCallback: (params: {
|
|
3641
|
+
symbol: string;
|
|
3642
|
+
account: ExchangeType;
|
|
3643
|
+
kind: "long" | "short";
|
|
3644
|
+
}) => Promise<any>;
|
|
3645
|
+
}): Promise<void>;
|
|
2068
3646
|
profitWithinGapStrategy(payload: {
|
|
2069
3647
|
account: ExchangeType;
|
|
2070
3648
|
symbol: string;
|
|
2071
3649
|
}): Promise<{
|
|
2072
|
-
reverse_config: any;
|
|
2073
|
-
reverse_action: {
|
|
2074
|
-
avg: {
|
|
2075
|
-
entry: number;
|
|
2076
|
-
price: number;
|
|
2077
|
-
quantity: number;
|
|
2078
|
-
};
|
|
2079
|
-
loss: number;
|
|
2080
|
-
profit_percent: number;
|
|
2081
|
-
fee: number;
|
|
2082
|
-
risk_per_trade: number;
|
|
2083
|
-
risk_reward: number;
|
|
2084
|
-
symbol?: string;
|
|
2085
|
-
focus: number;
|
|
2086
|
-
budget: number;
|
|
2087
|
-
support: number;
|
|
2088
|
-
resistance: number;
|
|
2089
|
-
percent_change: number;
|
|
2090
|
-
tradeSplit?: number;
|
|
2091
|
-
take_profit?: number;
|
|
2092
|
-
kind: "long" | "short";
|
|
2093
|
-
entry: number;
|
|
2094
|
-
stop: number;
|
|
2095
|
-
min_size: number;
|
|
2096
|
-
price_places?: string;
|
|
2097
|
-
strategy?: "quantity" | "entry";
|
|
2098
|
-
as_array?: boolean;
|
|
2099
|
-
decimal_places?: string;
|
|
2100
|
-
min_profit?: number;
|
|
2101
|
-
raw?: boolean;
|
|
2102
|
-
gap?: number;
|
|
2103
|
-
rr?: number;
|
|
2104
|
-
max_size?: number;
|
|
2105
|
-
};
|
|
2106
|
-
reverse_orders_to_buy: any;
|
|
2107
|
-
positions: {
|
|
2108
|
-
long: PositionsView & {
|
|
2109
|
-
expand?: {
|
|
2110
|
-
account_strategy?: AccountStrategy;
|
|
2111
|
-
};
|
|
2112
|
-
};
|
|
2113
|
-
short: PositionsView & {
|
|
2114
|
-
expand?: {
|
|
2115
|
-
account_strategy?: AccountStrategy;
|
|
2116
|
-
};
|
|
2117
|
-
};
|
|
2118
|
-
};
|
|
2119
|
-
orders_to_place: any;
|
|
2120
3650
|
config_details: {
|
|
2121
3651
|
app_config: {
|
|
2122
3652
|
fee: number;
|
|
@@ -2143,30 +3673,47 @@ declare class App {
|
|
|
2143
3673
|
gap?: number;
|
|
2144
3674
|
rr?: number;
|
|
2145
3675
|
max_size?: number;
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
neg_pnl: any;
|
|
2160
|
-
entry: any;
|
|
3676
|
+
max_quantity?: number;
|
|
3677
|
+
kelly?: {
|
|
3678
|
+
use_kelly?: boolean;
|
|
3679
|
+
kelly_confidence_factor?: number;
|
|
3680
|
+
kelly_minimum_risk?: number;
|
|
3681
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
3682
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
3683
|
+
};
|
|
3684
|
+
distribution?: GetEntriesParams["distribution"];
|
|
3685
|
+
distribution_params?: {
|
|
3686
|
+
curveFactor?: number;
|
|
3687
|
+
stdDevFactor?: number;
|
|
3688
|
+
lambda?: number;
|
|
2161
3689
|
};
|
|
2162
|
-
profit_percent: number;
|
|
2163
3690
|
};
|
|
2164
|
-
|
|
3691
|
+
last_value: any;
|
|
3692
|
+
};
|
|
3693
|
+
}>;
|
|
3694
|
+
compoundLongTrade(payload: {
|
|
3695
|
+
main_account: ExchangeType & {
|
|
3696
|
+
symbol: string;
|
|
3697
|
+
};
|
|
3698
|
+
focus_account: ExchangeType & {
|
|
3699
|
+
symbol: string;
|
|
2165
3700
|
};
|
|
3701
|
+
place?: boolean;
|
|
3702
|
+
rr?: number;
|
|
3703
|
+
}): Promise<{
|
|
3704
|
+
start_risk: number;
|
|
3705
|
+
short_profit: number;
|
|
3706
|
+
support: number;
|
|
3707
|
+
resistance: number;
|
|
3708
|
+
long_v: any;
|
|
3709
|
+
profit_percent: number;
|
|
3710
|
+
result: any;
|
|
3711
|
+
short_max_size: any;
|
|
2166
3712
|
}>;
|
|
2167
3713
|
reduceExistingPosition(payload: {
|
|
2168
3714
|
main_account: ExchangeType & {
|
|
2169
3715
|
symbol: string;
|
|
3716
|
+
kind?: "long" | "short";
|
|
2170
3717
|
};
|
|
2171
3718
|
reduce_account: ExchangeType & {
|
|
2172
3719
|
symbol: string;
|
|
@@ -2174,6 +3721,8 @@ declare class App {
|
|
|
2174
3721
|
kind: "long" | "short";
|
|
2175
3722
|
place?: boolean;
|
|
2176
3723
|
increase?: boolean;
|
|
3724
|
+
full_ratio?: number;
|
|
3725
|
+
cancel_limit?: boolean;
|
|
2177
3726
|
}): Promise<any>;
|
|
2178
3727
|
}
|
|
2179
3728
|
export declare function initApp(payload: {
|
|
@@ -2183,21 +3732,27 @@ export declare function initApp(payload: {
|
|
|
2183
3732
|
password: string;
|
|
2184
3733
|
};
|
|
2185
3734
|
password?: string;
|
|
2186
|
-
|
|
3735
|
+
salt?: string;
|
|
3736
|
+
email?: string;
|
|
3737
|
+
getCredentials: (payload: {
|
|
3738
|
+
account: string;
|
|
3739
|
+
exchange: string;
|
|
3740
|
+
app_db: AppDatabase;
|
|
3741
|
+
}) => Promise<{
|
|
2187
3742
|
api_key: string;
|
|
2188
3743
|
api_secret: string;
|
|
2189
3744
|
email: string;
|
|
2190
|
-
}
|
|
3745
|
+
}>;
|
|
2191
3746
|
proxy?: any;
|
|
2192
3747
|
ignore_proxy?: boolean;
|
|
2193
3748
|
canWithdraw?: boolean;
|
|
2194
3749
|
triggerToken?: string;
|
|
2195
3750
|
}): Promise<App>;
|
|
2196
|
-
declare function getCredentials(
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
}
|
|
3751
|
+
declare function getCredentials(payload: {
|
|
3752
|
+
account: string;
|
|
3753
|
+
exchange: string;
|
|
3754
|
+
app_db: AppDatabase;
|
|
3755
|
+
}): Promise<any>;
|
|
2201
3756
|
export declare function initialize(payload: {
|
|
2202
3757
|
password?: string;
|
|
2203
3758
|
proxy?: any;
|
|
@@ -2206,7 +3761,7 @@ export declare function initialize(payload: {
|
|
|
2206
3761
|
}): Promise<App>;
|
|
2207
3762
|
|
|
2208
3763
|
declare namespace database {
|
|
2209
|
-
export { AppDatabase, ExchangeType, initPocketBaseClient };
|
|
3764
|
+
export { AppDatabase, ExchangeType, decryptObject, encryptObject, initPocketBaseClient };
|
|
2210
3765
|
}
|
|
2211
3766
|
declare namespace exchange_account {
|
|
2212
3767
|
export { ExchangeAccount$1 as ExchangeAccount, getExchangeAccount };
|