@gbozee/ultimate 0.0.2-20 → 0.0.2-201

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/index.d.ts CHANGED
@@ -2,9 +2,238 @@
2
2
 
3
3
  import { HttpsProxyAgent } from 'https-proxy-agent';
4
4
  import PocketBase from 'pocketbase';
5
- import { RecordModel } from 'pocketbase';
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
+ }
23
+ export type RecordModel = PocketBaseRecordModel;
24
+ export interface BaseSystemFields {
25
+ id: string;
26
+ created: string;
27
+ updated: string;
28
+ }
29
+ export interface ExchangeAccount extends BaseSystemFields {
30
+ exchange: "binance" | "bybit";
31
+ owner: string;
32
+ email?: string;
33
+ user?: string;
34
+ usdt?: number;
35
+ usdc?: number;
36
+ proxy?: string;
37
+ bullish?: boolean;
38
+ bearish?: boolean;
39
+ movePercent?: number;
40
+ totalRisk?: number;
41
+ max_non_essential?: number;
42
+ profit_percent?: number;
43
+ risk_reward?: number;
44
+ exclude_coins?: {
45
+ bullish?: string[];
46
+ };
47
+ include_delisted?: boolean;
48
+ }
49
+ export interface Order extends BaseSystemFields {
50
+ symbol: string;
51
+ account: string;
52
+ kind: "long" | "short";
53
+ price: number;
54
+ quantity: number;
55
+ side: "sell" | "buy";
56
+ stop: number;
57
+ order_id: string;
58
+ }
59
+ export interface SymbolConfig extends BaseSystemFields {
60
+ symbol: string;
61
+ support?: number;
62
+ resistance?: number;
63
+ stop_percent?: number;
64
+ price_places?: string;
65
+ decimal_places?: string;
66
+ min_size?: number;
67
+ weight?: number;
68
+ leverage?: number;
69
+ candle_count?: number;
70
+ interval?: any;
71
+ fee_percent?: number;
72
+ }
73
+ export interface ScheduledTrade extends BaseSystemFields {
74
+ symbol: string;
75
+ account: string;
76
+ profit?: number;
77
+ risk?: number;
78
+ entry?: number;
79
+ stop?: number;
80
+ risk_reward?: number;
81
+ profit_percent?: number;
82
+ place_tp?: boolean;
83
+ kind?: "long" | "short";
84
+ follow?: boolean | 1 | 0;
85
+ reduce_ratio?: number;
86
+ sell_ratio?: number;
87
+ threshold_qty?: number;
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
+ settings?: {
98
+ gap_trading?: {
99
+ entry_risk?: number;
100
+ hedge_stop_ratio?: number;
101
+ };
102
+ bad_hedge?: {
103
+ hedges_distribution?: GetEntriesParams["distribution"];
104
+ hedges_ratio?: number;
105
+ opposite_trade_distribution?: GetEntriesParams["distribution"];
106
+ opposite_trade_ratio?: number;
107
+ stop_loss?: number;
108
+ };
109
+ };
110
+ }
111
+ export interface AccountStrategy extends BaseSystemFields {
112
+ account: string;
113
+ symbol: string;
114
+ risk?: number;
115
+ reward_factor?: number;
116
+ kind?: "long" | "short";
117
+ support?: number;
118
+ resistance?: number;
119
+ running?: boolean;
120
+ max_reward_factor?: number;
121
+ follow?: boolean;
122
+ risk_reward?: number;
123
+ dynamic?: boolean;
124
+ }
125
+ interface Proxy$1 extends BaseSystemFields {
126
+ ip_address?: string;
127
+ type?: "http" | "socks5";
128
+ }
129
+ export interface PositionsView {
130
+ id: string;
131
+ symbol?: any;
132
+ entry?: any;
133
+ quantity?: any;
134
+ take_profit?: any;
135
+ account?: any;
136
+ kind?: any;
137
+ target_pnl?: number;
138
+ liquidation?: number;
139
+ avg_price?: number;
140
+ avg_qty?: number;
141
+ next_order?: number;
142
+ last_order?: number;
143
+ config?: any;
144
+ stop_loss?: {
145
+ price: number;
146
+ quantity: number;
147
+ };
148
+ stop_pnl?: any;
149
+ leverage?: any;
150
+ avg_liquidation?: any;
151
+ balance?: any;
152
+ reduce_ratio?: number;
153
+ sell_ratio?: number;
154
+ threshold_qty?: number;
155
+ follow?: boolean | 1 | 0;
156
+ current_price?: number;
157
+ usd_balance?: number;
158
+ tp?: {
159
+ price: number;
160
+ quantity: number;
161
+ };
162
+ next_risk?: number;
163
+ proxy?: string;
164
+ expand?: {
165
+ p_account?: ExchangeAccount;
166
+ b_config?: ScheduledTrade;
167
+ proxy?: Proxy$1;
168
+ account_strategy?: AccountStrategy;
169
+ compound_instance?: CompoundInstance;
170
+ support?: SupportTable;
171
+ symbol_config: SymbolConfig;
172
+ resistance?: SupportTable;
173
+ anchor?: Omit<PositionsView, "expand">;
174
+ };
175
+ pnl?: number;
176
+ support_price?: number;
177
+ }
178
+ export interface BullishMarket extends RecordModel {
179
+ id: string;
180
+ symbol: string;
181
+ risk: number;
182
+ }
183
+ export interface WindingDownMarket extends RecordModel {
184
+ id: string;
185
+ symbol: string;
186
+ risk_reward: number;
187
+ }
188
+ export interface Compounder extends BaseSystemFields {
189
+ risk?: number;
190
+ profit_percent?: number;
191
+ owner?: string;
192
+ completed?: boolean;
193
+ start_balance?: number;
194
+ starting_risk?: number;
195
+ fee_rate?: number;
196
+ }
197
+ export interface CompoundInstance extends BaseSystemFields {
198
+ ref?: string;
199
+ position?: string;
200
+ risk?: number;
201
+ hedged?: boolean;
202
+ loss?: number;
203
+ expand?: {
204
+ ref?: Compounder;
205
+ };
206
+ }
207
+ export interface SupportTable extends BaseSystemFields {
208
+ symbol?: string;
209
+ price?: number;
210
+ counter?: number;
211
+ last_updated?: string;
212
+ kind?: "long" | "short";
213
+ }
214
+ export type GlobalConfig = {
215
+ profit_percent?: number;
216
+ symbol: string;
217
+ profit?: number;
218
+ risk?: number;
219
+ stop_percent?: number;
220
+ kind: "long" | "short";
221
+ reduce_percent?: number;
222
+ support: number;
223
+ resistance: number;
224
+ price_places: string;
225
+ decimal_places: string;
226
+ min_size?: number;
227
+ accounts?: {
228
+ owner: string;
229
+ exchange?: string;
230
+ }[];
231
+ risk_reward?: number;
232
+ reverse_factor?: number;
233
+ leverage?: number;
234
+ max_quantity?: number;
235
+ fee_percent?: number;
236
+ };
8
237
  interface Position$1 {
9
238
  id: number;
10
239
  kind: "long" | "short";
@@ -20,6 +249,7 @@ interface Position$1 {
20
249
  target_pnl?: number;
21
250
  reduce_ratio?: number;
22
251
  use_full?: boolean;
252
+ liquidation?: number;
23
253
  }
24
254
  export interface Account {
25
255
  id: number | string;
@@ -59,8 +289,69 @@ export interface Account {
59
289
  short: any;
60
290
  };
61
291
  }
62
- export interface BaseExchange {
292
+ interface Order$1 {
293
+ order_id?: string;
294
+ symbol?: string;
295
+ price: number;
296
+ quantity: number;
297
+ kind: "long" | "short";
298
+ side: "buy" | "sell";
299
+ stop: number;
300
+ triggerPrice?: number;
301
+ }
302
+ export interface CandlestickAnalysisResult {
303
+ candlesticks: {
304
+ [key: string]: any[];
305
+ };
306
+ resistance: {
307
+ [key: string]: number;
308
+ };
309
+ support: {
310
+ [key: string]: number;
311
+ };
312
+ current_price: number;
313
+ minimum_weekly: number;
314
+ }
315
+ declare abstract class BaseExchange {
63
316
  client: any;
317
+ name: string;
318
+ getCredentials: (payload: {
319
+ account: string;
320
+ }) => Promise<{
321
+ api_key: string;
322
+ api_secret: string;
323
+ email: string;
324
+ }>;
325
+ proxyAgent?: any;
326
+ constructor(client: any);
327
+ protected abstract getPositionInfo(symbol: string): Promise<any>;
328
+ abstract cancelAllOrders(symbol: string, payload: {
329
+ type?: "limit" | "stop" | "tp";
330
+ side?: "buy" | "sell";
331
+ kind?: "long" | "short";
332
+ }): Promise<any>;
333
+ protected abstract getCurrentPrice(symbol: string): Promise<any>;
334
+ protected abstract getExchangeInfo(options: {
335
+ price_places?: string;
336
+ decimal_places?: string;
337
+ account: {
338
+ owner: string;
339
+ exchange: string;
340
+ };
341
+ symbol: string;
342
+ }): Promise<any>;
343
+ protected abstract _createLimitPurchaseOrders(payload: {
344
+ symbol: string;
345
+ orders: any[];
346
+ price_places?: string;
347
+ decimal_places?: string;
348
+ }): Promise<any>;
349
+ rawCreateLimitPurchaseOrders(payload: {
350
+ symbol: string;
351
+ orders: Order$1[];
352
+ price_places?: string;
353
+ decimal_places?: string;
354
+ }): Promise<any>;
64
355
  placeStopOrders(payload: {
65
356
  symbol: string;
66
357
  quantity: number;
@@ -68,21 +359,22 @@ export interface BaseExchange {
68
359
  stop: number;
69
360
  price_places?: string;
70
361
  decimal_places?: string;
362
+ hedge?: boolean;
71
363
  place?: boolean;
72
364
  }): Promise<any>;
73
365
  bulkPlaceLimitOrders(payload: {
74
- orders: any[];
366
+ orders: Order$1[];
75
367
  kind: "long" | "short";
76
368
  decimal_places?: string;
77
369
  price_places?: string;
78
370
  symbol: string;
79
371
  place?: boolean;
80
- }): Promise<any>;
372
+ }): Promise<any[]>;
81
373
  get_current_price(symbol: string): Promise<any>;
82
- analyzeCharts(payload: {
374
+ abstract analyzeCharts(payload: {
83
375
  symbol: string;
84
376
  chartType: any;
85
- count: number;
377
+ limit: number;
86
378
  raw?: boolean;
87
379
  }): Promise<any>;
88
380
  getExchangeAccountInfo(options: {
@@ -94,15 +386,43 @@ export interface BaseExchange {
94
386
  };
95
387
  symbol: string;
96
388
  }): Promise<any>;
389
+ protected abstract _cancelOrders(payload: {
390
+ symbol: string;
391
+ orders: Array<{
392
+ orderId?: any;
393
+ clientOrderId?: any;
394
+ }>;
395
+ }): Promise<any>;
97
396
  cancelOrders(payload: {
98
397
  symbol: string;
99
398
  orders: number[];
100
399
  }): Promise<any>;
400
+ protected abstract _placeTpOrder(payload: {
401
+ symbol: string;
402
+ tp: number;
403
+ kind: "long" | "short";
404
+ cancel?: boolean;
405
+ quantity?: number;
406
+ price_places?: string;
407
+ decimal_places?: string;
408
+ }): Promise<any>;
101
409
  placeTpOrder(payload: {
102
410
  symbol: string;
103
411
  take_profit: number;
104
412
  kind: "long" | "short";
105
413
  cancel?: boolean;
414
+ quantity?: number;
415
+ price_places?: string;
416
+ decimal_places?: string;
417
+ }): Promise<any>;
418
+ protected abstract placeLimitOrders(payload: {
419
+ symbol: string;
420
+ orders: Array<{
421
+ entry: number;
422
+ quantity: number;
423
+ }>;
424
+ kind: "long" | "short";
425
+ cancel?: boolean;
106
426
  price_places?: string;
107
427
  decimal_places?: string;
108
428
  }): Promise<any>;
@@ -114,6 +434,19 @@ export interface BaseExchange {
114
434
  price_places?: string;
115
435
  decimal_places?: string;
116
436
  }): Promise<any>;
437
+ protected abstract _placeStopOrder(payload: {
438
+ symbol: string;
439
+ stop: number;
440
+ quantity: number;
441
+ kind: "long" | "short";
442
+ price_places?: string;
443
+ decimal_places?: string;
444
+ final_stop: number;
445
+ cancel?: boolean;
446
+ is_limit?: boolean;
447
+ current_price: number;
448
+ hedge?: boolean;
449
+ }): Promise<any>;
117
450
  placeStopOrder(payload: {
118
451
  symbol: string;
119
452
  stop: number;
@@ -121,17 +454,20 @@ export interface BaseExchange {
121
454
  kind: "long" | "short";
122
455
  price_places?: string;
123
456
  decimal_places?: string;
457
+ hedge?: boolean;
124
458
  }): Promise<any>;
125
- setLeverage(payload: {
459
+ abstract setLeverage(payload: {
126
460
  symbol: string;
127
461
  leverage: number;
128
462
  }): Promise<any>;
129
- generateConfig(payload: {
463
+ abstract generateConfig(payload: {
130
464
  symbol: string;
465
+ interval?: any;
131
466
  limit?: number;
132
467
  }): Promise<any>;
133
- checkDelistedMovers(payload: {
468
+ abstract checkDelistedMovers(payload: {
134
469
  movePercent: number;
470
+ include_delisted?: boolean;
135
471
  }): Promise<any>;
136
472
  closePosition(payload: {
137
473
  symbol: string;
@@ -139,117 +475,121 @@ export interface BaseExchange {
139
475
  price_places?: string;
140
476
  decimal_places?: string;
141
477
  }): Promise<any>;
478
+ protected abstract getAllOpenOrders(): Promise<any>;
479
+ getAllOpenSymbols(): Promise<unknown[]>;
480
+ createLimitPurchaseOrders(payload: {
481
+ orders: any[];
482
+ kind: "long" | "short";
483
+ decimal_places?: string;
484
+ price_places?: string;
485
+ symbol: string;
486
+ }): Promise<any>;
487
+ abstract getDelistedSpotSymbols(): Promise<any>;
488
+ abstract getOpenPositions(): Promise<any>;
489
+ abstract crossAccountTransfer(payload: {
490
+ from: {
491
+ owner: string;
492
+ wallet: string;
493
+ };
494
+ to: {
495
+ owner: string;
496
+ wallet: string;
497
+ };
498
+ asset: string;
499
+ amount: number;
500
+ }): Promise<any>;
501
+ placeMarketOrder(payload: {
502
+ symbol: string;
503
+ kind: "long" | "short";
504
+ quantity: number;
505
+ price_places?: string;
506
+ decimal_places?: string;
507
+ close?: boolean;
508
+ }): Promise<any>;
509
+ customStopLoss(payload: {
510
+ price_places: string;
511
+ decimal_places: string;
512
+ symbol: string;
513
+ kind: "long" | "short";
514
+ stop: number;
515
+ quantity: number;
516
+ increase?: boolean;
517
+ place?: boolean;
518
+ increase_ratio?: number;
519
+ }): Promise<any>;
520
+ abstract getOpenOrders(payload: {
521
+ symbol: string;
522
+ }): Promise<any>;
523
+ placeBadStopEntry(payload: {
524
+ symbol: string;
525
+ orders: Order$1[];
526
+ price_places?: string;
527
+ decimal_places?: string;
528
+ }): Promise<any>;
529
+ analyzeCandlesticks(payload: {
530
+ symbol: string;
531
+ }): Promise<CandlestickAnalysisResult>;
532
+ setAccountDetails(payload: {
533
+ getCredentials: (payload: {
534
+ account: string;
535
+ }) => Promise<{
536
+ api_key: string;
537
+ api_secret: string;
538
+ email: string;
539
+ }>;
540
+ proxyAgent?: any;
541
+ }): void;
142
542
  }
143
- export interface BaseSystemFields {
144
- id: string;
145
- created: string;
146
- updated: string;
147
- }
148
- export interface ExchangeAccount extends BaseSystemFields {
149
- exchange: "binance" | "bybit";
543
+ declare function encryptObject(obj: any, password: string): string;
544
+ declare function decryptObject(encryptedString: string, password: string): any;
545
+ declare function initPocketBaseClient(proxy_credentials: {
546
+ host: string;
547
+ email: string;
548
+ password: string;
549
+ auto_cancellation?: boolean;
550
+ }): Promise<PocketBase>;
551
+ export type ExchangeType = {
150
552
  owner: string;
553
+ exchange: string;
554
+ };
555
+ export declare class AppDatabase {
556
+ pb: PocketBase;
151
557
  email?: string;
152
- user?: string;
153
- usdt?: number;
154
- usdc?: number;
155
- proxy?: string;
156
- bullish?: boolean;
157
- bearish?: boolean;
158
- movePercent?: number;
159
- totalRisk?: number;
160
- max_non_essential?: number;
161
- }
162
- export interface SymbolConfig extends BaseSystemFields {
163
- symbol: string;
164
- support?: number;
165
- resistance?: number;
166
- stop_percent?: number;
167
- price_places?: string;
168
- decimal_places?: string;
169
- min_size?: number;
170
- weight?: number;
171
- leverage?: number;
172
- candle_count?: number;
173
- }
174
- export interface ScheduledTrade extends BaseSystemFields {
175
- symbol: string;
176
- account: string;
177
- profit?: number;
178
- risk?: number;
179
- entry?: number;
180
- stop?: number;
181
- risk_reward?: number;
182
- profit_percent?: number;
183
- place_tp?: boolean;
184
- kind?: "long" | "short";
185
- current_price?: number;
186
- }
187
- export interface Strategy extends BaseSystemFields {
188
- name: string;
189
- short_risk_factor?: number;
190
- long_risk_factor?: number;
191
- profit_percent?: number;
192
- cancel_short?: boolean;
193
- cancel_long?: boolean;
194
- recompute_short_config?: boolean;
195
- update_stop_loss?: boolean;
196
- liquidation_as_entry?: boolean;
197
- stop_as_entry?: boolean;
198
- tp_as_stop?: boolean;
199
- entry_as_stop?: boolean;
200
- place_stop?: boolean;
201
- save_config?: boolean;
202
- }
203
- interface Proxy$1 extends BaseSystemFields {
204
- ip_address?: string;
205
- type?: "http" | "socks5";
206
- }
207
- export interface TradeBlockTracking extends BaseSystemFields {
208
- account?: string;
209
- symbol?: string;
210
- running?: boolean;
211
- }
212
- export interface PositionsView {
213
- id: string;
214
- symbol?: any;
215
- entry?: any;
216
- quantity?: any;
217
- take_profit?: any;
218
- account?: any;
219
- kind?: any;
220
- target_pnl?: number;
221
- liquidation?: number;
222
- avg_price?: number;
223
- avg_qty?: number;
224
- next_order?: number;
225
- last_order?: number;
226
- config?: any;
227
- stop_loss?: {
228
- price: number;
229
- quantity: number;
230
- };
231
- stop_pnl?: any;
232
- leverage?: any;
233
- avg_liquidation?: any;
234
- balance?: any;
235
- }
236
- export interface BullishMarket extends RecordModel {
237
- id: string;
238
- symbol: string;
239
- risk: number;
240
- }
241
- export interface WindingDownMarket extends RecordModel {
242
- id: string;
243
- symbol: string;
244
- risk_reward: number;
245
- }
246
- export type ExchangeType = {
247
- owner: string;
248
- exchange: string;
249
- };
250
- export declare class AppDatabase {
251
- private pb;
252
- constructor(pb: PocketBase);
558
+ salt?: string;
559
+ constructor(pb: PocketBase, payload: {
560
+ email?: string;
561
+ salt?: string;
562
+ });
563
+ getUserByEmail(): Promise<import("pocketbase").RecordModel>;
564
+ verifyUserPassword(password: string): Promise<boolean>;
565
+ generateUserPassword(): Promise<boolean>;
566
+ getUserCredentials(): Promise<any>;
567
+ getCredentials(payload: {
568
+ password?: string;
569
+ }): Promise<any>;
570
+ saveCredentials(params: {
571
+ password?: string;
572
+ credentials: any;
573
+ }): Promise<import("pocketbase").RecordModel>;
574
+ changeUserPassword(payload: {
575
+ password: string;
576
+ }): Promise<boolean>;
577
+ verifyAdminPassword(password: string): Promise<boolean>;
578
+ setAdminPassword(payload: {
579
+ password: string;
580
+ salt: string;
581
+ }): Promise<boolean>;
582
+ addNewCredential(params: {
583
+ password?: string;
584
+ payload: {
585
+ name: string;
586
+ email: string;
587
+ exchange: string;
588
+ api_key: string;
589
+ api_secret: string;
590
+ };
591
+ }): Promise<void>;
592
+ getAccountWithActivePositions(): Promise<import("pocketbase").RecordModel[]>;
253
593
  getAllSymbolsFromPositions(options?: {
254
594
  no_position?: boolean;
255
595
  kind?: "long" | "short";
@@ -276,6 +616,12 @@ export declare class AppDatabase {
276
616
  proxy: Proxy$1;
277
617
  };
278
618
  }>;
619
+ get positionExpand(): string;
620
+ fetchCentralPositions(payload: {
621
+ asset?: string;
622
+ symbol?: string;
623
+ customFilter?: string;
624
+ }): Promise<import("pocketbase").RecordModel[]>;
279
625
  getPositions(options: {
280
626
  account?: ExchangeType;
281
627
  symbol?: string;
@@ -285,6 +631,7 @@ export declare class AppDatabase {
285
631
  expand?: {
286
632
  config: ScheduledTrade;
287
633
  account: ExchangeAccount;
634
+ proxy: Proxy$1;
288
635
  };
289
636
  })[]>;
290
637
  private _createOrUpdatePosition;
@@ -297,18 +644,15 @@ export declare class AppDatabase {
297
644
  expand?: {
298
645
  config: ScheduledTrade;
299
646
  account: ExchangeAccount;
647
+ proxy: Proxy$1;
300
648
  };
301
649
  })[]>;
302
650
  update_db_position(position: any, payload: any): Promise<import("pocketbase").RecordModel>;
303
651
  getSymbolConfigFromDB(symbol: string): Promise<SymbolConfig>;
304
- getRunningInstanceFromDB(account: ExchangeType, symbol: string, options?: {
305
- delay?: number;
306
- }): Promise<TradeBlockTracking>;
307
- updateRunningInstance(id: string, running: boolean): Promise<import("pocketbase").RecordModel>;
308
652
  getOrders(account: ExchangeType, options: {
309
653
  symbol: string;
310
654
  kind: "long" | "short";
311
- }): Promise<import("pocketbase").RecordModel[]>;
655
+ }): Promise<Order[]>;
312
656
  deleteAndRecreateOrders(account: ExchangeType, options: {
313
657
  symbol: string;
314
658
  kind: "long" | "short";
@@ -321,7 +665,34 @@ export declare class AppDatabase {
321
665
  stop: number;
322
666
  order_id: string;
323
667
  triggerPrice?: number;
324
- }>): Promise<import("pocketbase").RecordModel[]>;
668
+ }>): Promise<Order[]>;
669
+ deleteAndBulCreateAllOrders(payload: {
670
+ account: ExchangeType & {
671
+ id: string;
672
+ };
673
+ symbol: string;
674
+ all_orders: Array<{
675
+ symbol: string;
676
+ price: number;
677
+ quantity: number;
678
+ kind: "long" | "short";
679
+ side: "buy" | "sell";
680
+ stop: number;
681
+ order_id: string;
682
+ triggerPrice?: number;
683
+ clientOrderId?: string;
684
+ }>;
685
+ }): Promise<void>;
686
+ cancelLimitOrders(payload: {
687
+ symbol: string;
688
+ kind: "long" | "short";
689
+ account: ExchangeType;
690
+ raw?: boolean;
691
+ cancelExchangeOrders: (payload: {
692
+ symbol: string;
693
+ orders: number[];
694
+ }) => Promise<any>;
695
+ }): Promise<any[]>;
325
696
  cancelOrders(payload: {
326
697
  cancelExchangeOrders: (payload: {
327
698
  symbol: string;
@@ -349,23 +720,41 @@ export declare class AppDatabase {
349
720
  message?: undefined;
350
721
  exchange_result?: undefined;
351
722
  }>;
723
+ getMoverExchangeInstances(): Promise<ExchangeAccount[]>;
724
+ updateScheduledTrade(id: string, payload: any): Promise<import("pocketbase").RecordModel>;
725
+ getPositionsToAutoFollow(): Promise<(Position$1 & {
726
+ expand: {
727
+ account: ExchangeAccount;
728
+ };
729
+ })[]>;
352
730
  createOrUpdatePositionConfig(db_position: any, payload: {
353
731
  entry: number;
354
732
  stop: number;
355
733
  risk_reward: number;
356
734
  risk: number;
357
735
  profit_percent?: number;
358
- }): Promise<ScheduledTrade | import("pocketbase").RecordModel>;
736
+ place_tp?: boolean;
737
+ profit?: number;
738
+ reduce_ratio?: number;
739
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
359
740
  getPositionConfig(payload: {
360
741
  symbol: string;
361
742
  kind: "long" | "short";
362
743
  account: ExchangeType;
363
744
  }): Promise<ScheduledTrade | null>;
364
- getPositionStrategy(account: ExchangeType): Promise<{
365
- strategy_instance: Strategy;
366
- focus_account: ExchangeAccount;
367
- }>;
368
- createOrUpdateWindingDownMarket(symbol: string): Promise<import("pocketbase").RecordModel>;
745
+ getRunningAccountStrategies(filter?: string): Promise<(AccountStrategy & {
746
+ expand?: {
747
+ account: ExchangeAccount;
748
+ };
749
+ })[]>;
750
+ getAccountStrategy(payload: {
751
+ symbol: string;
752
+ account: ExchangeType;
753
+ }): Promise<AccountStrategy>;
754
+ createOrUpdateWindingDownMarket(payload: {
755
+ symbol: string;
756
+ risk_reward?: number;
757
+ }): Promise<import("pocketbase").RecordModel>;
369
758
  getWindingDownMarkets(symbol?: string): Promise<WindingDownMarket[]>;
370
759
  getBullishMarket(symbol: string): Promise<BullishMarket>;
371
760
  getBullishMarkets(options?: {
@@ -395,159 +784,1948 @@ export declare class AppDatabase {
395
784
  } | SymbolConfig[]>;
396
785
  unwindSymbolFromDB(symbol: string): Promise<boolean>;
397
786
  hasExistingPosition(symbol: string): Promise<import("pocketbase").RecordModel[]>;
787
+ getPositionWithLowestNextOrder(options: {
788
+ symbol?: string;
789
+ kind: "long" | "short";
790
+ asset?: string;
791
+ exclude?: ExchangeType[];
792
+ }): Promise<PositionsView | null>;
793
+ hasExistingOrders(symbol: string): Promise<import("pocketbase").RecordModel[]>;
398
794
  removeSymbolFromUnwindingMarkets(symbol: string): Promise<boolean>;
399
795
  removePosition(position: any): Promise<void>;
400
796
  removePositionConfig(position: any): Promise<void>;
401
- }
402
- export type AppConfig = {
403
- fee: number;
404
- risk_per_trade: number;
405
- risk_reward: number;
406
- symbol?: string;
407
- focus: number;
408
- budget: number;
409
- support: number;
410
- resistance: number;
411
- percent_change: number;
412
- tradeSplit?: number;
413
- take_profit?: number;
414
- kind: "long" | "short";
415
- entry: number;
416
- stop: number;
417
- min_size: number;
418
- price_places?: string;
419
- strategy?: "quantity" | "entry";
420
- as_array?: boolean;
421
- decimal_places?: string;
422
- min_profit?: number;
423
- raw?: boolean;
424
- gap?: number;
425
- rr?: number;
426
- max_size?: number;
427
- };
428
- declare class ExchangeAccount$1 {
429
- private instance;
430
- exchange: BaseExchange;
431
- private app_db;
432
- constructor(payload: ExchangeType, options: {
433
- exchange: BaseExchange;
434
- app_db: AppDatabase;
435
- });
436
- /**
437
- *In order to avoid rate limiting issues, we cache the live exchange
438
- details for each symbol for an account in the database with an option
439
- to refresh.
440
- */
441
- getLiveExchangeInstance(payload: {
442
- symbol: string;
443
- refresh?: boolean;
444
- refresh_symbol_config?: boolean;
445
- }): Promise<import("pocketbase").RecordModel>;
446
- getActiveAccount(payload: {
447
- symbol: string;
448
- full?: boolean;
449
- refresh?: boolean;
450
- }): Promise<Account | {
451
- liquidation: {
452
- long: number;
453
- short: number;
797
+ getConfigProfiles(payload: {
798
+ config_id: string;
799
+ }): Promise<{
800
+ id: any;
801
+ entry: any;
802
+ stop: any;
803
+ kind: "long" | "short";
804
+ risk_reward: any;
805
+ risk: any;
806
+ profit_percent: any;
807
+ }[]>;
808
+ editConfigProfile(payload: {
809
+ id: string;
810
+ params: {
811
+ entry?: number;
812
+ stop?: number;
813
+ risk_reward?: number;
814
+ risk?: number;
815
+ profit_percent?: number;
454
816
  };
455
- active_account: Account;
456
- current_price: any;
457
- exchange: any;
458
- }>;
459
- syncAccount(options: {
817
+ }): Promise<void>;
818
+ createConfigProfile(payload: {
819
+ config_id: string;
460
820
  symbol: string;
461
- kind?: "long" | "short";
462
- update?: boolean;
463
- as_view?: boolean;
464
- leverage?: number;
465
- live_refresh?: boolean;
466
- }): Promise<PositionsView | (PositionsView & {
467
- expand?: {
468
- config: ScheduledTrade;
469
- account: ExchangeAccount;
821
+ params: {
822
+ entry: number;
823
+ stop: number;
824
+ kind: "long" | "short";
825
+ risk_reward: number;
826
+ risk: number;
827
+ profit_percent: number;
470
828
  };
471
- })[]>;
472
- getRunningInstanceFromDB(symbol: string): Promise<TradeBlockTracking>;
473
- syncOrders(options: {
474
- symbol: string;
475
- kind: "long" | "short";
476
- update?: boolean;
477
- }): Promise<import("pocketbase").RecordModel[]>;
478
- toggleStopBuying(payload: {
829
+ }): Promise<void>;
830
+ getCompoundInstance(payload: {
831
+ position: Position$1;
832
+ }): Promise<CompoundInstance & {
833
+ expand: {
834
+ ref: Compounder;
835
+ };
836
+ }>;
837
+ getSupportTable(payload: {
479
838
  symbol: string;
480
839
  kind: "long" | "short";
481
- should_stop?: boolean;
840
+ }): Promise<SupportTable>;
841
+ updateCompoundInstance(payload: {
842
+ id: string;
843
+ params: any;
482
844
  }): Promise<import("pocketbase").RecordModel>;
483
- cancelOrders(payload: {
484
- symbol: string;
485
- kind: "long" | "short";
486
- price?: number;
487
- all?: boolean;
488
- stop?: boolean;
845
+ getPositionsByAssetPair(payload: {
846
+ asset: string;
847
+ symbol?: string;
848
+ isCompound?: boolean;
489
849
  }): Promise<{
490
- success: boolean;
491
- message: string;
492
- exchange_result?: undefined;
493
- error?: undefined;
494
- } | {
495
- success: boolean;
496
- exchange_result: any;
497
- message?: undefined;
498
- error?: undefined;
499
- } | {
500
- success: boolean;
501
- error: any;
502
- message?: undefined;
503
- exchange_result?: undefined;
850
+ pairObject: any;
851
+ asset: string;
504
852
  }>;
505
- cancelExchangeOrders(payload: {
506
- symbol: string;
507
- orders: number[];
508
- }): Promise<any>;
509
- buildAppConfig(payload: {
510
- entry: number;
511
- stop: number;
853
+ }
854
+ export type StrategyPosition = {
855
+ entry: number;
856
+ quantity: number;
857
+ avg_price?: number;
858
+ avg_qty?: number;
859
+ };
860
+ export type GapCloserResult = {
861
+ avg_entry: number;
862
+ avg_size: number;
863
+ loss: number;
864
+ stop: number;
865
+ stop_quantity: number;
866
+ re_entry_quantity: number;
867
+ initial_pnl: number;
868
+ tp: number;
869
+ incurred_loss: number;
870
+ pnl: number;
871
+ remaining_quantity: number;
872
+ };
873
+ export type Config = {
874
+ tp_percent: number;
875
+ short_tp_factor: number;
876
+ fee_percent?: number;
877
+ budget: number;
878
+ risk_reward: number;
879
+ reduce_ratio: number;
880
+ global_config: GlobalConfig;
881
+ };
882
+ export declare class Strategy {
883
+ position: {
884
+ long: StrategyPosition;
885
+ short: StrategyPosition;
886
+ };
887
+ dominant_position?: "long" | "short";
888
+ config: Config;
889
+ constructor(payload: {
890
+ long: StrategyPosition;
891
+ short: StrategyPosition;
892
+ config: Config;
893
+ dominant_position?: "long" | "short";
894
+ });
895
+ get price_places(): string;
896
+ get decimal_places(): string;
897
+ to_f(price: number): number;
898
+ to_df(quantity: number): number;
899
+ pnl(kind: "long" | "short", _position?: StrategyPosition): number;
900
+ tp(kind: "long" | "short"): number;
901
+ calculate_fee(position: {
902
+ price: number;
903
+ quantity: number;
904
+ }): number;
905
+ get long_tp(): number;
906
+ get short_tp(): number;
907
+ generateGapClosingAlgorithm(payload: {
908
+ kind: "long" | "short";
909
+ ignore_entries?: boolean;
910
+ reduce_ratio?: number;
911
+ sell_factor?: number;
912
+ }): {
913
+ last_entry: any;
914
+ first_entry: any;
915
+ threshold: any;
916
+ risk: number;
917
+ risk_reward: number;
918
+ spread: number;
919
+ gap_loss: number;
920
+ net_profit: number;
921
+ long: GapCloserResult;
922
+ short: GapCloserResult;
923
+ };
924
+ gapCloserHelper(payload: {
925
+ risk: number;
926
+ entries?: any[];
927
+ kind: "long" | "short";
928
+ sell_factor?: number;
929
+ reduce_ratio?: number;
930
+ }): {
931
+ risk: number;
932
+ risk_reward: number;
933
+ spread: number;
934
+ gap_loss: number;
935
+ net_profit: number;
936
+ long: GapCloserResult;
937
+ short: GapCloserResult;
938
+ };
939
+ runIterations(payload: {
940
+ kind: "long" | "short";
941
+ iterations: number;
942
+ risk_reward?: number;
943
+ ignore_entries?: boolean;
944
+ reduce_ratio?: number;
945
+ sell_factor?: number;
946
+ }): {
947
+ last_entry: any;
948
+ first_entry: any;
949
+ threshold: any;
950
+ risk: number;
951
+ risk_reward: number;
952
+ spread: number;
953
+ gap_loss: number;
954
+ net_profit: number;
955
+ long: GapCloserResult;
956
+ short: GapCloserResult;
957
+ }[];
958
+ getPositionAfterTp(payload: {
959
+ kind: "long" | "short";
960
+ include_fees?: boolean;
961
+ }): {
962
+ [x: string]: number | {
963
+ entry: number;
964
+ quantity: number;
965
+ diff?: undefined;
966
+ } | {
967
+ [x: string]: number;
968
+ diff: number;
969
+ entry?: undefined;
970
+ quantity?: undefined;
971
+ };
972
+ pnl: {
973
+ [x: string]: number;
974
+ diff: number;
975
+ };
976
+ spread: number;
977
+ };
978
+ getPositionAfterIteration(payload: {
979
+ kind: "long" | "short";
980
+ iterations: number;
981
+ with_fees?: boolean;
982
+ }): {
983
+ [x: string]: number | {
984
+ entry: number;
985
+ quantity: number;
986
+ diff?: undefined;
987
+ } | {
988
+ [x: string]: number;
989
+ diff: number;
990
+ entry?: undefined;
991
+ quantity?: undefined;
992
+ };
993
+ pnl: {
994
+ [x: string]: number;
995
+ diff: number;
996
+ };
997
+ spread: number;
998
+ }[];
999
+ /**To be used as one of the agent tools eventually since
1000
+ * it is something that can be triggered continously without
1001
+ * any risk
1002
+ */
1003
+ generateOppositeTrades(payload: {
1004
+ kind: "long" | "short";
1005
+ risk_factor?: number;
1006
+ avg_entry?: number;
1007
+ }): {
1008
+ avg: {
1009
+ entry: number;
1010
+ price: number;
1011
+ quantity: number;
1012
+ };
1013
+ loss: number;
1014
+ profit_percent: number;
1015
+ fee: number;
1016
+ risk_per_trade: number;
1017
+ risk_reward: number;
1018
+ symbol?: string;
1019
+ focus: number;
1020
+ budget: number;
1021
+ support: number;
1022
+ resistance: number;
1023
+ percent_change: number;
1024
+ tradeSplit?: number;
1025
+ take_profit?: number;
1026
+ kind: "long" | "short";
1027
+ entry: number;
1028
+ stop: number;
1029
+ min_size: number;
1030
+ price_places?: string;
1031
+ strategy?: "quantity" | "entry";
1032
+ as_array?: boolean;
1033
+ decimal_places?: string;
1034
+ min_profit?: number;
1035
+ raw?: boolean;
1036
+ gap?: number;
1037
+ rr?: number;
1038
+ max_size?: number;
1039
+ max_quantity?: number;
1040
+ kelly?: {
1041
+ use_kelly?: boolean;
1042
+ kelly_confidence_factor?: number;
1043
+ kelly_minimum_risk?: number;
1044
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1045
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1046
+ };
1047
+ };
1048
+ identifyGapConfig(payload: {
1049
+ factor?: number;
1050
+ sell_factor?: number;
1051
+ kind?: "long" | "short";
1052
+ risk?: number;
1053
+ }): {
1054
+ profit_percent: {
1055
+ long: number;
1056
+ short: number;
1057
+ };
1058
+ risk: {
1059
+ short: number;
1060
+ long: number;
1061
+ };
1062
+ take_profit: {
1063
+ long: number;
1064
+ short: number;
1065
+ };
1066
+ to_reduce: {
1067
+ short: number;
1068
+ long: number;
1069
+ };
1070
+ full_reduce: {
1071
+ short: number;
1072
+ long: number;
1073
+ };
1074
+ sell_quantity: {
1075
+ short: number;
1076
+ long: number;
1077
+ };
1078
+ gap: number;
1079
+ gap_loss: number;
1080
+ };
1081
+ analyzeProfit(payload: {
1082
+ reward_factor?: number;
1083
+ max_reward_factor: number;
1084
+ risk: number;
1085
+ kind: "long" | "short";
1086
+ }): {
1087
+ pnl: number;
1088
+ loss: number;
1089
+ full_loss: number;
1090
+ original_pnl: number;
1091
+ reward_factor: number;
1092
+ profit_percent: number;
1093
+ kind: "long" | "short";
1094
+ sell_price: number;
1095
+ quantity: number;
1096
+ price_places: string;
1097
+ decimal_places: string;
1098
+ };
1099
+ simulateGapReduction(payload: {
1100
+ iterations?: number;
1101
+ factor?: number;
1102
+ direction: "long" | "short";
1103
+ kind?: "long" | "short";
1104
+ risk?: number;
1105
+ sell_factor?: number;
1106
+ }): {
1107
+ results: {
1108
+ profit_percent: {
1109
+ long: number;
1110
+ short: number;
1111
+ };
1112
+ risk: {
1113
+ short: number;
1114
+ long: number;
1115
+ };
1116
+ take_profit: {
1117
+ long: number;
1118
+ short: number;
1119
+ };
1120
+ sell_quantity: {
1121
+ short: number;
1122
+ long: number;
1123
+ };
1124
+ gap_loss: number;
1125
+ position: {
1126
+ long: {
1127
+ entry: number;
1128
+ quantity: number;
1129
+ };
1130
+ short: {
1131
+ entry: number;
1132
+ quantity: number;
1133
+ };
1134
+ };
1135
+ }[];
1136
+ quantity: number;
1137
+ };
1138
+ }
1139
+ export declare function determine_average_entry_and_size(orders: Array<{
1140
+ price: number;
1141
+ quantity: number;
1142
+ }>, places?: string, price_places?: string): {
1143
+ entry: number;
1144
+ price: number;
1145
+ quantity: number;
1146
+ };
1147
+ export declare const createArray: (start: number, stop: number, step: number) => number[];
1148
+ export type SignalConfigType = {
1149
+ symbol?: string;
1150
+ focus: number;
1151
+ budget: number;
1152
+ percent_change?: number;
1153
+ price_places?: string;
1154
+ decimal_places?: string;
1155
+ zone_risk?: number;
1156
+ fee?: number;
1157
+ support?: number;
1158
+ risk_reward?: number;
1159
+ resistance?: number;
1160
+ risk_per_trade?: number;
1161
+ increase_size?: boolean;
1162
+ additional_increase?: number;
1163
+ minimum_pnl?: number;
1164
+ take_profit?: number;
1165
+ increase_position?: boolean;
1166
+ minimum_size?: number;
1167
+ first_order_size?: number;
1168
+ gap?: number;
1169
+ max_size?: number;
1170
+ use_kelly?: boolean;
1171
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1172
+ kelly_confidence_factor?: number;
1173
+ kelly_minimum_risk?: number;
1174
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1175
+ full_distribution?: {
1176
+ long: GetEntriesParams["distribution"];
1177
+ short: GetEntriesParams["distribution"];
1178
+ };
1179
+ };
1180
+ declare class Signal {
1181
+ focus: number;
1182
+ budget: number;
1183
+ percent_change: number;
1184
+ price_places: string;
1185
+ decimal_places: string;
1186
+ zone_risk: number;
1187
+ fee: number;
1188
+ support?: number;
1189
+ risk_reward: number;
1190
+ resistance?: number;
1191
+ risk_per_trade?: number;
1192
+ increase_size: boolean;
1193
+ additional_increase: number;
1194
+ minimum_pnl: number;
1195
+ take_profit?: number;
1196
+ increase_position: boolean;
1197
+ minimum_size: any;
1198
+ first_order_size: number;
1199
+ gap: number;
1200
+ max_size: number;
1201
+ use_kelly: boolean;
1202
+ kelly_prediction_model: "exponential" | "normal" | "uniform";
1203
+ kelly_confidence_factor: number;
1204
+ kelly_minimum_risk: number;
1205
+ kelly_func: "theoretical" | "position_based" | "theoretical_fixed";
1206
+ symbol?: string;
1207
+ distribution: {
1208
+ long: GetEntriesParams["distribution"];
1209
+ short: GetEntriesParams["distribution"];
1210
+ };
1211
+ 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, }: SignalConfigType);
1212
+ build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, distribution, }: {
1213
+ take_profit?: number;
1214
+ no_of_trades?: number;
1215
+ current_price: number;
1216
+ stop_loss?: number;
1217
+ kind?: "long" | "short";
1218
+ risk: number;
1219
+ stop_percent?: number;
1220
+ pnl?: number;
1221
+ distribution?: GetEntriesParams["distribution"];
1222
+ }): any;
1223
+ get risk(): number;
1224
+ get min_trades(): number;
1225
+ get min_price(): number;
1226
+ build_opposite_order({ current_price, kind, }: {
1227
+ current_price: number;
1228
+ kind?: "long" | "short";
1229
+ }): any;
1230
+ special_build_orders({ current_price, kind, }: {
1231
+ current_price: number;
1232
+ kind?: "long" | "short";
1233
+ }): any;
1234
+ build_orders({ current_price, kind, limit, replace_focus, max_index, min_index, }: {
1235
+ current_price: number;
1236
+ kind?: "long" | "short";
1237
+ limit?: boolean;
1238
+ replace_focus?: boolean;
1239
+ max_index?: number;
1240
+ min_index?: number;
1241
+ }): any;
1242
+ build_orders_old({ current_price, kind, limit, replace_focus, max_index, min_index, }: {
1243
+ current_price: number;
1244
+ kind?: "long" | "short";
1245
+ limit?: boolean;
1246
+ replace_focus?: boolean;
1247
+ max_index?: number;
1248
+ min_index?: number;
1249
+ }): any;
1250
+ get_bulk_trade_zones({ current_price, kind, limit, }: {
1251
+ current_price: number;
1252
+ kind?: "long" | "short";
1253
+ limit?: boolean;
1254
+ }): any;
1255
+ get_future_zones_simple({ current_price, kind, raw, }: {
1256
+ raw?: boolean;
1257
+ current_price: number;
1258
+ kind?: "long" | "short";
1259
+ }): number[];
1260
+ get_future_zones({ current_price, kind, raw, }: {
1261
+ raw?: boolean;
1262
+ current_price: number;
1263
+ kind?: "long" | "short";
1264
+ }): number[];
1265
+ to_f(value: number, places?: string): number;
1266
+ get_margin_zones({ current_price, kind, }: {
1267
+ current_price: number;
1268
+ kind?: "long" | "short";
1269
+ }): number[][];
1270
+ get_margin_range(current_price: number, kind?: string): number[];
1271
+ process_orders({ current_price, stop_loss, trade_zones, kind, }: {
1272
+ current_price: number;
1273
+ stop_loss: number;
1274
+ trade_zones: number[];
1275
+ kind?: "long" | "short";
1276
+ }): any[];
1277
+ get_risk_per_trade(number_of_orders: number): number;
1278
+ build_trade_dict({ entry, stop, risk, arr, index, new_fees, kind, start, take_profit, }: {
1279
+ entry: number;
1280
+ stop: number;
1281
+ risk: number;
1282
+ arr: number[];
1283
+ index: number;
1284
+ new_fees?: number;
1285
+ kind?: "long" | "short";
1286
+ start?: number;
1287
+ take_profit?: number;
1288
+ }): {
1289
+ entry: number;
1290
+ risk: number;
1291
+ quantity: number;
1292
+ sell_price: number;
1293
+ risk_sell: number;
1294
+ stop: number;
1295
+ pnl: number;
1296
+ fee: number;
1297
+ net: number;
1298
+ incurred: number;
1299
+ stop_percent: number;
1300
+ };
1301
+ to_df(currentPrice: number, places?: string): number;
1302
+ }
1303
+ export type AppConfig = {
1304
+ fee: number;
1305
+ risk_per_trade: number;
1306
+ risk_reward: number;
1307
+ symbol?: string;
1308
+ focus: number;
1309
+ budget: number;
1310
+ support: number;
1311
+ resistance: number;
1312
+ percent_change: number;
1313
+ tradeSplit?: number;
1314
+ take_profit?: number;
1315
+ kind: "long" | "short";
1316
+ entry: number;
1317
+ stop: number;
1318
+ min_size: number;
1319
+ price_places?: string;
1320
+ strategy?: "quantity" | "entry";
1321
+ as_array?: boolean;
1322
+ decimal_places?: string;
1323
+ min_profit?: number;
1324
+ raw?: boolean;
1325
+ gap?: number;
1326
+ rr?: number;
1327
+ max_size?: number;
1328
+ last_value?: any;
1329
+ entries?: any[];
1330
+ max_quantity?: number;
1331
+ kelly?: {
1332
+ use_kelly?: boolean;
1333
+ kelly_confidence_factor?: number;
1334
+ kelly_minimum_risk?: number;
1335
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1336
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1337
+ };
1338
+ };
1339
+ export type ExtendConfigType = {
1340
+ take_profit?: number;
1341
+ entry: number;
1342
+ risk?: number;
1343
+ stop?: number;
1344
+ risk_reward?: number;
1345
+ raw_instance?: boolean;
1346
+ no_of_trades?: number;
1347
+ increase?: boolean;
1348
+ price_places?: string;
1349
+ decimal_places?: string;
1350
+ min_profit?: number;
1351
+ kind?: "long" | "short";
1352
+ gap?: number;
1353
+ rr?: number;
1354
+ min_avg_size?: number;
1355
+ use_kelly?: boolean;
1356
+ kelly_confidence_factor?: number;
1357
+ kelly_minimum_risk?: number;
1358
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1359
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1360
+ distribution?: GetEntriesParams["distribution"];
1361
+ };
1362
+ 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, }: ExtendConfigType): any[] | Signal;
1363
+ export declare function buildAvg({ _trades, kind, }: {
1364
+ _trades: any[];
1365
+ kind: "long" | "short";
1366
+ }): any;
1367
+ export declare function sortedBuildConfig(app_config: AppConfig, options: any): any[];
1368
+ export declare function get_app_config_and_max_size(config: GlobalConfig, payload: {
1369
+ entry: number;
1370
+ stop: number;
1371
+ kind: "long" | "short";
1372
+ use_kelly?: boolean;
1373
+ kelly_confidence_factor?: number;
1374
+ kelly_minimum_risk?: number;
1375
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1376
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1377
+ distribution?: GetEntriesParams["distribution"];
1378
+ }): {
1379
+ app_config: AppConfig;
1380
+ max_size: any;
1381
+ last_value: any;
1382
+ entries: {
1383
+ entry: any;
1384
+ avg_entry: any;
1385
+ avg_size: any;
1386
+ neg_pnl: any;
1387
+ quantity: any;
1388
+ }[];
1389
+ };
1390
+ export declare function buildAppConfig(config: GlobalConfig, payload: {
1391
+ entry: number;
1392
+ stop: number;
1393
+ risk_reward: number;
1394
+ risk: number;
1395
+ symbol: string;
1396
+ profit?: number;
1397
+ use_kelly?: boolean;
1398
+ kelly_confidence_factor?: number;
1399
+ kelly_minimum_risk?: number;
1400
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1401
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1402
+ distribution?: GetEntriesParams["distribution"];
1403
+ }): AppConfig;
1404
+ export declare function getOptimumStopAndRisk(app_config: AppConfig, params: {
1405
+ max_size: number;
1406
+ target_stop: number;
1407
+ highest_risk?: number;
1408
+ distribution?: GetEntriesParams["distribution"];
1409
+ }): {
1410
+ optimal_stop: number;
1411
+ optimal_risk: number;
1412
+ avg_size: any;
1413
+ avg_entry: any;
1414
+ result: any[];
1415
+ first_entry: any;
1416
+ neg_pnl: any;
1417
+ risk_reward: number;
1418
+ size_diff: number;
1419
+ entry_diff: number;
1420
+ };
1421
+ export declare function generate_config_params(app_config: AppConfig, payload: {
1422
+ entry: number;
1423
+ stop: number;
1424
+ risk_reward: number;
1425
+ risk: number;
1426
+ symbol: string;
1427
+ }): {
1428
+ entry: number;
1429
+ stop: number;
1430
+ avg_size: any;
1431
+ avg_entry: any;
1432
+ risk_reward: number;
1433
+ neg_pnl: any;
1434
+ risk: number;
1435
+ };
1436
+ export declare function determine_break_even_price(payload: {
1437
+ long_position: {
1438
+ entry: number;
1439
+ quantity: number;
1440
+ };
1441
+ short_position: {
1442
+ entry: number;
1443
+ quantity: number;
1444
+ };
1445
+ fee_percent?: number;
1446
+ }): {
1447
+ price: number;
1448
+ direction: string;
1449
+ };
1450
+ export declare function determine_amount_to_buy(payload: {
1451
+ orders: any[];
1452
+ kind: "long" | "short";
1453
+ decimal_places?: string;
1454
+ price_places?: string;
1455
+ place?: boolean;
1456
+ position: any;
1457
+ existingOrders: any[];
1458
+ }): any[];
1459
+ export declare function generateOptimumAppConfig(config: GlobalConfig, payload: {
1460
+ entry: number;
1461
+ stop: number;
1462
+ risk_reward: number;
1463
+ start_risk: number;
1464
+ max_risk?: number;
1465
+ distribution?: GetEntriesParams["distribution"];
1466
+ }, position: {
1467
+ entry: number;
1468
+ quantity: number;
1469
+ kind: "long" | "short";
1470
+ }): AppConfig | null;
1471
+ export declare function determineOptimumReward(payload: {
1472
+ app_config: AppConfig;
1473
+ increase?: boolean;
1474
+ low_range?: number;
1475
+ high_range?: number;
1476
+ target_loss?: number;
1477
+ distribution?: GetEntriesParams["distribution"];
1478
+ max_size?: number;
1479
+ }): number | {
1480
+ result: any[];
1481
+ value: number;
1482
+ total: number;
1483
+ risk_per_trade: number;
1484
+ max: number;
1485
+ min: number;
1486
+ avg_size: any;
1487
+ neg_pnl: any;
1488
+ entry: any;
1489
+ };
1490
+ export declare function determineOptimumRisk(config: GlobalConfig, payload: {
1491
+ entry: number;
1492
+ stop: number;
1493
+ risk_reward: number;
1494
+ risk: number;
1495
+ symbol: string;
1496
+ distribution?: GetEntriesParams["distribution"];
1497
+ }, params: {
1498
+ highest_risk: number;
1499
+ tolerance?: number;
1500
+ max_iterations?: number;
1501
+ }): {
1502
+ optimal_risk: number;
1503
+ achieved_neg_pnl: number;
1504
+ target_neg_pnl: number;
1505
+ difference: number;
1506
+ iterations: number;
1507
+ converged: boolean;
1508
+ last_value: any;
1509
+ entries: any[];
1510
+ app_config: AppConfig;
1511
+ };
1512
+ export declare function computeRiskReward(payload: {
1513
+ app_config: AppConfig;
1514
+ entry: number;
1515
+ stop: number;
1516
+ risk_per_trade: number;
1517
+ target_loss?: number;
1518
+ distribution?: GetEntriesParams["distribution"];
1519
+ max_size?: number;
1520
+ }): number | {
1521
+ result: any[];
1522
+ value: number;
1523
+ total: number;
1524
+ risk_per_trade: number;
1525
+ max: number;
1526
+ min: number;
1527
+ avg_size: any;
1528
+ neg_pnl: any;
1529
+ entry: any;
1530
+ };
1531
+ export declare function getRiskReward(payload: {
1532
+ entry: number;
1533
+ stop: number;
1534
+ risk: number;
1535
+ global_config: GlobalConfig;
1536
+ force_exact_risk?: boolean;
1537
+ target_loss?: number;
1538
+ max_size?: number;
1539
+ distribution?: GetEntriesParams["distribution"];
1540
+ risk_factor?: number;
1541
+ }): any;
1542
+ export declare function computeProfitDetail(payload: {
1543
+ focus_position: {
1544
+ kind: "long" | "short";
1545
+ entry: number;
1546
+ quantity: number;
1547
+ avg_qty: number;
1548
+ avg_price: number;
1549
+ };
1550
+ strategy?: {
1551
+ reward_factor: number;
1552
+ max_reward_factor: number;
1553
+ risk: number;
1554
+ };
1555
+ pnl: number;
1556
+ reduce_position?: {
1557
+ kind: "long" | "short";
1558
+ entry: number;
1559
+ quantity: number;
1560
+ avg_qty: number;
1561
+ avg_price: number;
1562
+ };
1563
+ reverse_position?: {
1564
+ kind: "long" | "short";
1565
+ avg_qty: number;
1566
+ avg_price: number;
1567
+ stop_loss: {
1568
+ price: number;
1569
+ quantity: number;
1570
+ };
1571
+ };
1572
+ full_ratio?: number;
1573
+ price_places?: string;
1574
+ decimal_places?: string;
1575
+ }): {
1576
+ pnl: number;
1577
+ loss: number;
1578
+ full_loss: number;
1579
+ original_pnl: number;
1580
+ reward_factor: number;
1581
+ profit_percent: number;
1582
+ kind: "long" | "short";
1583
+ sell_price: number;
1584
+ quantity: number;
1585
+ price_places: string;
1586
+ decimal_places: string;
1587
+ };
1588
+ export declare function generateGapTp(payload: {
1589
+ long: {
1590
+ entry: number;
1591
+ quantity: number;
1592
+ };
1593
+ short: {
1594
+ entry: number;
1595
+ quantity: number;
1596
+ };
1597
+ risk?: number;
1598
+ kind?: "long" | "short";
1599
+ factor?: number;
1600
+ sell_factor?: number;
1601
+ price_places?: string;
1602
+ decimal_places?: string;
1603
+ }): {
1604
+ profit_percent: {
1605
+ long: number;
1606
+ short: number;
1607
+ };
1608
+ risk: {
1609
+ short: number;
1610
+ long: number;
1611
+ };
1612
+ take_profit: {
1613
+ long: number;
1614
+ short: number;
1615
+ };
1616
+ to_reduce: {
1617
+ short: number;
1618
+ long: number;
1619
+ };
1620
+ full_reduce: {
1621
+ short: number;
1622
+ long: number;
1623
+ };
1624
+ sell_quantity: {
1625
+ short: number;
1626
+ long: number;
1627
+ };
1628
+ gap: number;
1629
+ gap_loss: number;
1630
+ };
1631
+ export declare function calculateFactorFromTakeProfit(payload: {
1632
+ long: {
1633
+ entry: number;
1634
+ quantity: number;
1635
+ };
1636
+ short: {
1637
+ entry: number;
1638
+ quantity: number;
1639
+ };
1640
+ knownTp: number;
1641
+ tpType: "long" | "short";
1642
+ price_places?: string;
1643
+ }): number;
1644
+ export declare function calculateFactorFromSellQuantity(payload: {
1645
+ long: {
1646
+ entry: number;
1647
+ quantity: number;
1648
+ };
1649
+ short: {
1650
+ entry: number;
1651
+ quantity: number;
1652
+ };
1653
+ knownSellQuantity: number;
1654
+ sellType: "long" | "short";
1655
+ sell_factor?: number;
1656
+ price_places?: string;
1657
+ decimal_places?: string;
1658
+ }): number;
1659
+ export declare function determineRewardFactor(payload: {
1660
+ quantity: number;
1661
+ avg_qty: number;
1662
+ minimum_pnl: number;
1663
+ risk: number;
1664
+ }): number;
1665
+ export type BotPosition = {
1666
+ kind: "long" | "short";
1667
+ entry: number;
1668
+ quantity: number;
1669
+ tp: {
1670
+ price: number;
1671
+ };
1672
+ };
1673
+ export declare function getHedgeZone(payload: {
1674
+ symbol_config: GlobalConfig;
1675
+ risk: number;
1676
+ position: BotPosition;
1677
+ reward_factor?: number;
1678
+ risk_factor?: number;
1679
+ support?: number;
1680
+ }): {
1681
+ support: number;
1682
+ resistance: number;
1683
+ risk: number;
1684
+ profit_percent: number;
1685
+ };
1686
+ export declare function getOptimumHedgeFactor(payload: {
1687
+ target_support: number;
1688
+ tolerance?: number;
1689
+ max_iterations?: number;
1690
+ min_factor?: number;
1691
+ max_factor?: number;
1692
+ symbol_config: GlobalConfig;
1693
+ risk: number;
1694
+ position: BotPosition;
1695
+ }): {
1696
+ reward_factor: number;
1697
+ achieved_support: number;
1698
+ target_support: number;
1699
+ difference: number;
1700
+ iterations: number;
1701
+ converged?: undefined;
1702
+ } | {
1703
+ reward_factor: number;
1704
+ achieved_support: number;
1705
+ target_support: number;
1706
+ difference: number;
1707
+ iterations: number;
1708
+ converged: boolean;
1709
+ };
1710
+ export type CType = {
1711
+ next_order: number;
1712
+ take_profit: number;
1713
+ };
1714
+ export declare function determineCompoundLongTrade(payload: {
1715
+ focus_short_position: CType;
1716
+ focus_long_position: CType;
1717
+ shortConfig: {
1718
+ entry: number;
1719
+ stop: number;
512
1720
  risk_reward: number;
513
1721
  risk: number;
514
1722
  symbol: string;
1723
+ profit_percent: number;
1724
+ };
1725
+ rr?: number;
1726
+ global_config: GlobalConfig;
1727
+ }): {
1728
+ start_risk: number;
1729
+ short_profit: number;
1730
+ support: number;
1731
+ resistance: number;
1732
+ long_v: any;
1733
+ profit_percent: number;
1734
+ result: any;
1735
+ short_max_size: any;
1736
+ };
1737
+ export declare function generateOppositeTradeConfig(payload: {
1738
+ kind: "long" | "short";
1739
+ entry: number;
1740
+ quantity: number;
1741
+ target_pnl: number;
1742
+ global_config: GlobalConfig;
1743
+ ratio?: number;
1744
+ }): {
1745
+ entry: number;
1746
+ stop: number;
1747
+ risk: number;
1748
+ risk_reward: number | {
1749
+ result: any[];
1750
+ value: number;
1751
+ total: number;
1752
+ risk_per_trade: number;
1753
+ max: number;
1754
+ min: number;
1755
+ avg_size: any;
1756
+ neg_pnl: any;
1757
+ entry: any;
1758
+ };
1759
+ };
1760
+ export declare function constructAppConfig(payload: {
1761
+ account: PositionsView;
1762
+ global_config: GlobalConfig;
1763
+ kelly_config?: {
1764
+ use_kelly: boolean;
1765
+ kelly_confidence_factor: number;
1766
+ kelly_minimum_risk: number;
1767
+ kelly_prediction_model: string;
1768
+ };
1769
+ }): {
1770
+ fee: number;
1771
+ risk_per_trade: number;
1772
+ risk_reward: number;
1773
+ symbol?: string;
1774
+ focus: number;
1775
+ budget: number;
1776
+ support: number;
1777
+ resistance: number;
1778
+ percent_change: number;
1779
+ tradeSplit?: number;
1780
+ take_profit?: number;
1781
+ kind: "long" | "short";
1782
+ entry: number;
1783
+ stop: number;
1784
+ min_size: number;
1785
+ price_places?: string;
1786
+ strategy?: "quantity" | "entry";
1787
+ as_array?: boolean;
1788
+ decimal_places?: string;
1789
+ min_profit?: number;
1790
+ raw?: boolean;
1791
+ gap?: number;
1792
+ rr?: number;
1793
+ max_size?: number;
1794
+ last_value?: any;
1795
+ max_quantity?: number;
1796
+ kelly?: {
1797
+ use_kelly?: boolean;
1798
+ kelly_confidence_factor?: number;
1799
+ kelly_minimum_risk?: number;
1800
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1801
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1802
+ };
1803
+ };
1804
+ export declare function generateDangerousConfig(payload: {
1805
+ account: PositionsView;
1806
+ global_config: GlobalConfig;
1807
+ config: {
1808
+ quantity: number;
1809
+ stop: number;
1810
+ entry: number;
1811
+ };
1812
+ }): {
1813
+ entry: number;
1814
+ risk: number;
1815
+ stop: number;
1816
+ risk_reward: number | {
1817
+ result: any[];
1818
+ value: number;
1819
+ total: number;
1820
+ risk_per_trade: number;
1821
+ max: number;
1822
+ min: number;
1823
+ avg_size: any;
1824
+ neg_pnl: any;
1825
+ entry: any;
1826
+ };
1827
+ };
1828
+ export interface ComputedTrade {
1829
+ entry: number;
1830
+ quantity: number;
1831
+ avg_size: number;
1832
+ neg_pnl: number;
1833
+ avg_entry: number;
1834
+ stop: number;
1835
+ reverse_avg_entry: number;
1836
+ reverse_avg_quantity: number;
1837
+ fee: number;
1838
+ }
1839
+ export type TradeConfig = {
1840
+ entry: number;
1841
+ stop: number;
1842
+ risk_reward: number;
1843
+ risk: number;
1844
+ symbol: string;
1845
+ distribution?: GetEntriesParams["distribution"];
1846
+ };
1847
+ declare function constructAppConfig$1({ config, global_config, }: {
1848
+ config: TradeConfig;
1849
+ global_config: GlobalConfig;
1850
+ }): {
1851
+ fee: number;
1852
+ risk_per_trade: number;
1853
+ risk_reward: number;
1854
+ symbol?: string;
1855
+ focus: number;
1856
+ budget: number;
1857
+ support: number;
1858
+ resistance: number;
1859
+ percent_change: number;
1860
+ tradeSplit?: number;
1861
+ take_profit?: number;
1862
+ kind: "long" | "short";
1863
+ entry: number;
1864
+ stop: number;
1865
+ min_size: number;
1866
+ price_places?: string;
1867
+ strategy?: "quantity" | "entry";
1868
+ as_array?: boolean;
1869
+ decimal_places?: string;
1870
+ min_profit?: number;
1871
+ raw?: boolean;
1872
+ gap?: number;
1873
+ rr?: number;
1874
+ max_size?: number;
1875
+ last_value?: any;
1876
+ max_quantity?: number;
1877
+ kelly?: {
1878
+ use_kelly?: boolean;
1879
+ kelly_confidence_factor?: number;
1880
+ kelly_minimum_risk?: number;
1881
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1882
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1883
+ };
1884
+ };
1885
+ declare function buildWithOptimumReward({ config, settings, global_config, }: {
1886
+ config: TradeConfig;
1887
+ global_config: GlobalConfig;
1888
+ settings: {
1889
+ entry?: number;
1890
+ stop?: number;
1891
+ risk: number;
1892
+ stop_ratio?: number;
1893
+ risk_reward?: number;
1894
+ distribution?: GetEntriesParams["distribution"];
1895
+ };
1896
+ }): {
1897
+ trades: any[];
1898
+ summary: {
1899
+ entry: number;
1900
+ stop: number;
1901
+ risk: number;
1902
+ risk_reward: any;
1903
+ avg_entry: number;
1904
+ avg_size: number;
1905
+ first_entry: number;
1906
+ pnl: number;
1907
+ fee: number;
1908
+ loss: number;
1909
+ last_entry: number;
1910
+ margin: number;
1911
+ };
1912
+ config: any;
1913
+ stop_order: {
1914
+ quantity: number;
1915
+ price: number;
1916
+ };
1917
+ kind: string;
1918
+ };
1919
+ declare function generateOppositeOptimum({ config, global_config, settings, ratio, distribution, risk_factor, }: {
1920
+ settings: {
1921
+ entry: number;
1922
+ stop: number;
1923
+ risk: number;
1924
+ };
1925
+ config: TradeConfig;
1926
+ global_config: GlobalConfig;
1927
+ fee_percent?: number;
1928
+ ratio?: number;
1929
+ distribution?: any;
1930
+ risk_factor?: number;
1931
+ }): {
1932
+ trades: any[];
1933
+ summary: any;
1934
+ config: {
1935
+ entry: number;
1936
+ stop: number;
1937
+ risk: number;
1938
+ distribution: any;
1939
+ risk_factor: number;
1940
+ };
1941
+ kind: string;
1942
+ } | {
1943
+ trades: any[];
1944
+ summary: {
1945
+ entry: number;
1946
+ stop: number;
1947
+ risk: number;
1948
+ risk_reward: any;
1949
+ avg_entry: number;
1950
+ avg_size: number;
1951
+ first_entry: number;
1952
+ pnl: number;
1953
+ fee: number;
1954
+ loss: number;
1955
+ last_entry: number;
1956
+ defaultEntry: number;
1957
+ };
1958
+ config: any;
1959
+ kind: string;
1960
+ };
1961
+ declare function increaseTradeHelper({ increase_qty, stop, config, global_config, style, entry, position, stop_ratio, distribution: default_distribution, }: {
1962
+ position: {
1963
+ entry: number;
1964
+ quantity: number;
1965
+ };
1966
+ entry: number;
1967
+ stop: number;
1968
+ config: TradeConfig;
1969
+ global_config: GlobalConfig;
1970
+ increase_qty: number;
1971
+ style: "minimum" | "optimum";
1972
+ stop_ratio?: number;
1973
+ distribution?: any;
1974
+ }): {
1975
+ trades: any[];
1976
+ summary: any;
1977
+ config: any;
1978
+ kind: string;
1979
+ current: {
1980
+ trades: any[];
1981
+ summary: {
1982
+ first_entry: number;
1983
+ last_entry: number;
1984
+ quantity: number;
1985
+ entry: number;
1986
+ loss: number;
1987
+ number_of_trades: number;
1988
+ fee: number;
1989
+ anchor_pnl: any;
1990
+ };
1991
+ };
1992
+ stop_order?: undefined;
1993
+ } | {
1994
+ trades: any[];
1995
+ summary: {
1996
+ entry: number;
1997
+ stop: number;
1998
+ risk: number;
1999
+ risk_reward: any;
2000
+ avg_entry: number;
2001
+ avg_size: number;
2002
+ first_entry: number;
2003
+ pnl: number;
2004
+ fee: number;
2005
+ loss: number;
2006
+ last_entry: number;
2007
+ margin: number;
2008
+ };
2009
+ stop_order: {
2010
+ quantity: number;
2011
+ price: number;
2012
+ };
2013
+ config: any;
2014
+ kind: string;
2015
+ current: {
2016
+ trades: any[];
2017
+ summary: {
2018
+ first_entry: number;
2019
+ last_entry: number;
2020
+ quantity: number;
2021
+ entry: number;
2022
+ loss: number;
2023
+ number_of_trades: number;
2024
+ fee: number;
2025
+ anchor_pnl: any;
2026
+ };
2027
+ };
2028
+ };
2029
+ declare function generatePositionIncreaseTrade({ account, zoneAccount, ratio, config, global_config, style, distribution, }: {
2030
+ style?: "optimum" | "minimum";
2031
+ account: {
2032
+ long: {
2033
+ entry: number;
2034
+ quantity: number;
2035
+ };
2036
+ short: {
2037
+ entry: number;
2038
+ quantity: number;
2039
+ };
2040
+ };
2041
+ config: TradeConfig;
2042
+ global_config: GlobalConfig;
2043
+ zoneAccount: {
2044
+ entry: number;
2045
+ stop: number;
2046
+ };
2047
+ ratio?: number;
2048
+ distribution?: any;
2049
+ }): {
2050
+ trades: any[];
2051
+ summary: any;
2052
+ config: any;
2053
+ kind: string;
2054
+ current: {
2055
+ trades: any[];
2056
+ summary: {
2057
+ first_entry: number;
2058
+ last_entry: number;
2059
+ quantity: number;
2060
+ entry: number;
2061
+ loss: number;
2062
+ number_of_trades: number;
2063
+ fee: number;
2064
+ anchor_pnl: any;
2065
+ };
2066
+ };
2067
+ stop_order?: undefined;
2068
+ } | {
2069
+ trades: any[];
2070
+ summary: {
2071
+ entry: number;
2072
+ stop: number;
2073
+ risk: number;
2074
+ risk_reward: any;
2075
+ avg_entry: number;
2076
+ avg_size: number;
2077
+ first_entry: number;
2078
+ pnl: number;
2079
+ fee: number;
2080
+ loss: number;
2081
+ last_entry: number;
2082
+ margin: number;
2083
+ };
2084
+ stop_order: {
2085
+ quantity: number;
2086
+ price: number;
2087
+ };
2088
+ config: any;
2089
+ kind: string;
2090
+ current: {
2091
+ trades: any[];
2092
+ summary: {
2093
+ first_entry: number;
2094
+ last_entry: number;
2095
+ quantity: number;
2096
+ entry: number;
2097
+ loss: number;
2098
+ number_of_trades: number;
2099
+ fee: number;
2100
+ anchor_pnl: any;
2101
+ };
2102
+ };
2103
+ };
2104
+ export declare const compoundAPI: {
2105
+ buildWithOptimumReward: typeof buildWithOptimumReward;
2106
+ constructAppConfig: typeof constructAppConfig$1;
2107
+ generateOppositeOptimum: typeof generateOppositeOptimum;
2108
+ increaseTradeHelper: typeof increaseTradeHelper;
2109
+ generatePositionIncreaseTrade: typeof generatePositionIncreaseTrade;
2110
+ };
2111
+ export type ExchangeOrder = {
2112
+ symbol: string;
2113
+ price: number;
2114
+ quantity: number;
2115
+ kind: "long" | "short";
2116
+ side: "buy" | "sell";
2117
+ stop: number;
2118
+ order_id: string;
2119
+ triggerPrice?: number;
2120
+ };
2121
+ export declare class ExchangePosition {
2122
+ exchange: BaseExchange;
2123
+ exchange_account: ExchangeAccount$1;
2124
+ private app_db;
2125
+ private instance;
2126
+ orders: {
2127
+ entries: ExchangeOrder[];
2128
+ stop_orders: ExchangeOrder[];
2129
+ tp_orders: ExchangeOrder[];
2130
+ };
2131
+ constructor(payload: {
2132
+ exchange: BaseExchange;
2133
+ app_db: AppDatabase;
2134
+ instance: PositionsView;
2135
+ exchange_account: ExchangeAccount$1;
2136
+ without_view?: PositionsView;
2137
+ orders?: {
2138
+ entries: any[];
2139
+ stop_orders: any[];
2140
+ tp_orders: any[];
2141
+ };
2142
+ });
2143
+ get symbol_config(): SymbolConfig;
2144
+ initialize(): Promise<void>;
2145
+ getInstance(): PositionsView;
2146
+ get symbol(): any;
2147
+ get kind(): any;
2148
+ get account(): ExchangeAccount;
2149
+ get compound(): CompoundInstance & {
2150
+ amount_to_risk?: number;
2151
+ profit_percent?: number;
2152
+ };
2153
+ getProxyForAccount(): Promise<HttpsProxyAgent<`http://${string}`> | SocksProxyAgent>;
2154
+ cancelOrders(payload: {
2155
+ limit?: boolean;
2156
+ price?: number;
2157
+ raw?: boolean;
2158
+ }): Promise<any[] | {
2159
+ success: boolean;
2160
+ message: string;
2161
+ exchange_result?: undefined;
2162
+ error?: undefined;
2163
+ } | {
2164
+ success: boolean;
2165
+ exchange_result: any;
2166
+ message?: undefined;
2167
+ error?: undefined;
2168
+ } | {
2169
+ success: boolean;
2170
+ error: any;
2171
+ message?: undefined;
2172
+ exchange_result?: undefined;
2173
+ }>;
2174
+ getConfig(payload?: {
2175
+ params?: {
2176
+ entry?: number;
2177
+ stop?: number;
2178
+ risk_reward?: number;
2179
+ risk?: number;
2180
+ profit_percent?: number;
2181
+ place_tp?: boolean;
2182
+ profit?: number;
2183
+ reduce_ratio?: number;
2184
+ };
2185
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
2186
+ updateTargetPnl(): Promise<any>;
2187
+ updateConfigPnl(): Promise<void>;
2188
+ triggerTradeFromConfig(payload: {
2189
+ place?: boolean;
2190
+ raw?: boolean;
2191
+ tp?: boolean;
2192
+ stop?: boolean;
2193
+ use_current?: boolean;
2194
+ ignore_config?: boolean;
2195
+ risky?: boolean;
2196
+ hedge?: boolean;
2197
+ stop_ratio?: number;
2198
+ }): Promise<any>;
2199
+ placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
2200
+ entry: number;
2201
+ stop: number;
2202
+ risk_reward: number;
2203
+ risk: number;
2204
+ place?: boolean;
2205
+ update_db?: boolean;
2206
+ raw?: boolean;
2207
+ use_current?: boolean;
2208
+ stop_percent?: number;
2209
+ distribution?: GetEntriesParams["distribution"];
2210
+ hedge?: boolean;
2211
+ stop_ratio?: number;
2212
+ }): Promise<any>;
2213
+ buildAppConfig(payload: {
2214
+ entry: number;
2215
+ stop: number;
2216
+ risk_reward: number;
2217
+ risk: number;
515
2218
  profit?: number;
516
2219
  update_db?: boolean;
517
2220
  profit_percent?: number;
2221
+ use_kelly?: boolean;
2222
+ kelly_confidence_factor?: number;
2223
+ kelly_minimum_risk?: number;
2224
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2225
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
518
2226
  }): Promise<AppConfig>;
519
2227
  placeConfigOrders(app_config: AppConfig, solution: {
520
2228
  risk_reward: number;
521
2229
  entry: number;
522
2230
  stop: number;
523
2231
  risk_per_trade: number;
524
- avg_size: number;
525
- neg_pnl: number;
2232
+ avg_size: number;
2233
+ neg_pnl: number;
2234
+ min_size: number;
2235
+ symbol: string;
2236
+ stop_percent?: number;
2237
+ use_kelly?: boolean;
2238
+ kelly_confidence_factor?: number;
2239
+ kelly_minimum_risk?: number;
2240
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2241
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2242
+ distribution?: GetEntriesParams["distribution"];
2243
+ }, place?: boolean, skip_stop?: boolean): Promise<{
2244
+ entry_orders: {
2245
+ orders: {
2246
+ entry: any;
2247
+ quantity: any;
2248
+ reverse_avg_entry: any;
2249
+ reverse_avg_quantity: any;
2250
+ avg_entry: any;
2251
+ avg_size: any;
2252
+ }[];
2253
+ kind: "long" | "short";
2254
+ };
2255
+ stop_orders: {
2256
+ stop: number;
2257
+ final_stop: number;
2258
+ kind: "long" | "short";
2259
+ quantity: any;
2260
+ is_limit: boolean;
2261
+ neg_pnl: any;
2262
+ };
2263
+ trades: any[];
2264
+ }>;
2265
+ determineAmountToBuy(payload: {
2266
+ orders: any[];
2267
+ kind: "long" | "short";
2268
+ refresh?: boolean;
2269
+ decimal_places?: string;
2270
+ price_places?: string;
2271
+ cancel?: boolean;
2272
+ place?: boolean;
2273
+ }): Promise<any[]>;
2274
+ refresh(live_refresh?: boolean): Promise<{
2275
+ instance: PositionsView;
2276
+ existingOrders: void | Order[];
2277
+ }>;
2278
+ placeTrade(payload: {
2279
+ place?: boolean;
2280
+ tp?: boolean;
2281
+ stop?: boolean;
2282
+ raw?: boolean;
2283
+ limit?: boolean;
2284
+ cancel?: boolean;
2285
+ ignore_config?: boolean;
2286
+ risky?: boolean;
2287
+ target_pnl?: number;
2288
+ hedge?: boolean;
2289
+ stop_ratio?: number;
2290
+ }): Promise<any>;
2291
+ placeStopLimit(payload: {
2292
+ place?: boolean;
2293
+ stop: number;
2294
+ quantity?: number;
2295
+ }): Promise<any>;
2296
+ computeTargetPnl(payload: {
2297
+ secondary: ExchangePosition;
2298
+ }): Promise<number>;
2299
+ runSimulation(payload: {
2300
+ iterations?: number;
2301
+ long_position: ExchangePosition;
2302
+ short_position: ExchangePosition;
2303
+ raw?: boolean;
2304
+ }): Promise<Strategy | {
2305
+ last_entry: any;
2306
+ first_entry: any;
2307
+ threshold: any;
2308
+ risk: number;
2309
+ risk_reward: number;
2310
+ spread: number;
2311
+ gap_loss: number;
2312
+ net_profit: number;
2313
+ long: {
2314
+ avg_entry: number;
2315
+ avg_size: number;
2316
+ loss: number;
2317
+ stop: number;
2318
+ stop_quantity: number;
2319
+ re_entry_quantity: number;
2320
+ initial_pnl: number;
2321
+ tp: number;
2322
+ incurred_loss: number;
2323
+ pnl: number;
2324
+ remaining_quantity: number;
2325
+ };
2326
+ short: {
2327
+ avg_entry: number;
2328
+ avg_size: number;
2329
+ loss: number;
2330
+ stop: number;
2331
+ stop_quantity: number;
2332
+ re_entry_quantity: number;
2333
+ initial_pnl: number;
2334
+ tp: number;
2335
+ incurred_loss: number;
2336
+ pnl: number;
2337
+ remaining_quantity: number;
2338
+ };
2339
+ }[]>;
2340
+ rawConfigUpdate(payload: any): Promise<void>;
2341
+ /**
2342
+ * This method is used to place the opposite trade action
2343
+ */
2344
+ placeOppositeTradeAction(payload: {
2345
+ data: {
2346
+ avg: {
2347
+ quantity: number;
2348
+ price: number;
2349
+ };
2350
+ entry: number;
2351
+ stop: number;
2352
+ risk_per_trade: number;
2353
+ profit_percent: number;
2354
+ risk_reward: number;
2355
+ };
2356
+ }): Promise<void>;
2357
+ /**
2358
+ * Updates the risk configuration for an empty position using the next_risk value.
2359
+ * This implements progressive risk management where successful trades increase future risk tolerance.
2360
+ *
2361
+ * @param payload.symbol - The trading symbol (e.g., "BTCUSDT")
2362
+ * @param payload.kind - Position type: "long" or "short"
2363
+ * @returns Object indicating if update was successful with old/new risk values
2364
+ */
2365
+ updateRiskOnEmpty(): Promise<{
2366
+ updated: boolean;
2367
+ symbol: any;
2368
+ kind: any;
2369
+ old_risk: number;
2370
+ new_risk: number;
2371
+ reason?: undefined;
2372
+ } | {
2373
+ updated: boolean;
2374
+ symbol: any;
2375
+ kind: any;
2376
+ reason: string;
2377
+ old_risk?: undefined;
2378
+ new_risk?: undefined;
2379
+ }>;
2380
+ increasePositionAtStop(payload: {
2381
+ place?: boolean;
2382
+ price?: number;
2383
+ quantity?: number;
2384
+ increase?: boolean;
2385
+ ratio_to_loose?: number;
2386
+ reverse_position?: ExchangePosition;
2387
+ increase_ratio?: number;
2388
+ }): Promise<any>;
2389
+ lockReduction({ pnl, place, pause_tp, }: {
2390
+ pnl: number;
2391
+ place?: boolean;
2392
+ pause_tp?: boolean;
2393
+ }): Promise<{
2394
+ sell_ratio: number;
2395
+ current_pnl: number;
2396
+ profit_percent: number;
2397
+ current_price: number;
2398
+ notional_value: number;
2399
+ }>;
2400
+ placeSingleOrder(payload: {
2401
+ long_position: ExchangePosition;
2402
+ short_position: ExchangePosition;
2403
+ }): Promise<string>;
2404
+ placeMarketOrder(payload: {
2405
+ quantity?: number;
2406
+ close?: boolean;
2407
+ }): Promise<void>;
2408
+ generate_config_params(payload: {
2409
+ entry: number;
2410
+ stop: number;
2411
+ risk_reward: number;
2412
+ risk: number;
2413
+ with_trades?: boolean;
2414
+ }): Promise<any>;
2415
+ extrapolateConfig(payload: {
2416
+ risk_reward?: number;
2417
+ risk?: number;
2418
+ kind?: "long" | "short";
2419
+ }): Promise<any>;
2420
+ build_short_order(): Promise<any>;
2421
+ /**
2422
+ * This function builds a config for a symbol
2423
+ * @param payload
2424
+ * @returns
2425
+ */
2426
+ buildConfigForSymbol(payload: {
2427
+ risk: number;
2428
+ risk_reward?: number;
2429
+ as_config?: boolean;
2430
+ with_trades?: boolean;
2431
+ }): Promise<any>;
2432
+ buildTrades(payload: {
2433
+ risk?: number;
2434
+ }): Promise<{
2435
+ trades: any[];
2436
+ max_size: any;
2437
+ last_price: any;
2438
+ total_size: number;
2439
+ avg_entry: number;
2440
+ }>;
2441
+ tradeConfig(payload: {
2442
+ override?: any;
2443
+ }): Promise<AppConfig>;
2444
+ getOrCreatePositionConfig(payload: {
2445
+ risk?: number;
2446
+ risk_reward?: number;
2447
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
2448
+ getOppositeConfig(payload: {
2449
+ ratio?: number;
2450
+ }): {
2451
+ entry: number;
2452
+ stop: number;
2453
+ risk: number;
2454
+ risk_reward: number | {
2455
+ result: any[];
2456
+ value: number;
2457
+ total: number;
2458
+ risk_per_trade: number;
2459
+ max: number;
2460
+ min: number;
2461
+ avg_size: any;
2462
+ neg_pnl: any;
2463
+ entry: any;
2464
+ };
2465
+ };
2466
+ getOptimumRiskReward(): Promise<number | {
2467
+ result: any[];
2468
+ value: number;
2469
+ total: number;
2470
+ risk_per_trade: number;
2471
+ max: number;
2472
+ min: number;
2473
+ avg_size: any;
2474
+ neg_pnl: any;
2475
+ entry: any;
2476
+ }>;
2477
+ get appConfig(): {
2478
+ fee: number;
2479
+ risk_per_trade: number;
2480
+ risk_reward: number;
2481
+ symbol?: string;
2482
+ focus: number;
2483
+ budget: number;
2484
+ support: number;
2485
+ resistance: number;
2486
+ percent_change: number;
2487
+ tradeSplit?: number;
2488
+ take_profit?: number;
2489
+ kind: "long" | "short";
2490
+ entry: number;
2491
+ stop: number;
526
2492
  min_size: number;
527
- symbol: string;
528
- }, place?: boolean, skip_stop?: boolean): Promise<{
529
- entry_orders: {
530
- orders: {
531
- entry: any;
532
- quantity: any;
533
- reverse_avg_entry: any;
534
- reverse_avg_quantity: any;
535
- avg_entry: any;
536
- avg_size: any;
537
- }[];
538
- kind: "long" | "short";
2493
+ price_places?: string;
2494
+ strategy?: "quantity" | "entry";
2495
+ as_array?: boolean;
2496
+ decimal_places?: string;
2497
+ min_profit?: number;
2498
+ raw?: boolean;
2499
+ gap?: number;
2500
+ rr?: number;
2501
+ max_size?: number;
2502
+ last_value?: any;
2503
+ max_quantity?: number;
2504
+ kelly?: {
2505
+ use_kelly?: boolean;
2506
+ kelly_confidence_factor?: number;
2507
+ kelly_minimum_risk?: number;
2508
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2509
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
539
2510
  };
540
- stop_orders: {
541
- stop: number;
542
- final_stop: number;
543
- kind: "long" | "short";
544
- quantity: any;
545
- is_limit: boolean;
2511
+ };
2512
+ updateProfitPercentWithRisk(payload: {
2513
+ focus_position: ExchangePosition;
2514
+ }): Promise<{
2515
+ profit_percent: number;
2516
+ take_profit: number;
2517
+ last_order: number;
2518
+ }>;
2519
+ getOrders(payload: {
2520
+ type?: "limit" | "stop" | "tp";
2521
+ }): {
2522
+ symbol: any;
2523
+ price: any;
2524
+ quantity: any;
2525
+ kind: any;
2526
+ side: any;
2527
+ stop: any;
2528
+ order_id: any;
2529
+ triggerPrice: any;
2530
+ client_order_id: any;
2531
+ }[];
2532
+ cancelExchangeOrder(payload: {
2533
+ type: "limit" | "stop" | "tp";
2534
+ refresh?: boolean;
2535
+ }): Promise<any>;
2536
+ placeDangerousTrade(payload: {
2537
+ entry: number;
2538
+ quantity: number;
2539
+ stop?: number;
2540
+ }): {
2541
+ entry: number;
2542
+ risk: number;
2543
+ stop: number;
2544
+ risk_reward: number | {
2545
+ result: any[];
2546
+ value: number;
2547
+ total: number;
2548
+ risk_per_trade: number;
2549
+ max: number;
2550
+ min: number;
2551
+ avg_size: any;
546
2552
  neg_pnl: any;
2553
+ entry: any;
2554
+ };
2555
+ };
2556
+ followStop(payload: {
2557
+ focus_position: ExchangePosition;
2558
+ fee_percent?: number;
2559
+ place?: boolean;
2560
+ }): Promise<any>;
2561
+ get support(): SupportTable;
2562
+ get linkedConfig(): ScheduledTrade;
2563
+ get isActiveTrade(): {
2564
+ config: ScheduledTrade;
2565
+ condition: boolean;
2566
+ };
2567
+ updateCompound(payload?: {
2568
+ place?: boolean;
2569
+ }): Promise<{
2570
+ support: number;
2571
+ counter: number;
2572
+ new_risk: number;
2573
+ condition: boolean;
2574
+ stop: number;
2575
+ }>;
2576
+ cleanOnActiveCompoundInstance(): Promise<void>;
2577
+ }
2578
+ declare class ExchangeAccount$1 {
2579
+ instance: {
2580
+ owner: string;
2581
+ exchange: string;
2582
+ };
2583
+ exchange: BaseExchange;
2584
+ main_exchange?: BaseExchange;
2585
+ private app_db;
2586
+ long_position?: ExchangePosition;
2587
+ short_position?: ExchangePosition;
2588
+ raw_positions?: PositionsView[];
2589
+ constructor(payload: ExchangeType, options: {
2590
+ exchange: BaseExchange;
2591
+ app_db: AppDatabase;
2592
+ main_exchange?: BaseExchange;
2593
+ });
2594
+ /**
2595
+ *In order to avoid rate limiting issues, we cache the live exchange
2596
+ details for each symbol for an account in the database with an option
2597
+ to refresh.
2598
+ */
2599
+ getDBInstance(): AppDatabase;
2600
+ getLiveExchangeInstance(payload: {
2601
+ symbol: string;
2602
+ refresh?: boolean;
2603
+ refresh_symbol_config?: boolean;
2604
+ }): Promise<import("pocketbase").RecordModel>;
2605
+ initializePositions(payload: {
2606
+ symbol: string;
2607
+ kind: "long" | "short";
2608
+ update?: boolean;
2609
+ }): Promise<ExchangePosition>;
2610
+ getActiveAccount(payload: {
2611
+ symbol: string;
2612
+ full?: boolean;
2613
+ refresh?: boolean;
2614
+ }): Promise<Account | {
2615
+ liquidation: {
2616
+ long: number;
2617
+ short: number;
2618
+ };
2619
+ active_account: Account;
2620
+ current_price: any;
2621
+ exchange: any;
2622
+ }>;
2623
+ refreshAccount(payload: {
2624
+ symbol: string;
2625
+ live_refresh?: boolean;
2626
+ leverage?: number;
2627
+ }): Promise<(PositionsView & {
2628
+ expand?: {
2629
+ config: ScheduledTrade;
2630
+ account: ExchangeAccount;
2631
+ proxy: Proxy$1;
2632
+ };
2633
+ })[]>;
2634
+ syncAccount(options: {
2635
+ symbol: string;
2636
+ kind?: "long" | "short";
2637
+ update?: boolean;
2638
+ as_view?: boolean;
2639
+ leverage?: number;
2640
+ live_refresh?: boolean;
2641
+ }): Promise<PositionsView | (PositionsView & {
2642
+ expand?: {
2643
+ config: ScheduledTrade;
2644
+ account: ExchangeAccount;
2645
+ proxy: Proxy$1;
547
2646
  };
2647
+ })[]>;
2648
+ syncOrders(options: {
2649
+ symbol: string;
2650
+ kind?: "long" | "short";
2651
+ update?: boolean;
2652
+ }): Promise<void | Order[]>;
2653
+ toggleStopBuying(payload: {
2654
+ symbol: string;
2655
+ kind: "long" | "short";
2656
+ should_stop?: boolean;
2657
+ }): Promise<import("pocketbase").RecordModel>;
2658
+ getFocusPosition(payload: {
2659
+ symbol: string;
2660
+ kind: "long" | "short";
2661
+ update?: boolean;
2662
+ }): Promise<ExchangePosition>;
2663
+ cancelOrders(payload: {
2664
+ symbol: string;
2665
+ kind: "long" | "short";
2666
+ price?: number;
2667
+ all?: boolean;
2668
+ stop?: boolean;
2669
+ limit?: boolean;
2670
+ raw?: boolean;
2671
+ }): Promise<any[] | {
2672
+ success: boolean;
2673
+ message: string;
2674
+ exchange_result?: undefined;
2675
+ error?: undefined;
2676
+ } | {
2677
+ success: boolean;
2678
+ exchange_result: any;
2679
+ message?: undefined;
2680
+ error?: undefined;
2681
+ } | {
2682
+ success: boolean;
2683
+ error: any;
2684
+ message?: undefined;
2685
+ exchange_result?: undefined;
2686
+ }>;
2687
+ cancelExchangeOrders(payload: {
2688
+ symbol: string;
2689
+ orders: number[];
2690
+ }): Promise<any>;
2691
+ getBreakEvenPrice(payload: {
2692
+ symbol: string;
2693
+ }): Promise<{
2694
+ price: number;
2695
+ direction: string;
2696
+ }>;
2697
+ tradeConfig(payload: {
2698
+ symbol: string;
2699
+ kind: "long" | "short";
2700
+ override?: any;
2701
+ }): Promise<AppConfig>;
2702
+ justInTimeProfit(payload: {
2703
+ symbol: string;
2704
+ target_pnl: number;
2705
+ kind: "long" | "short";
2706
+ refresh?: boolean;
2707
+ place?: boolean;
2708
+ take_profit?: number;
2709
+ pause_tp?: boolean;
2710
+ }): Promise<{
2711
+ sell_ratio: number;
2712
+ current_pnl: number;
2713
+ profit_percent: number;
2714
+ current_price: number;
2715
+ notional_value: number;
2716
+ }>;
2717
+ buildTrades(payload: {
2718
+ symbol: string;
2719
+ kind: "long" | "short";
2720
+ risk?: number;
2721
+ }): Promise<{
548
2722
  trades: any[];
2723
+ max_size: any;
2724
+ last_price: any;
2725
+ total_size: number;
2726
+ avg_entry: number;
549
2727
  }>;
550
- placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders", payload: {
2728
+ placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
551
2729
  symbol: string;
552
2730
  entry: number;
553
2731
  stop: number;
@@ -555,27 +2733,38 @@ declare class ExchangeAccount$1 {
555
2733
  risk: number;
556
2734
  place?: boolean;
557
2735
  update_db?: boolean;
2736
+ raw?: boolean;
2737
+ use_current?: boolean;
2738
+ stop_percent?: number;
558
2739
  }): Promise<any>;
2740
+ getOrCreatePositionConfig(payload: {
2741
+ symbol: string;
2742
+ kind: "long" | "short";
2743
+ risk?: number;
2744
+ risk_reward?: number;
2745
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
559
2746
  getPositionConfig(payload: {
560
2747
  symbol: string;
561
2748
  kind: "long" | "short";
562
2749
  params?: {
563
- entry: number;
564
- stop: number;
565
- risk_reward: number;
566
- risk: number;
2750
+ entry?: number;
2751
+ stop?: number;
2752
+ risk_reward?: number;
2753
+ risk?: number;
567
2754
  profit_percent?: number;
2755
+ place_tp?: boolean;
2756
+ profit?: number;
568
2757
  };
569
- }): Promise<ScheduledTrade | import("pocketbase").RecordModel>;
2758
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
570
2759
  getCurrentPrice(symbol: string): Promise<any>;
571
- getPositionStrategy(): Promise<{
572
- strategy_instance: Strategy;
573
- focus_account: ExchangeAccount;
574
- }>;
2760
+ getAccountStrategy(payload: {
2761
+ symbol: string;
2762
+ }): Promise<AccountStrategy>;
575
2763
  buildReduceConfig(payload: {
576
2764
  symbol: string;
577
2765
  kind?: "long" | "short";
578
2766
  as_dict?: boolean;
2767
+ target_pnl?: number;
579
2768
  trigger?: {
580
2769
  long: boolean;
581
2770
  short: boolean;
@@ -605,6 +2794,7 @@ declare class ExchangeAccount$1 {
605
2794
  not_reduce: boolean;
606
2795
  ratio: any;
607
2796
  use_full: boolean;
2797
+ sell_ratio: any;
608
2798
  };
609
2799
  short: {
610
2800
  minimum_pnl: number;
@@ -614,6 +2804,7 @@ declare class ExchangeAccount$1 {
614
2804
  not_reduce: boolean;
615
2805
  ratio: any;
616
2806
  use_full: boolean;
2807
+ sell_ratio: any;
617
2808
  };
618
2809
  trigger: {
619
2810
  long: boolean;
@@ -643,51 +2834,61 @@ declare class ExchangeAccount$1 {
643
2834
  trigger?: boolean;
644
2835
  refresh?: boolean;
645
2836
  kind?: "long" | "short";
2837
+ target_pnl?: number;
646
2838
  }): Promise<any>;
647
2839
  reEnterPositionOnEmpty(symbol: string): Promise<void>;
648
- generate_config_params(payload: {
649
- entry: number;
650
- stop: number;
651
- risk_reward: number;
652
- risk: number;
2840
+ build_short_order(payload: {
653
2841
  symbol: string;
654
- }): Promise<{
655
- place_stop: boolean;
656
- profit_percent: number;
657
- entry: number;
658
- stop: number;
659
- avg_size: any;
660
- avg_entry: any;
661
- risk_reward: number;
662
- neg_pnl: any;
663
- risk: number;
664
- }>;
2842
+ kind: "long" | "short";
2843
+ }): Promise<any>;
665
2844
  extrapolateShortConfig(payload: {
666
2845
  kind: "long" | "short";
667
2846
  symbol: string;
668
- risk_reward?: number;
669
- risk?: number;
670
- }): Promise<{
671
- place_stop: boolean;
672
- profit_percent: number;
673
- entry: number;
674
- stop: number;
675
- avg_size: any;
676
- avg_entry: any;
677
- risk_reward: number;
678
- neg_pnl: any;
679
- risk: number;
680
- }>;
2847
+ risk_reward?: number;
2848
+ risk?: number;
2849
+ }): Promise<any>;
2850
+ placeMarketOrder(payload: {
2851
+ symbol: string;
2852
+ kind: "long" | "short";
2853
+ quantity?: number;
2854
+ close?: boolean;
2855
+ }): Promise<void>;
2856
+ placeSingleOrder(payload: {
2857
+ symbol: string;
2858
+ kind: "long" | "short";
2859
+ }): Promise<string>;
2860
+ followStop(payload: {
2861
+ symbol: string;
2862
+ kind: "long" | "short";
2863
+ fee_percent?: number;
2864
+ focus_position: ExchangePosition;
2865
+ place?: boolean;
2866
+ }): Promise<any>;
2867
+ increasePositionAtStop(payload: {
2868
+ symbol: string;
2869
+ kind: "long" | "short";
2870
+ place?: boolean;
2871
+ price?: number;
2872
+ quantity?: number;
2873
+ increase?: boolean;
2874
+ ratio_to_loose?: number;
2875
+ }): Promise<any>;
681
2876
  triggerTradeFromConfig(payload: {
682
2877
  symbol: string;
683
2878
  kind: "long" | "short";
684
2879
  place?: boolean;
2880
+ raw?: boolean;
2881
+ tp?: boolean;
2882
+ stop?: boolean;
2883
+ use_current?: boolean;
2884
+ ignore_config?: boolean;
2885
+ risky?: boolean;
685
2886
  }): Promise<any>;
686
2887
  verifyStopLoss(payload: {
687
2888
  symbol: string;
688
2889
  kind: "long" | "short";
689
2890
  revert?: boolean;
690
- }): Promise<import("pocketbase").RecordModel[]>;
2891
+ }): Promise<void | Order[]>;
691
2892
  windDownSymbol(payload: {
692
2893
  symbol: string;
693
2894
  risk_reward?: number;
@@ -696,21 +2897,196 @@ declare class ExchangeAccount$1 {
696
2897
  updateTargetPnl(payload: {
697
2898
  symbol: string;
698
2899
  kind: "long" | "short";
699
- }): Promise<number>;
2900
+ }): Promise<any>;
2901
+ updateRiskOnEmpty(payload: {
2902
+ symbol: string;
2903
+ kind: "long" | "short";
2904
+ }): Promise<{
2905
+ updated: boolean;
2906
+ symbol: any;
2907
+ kind: any;
2908
+ old_risk: number;
2909
+ new_risk: number;
2910
+ reason?: undefined;
2911
+ } | {
2912
+ updated: boolean;
2913
+ symbol: any;
2914
+ kind: any;
2915
+ reason: string;
2916
+ old_risk?: undefined;
2917
+ new_risk?: undefined;
2918
+ }>;
2919
+ updateGoodHedgeConfig(payload: {
2920
+ symbol: string;
2921
+ params?: {
2922
+ support: number;
2923
+ resistance: number;
2924
+ risk: number;
2925
+ profit_percent: number;
2926
+ };
2927
+ risk_factor?: number;
2928
+ update?: boolean;
2929
+ place?: boolean;
2930
+ update_tp?: boolean;
2931
+ }): Promise<{
2932
+ support: number;
2933
+ resistance: number;
2934
+ risk: number;
2935
+ profit_percent: number;
2936
+ }>;
2937
+ /**
2938
+ * This method is used to place the opposite trade action
2939
+ */
2940
+ placeOppositeTradeAction(payload: {
2941
+ symbol: string;
2942
+ kind: "long" | "short";
2943
+ data: {
2944
+ avg: {
2945
+ quantity: number;
2946
+ price: number;
2947
+ };
2948
+ entry: number;
2949
+ stop: number;
2950
+ risk_per_trade: number;
2951
+ profit_percent: number;
2952
+ risk_reward: number;
2953
+ };
2954
+ }): Promise<void>;
2955
+ buildOppositeTrades(payload: {
2956
+ symbol: string;
2957
+ kind: "long" | "short";
2958
+ place?: boolean;
2959
+ place_symbol?: string;
2960
+ }): Promise<{
2961
+ avg: {
2962
+ entry: number;
2963
+ price: number;
2964
+ quantity: number;
2965
+ };
2966
+ loss: number;
2967
+ profit_percent: number;
2968
+ fee: number;
2969
+ risk_per_trade: number;
2970
+ risk_reward: number;
2971
+ symbol?: string;
2972
+ focus: number;
2973
+ budget: number;
2974
+ support: number;
2975
+ resistance: number;
2976
+ percent_change: number;
2977
+ tradeSplit?: number;
2978
+ take_profit?: number;
2979
+ kind: "long" | "short";
2980
+ entry: number;
2981
+ stop: number;
2982
+ min_size: number;
2983
+ price_places?: string;
2984
+ strategy?: "quantity" | "entry";
2985
+ as_array?: boolean;
2986
+ decimal_places?: string;
2987
+ min_profit?: number;
2988
+ raw?: boolean;
2989
+ gap?: number;
2990
+ rr?: number;
2991
+ max_size?: number;
2992
+ max_quantity?: number;
2993
+ kelly?: {
2994
+ use_kelly?: boolean;
2995
+ kelly_confidence_factor?: number;
2996
+ kelly_minimum_risk?: number;
2997
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2998
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2999
+ };
3000
+ }>;
3001
+ runSimulation(payload: {
3002
+ symbol: string;
3003
+ kind: "long" | "short";
3004
+ iterations?: number;
3005
+ raw?: boolean;
3006
+ }): Promise<Strategy | {
3007
+ last_entry: any;
3008
+ first_entry: any;
3009
+ threshold: any;
3010
+ risk: number;
3011
+ risk_reward: number;
3012
+ spread: number;
3013
+ gap_loss: number;
3014
+ net_profit: number;
3015
+ long: {
3016
+ avg_entry: number;
3017
+ avg_size: number;
3018
+ loss: number;
3019
+ stop: number;
3020
+ stop_quantity: number;
3021
+ re_entry_quantity: number;
3022
+ initial_pnl: number;
3023
+ tp: number;
3024
+ incurred_loss: number;
3025
+ pnl: number;
3026
+ remaining_quantity: number;
3027
+ };
3028
+ short: {
3029
+ avg_entry: number;
3030
+ avg_size: number;
3031
+ loss: number;
3032
+ stop: number;
3033
+ stop_quantity: number;
3034
+ re_entry_quantity: number;
3035
+ initial_pnl: number;
3036
+ tp: number;
3037
+ incurred_loss: number;
3038
+ pnl: number;
3039
+ remaining_quantity: number;
3040
+ };
3041
+ }[]>;
3042
+ getCurrentRun(payload: {
3043
+ symbol: string;
3044
+ kind?: "long" | "short";
3045
+ pnl?: number;
3046
+ }): Promise<true | import("pocketbase").RecordModel>;
700
3047
  recomputeSymbolConfig(payload: {
701
3048
  symbol: string;
702
3049
  refresh?: boolean;
703
3050
  }): Promise<SymbolConfig>;
3051
+ /**
3052
+ * This function builds a config for a symbol
3053
+ * @param payload
3054
+ * @returns
3055
+ */
3056
+ buildConfigForSymbol(payload: {
3057
+ symbol: string;
3058
+ risk: number;
3059
+ kind?: "long" | "short";
3060
+ risk_reward?: number;
3061
+ as_config?: boolean;
3062
+ with_trades?: boolean;
3063
+ }): Promise<any>;
704
3064
  triggerBullishMarket(payload: {
705
3065
  symbol: string;
706
3066
  profit_percent?: number;
707
3067
  risk_reward?: number;
708
3068
  }): Promise<any>;
709
- updateAllActiveSymbols(): Promise<void>;
3069
+ updateAllActiveSymbols(payload: {
3070
+ interval?: number;
3071
+ }): Promise<void>;
710
3072
  updateAllPositionsWithNoConfig(payload: {
711
3073
  kind: "long" | "short";
712
3074
  }): Promise<void>;
3075
+ getSymbolsForPositions(): Promise<any[]>;
713
3076
  getNonEssentialSymbols(): Promise<any[]>;
3077
+ _terminatePositions(payload: {
3078
+ symbol: string;
3079
+ }): Promise<void>;
3080
+ getOrders(payload: {
3081
+ symbol: string;
3082
+ kind: "long" | "short";
3083
+ type: "limit" | "stop" | "tp";
3084
+ }): Promise<Order[]>;
3085
+ syncPositionConfigs(payload: {
3086
+ symbol: string;
3087
+ kind: "long" | "short";
3088
+ refresh?: boolean;
3089
+ }): Promise<void>;
714
3090
  terminatePositions(payload: {
715
3091
  symbol: string;
716
3092
  }): Promise<void>;
@@ -722,14 +3098,229 @@ declare class ExchangeAccount$1 {
722
3098
  symbol: string;
723
3099
  kind: "long" | "short";
724
3100
  }): Promise<number>;
3101
+ placeStopLimit(payload: {
3102
+ symbol: string;
3103
+ kind: "long" | "short";
3104
+ place?: boolean;
3105
+ stop: number;
3106
+ quantity?: number;
3107
+ }): Promise<any>;
3108
+ placeDangerousTrade(payload: {
3109
+ symbol: string;
3110
+ config: {
3111
+ entry: number;
3112
+ quantity: number;
3113
+ stop: number;
3114
+ };
3115
+ kind: "long" | "short";
3116
+ }): Promise<{
3117
+ entry: number;
3118
+ risk: number;
3119
+ stop: number;
3120
+ risk_reward: number | {
3121
+ result: any[];
3122
+ value: number;
3123
+ total: number;
3124
+ risk_per_trade: number;
3125
+ max: number;
3126
+ min: number;
3127
+ avg_size: any;
3128
+ neg_pnl: any;
3129
+ entry: any;
3130
+ };
3131
+ }>;
3132
+ placeTrade(payload: {
3133
+ symbol: string;
3134
+ kind: "long" | "short";
3135
+ place?: boolean;
3136
+ limit?: boolean;
3137
+ tp?: boolean;
3138
+ stop?: boolean;
3139
+ raw?: boolean;
3140
+ cancel?: boolean;
3141
+ ignore_config?: boolean;
3142
+ target_pnl?: number;
3143
+ risky?: boolean;
3144
+ }): Promise<any>;
3145
+ updateConfigPnl(payload: {
3146
+ symbol: string;
3147
+ kind: "long" | "short";
3148
+ }): Promise<void>;
3149
+ determineReduceTp(payload: {
3150
+ symbol: string;
3151
+ factor: number;
3152
+ }): Promise<{
3153
+ long_diff: number;
3154
+ short_diff: number;
3155
+ gap: number;
3156
+ gap_cost: number;
3157
+ long_tp: number;
3158
+ short_tp: number;
3159
+ long_percent: number;
3160
+ short_percent: number;
3161
+ }>;
3162
+ oppositeGapExists(payload: {
3163
+ symbol: string;
3164
+ kind: "long" | "short";
3165
+ }): Promise<void>;
3166
+ profitWithinGapStrategy(payload: {
3167
+ symbol: string;
3168
+ callback?: (params: {
3169
+ symbol: string;
3170
+ account: ExchangeType;
3171
+ kind: "long" | "short";
3172
+ }) => Promise<any>;
3173
+ }): Promise<{
3174
+ config_details: {
3175
+ app_config: {
3176
+ fee: number;
3177
+ risk_per_trade: number;
3178
+ risk_reward: number;
3179
+ symbol?: string;
3180
+ focus: number;
3181
+ budget: number;
3182
+ support: number;
3183
+ resistance: number;
3184
+ percent_change: number;
3185
+ tradeSplit?: number;
3186
+ take_profit?: number;
3187
+ kind: "long" | "short";
3188
+ entry: number;
3189
+ stop: number;
3190
+ min_size: number;
3191
+ price_places?: string;
3192
+ strategy?: "quantity" | "entry";
3193
+ as_array?: boolean;
3194
+ decimal_places?: string;
3195
+ min_profit?: number;
3196
+ raw?: boolean;
3197
+ gap?: number;
3198
+ rr?: number;
3199
+ max_size?: number;
3200
+ max_quantity?: number;
3201
+ kelly?: {
3202
+ use_kelly?: boolean;
3203
+ kelly_confidence_factor?: number;
3204
+ kelly_minimum_risk?: number;
3205
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3206
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3207
+ };
3208
+ };
3209
+ last_value: any;
3210
+ };
3211
+ }>;
3212
+ generateGapTp(payload: {
3213
+ symbol: string;
3214
+ factor?: number;
3215
+ }): Promise<{
3216
+ profit_percent: {
3217
+ long: number;
3218
+ short: number;
3219
+ };
3220
+ risk: {
3221
+ short: number;
3222
+ long: number;
3223
+ };
3224
+ take_profit: {
3225
+ long: number;
3226
+ short: number;
3227
+ };
3228
+ to_reduce: {
3229
+ short: number;
3230
+ long: number;
3231
+ };
3232
+ full_reduce: {
3233
+ short: number;
3234
+ long: number;
3235
+ };
3236
+ sell_quantity: {
3237
+ short: number;
3238
+ long: number;
3239
+ };
3240
+ gap: number;
3241
+ gap_loss: number;
3242
+ }>;
3243
+ getSellPriceFromStrategy(payload: {
3244
+ symbol: string;
3245
+ reduce_position: PositionsView;
3246
+ kind?: "long" | "short";
3247
+ full_ratio?: number;
3248
+ }): Promise<{
3249
+ pnl: number;
3250
+ loss: number;
3251
+ full_loss: number;
3252
+ original_pnl: number;
3253
+ reward_factor: number;
3254
+ profit_percent: number;
3255
+ kind: "long" | "short";
3256
+ sell_price: number;
3257
+ quantity: number;
3258
+ price_places: string;
3259
+ decimal_places: string;
3260
+ }>;
3261
+ placeCompoundShortTrade(payload: {}): Promise<void>;
3262
+ placeCompoundLongTrade(payload: {
3263
+ symbol: string;
3264
+ params: {
3265
+ resistance: number;
3266
+ support: number;
3267
+ profit_percent: number;
3268
+ risk_reward: number;
3269
+ risk: number;
3270
+ };
3271
+ place?: boolean;
3272
+ }): Promise<void>;
3273
+ getConfigProfiles(payload: {
3274
+ symbol: string;
3275
+ kind: "long" | "short";
3276
+ }): Promise<{
3277
+ id: any;
3278
+ entry: any;
3279
+ stop: any;
3280
+ kind: "long" | "short";
3281
+ risk_reward: any;
3282
+ risk: any;
3283
+ profit_percent: any;
3284
+ }[]>;
725
3285
  }
3286
+ declare function getExchangeAccount(payload: {
3287
+ account: ExchangeType;
3288
+ app_db: AppDatabase;
3289
+ getCredentials: (payload: {
3290
+ account: string;
3291
+ exchange: string;
3292
+ app_db: AppDatabase;
3293
+ }) => Promise<{
3294
+ api_key: string;
3295
+ api_secret: string;
3296
+ email: string;
3297
+ }>;
3298
+ proxyOptions?: {
3299
+ proxy?: any;
3300
+ ignore_proxy?: boolean;
3301
+ };
3302
+ canWithdraw?: boolean;
3303
+ }): Promise<ExchangeAccount$1>;
726
3304
  declare class App {
727
- private app_db;
3305
+ app_db: AppDatabase;
3306
+ proxyOptions?: {
3307
+ proxy?: any;
3308
+ ignore_proxy?: boolean;
3309
+ canWithdraw?: boolean;
3310
+ };
728
3311
  private getCredentials;
729
- constructor(app_db: AppDatabase, getCredentials: (account: string, exchange: string) => (account: string, exchange: string) => Promise<{
3312
+ constructor(app_db: AppDatabase, getCredentials: (payload: {
3313
+ account: string;
3314
+ exchange: string;
3315
+ }) => Promise<{
730
3316
  api_key: string;
731
3317
  api_secret: string;
732
- }>);
3318
+ email: string;
3319
+ }>, proxyOptions?: {
3320
+ proxy?: any;
3321
+ ignore_proxy?: boolean;
3322
+ canWithdraw?: boolean;
3323
+ });
733
3324
  getExchangeAccount(account: ExchangeType): Promise<ExchangeAccount$1>;
734
3325
  syncAccount(payload: {
735
3326
  account: ExchangeType;
@@ -741,13 +3332,14 @@ declare class App {
741
3332
  expand?: {
742
3333
  config: ScheduledTrade;
743
3334
  account: ExchangeAccount;
3335
+ proxy: Proxy$1;
744
3336
  };
745
3337
  })[]>;
746
3338
  syncOrders(payload: {
747
3339
  account: ExchangeType;
748
3340
  symbol: string;
749
3341
  kind: "long" | "short";
750
- }): Promise<any>;
3342
+ }): Promise<boolean>;
751
3343
  cancelOrders(payload: {
752
3344
  account: ExchangeType;
753
3345
  symbol: string;
@@ -755,7 +3347,7 @@ declare class App {
755
3347
  price?: number;
756
3348
  all?: boolean;
757
3349
  stop?: boolean;
758
- }): Promise<{
3350
+ }): Promise<any[] | {
759
3351
  success: boolean;
760
3352
  message: string;
761
3353
  exchange_result?: undefined;
@@ -771,23 +3363,6 @@ declare class App {
771
3363
  message?: undefined;
772
3364
  exchange_result?: undefined;
773
3365
  }>;
774
- generateConfig(payload: {
775
- account: ExchangeType;
776
- symbol: string;
777
- kind: "long" | "short";
778
- update_orders?: boolean;
779
- place_orders?: boolean;
780
- }): Promise<any>;
781
- updateReduceRatio(payload: {
782
- account: ExchangeType;
783
- symbol: string;
784
- }): Promise<{
785
- long_position: any;
786
- short_position: any;
787
- long_db_position: any;
788
- short_db_position: any;
789
- balance: any;
790
- }>;
791
3366
  getWindingDownMarkets(): Promise<WindingDownMarket[]>;
792
3367
  updateSymbolConfigs(payload: {
793
3368
  configs: {
@@ -811,7 +3386,121 @@ declare class App {
811
3386
  getNonEssentialSymbols(): Promise<Set<any>>;
812
3387
  refreshAllPositionsWithSymbol(payload: {
813
3388
  symbol: string;
3389
+ callback?: (payload: {
3390
+ symbol: string;
3391
+ account: ExchangeType;
3392
+ }) => Promise<any>;
3393
+ }): Promise<void>;
3394
+ autoFollowPositions(): Promise<void>;
3395
+ getMoverExchangeInstances(): Promise<ExchangeAccount[]>;
3396
+ updateTpOnAllMarkets(callback?: (payload: {
3397
+ account: ExchangeType;
3398
+ }) => Promise<any>): Promise<void>;
3399
+ triggerMoverTask(payload: {
3400
+ callback: (params: {
3401
+ symbol: string;
3402
+ account: ExchangeType;
3403
+ }) => Promise<any>;
3404
+ removeCallback?: (params: {
3405
+ symbol: string;
3406
+ account: ExchangeType;
3407
+ }) => Promise<any>;
3408
+ }): Promise<void>;
3409
+ placeTrade(payload: {
3410
+ account: ExchangeType;
3411
+ symbol: string;
3412
+ kind: "long" | "short";
3413
+ place?: boolean;
3414
+ tp?: boolean;
3415
+ cancel?: boolean;
3416
+ raw?: boolean;
3417
+ }): Promise<any>;
3418
+ runDbStrategyAccounts(payload: {
3419
+ runningCallback: (params: {
3420
+ symbol: string;
3421
+ account: ExchangeType;
3422
+ }) => Promise<any>;
3423
+ notRunningCallback: (params: {
3424
+ symbol: string;
3425
+ account: ExchangeType;
3426
+ kind: "long" | "short";
3427
+ }) => Promise<any>;
814
3428
  }): Promise<void>;
3429
+ profitWithinGapStrategy(payload: {
3430
+ account: ExchangeType;
3431
+ symbol: string;
3432
+ }): Promise<{
3433
+ config_details: {
3434
+ app_config: {
3435
+ fee: number;
3436
+ risk_per_trade: number;
3437
+ risk_reward: number;
3438
+ symbol?: string;
3439
+ focus: number;
3440
+ budget: number;
3441
+ support: number;
3442
+ resistance: number;
3443
+ percent_change: number;
3444
+ tradeSplit?: number;
3445
+ take_profit?: number;
3446
+ kind: "long" | "short";
3447
+ entry: number;
3448
+ stop: number;
3449
+ min_size: number;
3450
+ price_places?: string;
3451
+ strategy?: "quantity" | "entry";
3452
+ as_array?: boolean;
3453
+ decimal_places?: string;
3454
+ min_profit?: number;
3455
+ raw?: boolean;
3456
+ gap?: number;
3457
+ rr?: number;
3458
+ max_size?: number;
3459
+ max_quantity?: number;
3460
+ kelly?: {
3461
+ use_kelly?: boolean;
3462
+ kelly_confidence_factor?: number;
3463
+ kelly_minimum_risk?: number;
3464
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3465
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3466
+ };
3467
+ };
3468
+ last_value: any;
3469
+ };
3470
+ }>;
3471
+ compoundLongTrade(payload: {
3472
+ main_account: ExchangeType & {
3473
+ symbol: string;
3474
+ };
3475
+ focus_account: ExchangeType & {
3476
+ symbol: string;
3477
+ };
3478
+ place?: boolean;
3479
+ rr?: number;
3480
+ }): Promise<{
3481
+ start_risk: number;
3482
+ short_profit: number;
3483
+ support: number;
3484
+ resistance: number;
3485
+ long_v: any;
3486
+ profit_percent: number;
3487
+ result: any;
3488
+ short_max_size: any;
3489
+ }>;
3490
+ reduceExistingPosition(payload: {
3491
+ main_account: ExchangeType & {
3492
+ symbol: string;
3493
+ kind?: "long" | "short";
3494
+ };
3495
+ reduce_account: ExchangeType & {
3496
+ symbol: string;
3497
+ };
3498
+ kind: "long" | "short";
3499
+ place?: boolean;
3500
+ increase?: boolean;
3501
+ full_ratio?: number;
3502
+ cancel_limit?: boolean;
3503
+ }): Promise<any>;
815
3504
  }
816
3505
  export declare function initApp(payload: {
817
3506
  db: {
@@ -819,15 +3508,50 @@ export declare function initApp(payload: {
819
3508
  email: string;
820
3509
  password: string;
821
3510
  };
822
- getCredentials: (account: string, exchange: string) => (account: string, exchange: string) => Promise<{
3511
+ password?: string;
3512
+ salt?: string;
3513
+ email?: string;
3514
+ getCredentials: (payload: {
3515
+ account: string;
3516
+ exchange: string;
3517
+ app_db: AppDatabase;
3518
+ }) => Promise<{
823
3519
  api_key: string;
824
3520
  api_secret: string;
3521
+ email: string;
825
3522
  }>;
3523
+ proxy?: any;
3524
+ ignore_proxy?: boolean;
3525
+ canWithdraw?: boolean;
3526
+ triggerToken?: string;
3527
+ }): Promise<App>;
3528
+ declare function getCredentials(payload: {
3529
+ account: string;
3530
+ exchange: string;
3531
+ app_db: AppDatabase;
3532
+ }): Promise<any>;
3533
+ export declare function initialize(payload: {
3534
+ password?: string;
3535
+ proxy?: any;
3536
+ ignore_proxy?: boolean;
3537
+ canWithdraw?: boolean;
826
3538
  }): Promise<App>;
827
- export declare function initialize(): Promise<App>;
3539
+
3540
+ declare namespace database {
3541
+ export { AppDatabase, ExchangeType, decryptObject, encryptObject, initPocketBaseClient };
3542
+ }
3543
+ declare namespace exchange_account {
3544
+ export { ExchangeAccount$1 as ExchangeAccount, getExchangeAccount };
3545
+ }
3546
+ declare namespace app {
3547
+ export { App, getCredentials, initApp, initialize };
3548
+ }
828
3549
 
829
3550
  export {
830
3551
  ExchangeAccount$1 as ExchangeAccount,
3552
+ app,
3553
+ database,
3554
+ exchange_account,
831
3555
  };
832
3556
 
833
3557
  export {};