@gbozee/ultimate 0.0.2-99 → 0.0.2-next.4

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
@@ -5,6 +5,21 @@ import PocketBase from 'pocketbase';
5
5
  import { RecordModel as PocketBaseRecordModel } from 'pocketbase';
6
6
  import { SocksProxyAgent } from 'socks-proxy-agent';
7
7
 
8
+ export interface GetEntriesParams {
9
+ kind: "long" | "short";
10
+ distribution: "arithmetic" | "geometric" | "normal" | "exponential" | "inverse-exponential";
11
+ margin_range: [
12
+ number,
13
+ number
14
+ ];
15
+ risk_reward: number;
16
+ price_places?: string;
17
+ distribution_params?: {
18
+ curveFactor?: number;
19
+ stdDevFactor?: number;
20
+ lambda?: number;
21
+ };
22
+ }
8
23
  export type RecordModel = PocketBaseRecordModel;
9
24
  export interface BaseSystemFields {
10
25
  id: string;
@@ -71,6 +86,32 @@ export interface ScheduledTrade extends BaseSystemFields {
71
86
  sell_ratio?: number;
72
87
  threshold_qty?: number;
73
88
  pause_tp?: boolean;
89
+ stop_percent?: number;
90
+ kelly?: {
91
+ use_kelly?: boolean;
92
+ kelly_confidence_factor?: number;
93
+ kelly_minimum_risk?: number;
94
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
95
+ };
96
+ distribution?: GetEntriesParams["distribution"];
97
+ distribution_params?: {
98
+ curveFactor?: number;
99
+ stdDevFactor?: number;
100
+ lambda?: number;
101
+ };
102
+ settings?: {
103
+ gap_trading?: {
104
+ entry_risk?: number;
105
+ hedge_stop_ratio?: number;
106
+ };
107
+ bad_hedge?: {
108
+ hedges_distribution?: GetEntriesParams["distribution"];
109
+ hedges_ratio?: number;
110
+ opposite_trade_distribution?: GetEntriesParams["distribution"];
111
+ opposite_trade_ratio?: number;
112
+ stop_loss?: number;
113
+ };
114
+ };
74
115
  }
75
116
  export interface AccountStrategy extends BaseSystemFields {
76
117
  account: string;
@@ -83,16 +124,13 @@ export interface AccountStrategy extends BaseSystemFields {
83
124
  running?: boolean;
84
125
  max_reward_factor?: number;
85
126
  follow?: boolean;
127
+ risk_reward?: number;
128
+ dynamic?: boolean;
86
129
  }
87
130
  interface Proxy$1 extends BaseSystemFields {
88
131
  ip_address?: string;
89
132
  type?: "http" | "socks5";
90
133
  }
91
- export interface TradeBlockTracking extends BaseSystemFields {
92
- account?: string;
93
- symbol?: string;
94
- running?: boolean;
95
- }
96
134
  export interface PositionsView {
97
135
  id: string;
98
136
  symbol?: any;
@@ -122,6 +160,26 @@ export interface PositionsView {
122
160
  follow?: boolean | 1 | 0;
123
161
  current_price?: number;
124
162
  usd_balance?: number;
163
+ tp?: {
164
+ price: number;
165
+ quantity: number;
166
+ };
167
+ next_risk?: number;
168
+ proxy?: string;
169
+ expand?: {
170
+ p_account?: ExchangeAccount;
171
+ b_config?: ScheduledTrade;
172
+ proxy?: Proxy$1;
173
+ account_strategy?: AccountStrategy;
174
+ compound_instance?: CompoundInstance;
175
+ support?: SupportTable;
176
+ symbol_config: SymbolConfig;
177
+ resistance?: SupportTable;
178
+ anchor?: Omit<PositionsView, "expand">;
179
+ record?: any;
180
+ };
181
+ pnl?: number;
182
+ support_price?: number;
125
183
  }
126
184
  export interface BullishMarket extends RecordModel {
127
185
  id: string;
@@ -133,26 +191,54 @@ export interface WindingDownMarket extends RecordModel {
133
191
  symbol: string;
134
192
  risk_reward: number;
135
193
  }
194
+ export interface Compounder extends BaseSystemFields {
195
+ risk?: number;
196
+ profit_percent?: number;
197
+ owner?: string;
198
+ completed?: boolean;
199
+ start_balance?: number;
200
+ starting_risk?: number;
201
+ fee_rate?: number;
202
+ }
203
+ export interface CompoundInstance extends BaseSystemFields {
204
+ ref?: string;
205
+ position?: string;
206
+ risk?: number;
207
+ hedged?: boolean;
208
+ loss?: number;
209
+ expand?: {
210
+ ref?: Compounder;
211
+ };
212
+ }
213
+ export interface SupportTable extends BaseSystemFields {
214
+ symbol?: string;
215
+ price?: number;
216
+ counter?: number;
217
+ last_updated?: string;
218
+ kind?: "long" | "short";
219
+ }
136
220
  export type GlobalConfig = {
137
- profit_percent: number;
221
+ profit_percent?: number;
138
222
  symbol: string;
139
- profit: number;
140
- risk: number;
141
- stop_percent: number;
223
+ profit?: number;
224
+ risk?: number;
225
+ stop_percent?: number;
142
226
  kind: "long" | "short";
143
- reduce_percent: number;
227
+ reduce_percent?: number;
144
228
  support: number;
145
229
  resistance: number;
146
230
  price_places: string;
147
231
  decimal_places: string;
148
- min_size: number;
149
- accounts: {
232
+ min_size?: number;
233
+ accounts?: {
150
234
  owner: string;
151
235
  exchange?: string;
152
236
  }[];
153
- risk_reward: number;
154
- reverse_factor: number;
237
+ risk_reward?: number;
238
+ reverse_factor?: number;
155
239
  leverage?: number;
240
+ max_quantity?: number;
241
+ fee_percent?: number;
156
242
  };
157
243
  interface Position$1 {
158
244
  id: number;
@@ -169,6 +255,7 @@ interface Position$1 {
169
255
  target_pnl?: number;
170
256
  reduce_ratio?: number;
171
257
  use_full?: boolean;
258
+ liquidation?: number;
172
259
  }
173
260
  export interface Account {
174
261
  id: number | string;
@@ -218,40 +305,86 @@ interface Order$1 {
218
305
  stop: number;
219
306
  triggerPrice?: number;
220
307
  }
308
+ export interface CandlestickAnalysisResult {
309
+ candlesticks: {
310
+ [key: string]: any[];
311
+ };
312
+ resistance: {
313
+ [key: string]: number;
314
+ };
315
+ support: {
316
+ [key: string]: number;
317
+ };
318
+ current_price: number;
319
+ minimum_weekly: number;
320
+ }
221
321
  declare abstract class BaseExchange {
222
322
  client: any;
323
+ name: string;
324
+ getCredentials: (payload: {
325
+ account: string;
326
+ }) => Promise<{
327
+ api_key: string;
328
+ api_secret: string;
329
+ email: string;
330
+ }>;
331
+ proxyAgent?: any;
332
+ remoteActionBaseUrl?: string;
223
333
  constructor(client: any);
224
- abstract rawCreateLimitPurchaseOrders(payload: {
334
+ protected abstract getPositionInfo(symbol: string): Promise<any>;
335
+ abstract cancelAllOrders(symbol: string, payload: {
336
+ type?: "limit" | "stop" | "tp";
337
+ side?: "buy" | "sell";
338
+ kind?: "long" | "short";
339
+ }): Promise<any>;
340
+ protected abstract getCurrentPrice(symbol: string): Promise<any>;
341
+ protected abstract getExchangeInfo(options: {
342
+ price_places?: string;
343
+ decimal_places?: string;
344
+ account: {
345
+ owner: string;
346
+ exchange: string;
347
+ };
348
+ symbol: string;
349
+ }): Promise<any>;
350
+ protected abstract _createLimitPurchaseOrders(payload: {
351
+ symbol: string;
352
+ orders: any[];
353
+ price_places?: string;
354
+ decimal_places?: string;
355
+ }): Promise<any>;
356
+ rawCreateLimitPurchaseOrders(payload: {
225
357
  symbol: string;
226
358
  orders: Order$1[];
227
359
  price_places?: string;
228
360
  decimal_places?: string;
229
361
  }): Promise<any>;
230
- abstract placeStopOrders(payload: {
362
+ placeStopOrders(payload: {
231
363
  symbol: string;
232
364
  quantity: number;
233
365
  kind: "long" | "short";
234
366
  stop: number;
235
367
  price_places?: string;
236
368
  decimal_places?: string;
369
+ hedge?: boolean;
237
370
  place?: boolean;
238
371
  }): Promise<any>;
239
- abstract bulkPlaceLimitOrders(payload: {
240
- orders: any[];
372
+ bulkPlaceLimitOrders(payload: {
373
+ orders: Order$1[];
241
374
  kind: "long" | "short";
242
375
  decimal_places?: string;
243
376
  price_places?: string;
244
377
  symbol: string;
245
378
  place?: boolean;
246
- }): Promise<any>;
247
- abstract get_current_price(symbol: string): Promise<any>;
379
+ }): Promise<any[]>;
380
+ get_current_price(symbol: string): Promise<any>;
248
381
  abstract analyzeCharts(payload: {
249
382
  symbol: string;
250
383
  chartType: any;
251
- count: number;
384
+ limit: number;
252
385
  raw?: boolean;
253
386
  }): Promise<any>;
254
- abstract getExchangeAccountInfo(options: {
387
+ getExchangeAccountInfo(options: {
255
388
  price_places?: string;
256
389
  decimal_places?: string;
257
390
  account: {
@@ -260,11 +393,27 @@ declare abstract class BaseExchange {
260
393
  };
261
394
  symbol: string;
262
395
  }): Promise<any>;
263
- abstract cancelOrders(payload: {
396
+ protected abstract _cancelOrders(payload: {
397
+ symbol: string;
398
+ orders: Array<{
399
+ orderId?: any;
400
+ clientOrderId?: any;
401
+ }>;
402
+ }): Promise<any>;
403
+ cancelOrders(payload: {
264
404
  symbol: string;
265
405
  orders: number[];
266
406
  }): Promise<any>;
267
- abstract placeTpOrder(payload: {
407
+ protected abstract _placeTpOrder(payload: {
408
+ symbol: string;
409
+ tp: number;
410
+ kind: "long" | "short";
411
+ cancel?: boolean;
412
+ quantity?: number;
413
+ price_places?: string;
414
+ decimal_places?: string;
415
+ }): Promise<any>;
416
+ placeTpOrder(payload: {
268
417
  symbol: string;
269
418
  take_profit: number;
270
419
  kind: "long" | "short";
@@ -273,7 +422,18 @@ declare abstract class BaseExchange {
273
422
  price_places?: string;
274
423
  decimal_places?: string;
275
424
  }): Promise<any>;
276
- abstract placeLimitOrder(payload: {
425
+ protected abstract placeLimitOrders(payload: {
426
+ symbol: string;
427
+ orders: Array<{
428
+ entry: number;
429
+ quantity: number;
430
+ }>;
431
+ kind: "long" | "short";
432
+ cancel?: boolean;
433
+ price_places?: string;
434
+ decimal_places?: string;
435
+ }): Promise<any>;
436
+ placeLimitOrder(payload: {
277
437
  symbol: string;
278
438
  quantity: number;
279
439
  kind: "long" | "short";
@@ -281,13 +441,27 @@ declare abstract class BaseExchange {
281
441
  price_places?: string;
282
442
  decimal_places?: string;
283
443
  }): Promise<any>;
284
- abstract placeStopOrder(payload: {
444
+ protected abstract _placeStopOrder(payload: {
445
+ symbol: string;
446
+ stop: number;
447
+ quantity: number;
448
+ kind: "long" | "short";
449
+ price_places?: string;
450
+ decimal_places?: string;
451
+ final_stop: number;
452
+ cancel?: boolean;
453
+ is_limit?: boolean;
454
+ current_price: number;
455
+ hedge?: boolean;
456
+ }): Promise<any>;
457
+ placeStopOrder(payload: {
285
458
  symbol: string;
286
459
  stop: number;
287
460
  quantity: number;
288
461
  kind: "long" | "short";
289
462
  price_places?: string;
290
463
  decimal_places?: string;
464
+ hedge?: boolean;
291
465
  }): Promise<any>;
292
466
  abstract setLeverage(payload: {
293
467
  symbol: string;
@@ -302,14 +476,15 @@ declare abstract class BaseExchange {
302
476
  movePercent: number;
303
477
  include_delisted?: boolean;
304
478
  }): Promise<any>;
305
- abstract closePosition(payload: {
479
+ closePosition(payload: {
306
480
  symbol: string;
307
481
  kind: "long" | "short";
308
482
  price_places?: string;
309
483
  decimal_places?: string;
310
484
  }): Promise<any>;
311
- abstract getAllOpenSymbols(): Promise<string[]>;
312
- abstract createLimitPurchaseOrders(payload: {
485
+ protected abstract getAllOpenOrders(): Promise<any>;
486
+ getAllOpenSymbols(): Promise<unknown[]>;
487
+ createLimitPurchaseOrders(payload: {
313
488
  orders: any[];
314
489
  kind: "long" | "short";
315
490
  decimal_places?: string;
@@ -330,12 +505,13 @@ declare abstract class BaseExchange {
330
505
  asset: string;
331
506
  amount: number;
332
507
  }): Promise<any>;
333
- abstract placeMarketOrder(payload: {
508
+ placeMarketOrder(payload: {
334
509
  symbol: string;
335
510
  kind: "long" | "short";
336
511
  quantity: number;
337
512
  price_places?: string;
338
513
  decimal_places?: string;
514
+ close?: boolean;
339
515
  }): Promise<any>;
340
516
  customStopLoss(payload: {
341
517
  price_places: string;
@@ -345,8 +521,46 @@ declare abstract class BaseExchange {
345
521
  stop: number;
346
522
  quantity: number;
347
523
  increase?: boolean;
524
+ place?: boolean;
525
+ increase_ratio?: number;
526
+ }): Promise<any>;
527
+ abstract getOpenOrders(payload: {
528
+ symbol: string;
529
+ }): Promise<any>;
530
+ placeBadStopEntry(payload: {
531
+ symbol: string;
532
+ orders: Order$1[];
533
+ price_places?: string;
534
+ decimal_places?: string;
348
535
  }): Promise<any>;
536
+ analyzeCandlesticks(payload: {
537
+ symbol: string;
538
+ }): Promise<CandlestickAnalysisResult>;
539
+ setAccountDetails(payload: {
540
+ getCredentials: (payload: {
541
+ account: string;
542
+ }) => Promise<{
543
+ api_key: string;
544
+ api_secret: string;
545
+ email: string;
546
+ }>;
547
+ proxyAgent?: any;
548
+ remoteActionBaseUrl?: string;
549
+ }): void;
550
+ getSymbolInformation(payload: {
551
+ symbol: string;
552
+ variant?: "full" | "short";
553
+ }): Promise<{
554
+ candlesticks: Record<string, any[]>;
555
+ resistance: Record<string, number>;
556
+ support: Record<string, number>;
557
+ currentPrice: number;
558
+ minimumWeekly?: number;
559
+ lowest?: number;
560
+ }>;
349
561
  }
562
+ declare function encryptObject(obj: any, password: string): string;
563
+ declare function decryptObject(encryptedString: string, password: string): any;
350
564
  declare function initPocketBaseClient(proxy_credentials: {
351
565
  host: string;
352
566
  email: string;
@@ -359,14 +573,40 @@ export type ExchangeType = {
359
573
  };
360
574
  export declare class AppDatabase {
361
575
  pb: PocketBase;
362
- constructor(pb: PocketBase);
363
- getCredentials(password: string): any;
364
- saveCredentials(password: string, credentials: any): Promise<void>;
365
- addNewCredential(password: string, payload: {
366
- name: string;
367
- exchange: string;
368
- api_key: string;
369
- api_secret: string;
576
+ email?: string;
577
+ salt?: string;
578
+ constructor(pb: PocketBase, payload: {
579
+ email?: string;
580
+ salt?: string;
581
+ });
582
+ getUserByEmail(): Promise<import("pocketbase").RecordModel>;
583
+ verifyUserPassword(password: string): Promise<boolean>;
584
+ generateUserPassword(): Promise<boolean>;
585
+ getUserCredentials(): Promise<any>;
586
+ getCredentials(payload: {
587
+ password?: string;
588
+ }): Promise<any>;
589
+ saveCredentials(params: {
590
+ password?: string;
591
+ credentials: any;
592
+ }): Promise<import("pocketbase").RecordModel>;
593
+ changeUserPassword(payload: {
594
+ password: string;
595
+ }): Promise<boolean>;
596
+ verifyAdminPassword(password: string): Promise<boolean>;
597
+ setAdminPassword(payload: {
598
+ password: string;
599
+ salt: string;
600
+ }): Promise<boolean>;
601
+ addNewCredential(params: {
602
+ password?: string;
603
+ payload: {
604
+ name: string;
605
+ email: string;
606
+ exchange: string;
607
+ api_key: string;
608
+ api_secret: string;
609
+ };
370
610
  }): Promise<void>;
371
611
  getAccountWithActivePositions(): Promise<import("pocketbase").RecordModel[]>;
372
612
  getAllSymbolsFromPositions(options?: {
@@ -395,6 +635,12 @@ export declare class AppDatabase {
395
635
  proxy: Proxy$1;
396
636
  };
397
637
  }>;
638
+ get positionExpand(): string;
639
+ fetchCentralPositions(payload: {
640
+ asset?: string;
641
+ symbol?: string;
642
+ customFilter?: string;
643
+ }): Promise<import("pocketbase").RecordModel[]>;
398
644
  getPositions(options: {
399
645
  account?: ExchangeType;
400
646
  symbol?: string;
@@ -404,6 +650,7 @@ export declare class AppDatabase {
404
650
  expand?: {
405
651
  config: ScheduledTrade;
406
652
  account: ExchangeAccount;
653
+ proxy: Proxy$1;
407
654
  };
408
655
  })[]>;
409
656
  private _createOrUpdatePosition;
@@ -416,14 +663,11 @@ export declare class AppDatabase {
416
663
  expand?: {
417
664
  config: ScheduledTrade;
418
665
  account: ExchangeAccount;
666
+ proxy: Proxy$1;
419
667
  };
420
668
  })[]>;
421
669
  update_db_position(position: any, payload: any): Promise<import("pocketbase").RecordModel>;
422
670
  getSymbolConfigFromDB(symbol: string): Promise<SymbolConfig>;
423
- getRunningInstanceFromDB(account: ExchangeType, symbol: string, options?: {
424
- delay?: number;
425
- }): Promise<TradeBlockTracking>;
426
- updateRunningInstance(id: string, running: boolean): Promise<import("pocketbase").RecordModel>;
427
671
  getOrders(account: ExchangeType, options: {
428
672
  symbol: string;
429
673
  kind: "long" | "short";
@@ -455,17 +699,19 @@ export declare class AppDatabase {
455
699
  stop: number;
456
700
  order_id: string;
457
701
  triggerPrice?: number;
702
+ clientOrderId?: string;
458
703
  }>;
459
704
  }): Promise<void>;
460
705
  cancelLimitOrders(payload: {
461
706
  symbol: string;
462
707
  kind: "long" | "short";
463
708
  account: ExchangeType;
709
+ raw?: boolean;
464
710
  cancelExchangeOrders: (payload: {
465
711
  symbol: string;
466
712
  orders: number[];
467
713
  }) => Promise<any>;
468
- }): Promise<void>;
714
+ }): Promise<any[]>;
469
715
  cancelOrders(payload: {
470
716
  cancelExchangeOrders: (payload: {
471
717
  symbol: string;
@@ -508,13 +754,14 @@ export declare class AppDatabase {
508
754
  profit_percent?: number;
509
755
  place_tp?: boolean;
510
756
  profit?: number;
757
+ reduce_ratio?: number;
511
758
  }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
512
759
  getPositionConfig(payload: {
513
760
  symbol: string;
514
761
  kind: "long" | "short";
515
762
  account: ExchangeType;
516
763
  }): Promise<ScheduledTrade | null>;
517
- getRunningAccountStrategies(): Promise<(AccountStrategy & {
764
+ getRunningAccountStrategies(filter?: string): Promise<(AccountStrategy & {
518
765
  expand?: {
519
766
  account: ExchangeAccount;
520
767
  };
@@ -556,10 +803,72 @@ export declare class AppDatabase {
556
803
  } | SymbolConfig[]>;
557
804
  unwindSymbolFromDB(symbol: string): Promise<boolean>;
558
805
  hasExistingPosition(symbol: string): Promise<import("pocketbase").RecordModel[]>;
806
+ getPositionWithLowestNextOrder(options: {
807
+ symbol?: string;
808
+ kind: "long" | "short";
809
+ asset?: string;
810
+ exclude?: ExchangeType[];
811
+ }): Promise<PositionsView | null>;
559
812
  hasExistingOrders(symbol: string): Promise<import("pocketbase").RecordModel[]>;
560
813
  removeSymbolFromUnwindingMarkets(symbol: string): Promise<boolean>;
561
814
  removePosition(position: any): Promise<void>;
562
815
  removePositionConfig(position: any): Promise<void>;
816
+ getConfigProfiles(payload: {
817
+ config_id: string;
818
+ }): Promise<{
819
+ id: any;
820
+ entry: any;
821
+ stop: any;
822
+ kind: "long" | "short";
823
+ risk_reward: any;
824
+ risk: any;
825
+ profit_percent: any;
826
+ }[]>;
827
+ editConfigProfile(payload: {
828
+ id: string;
829
+ params: {
830
+ entry?: number;
831
+ stop?: number;
832
+ risk_reward?: number;
833
+ risk?: number;
834
+ profit_percent?: number;
835
+ };
836
+ }): Promise<void>;
837
+ createConfigProfile(payload: {
838
+ config_id: string;
839
+ symbol: string;
840
+ params: {
841
+ entry: number;
842
+ stop: number;
843
+ kind: "long" | "short";
844
+ risk_reward: number;
845
+ risk: number;
846
+ profit_percent: number;
847
+ };
848
+ }): Promise<void>;
849
+ getCompoundInstance(payload: {
850
+ position: Position$1;
851
+ }): Promise<CompoundInstance & {
852
+ expand: {
853
+ ref: Compounder;
854
+ };
855
+ }>;
856
+ getSupportTable(payload: {
857
+ symbol: string;
858
+ kind: "long" | "short";
859
+ }): Promise<SupportTable>;
860
+ updateCompoundInstance(payload: {
861
+ id: string;
862
+ params: any;
863
+ }): Promise<import("pocketbase").RecordModel>;
864
+ getPositionsByAssetPair(payload: {
865
+ asset: string;
866
+ symbol?: string;
867
+ isCompound?: boolean;
868
+ }): Promise<{
869
+ pairObject: any;
870
+ asset: string;
871
+ }>;
563
872
  }
564
873
  export type StrategyPosition = {
565
874
  entry: number;
@@ -746,15 +1055,48 @@ export declare class Strategy {
746
1055
  gap?: number;
747
1056
  rr?: number;
748
1057
  max_size?: number;
1058
+ max_quantity?: number;
1059
+ kelly?: {
1060
+ use_kelly?: boolean;
1061
+ kelly_confidence_factor?: number;
1062
+ kelly_minimum_risk?: number;
1063
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1064
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1065
+ };
1066
+ distribution?: GetEntriesParams["distribution"];
1067
+ distribution_params?: {
1068
+ curveFactor?: number;
1069
+ stdDevFactor?: number;
1070
+ lambda?: number;
1071
+ };
749
1072
  };
750
1073
  identifyGapConfig(payload: {
751
1074
  factor?: number;
1075
+ sell_factor?: number;
1076
+ kind?: "long" | "short";
1077
+ risk?: number;
752
1078
  }): {
753
- long_tp: number;
754
- short_tp: number;
755
- short_to_reduce: number;
756
- long_to_reduce: number;
757
- to_sell: {
1079
+ profit_percent: {
1080
+ long: number;
1081
+ short: number;
1082
+ };
1083
+ risk: {
1084
+ short: number;
1085
+ long: number;
1086
+ };
1087
+ take_profit: {
1088
+ long: number;
1089
+ short: number;
1090
+ };
1091
+ to_reduce: {
1092
+ short: number;
1093
+ long: number;
1094
+ };
1095
+ full_reduce: {
1096
+ short: number;
1097
+ long: number;
1098
+ };
1099
+ sell_quantity: {
758
1100
  short: number;
759
1101
  long: number;
760
1102
  };
@@ -769,6 +1111,7 @@ export declare class Strategy {
769
1111
  }): {
770
1112
  pnl: number;
771
1113
  loss: number;
1114
+ full_loss: number;
772
1115
  original_pnl: number;
773
1116
  reward_factor: number;
774
1117
  profit_percent: number;
@@ -778,8 +1121,57 @@ export declare class Strategy {
778
1121
  price_places: string;
779
1122
  decimal_places: string;
780
1123
  };
1124
+ simulateGapReduction(payload: {
1125
+ iterations?: number;
1126
+ factor?: number;
1127
+ direction: "long" | "short";
1128
+ kind?: "long" | "short";
1129
+ risk?: number;
1130
+ sell_factor?: number;
1131
+ }): {
1132
+ results: {
1133
+ profit_percent: {
1134
+ long: number;
1135
+ short: number;
1136
+ };
1137
+ risk: {
1138
+ short: number;
1139
+ long: number;
1140
+ };
1141
+ take_profit: {
1142
+ long: number;
1143
+ short: number;
1144
+ };
1145
+ sell_quantity: {
1146
+ short: number;
1147
+ long: number;
1148
+ };
1149
+ gap_loss: number;
1150
+ position: {
1151
+ long: {
1152
+ entry: number;
1153
+ quantity: number;
1154
+ };
1155
+ short: {
1156
+ entry: number;
1157
+ quantity: number;
1158
+ };
1159
+ };
1160
+ }[];
1161
+ quantity: number;
1162
+ };
781
1163
  }
1164
+ export declare function determine_average_entry_and_size(orders: Array<{
1165
+ price: number;
1166
+ quantity: number;
1167
+ }>, places?: string, price_places?: string): {
1168
+ entry: number;
1169
+ price: number;
1170
+ quantity: number;
1171
+ };
1172
+ export declare const createArray: (start: number, stop: number, step: number) => number[];
782
1173
  export type SignalConfigType = {
1174
+ symbol?: string;
783
1175
  focus: number;
784
1176
  budget: number;
785
1177
  percent_change?: number;
@@ -800,12 +1192,42 @@ export type SignalConfigType = {
800
1192
  first_order_size?: number;
801
1193
  gap?: number;
802
1194
  max_size?: number;
1195
+ use_kelly?: boolean;
1196
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1197
+ kelly_confidence_factor?: number;
1198
+ kelly_minimum_risk?: number;
1199
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1200
+ full_distribution?: {
1201
+ long: GetEntriesParams["distribution"];
1202
+ short: GetEntriesParams["distribution"];
1203
+ };
1204
+ max_quantity?: number;
1205
+ distribution_params?: {
1206
+ curveFactor?: number;
1207
+ stdDevFactor?: number;
1208
+ lambda?: number;
1209
+ };
1210
+ use_progressive_risk?: boolean;
1211
+ risk_distribution?: {
1212
+ enabled: boolean;
1213
+ total_risk_budget: number;
1214
+ risk_reward: number;
1215
+ buckets: Array<{
1216
+ zone_percentage: number;
1217
+ risk_percentage: number;
1218
+ }>;
1219
+ };
803
1220
  };
804
1221
  declare class Signal {
805
1222
  focus: number;
806
1223
  budget: number;
807
1224
  percent_change: number;
808
1225
  price_places: string;
1226
+ distribution_params: {
1227
+ curveFactor?: number;
1228
+ stdDevFactor?: number;
1229
+ lambda?: number;
1230
+ };
809
1231
  decimal_places: string;
810
1232
  zone_risk: number;
811
1233
  fee: number;
@@ -822,8 +1244,29 @@ declare class Signal {
822
1244
  first_order_size: number;
823
1245
  gap: number;
824
1246
  max_size: number;
825
- constructor({ focus, 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, }: SignalConfigType);
826
- build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, }: {
1247
+ use_kelly: boolean;
1248
+ kelly_prediction_model: "exponential" | "normal" | "uniform";
1249
+ kelly_confidence_factor: number;
1250
+ kelly_minimum_risk: number;
1251
+ kelly_func: "theoretical" | "position_based" | "theoretical_fixed";
1252
+ symbol?: string;
1253
+ distribution: {
1254
+ long: GetEntriesParams["distribution"];
1255
+ short: GetEntriesParams["distribution"];
1256
+ };
1257
+ use_progressive_risk?: boolean;
1258
+ risk_distribution?: {
1259
+ enabled: boolean;
1260
+ total_risk_budget: number;
1261
+ risk_reward: number;
1262
+ buckets: Array<{
1263
+ zone_percentage: number;
1264
+ risk_percentage: number;
1265
+ }>;
1266
+ };
1267
+ max_quantity: number;
1268
+ constructor({ focus, symbol, budget, percent_change, price_places, decimal_places, zone_risk, fee, support, risk_reward, resistance, risk_per_trade, increase_size, additional_increase, minimum_pnl, take_profit, increase_position, minimum_size, first_order_size, gap, max_size, use_kelly, kelly_prediction_model, kelly_confidence_factor, kelly_minimum_risk, kelly_func, full_distribution, max_quantity, distribution_params, use_progressive_risk, risk_distribution, }: SignalConfigType);
1269
+ build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, distribution, distribution_params, }: {
827
1270
  take_profit?: number;
828
1271
  no_of_trades?: number;
829
1272
  current_price: number;
@@ -832,6 +1275,17 @@ declare class Signal {
832
1275
  risk: number;
833
1276
  stop_percent?: number;
834
1277
  pnl?: number;
1278
+ distribution?: GetEntriesParams["distribution"];
1279
+ distribution_params?: {
1280
+ curveFactor?: number;
1281
+ stdDevFactor?: number;
1282
+ lambda?: number;
1283
+ use_progressive?: boolean;
1284
+ buckets?: Array<{
1285
+ zone_percentage: number;
1286
+ risk_percentage: number;
1287
+ }>;
1288
+ };
835
1289
  }): any;
836
1290
  get risk(): number;
837
1291
  get min_trades(): number;
@@ -865,6 +1319,11 @@ declare class Signal {
865
1319
  kind?: "long" | "short";
866
1320
  limit?: boolean;
867
1321
  }): any;
1322
+ get_future_zones_simple({ current_price, kind, raw, }: {
1323
+ raw?: boolean;
1324
+ current_price: number;
1325
+ kind?: "long" | "short";
1326
+ }): number[];
868
1327
  get_future_zones({ current_price, kind, raw, }: {
869
1328
  raw?: boolean;
870
1329
  current_price: number;
@@ -876,6 +1335,14 @@ declare class Signal {
876
1335
  kind?: "long" | "short";
877
1336
  }): number[][];
878
1337
  get_margin_range(current_price: number, kind?: string): number[];
1338
+ /**
1339
+ * Helper function to calculate zone-specific risk based on progressive risk distribution
1340
+ * @param index - The index of the current zone
1341
+ * @param totalZones - Total number of zones
1342
+ * @param account - Account configuration with risk settings
1343
+ * @returns The risk amount for the specific zone
1344
+ */
1345
+ private getZoneRisk;
879
1346
  process_orders({ current_price, stop_loss, trade_zones, kind, }: {
880
1347
  current_price: number;
881
1348
  stop_loss: number;
@@ -908,15 +1375,6 @@ declare class Signal {
908
1375
  };
909
1376
  to_df(currentPrice: number, places?: string): number;
910
1377
  }
911
- export declare function determine_average_entry_and_size(orders: Array<{
912
- price: number;
913
- quantity: number;
914
- }>, places?: string, price_places?: string): {
915
- entry: number;
916
- price: number;
917
- quantity: number;
918
- };
919
- export declare const createArray: (start: number, stop: number, step: number) => number[];
920
1378
  export type AppConfig = {
921
1379
  fee: number;
922
1380
  risk_per_trade: number;
@@ -944,6 +1402,20 @@ export type AppConfig = {
944
1402
  max_size?: number;
945
1403
  last_value?: any;
946
1404
  entries?: any[];
1405
+ max_quantity?: number;
1406
+ kelly?: {
1407
+ use_kelly?: boolean;
1408
+ kelly_confidence_factor?: number;
1409
+ kelly_minimum_risk?: number;
1410
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1411
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1412
+ };
1413
+ distribution?: GetEntriesParams["distribution"];
1414
+ distribution_params?: {
1415
+ curveFactor?: number;
1416
+ stdDevFactor?: number;
1417
+ lambda?: number;
1418
+ };
947
1419
  };
948
1420
  export type ExtendConfigType = {
949
1421
  take_profit?: number;
@@ -960,8 +1432,26 @@ export type ExtendConfigType = {
960
1432
  kind?: "long" | "short";
961
1433
  gap?: number;
962
1434
  rr?: number;
1435
+ min_avg_size?: number;
1436
+ use_kelly?: boolean;
1437
+ kelly_confidence_factor?: number;
1438
+ kelly_minimum_risk?: number;
1439
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1440
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1441
+ distribution?: GetEntriesParams["distribution"];
1442
+ distribution_params?: {
1443
+ curveFactor?: number;
1444
+ stdDevFactor?: number;
1445
+ lambda?: number;
1446
+ buckets?: Array<{
1447
+ zone_percentage: number;
1448
+ risk_percentage: number;
1449
+ }>;
1450
+ use_progressive?: boolean;
1451
+ };
1452
+ use_progressive_risk?: boolean;
963
1453
  };
964
- export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, }: ExtendConfigType): any[] | Signal;
1454
+ export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, use_kelly, kelly_confidence_factor, kelly_minimum_risk, kelly_prediction_model, kelly_func, min_avg_size, distribution, distribution_params, use_progressive_risk, }: ExtendConfigType): any[] | Signal;
965
1455
  export declare function buildAvg({ _trades, kind, }: {
966
1456
  _trades: any[];
967
1457
  kind: "long" | "short";
@@ -971,6 +1461,17 @@ export declare function get_app_config_and_max_size(config: GlobalConfig, payloa
971
1461
  entry: number;
972
1462
  stop: number;
973
1463
  kind: "long" | "short";
1464
+ use_kelly?: boolean;
1465
+ kelly_confidence_factor?: number;
1466
+ kelly_minimum_risk?: number;
1467
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1468
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1469
+ distribution?: GetEntriesParams["distribution"];
1470
+ distribution_params?: {
1471
+ curveFactor?: number;
1472
+ stdDevFactor?: number;
1473
+ lambda?: number;
1474
+ };
974
1475
  }): {
975
1476
  app_config: AppConfig;
976
1477
  max_size: any;
@@ -990,11 +1491,28 @@ export declare function buildAppConfig(config: GlobalConfig, payload: {
990
1491
  risk: number;
991
1492
  symbol: string;
992
1493
  profit?: number;
1494
+ use_kelly?: boolean;
1495
+ kelly_confidence_factor?: number;
1496
+ kelly_minimum_risk?: number;
1497
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1498
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1499
+ distribution?: GetEntriesParams["distribution"];
1500
+ distribution_params?: {
1501
+ curveFactor?: number;
1502
+ stdDevFactor?: number;
1503
+ lambda?: number;
1504
+ };
993
1505
  }): AppConfig;
994
1506
  export declare function getOptimumStopAndRisk(app_config: AppConfig, params: {
995
1507
  max_size: number;
996
1508
  target_stop: number;
997
1509
  highest_risk?: number;
1510
+ distribution?: GetEntriesParams["distribution"];
1511
+ distribution_params?: {
1512
+ curveFactor?: number;
1513
+ stdDevFactor?: number;
1514
+ lambda?: number;
1515
+ };
998
1516
  }): {
999
1517
  optimal_stop: number;
1000
1518
  optimal_risk: number;
@@ -1051,33 +1569,90 @@ export declare function generateOptimumAppConfig(config: GlobalConfig, payload:
1051
1569
  risk_reward: number;
1052
1570
  start_risk: number;
1053
1571
  max_risk?: number;
1572
+ distribution?: GetEntriesParams["distribution"];
1573
+ distribution_params?: {
1574
+ curveFactor?: number;
1575
+ stdDevFactor?: number;
1576
+ lambda?: number;
1577
+ };
1054
1578
  }, position: {
1055
1579
  entry: number;
1056
1580
  quantity: number;
1057
1581
  kind: "long" | "short";
1058
1582
  }): AppConfig | null;
1059
- export declare function determineOptimumReward(app_config: AppConfig, increase?: boolean, low_range?: number, high_range?: number): number | {
1583
+ export declare function determineOptimumReward(payload: {
1584
+ app_config: AppConfig;
1585
+ increase?: boolean;
1586
+ low_range?: number;
1587
+ high_range?: number;
1588
+ target_loss?: number;
1589
+ distribution?: GetEntriesParams["distribution"];
1590
+ distribution_params?: {
1591
+ curveFactor?: number;
1592
+ stdDevFactor?: number;
1593
+ lambda?: number;
1594
+ };
1595
+ max_size?: number;
1596
+ }): number | {
1060
1597
  result: any[];
1061
1598
  value: number;
1062
1599
  total: number;
1063
1600
  risk_per_trade: number;
1064
1601
  max: number;
1065
1602
  min: number;
1603
+ avg_size: any;
1066
1604
  neg_pnl: any;
1067
1605
  entry: any;
1068
1606
  };
1069
- export declare function computeRiskReward(payload: {
1070
- app_config: AppConfig;
1607
+ export declare function determineOptimumRisk(config: GlobalConfig, payload: {
1071
1608
  entry: number;
1072
1609
  stop: number;
1073
- risk_per_trade: number;
1074
- }): number | {
1075
- result: any[];
1610
+ risk_reward: number;
1611
+ risk: number;
1612
+ symbol: string;
1613
+ distribution?: GetEntriesParams["distribution"];
1614
+ distribution_params?: {
1615
+ curveFactor?: number;
1616
+ stdDevFactor?: number;
1617
+ lambda?: number;
1618
+ };
1619
+ }, params: {
1620
+ highest_risk: number;
1621
+ tolerance?: number;
1622
+ max_iterations?: number;
1623
+ }): {
1624
+ optimal_risk: number;
1625
+ achieved_neg_pnl: number;
1626
+ target_neg_pnl: number;
1627
+ difference: number;
1628
+ iterations: number;
1629
+ converged: boolean;
1630
+ last_value: any;
1631
+ entries: any[];
1632
+ app_config: AppConfig;
1633
+ };
1634
+ export declare function computeRiskReward(payload: {
1635
+ app_config: AppConfig;
1636
+ entry: number;
1637
+ stop: number;
1638
+ risk_per_trade: number;
1639
+ target_loss?: number;
1640
+ distribution?: GetEntriesParams["distribution"];
1641
+ distribution_params?: {
1642
+ curveFactor?: number;
1643
+ stdDevFactor?: number;
1644
+ lambda?: number;
1645
+ };
1646
+ high_range?: number;
1647
+ max_size?: number;
1648
+ }): number | {
1649
+ result: any[];
1076
1650
  value: number;
1077
1651
  total: number;
1078
1652
  risk_per_trade: number;
1079
1653
  max: number;
1080
1654
  min: number;
1655
+ avg_size: any;
1081
1656
  neg_pnl: any;
1082
1657
  entry: any;
1083
1658
  };
@@ -1086,6 +1661,17 @@ export declare function getRiskReward(payload: {
1086
1661
  stop: number;
1087
1662
  risk: number;
1088
1663
  global_config: GlobalConfig;
1664
+ force_exact_risk?: boolean;
1665
+ target_loss?: number;
1666
+ max_size?: number;
1667
+ distribution?: GetEntriesParams["distribution"];
1668
+ distribution_params?: {
1669
+ curveFactor?: number;
1670
+ stdDevFactor?: number;
1671
+ lambda?: number;
1672
+ };
1673
+ risk_factor?: number;
1674
+ high_range?: number;
1089
1675
  }): any;
1090
1676
  export declare function computeProfitDetail(payload: {
1091
1677
  focus_position: {
@@ -1095,11 +1681,12 @@ export declare function computeProfitDetail(payload: {
1095
1681
  avg_qty: number;
1096
1682
  avg_price: number;
1097
1683
  };
1098
- strategy: {
1684
+ strategy?: {
1099
1685
  reward_factor: number;
1100
1686
  max_reward_factor: number;
1101
1687
  risk: number;
1102
1688
  };
1689
+ pnl: number;
1103
1690
  reduce_position?: {
1104
1691
  kind: "long" | "short";
1105
1692
  entry: number;
@@ -1116,11 +1703,13 @@ export declare function computeProfitDetail(payload: {
1116
1703
  quantity: number;
1117
1704
  };
1118
1705
  };
1706
+ full_ratio?: number;
1119
1707
  price_places?: string;
1120
1708
  decimal_places?: string;
1121
1709
  }): {
1122
1710
  pnl: number;
1123
1711
  loss: number;
1712
+ full_loss: number;
1124
1713
  original_pnl: number;
1125
1714
  reward_factor: number;
1126
1715
  profit_percent: number;
@@ -1139,40 +1728,656 @@ export declare function generateGapTp(payload: {
1139
1728
  entry: number;
1140
1729
  quantity: number;
1141
1730
  };
1731
+ risk?: number;
1732
+ kind?: "long" | "short";
1142
1733
  factor?: number;
1734
+ sell_factor?: number;
1143
1735
  price_places?: string;
1144
1736
  decimal_places?: string;
1145
1737
  }): {
1146
- long_tp: number;
1147
- short_tp: number;
1148
- short_to_reduce: number;
1149
- long_to_reduce: number;
1150
- to_sell: {
1738
+ profit_percent: {
1739
+ long: number;
1740
+ short: number;
1741
+ };
1742
+ risk: {
1743
+ short: number;
1744
+ long: number;
1745
+ };
1746
+ take_profit: {
1747
+ long: number;
1748
+ short: number;
1749
+ };
1750
+ to_reduce: {
1151
1751
  short: number;
1152
1752
  long: number;
1153
1753
  };
1154
- gap: number;
1155
- gap_loss: number;
1754
+ full_reduce: {
1755
+ short: number;
1756
+ long: number;
1757
+ };
1758
+ sell_quantity: {
1759
+ short: number;
1760
+ long: number;
1761
+ };
1762
+ gap: number;
1763
+ gap_loss: number;
1764
+ };
1765
+ export declare function calculateFactorFromTakeProfit(payload: {
1766
+ long: {
1767
+ entry: number;
1768
+ quantity: number;
1769
+ };
1770
+ short: {
1771
+ entry: number;
1772
+ quantity: number;
1773
+ };
1774
+ knownTp: number;
1775
+ tpType: "long" | "short";
1776
+ price_places?: string;
1777
+ }): number;
1778
+ export declare function calculateFactorFromSellQuantity(payload: {
1779
+ long: {
1780
+ entry: number;
1781
+ quantity: number;
1782
+ };
1783
+ short: {
1784
+ entry: number;
1785
+ quantity: number;
1786
+ };
1787
+ knownSellQuantity: number;
1788
+ sellType: "long" | "short";
1789
+ sell_factor?: number;
1790
+ price_places?: string;
1791
+ decimal_places?: string;
1792
+ }): number;
1793
+ export declare function determineRewardFactor(payload: {
1794
+ quantity: number;
1795
+ avg_qty: number;
1796
+ minimum_pnl: number;
1797
+ risk: number;
1798
+ }): number;
1799
+ export type BotPosition = {
1800
+ kind: "long" | "short";
1801
+ entry: number;
1802
+ quantity: number;
1803
+ tp: {
1804
+ price: number;
1805
+ };
1806
+ };
1807
+ export declare function getHedgeZone(payload: {
1808
+ symbol_config: GlobalConfig;
1809
+ risk: number;
1810
+ position: BotPosition;
1811
+ reward_factor?: number;
1812
+ risk_factor?: number;
1813
+ support?: number;
1814
+ }): {
1815
+ support: number;
1816
+ resistance: number;
1817
+ risk: number;
1818
+ profit_percent: number;
1819
+ };
1820
+ export declare function getOptimumHedgeFactor(payload: {
1821
+ target_support: number;
1822
+ tolerance?: number;
1823
+ max_iterations?: number;
1824
+ min_factor?: number;
1825
+ max_factor?: number;
1826
+ symbol_config: GlobalConfig;
1827
+ risk: number;
1828
+ position: BotPosition;
1829
+ }): {
1830
+ reward_factor: number;
1831
+ achieved_support: number;
1832
+ target_support: number;
1833
+ difference: number;
1834
+ iterations: number;
1835
+ converged?: undefined;
1836
+ } | {
1837
+ reward_factor: number;
1838
+ achieved_support: number;
1839
+ target_support: number;
1840
+ difference: number;
1841
+ iterations: number;
1842
+ converged: boolean;
1843
+ };
1844
+ export type CType = {
1845
+ next_order: number;
1846
+ take_profit: number;
1847
+ };
1848
+ export declare function determineCompoundLongTrade(payload: {
1849
+ focus_short_position: CType;
1850
+ focus_long_position: CType;
1851
+ shortConfig: {
1852
+ entry: number;
1853
+ stop: number;
1854
+ risk_reward: number;
1855
+ risk: number;
1856
+ symbol: string;
1857
+ profit_percent: number;
1858
+ };
1859
+ rr?: number;
1860
+ global_config: GlobalConfig;
1861
+ }): {
1862
+ start_risk: number;
1863
+ short_profit: number;
1864
+ support: number;
1865
+ resistance: number;
1866
+ long_v: any;
1867
+ profit_percent: number;
1868
+ result: any;
1869
+ short_max_size: any;
1870
+ };
1871
+ export declare function generateOppositeTradeConfig(payload: {
1872
+ kind: "long" | "short";
1873
+ entry: number;
1874
+ quantity: number;
1875
+ target_pnl: number;
1876
+ global_config: GlobalConfig;
1877
+ ratio?: number;
1878
+ }): {
1879
+ entry: number;
1880
+ stop: number;
1881
+ risk: number;
1882
+ risk_reward: number | {
1883
+ result: any[];
1884
+ value: number;
1885
+ total: number;
1886
+ risk_per_trade: number;
1887
+ max: number;
1888
+ min: number;
1889
+ avg_size: any;
1890
+ neg_pnl: any;
1891
+ entry: any;
1892
+ };
1893
+ };
1894
+ export declare function constructAppConfig(payload: {
1895
+ account: PositionsView;
1896
+ global_config: GlobalConfig;
1897
+ kelly_config?: {
1898
+ use_kelly: boolean;
1899
+ kelly_confidence_factor: number;
1900
+ kelly_minimum_risk: number;
1901
+ kelly_prediction_model: string;
1902
+ };
1903
+ distribution_config?: {
1904
+ distribution?: GetEntriesParams["distribution"];
1905
+ distribution_params?: {
1906
+ curveFactor?: number;
1907
+ stdDevFactor?: number;
1908
+ lambda?: number;
1909
+ };
1910
+ };
1911
+ }): {
1912
+ fee: number;
1913
+ risk_per_trade: number;
1914
+ risk_reward: number;
1915
+ symbol?: string;
1916
+ focus: number;
1917
+ budget: number;
1918
+ support: number;
1919
+ resistance: number;
1920
+ percent_change: number;
1921
+ tradeSplit?: number;
1922
+ take_profit?: number;
1923
+ kind: "long" | "short";
1924
+ entry: number;
1925
+ stop: number;
1926
+ min_size: number;
1927
+ price_places?: string;
1928
+ strategy?: "quantity" | "entry";
1929
+ as_array?: boolean;
1930
+ decimal_places?: string;
1931
+ min_profit?: number;
1932
+ raw?: boolean;
1933
+ gap?: number;
1934
+ rr?: number;
1935
+ max_size?: number;
1936
+ last_value?: any;
1937
+ max_quantity?: number;
1938
+ kelly?: {
1939
+ use_kelly?: boolean;
1940
+ kelly_confidence_factor?: number;
1941
+ kelly_minimum_risk?: number;
1942
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1943
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1944
+ };
1945
+ distribution?: GetEntriesParams["distribution"];
1946
+ distribution_params?: {
1947
+ curveFactor?: number;
1948
+ stdDevFactor?: number;
1949
+ lambda?: number;
1950
+ };
1951
+ };
1952
+ export declare function generateDangerousConfig(payload: {
1953
+ account: PositionsView;
1954
+ global_config: GlobalConfig;
1955
+ config: {
1956
+ quantity: number;
1957
+ stop: number;
1958
+ entry: number;
1959
+ };
1960
+ }): {
1961
+ entry: number;
1962
+ risk: number;
1963
+ stop: number;
1964
+ risk_reward: number | {
1965
+ result: any[];
1966
+ value: number;
1967
+ total: number;
1968
+ risk_per_trade: number;
1969
+ max: number;
1970
+ min: number;
1971
+ avg_size: any;
1972
+ neg_pnl: any;
1973
+ entry: any;
1974
+ };
1975
+ };
1976
+ export interface ComputedTrade {
1977
+ entry: number;
1978
+ quantity: number;
1979
+ avg_size: number;
1980
+ neg_pnl: number;
1981
+ avg_entry: number;
1982
+ stop: number;
1983
+ reverse_avg_entry: number;
1984
+ reverse_avg_quantity: number;
1985
+ fee: number;
1986
+ }
1987
+ export type TradeConfig = {
1988
+ entry: number;
1989
+ stop: number;
1990
+ risk_reward: number;
1991
+ risk: number;
1992
+ symbol: string;
1993
+ distribution?: GetEntriesParams["distribution"];
1994
+ distribution_params?: {
1995
+ curveFactor?: number;
1996
+ stdDevFactor?: number;
1997
+ lambda?: number;
1998
+ };
1999
+ };
2000
+ declare function constructAppConfig$1({ config, global_config, }: {
2001
+ config: TradeConfig;
2002
+ global_config: GlobalConfig;
2003
+ }): {
2004
+ fee: number;
2005
+ risk_per_trade: number;
2006
+ risk_reward: number;
2007
+ symbol?: string;
2008
+ focus: number;
2009
+ budget: number;
2010
+ support: number;
2011
+ resistance: number;
2012
+ percent_change: number;
2013
+ tradeSplit?: number;
2014
+ take_profit?: number;
2015
+ kind: "long" | "short";
2016
+ entry: number;
2017
+ stop: number;
2018
+ min_size: number;
2019
+ price_places?: string;
2020
+ strategy?: "quantity" | "entry";
2021
+ as_array?: boolean;
2022
+ decimal_places?: string;
2023
+ min_profit?: number;
2024
+ raw?: boolean;
2025
+ gap?: number;
2026
+ rr?: number;
2027
+ max_size?: number;
2028
+ last_value?: any;
2029
+ max_quantity?: number;
2030
+ kelly?: {
2031
+ use_kelly?: boolean;
2032
+ kelly_confidence_factor?: number;
2033
+ kelly_minimum_risk?: number;
2034
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2035
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2036
+ };
2037
+ distribution?: GetEntriesParams["distribution"];
2038
+ distribution_params?: {
2039
+ curveFactor?: number;
2040
+ stdDevFactor?: number;
2041
+ lambda?: number;
2042
+ };
2043
+ };
2044
+ declare function buildWithOptimumReward({ config, settings, global_config, force_exact, }: {
2045
+ config: TradeConfig;
2046
+ global_config: GlobalConfig;
2047
+ settings: {
2048
+ entry?: number;
2049
+ stop?: number;
2050
+ risk: number;
2051
+ stop_ratio?: number;
2052
+ risk_reward?: number;
2053
+ distribution?: GetEntriesParams["distribution"];
2054
+ distribution_params?: {
2055
+ curveFactor?: number;
2056
+ stdDevFactor?: number;
2057
+ lambda?: number;
2058
+ };
2059
+ };
2060
+ force_exact?: boolean;
2061
+ }): {
2062
+ trades: any[];
2063
+ summary: {
2064
+ entry: number;
2065
+ stop: number;
2066
+ risk: number;
2067
+ risk_reward: any;
2068
+ avg_entry: number;
2069
+ avg_size: number;
2070
+ first_entry: number;
2071
+ pnl: number;
2072
+ fee: number;
2073
+ loss: number;
2074
+ last_entry: number;
2075
+ margin: number;
2076
+ };
2077
+ config: any;
2078
+ stop_order: {
2079
+ quantity: number;
2080
+ price: number;
2081
+ };
2082
+ kind: string;
2083
+ };
2084
+ declare function generateOppositeOptimum({ config, global_config, settings, ratio, distribution, distribution_params, risk_factor, }: {
2085
+ settings: {
2086
+ entry: number;
2087
+ stop: number;
2088
+ risk: number;
2089
+ };
2090
+ config: TradeConfig;
2091
+ global_config: GlobalConfig;
2092
+ fee_percent?: number;
2093
+ ratio?: number;
2094
+ distribution?: any;
2095
+ distribution_params?: {
2096
+ curveFactor?: number;
2097
+ stdDevFactor?: number;
2098
+ lambda?: number;
2099
+ };
2100
+ risk_factor?: number;
2101
+ }): {
2102
+ trades: any[];
2103
+ summary: any;
2104
+ config: {
2105
+ entry: number;
2106
+ stop: number;
2107
+ risk: number;
2108
+ distribution: any;
2109
+ distribution_params: {
2110
+ curveFactor?: number;
2111
+ stdDevFactor?: number;
2112
+ lambda?: number;
2113
+ };
2114
+ risk_factor: number;
2115
+ };
2116
+ kind: string;
2117
+ } | {
2118
+ trades: any[];
2119
+ summary: {
2120
+ entry: number;
2121
+ stop: number;
2122
+ risk: number;
2123
+ risk_reward: any;
2124
+ avg_entry: number;
2125
+ avg_size: number;
2126
+ first_entry: number;
2127
+ pnl: number;
2128
+ fee: number;
2129
+ loss: number;
2130
+ last_entry: number;
2131
+ defaultEntry: number;
2132
+ };
2133
+ config: any;
2134
+ kind: string;
2135
+ };
2136
+ declare function increaseTradeHelper({ increase_qty, stop, config, global_config, style, entry, position, stop_ratio, distribution: default_distribution, distribution_params: default_distribution_params, }: {
2137
+ position: {
2138
+ entry: number;
2139
+ quantity: number;
2140
+ };
2141
+ entry: number;
2142
+ stop: number;
2143
+ config: TradeConfig;
2144
+ global_config: GlobalConfig;
2145
+ increase_qty: number;
2146
+ style: "minimum" | "optimum";
2147
+ stop_ratio?: number;
2148
+ distribution?: any;
2149
+ distribution_params?: {
2150
+ curveFactor?: number;
2151
+ stdDevFactor?: number;
2152
+ lambda?: number;
2153
+ };
2154
+ }): {
2155
+ trades: any[];
2156
+ summary: any;
2157
+ config: any;
2158
+ kind: string;
2159
+ current: {
2160
+ trades: any[];
2161
+ summary: {
2162
+ first_entry: number;
2163
+ last_entry: number;
2164
+ quantity: number;
2165
+ entry: number;
2166
+ loss: number;
2167
+ number_of_trades: number;
2168
+ fee: number;
2169
+ anchor_pnl: any;
2170
+ };
2171
+ };
2172
+ stop_order?: undefined;
2173
+ } | {
2174
+ trades: any[];
2175
+ summary: {
2176
+ entry: number;
2177
+ stop: number;
2178
+ risk: number;
2179
+ risk_reward: any;
2180
+ avg_entry: number;
2181
+ avg_size: number;
2182
+ first_entry: number;
2183
+ pnl: number;
2184
+ fee: number;
2185
+ loss: number;
2186
+ last_entry: number;
2187
+ margin: number;
2188
+ };
2189
+ stop_order: {
2190
+ quantity: number;
2191
+ price: number;
2192
+ };
2193
+ config: any;
2194
+ kind: string;
2195
+ current: {
2196
+ trades: any[];
2197
+ summary: {
2198
+ first_entry: number;
2199
+ last_entry: number;
2200
+ quantity: number;
2201
+ entry: number;
2202
+ loss: number;
2203
+ number_of_trades: number;
2204
+ fee: number;
2205
+ anchor_pnl: any;
2206
+ };
2207
+ };
2208
+ };
2209
+ declare function generatePositionIncreaseTrade({ account, zoneAccount, ratio, config, global_config, style, distribution, distribution_params, }: {
2210
+ style?: "optimum" | "minimum";
2211
+ account: {
2212
+ long: {
2213
+ entry: number;
2214
+ quantity: number;
2215
+ };
2216
+ short: {
2217
+ entry: number;
2218
+ quantity: number;
2219
+ };
2220
+ };
2221
+ config: TradeConfig;
2222
+ global_config: GlobalConfig;
2223
+ zoneAccount: {
2224
+ entry: number;
2225
+ stop: number;
2226
+ };
2227
+ ratio?: number;
2228
+ distribution?: any;
2229
+ distribution_params?: {
2230
+ curveFactor?: number;
2231
+ stdDevFactor?: number;
2232
+ lambda?: number;
2233
+ };
2234
+ }): {
2235
+ trades: any[];
2236
+ summary: any;
2237
+ config: any;
2238
+ kind: string;
2239
+ current: {
2240
+ trades: any[];
2241
+ summary: {
2242
+ first_entry: number;
2243
+ last_entry: number;
2244
+ quantity: number;
2245
+ entry: number;
2246
+ loss: number;
2247
+ number_of_trades: number;
2248
+ fee: number;
2249
+ anchor_pnl: any;
2250
+ };
2251
+ };
2252
+ stop_order?: undefined;
2253
+ } | {
2254
+ trades: any[];
2255
+ summary: {
2256
+ entry: number;
2257
+ stop: number;
2258
+ risk: number;
2259
+ risk_reward: any;
2260
+ avg_entry: number;
2261
+ avg_size: number;
2262
+ first_entry: number;
2263
+ pnl: number;
2264
+ fee: number;
2265
+ loss: number;
2266
+ last_entry: number;
2267
+ margin: number;
2268
+ };
2269
+ stop_order: {
2270
+ quantity: number;
2271
+ price: number;
2272
+ };
2273
+ config: any;
2274
+ kind: string;
2275
+ current: {
2276
+ trades: any[];
2277
+ summary: {
2278
+ first_entry: number;
2279
+ last_entry: number;
2280
+ quantity: number;
2281
+ entry: number;
2282
+ loss: number;
2283
+ number_of_trades: number;
2284
+ fee: number;
2285
+ anchor_pnl: any;
2286
+ };
2287
+ };
2288
+ };
2289
+ declare function determineHedgeTradeToPlace({ position, config, global_config, profit_risk, allowable_loss, }: {
2290
+ position: {
2291
+ entry: number;
2292
+ quantity: number;
2293
+ kind: "long" | "short";
2294
+ };
2295
+ config: TradeConfig;
2296
+ global_config: GlobalConfig;
2297
+ profit_risk?: number;
2298
+ allowable_loss?: number;
2299
+ }): {
2300
+ opposite: {
2301
+ trades: any[];
2302
+ summary: {
2303
+ entry: number;
2304
+ stop: number;
2305
+ risk: number;
2306
+ risk_reward: any;
2307
+ avg_entry: number;
2308
+ avg_size: number;
2309
+ first_entry: number;
2310
+ pnl: number;
2311
+ fee: number;
2312
+ loss: number;
2313
+ last_entry: number;
2314
+ margin: number;
2315
+ };
2316
+ config: any;
2317
+ stop_order: {
2318
+ quantity: number;
2319
+ price: number;
2320
+ };
2321
+ kind: string;
2322
+ };
2323
+ take_profit: number;
2324
+ };
2325
+ export declare const compoundAPI: {
2326
+ determineHedgeTradeToPlace: typeof determineHedgeTradeToPlace;
2327
+ buildWithOptimumReward: typeof buildWithOptimumReward;
2328
+ constructAppConfig: typeof constructAppConfig$1;
2329
+ generateOppositeOptimum: typeof generateOppositeOptimum;
2330
+ increaseTradeHelper: typeof increaseTradeHelper;
2331
+ generatePositionIncreaseTrade: typeof generatePositionIncreaseTrade;
2332
+ };
2333
+ export type ExchangeOrder = {
2334
+ symbol: string;
2335
+ price: number;
2336
+ quantity: number;
2337
+ kind: "long" | "short";
2338
+ side: "buy" | "sell";
2339
+ stop: number;
2340
+ order_id: string;
2341
+ triggerPrice?: number;
1156
2342
  };
1157
- declare class ExchangePosition {
2343
+ export declare class ExchangePosition {
1158
2344
  exchange: BaseExchange;
1159
2345
  exchange_account: ExchangeAccount$1;
1160
2346
  private app_db;
1161
2347
  private instance;
2348
+ orders: {
2349
+ entries: ExchangeOrder[];
2350
+ stop_orders: ExchangeOrder[];
2351
+ tp_orders: ExchangeOrder[];
2352
+ };
1162
2353
  constructor(payload: {
1163
2354
  exchange: BaseExchange;
1164
2355
  app_db: AppDatabase;
1165
2356
  instance: PositionsView;
1166
2357
  exchange_account: ExchangeAccount$1;
1167
2358
  without_view?: PositionsView;
2359
+ orders?: {
2360
+ entries: any[];
2361
+ stop_orders: any[];
2362
+ tp_orders: any[];
2363
+ };
1168
2364
  });
2365
+ get symbol_config(): SymbolConfig;
2366
+ initialize(): Promise<void>;
2367
+ getInstance(): PositionsView;
1169
2368
  get symbol(): any;
1170
2369
  get kind(): any;
1171
- get account(): any;
2370
+ get account(): ExchangeAccount;
2371
+ get compound(): CompoundInstance & {
2372
+ amount_to_risk?: number;
2373
+ profit_percent?: number;
2374
+ };
2375
+ getProxyForAccount(): Promise<HttpsProxyAgent<`http://${string}`> | SocksProxyAgent>;
1172
2376
  cancelOrders(payload: {
1173
2377
  limit?: boolean;
1174
2378
  price?: number;
1175
- }): Promise<void | {
2379
+ raw?: boolean;
2380
+ }): Promise<any[] | {
1176
2381
  success: boolean;
1177
2382
  message: string;
1178
2383
  exchange_result?: undefined;
@@ -1197,9 +2402,10 @@ declare class ExchangePosition {
1197
2402
  profit_percent?: number;
1198
2403
  place_tp?: boolean;
1199
2404
  profit?: number;
2405
+ reduce_ratio?: number;
1200
2406
  };
1201
2407
  }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
1202
- updateTargetPnl(): Promise<number>;
2408
+ updateTargetPnl(): Promise<any>;
1203
2409
  updateConfigPnl(): Promise<void>;
1204
2410
  triggerTradeFromConfig(payload: {
1205
2411
  place?: boolean;
@@ -1208,8 +2414,11 @@ declare class ExchangePosition {
1208
2414
  stop?: boolean;
1209
2415
  use_current?: boolean;
1210
2416
  ignore_config?: boolean;
2417
+ risky?: boolean;
2418
+ hedge?: boolean;
2419
+ stop_ratio?: number;
1211
2420
  }): Promise<any>;
1212
- placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders", payload: {
2421
+ placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
1213
2422
  entry: number;
1214
2423
  stop: number;
1215
2424
  risk_reward: number;
@@ -1218,6 +2427,15 @@ declare class ExchangePosition {
1218
2427
  update_db?: boolean;
1219
2428
  raw?: boolean;
1220
2429
  use_current?: boolean;
2430
+ stop_percent?: number;
2431
+ distribution?: GetEntriesParams["distribution"];
2432
+ distribution_params?: {
2433
+ curveFactor?: number;
2434
+ stdDevFactor?: number;
2435
+ lambda?: number;
2436
+ };
2437
+ hedge?: boolean;
2438
+ stop_ratio?: number;
1221
2439
  }): Promise<any>;
1222
2440
  buildAppConfig(payload: {
1223
2441
  entry: number;
@@ -1227,6 +2445,18 @@ declare class ExchangePosition {
1227
2445
  profit?: number;
1228
2446
  update_db?: boolean;
1229
2447
  profit_percent?: number;
2448
+ use_kelly?: boolean;
2449
+ kelly_confidence_factor?: number;
2450
+ kelly_minimum_risk?: number;
2451
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2452
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2453
+ distribution?: GetEntriesParams["distribution"];
2454
+ distribution_params?: {
2455
+ curveFactor?: number;
2456
+ stdDevFactor?: number;
2457
+ lambda?: number;
2458
+ };
2459
+ use_progressive_risk?: boolean;
1230
2460
  }): Promise<AppConfig>;
1231
2461
  placeConfigOrders(app_config: AppConfig, solution: {
1232
2462
  risk_reward: number;
@@ -1237,6 +2467,19 @@ declare class ExchangePosition {
1237
2467
  neg_pnl: number;
1238
2468
  min_size: number;
1239
2469
  symbol: string;
2470
+ stop_percent?: number;
2471
+ use_kelly?: boolean;
2472
+ kelly_confidence_factor?: number;
2473
+ kelly_minimum_risk?: number;
2474
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2475
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2476
+ distribution?: GetEntriesParams["distribution"];
2477
+ distribution_params?: {
2478
+ curveFactor?: number;
2479
+ stdDevFactor?: number;
2480
+ lambda?: number;
2481
+ };
2482
+ use_progressive_risk?: boolean;
1240
2483
  }, place?: boolean, skip_stop?: boolean): Promise<{
1241
2484
  entry_orders: {
1242
2485
  orders: {
@@ -1277,17 +2520,320 @@ declare class ExchangePosition {
1277
2520
  tp?: boolean;
1278
2521
  stop?: boolean;
1279
2522
  raw?: boolean;
2523
+ limit?: boolean;
1280
2524
  cancel?: boolean;
1281
2525
  ignore_config?: boolean;
2526
+ risky?: boolean;
2527
+ target_pnl?: number;
2528
+ hedge?: boolean;
2529
+ stop_ratio?: number;
2530
+ }): Promise<any>;
2531
+ placeStopLimit(payload: {
2532
+ place?: boolean;
2533
+ stop: number;
2534
+ quantity?: number;
2535
+ }): Promise<any>;
2536
+ computeTargetPnl(payload: {
2537
+ secondary: ExchangePosition;
2538
+ }): Promise<number>;
2539
+ runSimulation(payload: {
2540
+ iterations?: number;
2541
+ long_position: ExchangePosition;
2542
+ short_position: ExchangePosition;
2543
+ raw?: boolean;
2544
+ }): Promise<Strategy | {
2545
+ last_entry: any;
2546
+ first_entry: any;
2547
+ threshold: any;
2548
+ risk: number;
2549
+ risk_reward: number;
2550
+ spread: number;
2551
+ gap_loss: number;
2552
+ net_profit: number;
2553
+ long: {
2554
+ avg_entry: number;
2555
+ avg_size: number;
2556
+ loss: number;
2557
+ stop: number;
2558
+ stop_quantity: number;
2559
+ re_entry_quantity: number;
2560
+ initial_pnl: number;
2561
+ tp: number;
2562
+ incurred_loss: number;
2563
+ pnl: number;
2564
+ remaining_quantity: number;
2565
+ };
2566
+ short: {
2567
+ avg_entry: number;
2568
+ avg_size: number;
2569
+ loss: number;
2570
+ stop: number;
2571
+ stop_quantity: number;
2572
+ re_entry_quantity: number;
2573
+ initial_pnl: number;
2574
+ tp: number;
2575
+ incurred_loss: number;
2576
+ pnl: number;
2577
+ remaining_quantity: number;
2578
+ };
2579
+ }[]>;
2580
+ rawConfigUpdate(payload: any): Promise<void>;
2581
+ /**
2582
+ * This method is used to place the opposite trade action
2583
+ */
2584
+ placeOppositeTradeAction(payload: {
2585
+ data: {
2586
+ avg: {
2587
+ quantity: number;
2588
+ price: number;
2589
+ };
2590
+ entry: number;
2591
+ stop: number;
2592
+ risk_per_trade: number;
2593
+ profit_percent: number;
2594
+ risk_reward: number;
2595
+ };
2596
+ }): Promise<void>;
2597
+ /**
2598
+ * Updates the risk configuration for an empty position using the next_risk value.
2599
+ * This implements progressive risk management where successful trades increase future risk tolerance.
2600
+ *
2601
+ * @param payload.symbol - The trading symbol (e.g., "BTCUSDT")
2602
+ * @param payload.kind - Position type: "long" or "short"
2603
+ * @returns Object indicating if update was successful with old/new risk values
2604
+ */
2605
+ updateRiskOnEmpty(): Promise<{
2606
+ updated: boolean;
2607
+ symbol: any;
2608
+ kind: any;
2609
+ old_risk: number;
2610
+ new_risk: number;
2611
+ reason?: undefined;
2612
+ } | {
2613
+ updated: boolean;
2614
+ symbol: any;
2615
+ kind: any;
2616
+ reason: string;
2617
+ old_risk?: undefined;
2618
+ new_risk?: undefined;
2619
+ }>;
2620
+ increasePositionAtStop(payload: {
2621
+ place?: boolean;
2622
+ price?: number;
2623
+ quantity?: number;
2624
+ increase?: boolean;
2625
+ ratio_to_loose?: number;
2626
+ reverse_position?: ExchangePosition;
2627
+ increase_ratio?: number;
2628
+ }): Promise<any>;
2629
+ lockReduction({ pnl, place, pause_tp, }: {
2630
+ pnl: number;
2631
+ place?: boolean;
2632
+ pause_tp?: boolean;
2633
+ }): Promise<{
2634
+ sell_ratio: number;
2635
+ current_pnl: number;
2636
+ profit_percent: number;
2637
+ current_price: number;
2638
+ notional_value: number;
2639
+ }>;
2640
+ placeSingleOrder(payload: {
2641
+ long_position: ExchangePosition;
2642
+ short_position: ExchangePosition;
2643
+ }): Promise<string>;
2644
+ placeMarketOrder(payload: {
2645
+ quantity?: number;
2646
+ close?: boolean;
2647
+ }): Promise<void>;
2648
+ generate_config_params(payload: {
2649
+ entry: number;
2650
+ stop: number;
2651
+ risk_reward: number;
2652
+ risk: number;
2653
+ with_trades?: boolean;
2654
+ }): Promise<any>;
2655
+ extrapolateConfig(payload: {
2656
+ risk_reward?: number;
2657
+ risk?: number;
2658
+ kind?: "long" | "short";
2659
+ }): Promise<any>;
2660
+ build_short_order(): Promise<any>;
2661
+ /**
2662
+ * This function builds a config for a symbol
2663
+ * @param payload
2664
+ * @returns
2665
+ */
2666
+ buildConfigForSymbol(payload: {
2667
+ risk: number;
2668
+ risk_reward?: number;
2669
+ as_config?: boolean;
2670
+ with_trades?: boolean;
2671
+ }): Promise<any>;
2672
+ buildTrades(payload: {
2673
+ risk?: number;
2674
+ use_progressive_risk?: boolean;
2675
+ }): Promise<{
2676
+ trades: any[];
2677
+ actual_trades: any[];
2678
+ max_size: any;
2679
+ last_price: any;
2680
+ total_size: number;
2681
+ avg_entry: number;
2682
+ }>;
2683
+ tradeConfig(payload: {
2684
+ override?: any;
2685
+ }): Promise<AppConfig>;
2686
+ getOrCreatePositionConfig(payload: {
2687
+ risk?: number;
2688
+ risk_reward?: number;
2689
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
2690
+ getOppositeConfig(payload: {
2691
+ ratio?: number;
2692
+ }): {
2693
+ entry: number;
2694
+ stop: number;
2695
+ risk: number;
2696
+ risk_reward: number | {
2697
+ result: any[];
2698
+ value: number;
2699
+ total: number;
2700
+ risk_per_trade: number;
2701
+ max: number;
2702
+ min: number;
2703
+ avg_size: any;
2704
+ neg_pnl: any;
2705
+ entry: any;
2706
+ };
2707
+ };
2708
+ getOptimumRiskReward(): Promise<number | {
2709
+ result: any[];
2710
+ value: number;
2711
+ total: number;
2712
+ risk_per_trade: number;
2713
+ max: number;
2714
+ min: number;
2715
+ avg_size: any;
2716
+ neg_pnl: any;
2717
+ entry: any;
2718
+ }>;
2719
+ get appConfig(): {
2720
+ fee: number;
2721
+ risk_per_trade: number;
2722
+ risk_reward: number;
2723
+ symbol?: string;
2724
+ focus: number;
2725
+ budget: number;
2726
+ support: number;
2727
+ resistance: number;
2728
+ percent_change: number;
2729
+ tradeSplit?: number;
2730
+ take_profit?: number;
2731
+ kind: "long" | "short";
2732
+ entry: number;
2733
+ stop: number;
2734
+ min_size: number;
2735
+ price_places?: string;
2736
+ strategy?: "quantity" | "entry";
2737
+ as_array?: boolean;
2738
+ decimal_places?: string;
2739
+ min_profit?: number;
2740
+ raw?: boolean;
2741
+ gap?: number;
2742
+ rr?: number;
2743
+ max_size?: number;
2744
+ last_value?: any;
2745
+ max_quantity?: number;
2746
+ kelly?: {
2747
+ use_kelly?: boolean;
2748
+ kelly_confidence_factor?: number;
2749
+ kelly_minimum_risk?: number;
2750
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2751
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2752
+ };
2753
+ distribution?: GetEntriesParams["distribution"];
2754
+ distribution_params?: {
2755
+ curveFactor?: number;
2756
+ stdDevFactor?: number;
2757
+ lambda?: number;
2758
+ };
2759
+ };
2760
+ updateProfitPercentWithRisk(payload: {
2761
+ focus_position: ExchangePosition;
2762
+ }): Promise<{
2763
+ profit_percent: number;
2764
+ take_profit: number;
2765
+ last_order: number;
2766
+ }>;
2767
+ getOrders(payload: {
2768
+ type?: "limit" | "stop" | "tp";
2769
+ }): {
2770
+ symbol: any;
2771
+ price: any;
2772
+ quantity: any;
2773
+ kind: any;
2774
+ side: any;
2775
+ stop: any;
2776
+ order_id: any;
2777
+ triggerPrice: any;
2778
+ client_order_id: any;
2779
+ }[];
2780
+ cancelExchangeOrder(payload: {
2781
+ type: "limit" | "stop" | "tp";
2782
+ refresh?: boolean;
2783
+ }): Promise<any>;
2784
+ placeDangerousTrade(payload: {
2785
+ entry: number;
2786
+ quantity: number;
2787
+ stop?: number;
2788
+ }): {
2789
+ entry: number;
2790
+ risk: number;
2791
+ stop: number;
2792
+ risk_reward: number | {
2793
+ result: any[];
2794
+ value: number;
2795
+ total: number;
2796
+ risk_per_trade: number;
2797
+ max: number;
2798
+ min: number;
2799
+ avg_size: any;
2800
+ neg_pnl: any;
2801
+ entry: any;
2802
+ };
2803
+ };
2804
+ followStop(payload: {
2805
+ focus_position: ExchangePosition;
2806
+ fee_percent?: number;
2807
+ place?: boolean;
1282
2808
  }): Promise<any>;
2809
+ get support(): SupportTable;
2810
+ get linkedConfig(): ScheduledTrade;
2811
+ get isActiveTrade(): {
2812
+ config: ScheduledTrade;
2813
+ condition: boolean;
2814
+ };
2815
+ updateCompound(payload?: {
2816
+ place?: boolean;
2817
+ }): Promise<{
2818
+ support: number;
2819
+ counter: number;
2820
+ new_risk: number;
2821
+ condition: boolean;
2822
+ stop: number;
2823
+ }>;
2824
+ cleanOnActiveCompoundInstance(): Promise<void>;
1283
2825
  }
1284
2826
  declare class ExchangeAccount$1 {
1285
- private instance;
2827
+ instance: {
2828
+ owner: string;
2829
+ exchange: string;
2830
+ };
1286
2831
  exchange: BaseExchange;
1287
2832
  main_exchange?: BaseExchange;
1288
2833
  private app_db;
1289
- private long_position?;
1290
- private short_position?;
2834
+ long_position?: ExchangePosition;
2835
+ short_position?: ExchangePosition;
2836
+ raw_positions?: PositionsView[];
1291
2837
  constructor(payload: ExchangeType, options: {
1292
2838
  exchange: BaseExchange;
1293
2839
  app_db: AppDatabase;
@@ -1306,8 +2852,8 @@ declare class ExchangeAccount$1 {
1306
2852
  }): Promise<import("pocketbase").RecordModel>;
1307
2853
  initializePositions(payload: {
1308
2854
  symbol: string;
1309
- as_view?: boolean;
1310
2855
  kind: "long" | "short";
2856
+ update?: boolean;
1311
2857
  }): Promise<ExchangePosition>;
1312
2858
  getActiveAccount(payload: {
1313
2859
  symbol: string;
@@ -1330,6 +2876,7 @@ declare class ExchangeAccount$1 {
1330
2876
  expand?: {
1331
2877
  config: ScheduledTrade;
1332
2878
  account: ExchangeAccount;
2879
+ proxy: Proxy$1;
1333
2880
  };
1334
2881
  })[]>;
1335
2882
  syncAccount(options: {
@@ -1343,9 +2890,9 @@ declare class ExchangeAccount$1 {
1343
2890
  expand?: {
1344
2891
  config: ScheduledTrade;
1345
2892
  account: ExchangeAccount;
2893
+ proxy: Proxy$1;
1346
2894
  };
1347
2895
  })[]>;
1348
- getRunningInstanceFromDB(symbol: string): Promise<TradeBlockTracking>;
1349
2896
  syncOrders(options: {
1350
2897
  symbol: string;
1351
2898
  kind?: "long" | "short";
@@ -1356,6 +2903,11 @@ declare class ExchangeAccount$1 {
1356
2903
  kind: "long" | "short";
1357
2904
  should_stop?: boolean;
1358
2905
  }): Promise<import("pocketbase").RecordModel>;
2906
+ getFocusPosition(payload: {
2907
+ symbol: string;
2908
+ kind: "long" | "short";
2909
+ update?: boolean;
2910
+ }): Promise<ExchangePosition>;
1359
2911
  cancelOrders(payload: {
1360
2912
  symbol: string;
1361
2913
  kind: "long" | "short";
@@ -1363,7 +2915,8 @@ declare class ExchangeAccount$1 {
1363
2915
  all?: boolean;
1364
2916
  stop?: boolean;
1365
2917
  limit?: boolean;
1366
- }): Promise<void | {
2918
+ raw?: boolean;
2919
+ }): Promise<any[] | {
1367
2920
  success: boolean;
1368
2921
  message: string;
1369
2922
  exchange_result?: undefined;
@@ -1384,24 +2937,15 @@ declare class ExchangeAccount$1 {
1384
2937
  orders: number[];
1385
2938
  }): Promise<any>;
1386
2939
  getBreakEvenPrice(payload: {
1387
- symbol: string;
1388
- }): Promise<{
1389
- price: number;
1390
- direction: string;
1391
- }>;
1392
- buildAppConfig(payload: {
1393
- entry: number;
1394
- stop: number;
1395
- risk_reward: number;
1396
- risk: number;
1397
- symbol: string;
1398
- profit?: number;
1399
- update_db?: boolean;
1400
- profit_percent?: number;
1401
- }): Promise<AppConfig>;
2940
+ symbol: string;
2941
+ }): Promise<{
2942
+ price: number;
2943
+ direction: string;
2944
+ }>;
1402
2945
  tradeConfig(payload: {
1403
2946
  symbol: string;
1404
2947
  kind: "long" | "short";
2948
+ override?: any;
1405
2949
  }): Promise<AppConfig>;
1406
2950
  justInTimeProfit(payload: {
1407
2951
  symbol: string;
@@ -1424,53 +2968,13 @@ declare class ExchangeAccount$1 {
1424
2968
  risk?: number;
1425
2969
  }): Promise<{
1426
2970
  trades: any[];
2971
+ actual_trades: any[];
1427
2972
  max_size: any;
1428
2973
  last_price: any;
1429
2974
  total_size: number;
1430
2975
  avg_entry: number;
1431
2976
  }>;
1432
- placeConfigOrders(app_config: AppConfig, solution: {
1433
- risk_reward: number;
1434
- entry: number;
1435
- stop: number;
1436
- risk_per_trade: number;
1437
- avg_size: number;
1438
- neg_pnl: number;
1439
- min_size: number;
1440
- symbol: string;
1441
- }, place?: boolean, skip_stop?: boolean): Promise<{
1442
- entry_orders: {
1443
- orders: {
1444
- entry: any;
1445
- quantity: any;
1446
- reverse_avg_entry: any;
1447
- reverse_avg_quantity: any;
1448
- avg_entry: any;
1449
- avg_size: any;
1450
- }[];
1451
- kind: "long" | "short";
1452
- };
1453
- stop_orders: {
1454
- stop: number;
1455
- final_stop: number;
1456
- kind: "long" | "short";
1457
- quantity: any;
1458
- is_limit: boolean;
1459
- neg_pnl: any;
1460
- };
1461
- trades: any[];
1462
- }>;
1463
- determineAmountToBuy(payload: {
1464
- orders: any[];
1465
- kind: "long" | "short";
1466
- refresh?: boolean;
1467
- decimal_places?: string;
1468
- price_places?: string;
1469
- symbol: string;
1470
- cancel?: boolean;
1471
- place?: boolean;
1472
- }): Promise<any[]>;
1473
- placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders", payload: {
2977
+ placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
1474
2978
  symbol: string;
1475
2979
  entry: number;
1476
2980
  stop: number;
@@ -1480,6 +2984,7 @@ declare class ExchangeAccount$1 {
1480
2984
  update_db?: boolean;
1481
2985
  raw?: boolean;
1482
2986
  use_current?: boolean;
2987
+ stop_percent?: number;
1483
2988
  }): Promise<any>;
1484
2989
  getOrCreatePositionConfig(payload: {
1485
2990
  symbol: string;
@@ -1548,7 +3053,7 @@ declare class ExchangeAccount$1 {
1548
3053
  not_reduce: boolean;
1549
3054
  ratio: any;
1550
3055
  use_full: boolean;
1551
- sell_ratio: any;
3056
+ sell_ratio: number;
1552
3057
  };
1553
3058
  trigger: {
1554
3059
  long: boolean;
@@ -1581,14 +3086,6 @@ declare class ExchangeAccount$1 {
1581
3086
  target_pnl?: number;
1582
3087
  }): Promise<any>;
1583
3088
  reEnterPositionOnEmpty(symbol: string): Promise<void>;
1584
- generate_config_params(payload: {
1585
- entry: number;
1586
- stop: number;
1587
- risk_reward: number;
1588
- risk: number;
1589
- symbol: string;
1590
- with_trades?: boolean;
1591
- }): Promise<any>;
1592
3089
  build_short_order(payload: {
1593
3090
  symbol: string;
1594
3091
  kind: "long" | "short";
@@ -1602,12 +3099,29 @@ declare class ExchangeAccount$1 {
1602
3099
  placeMarketOrder(payload: {
1603
3100
  symbol: string;
1604
3101
  kind: "long" | "short";
1605
- quantity: number;
3102
+ quantity?: number;
3103
+ close?: boolean;
1606
3104
  }): Promise<void>;
1607
3105
  placeSingleOrder(payload: {
1608
3106
  symbol: string;
1609
3107
  kind: "long" | "short";
1610
3108
  }): Promise<string>;
3109
+ followStop(payload: {
3110
+ symbol: string;
3111
+ kind: "long" | "short";
3112
+ fee_percent?: number;
3113
+ focus_position: ExchangePosition;
3114
+ place?: boolean;
3115
+ }): Promise<any>;
3116
+ increasePositionAtStop(payload: {
3117
+ symbol: string;
3118
+ kind: "long" | "short";
3119
+ place?: boolean;
3120
+ price?: number;
3121
+ quantity?: number;
3122
+ increase?: boolean;
3123
+ ratio_to_loose?: number;
3124
+ }): Promise<any>;
1611
3125
  triggerTradeFromConfig(payload: {
1612
3126
  symbol: string;
1613
3127
  kind: "long" | "short";
@@ -1617,6 +3131,7 @@ declare class ExchangeAccount$1 {
1617
3131
  stop?: boolean;
1618
3132
  use_current?: boolean;
1619
3133
  ignore_config?: boolean;
3134
+ risky?: boolean;
1620
3135
  }): Promise<any>;
1621
3136
  verifyStopLoss(payload: {
1622
3137
  symbol: string;
@@ -1631,7 +3146,46 @@ declare class ExchangeAccount$1 {
1631
3146
  updateTargetPnl(payload: {
1632
3147
  symbol: string;
1633
3148
  kind: "long" | "short";
1634
- }): Promise<number>;
3149
+ }): Promise<any>;
3150
+ updateRiskOnEmpty(payload: {
3151
+ symbol: string;
3152
+ kind: "long" | "short";
3153
+ }): Promise<{
3154
+ updated: boolean;
3155
+ symbol: any;
3156
+ kind: any;
3157
+ old_risk: number;
3158
+ new_risk: number;
3159
+ reason?: undefined;
3160
+ } | {
3161
+ updated: boolean;
3162
+ symbol: any;
3163
+ kind: any;
3164
+ reason: string;
3165
+ old_risk?: undefined;
3166
+ new_risk?: undefined;
3167
+ }>;
3168
+ updateGoodHedgeConfig(payload: {
3169
+ symbol: string;
3170
+ params?: {
3171
+ support: number;
3172
+ resistance: number;
3173
+ risk: number;
3174
+ profit_percent: number;
3175
+ };
3176
+ risk_factor?: number;
3177
+ update?: boolean;
3178
+ place?: boolean;
3179
+ update_tp?: boolean;
3180
+ }): Promise<{
3181
+ support: number;
3182
+ resistance: number;
3183
+ risk: number;
3184
+ profit_percent: number;
3185
+ }>;
3186
+ /**
3187
+ * This method is used to place the opposite trade action
3188
+ */
1635
3189
  placeOppositeTradeAction(payload: {
1636
3190
  symbol: string;
1637
3191
  kind: "long" | "short";
@@ -1684,6 +3238,20 @@ declare class ExchangeAccount$1 {
1684
3238
  gap?: number;
1685
3239
  rr?: number;
1686
3240
  max_size?: number;
3241
+ max_quantity?: number;
3242
+ kelly?: {
3243
+ use_kelly?: boolean;
3244
+ kelly_confidence_factor?: number;
3245
+ kelly_minimum_risk?: number;
3246
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3247
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3248
+ };
3249
+ distribution?: GetEntriesParams["distribution"];
3250
+ distribution_params?: {
3251
+ curveFactor?: number;
3252
+ stdDevFactor?: number;
3253
+ lambda?: number;
3254
+ };
1687
3255
  }>;
1688
3256
  runSimulation(payload: {
1689
3257
  symbol: string;
@@ -1785,6 +3353,37 @@ declare class ExchangeAccount$1 {
1785
3353
  symbol: string;
1786
3354
  kind: "long" | "short";
1787
3355
  }): Promise<number>;
3356
+ placeStopLimit(payload: {
3357
+ symbol: string;
3358
+ kind: "long" | "short";
3359
+ place?: boolean;
3360
+ stop: number;
3361
+ quantity?: number;
3362
+ }): Promise<any>;
3363
+ placeDangerousTrade(payload: {
3364
+ symbol: string;
3365
+ config: {
3366
+ entry: number;
3367
+ quantity: number;
3368
+ stop: number;
3369
+ };
3370
+ kind: "long" | "short";
3371
+ }): Promise<{
3372
+ entry: number;
3373
+ risk: number;
3374
+ stop: number;
3375
+ risk_reward: number | {
3376
+ result: any[];
3377
+ value: number;
3378
+ total: number;
3379
+ risk_per_trade: number;
3380
+ max: number;
3381
+ min: number;
3382
+ avg_size: any;
3383
+ neg_pnl: any;
3384
+ entry: any;
3385
+ };
3386
+ }>;
1788
3387
  placeTrade(payload: {
1789
3388
  symbol: string;
1790
3389
  kind: "long" | "short";
@@ -1796,6 +3395,7 @@ declare class ExchangeAccount$1 {
1796
3395
  cancel?: boolean;
1797
3396
  ignore_config?: boolean;
1798
3397
  target_pnl?: number;
3398
+ risky?: boolean;
1799
3399
  }): Promise<any>;
1800
3400
  updateConfigPnl(payload: {
1801
3401
  symbol: string;
@@ -1814,57 +3414,18 @@ declare class ExchangeAccount$1 {
1814
3414
  long_percent: number;
1815
3415
  short_percent: number;
1816
3416
  }>;
3417
+ oppositeGapExists(payload: {
3418
+ symbol: string;
3419
+ kind: "long" | "short";
3420
+ }): Promise<void>;
1817
3421
  profitWithinGapStrategy(payload: {
1818
3422
  symbol: string;
1819
- }): Promise<{
1820
- reverse_config: any;
1821
- reverse_action: {
1822
- avg: {
1823
- entry: number;
1824
- price: number;
1825
- quantity: number;
1826
- };
1827
- loss: number;
1828
- profit_percent: number;
1829
- fee: number;
1830
- risk_per_trade: number;
1831
- risk_reward: number;
1832
- symbol?: string;
1833
- focus: number;
1834
- budget: number;
1835
- support: number;
1836
- resistance: number;
1837
- percent_change: number;
1838
- tradeSplit?: number;
1839
- take_profit?: number;
3423
+ callback?: (params: {
3424
+ symbol: string;
3425
+ account: ExchangeType;
1840
3426
  kind: "long" | "short";
1841
- entry: number;
1842
- stop: number;
1843
- min_size: number;
1844
- price_places?: string;
1845
- strategy?: "quantity" | "entry";
1846
- as_array?: boolean;
1847
- decimal_places?: string;
1848
- min_profit?: number;
1849
- raw?: boolean;
1850
- gap?: number;
1851
- rr?: number;
1852
- max_size?: number;
1853
- };
1854
- reverse_orders_to_buy: any;
1855
- positions: {
1856
- long: PositionsView & {
1857
- expand?: {
1858
- account_strategy?: AccountStrategy;
1859
- };
1860
- };
1861
- short: PositionsView & {
1862
- expand?: {
1863
- account_strategy?: AccountStrategy;
1864
- };
1865
- };
1866
- };
1867
- orders_to_place: any;
3427
+ }) => Promise<any>;
3428
+ }): Promise<{
1868
3429
  config_details: {
1869
3430
  app_config: {
1870
3431
  fee: number;
@@ -1891,36 +3452,49 @@ declare class ExchangeAccount$1 {
1891
3452
  gap?: number;
1892
3453
  rr?: number;
1893
3454
  max_size?: number;
1894
- };
1895
- last_value: any;
1896
- config: {
1897
- entry: number;
1898
- stop: number;
1899
- risk: number;
1900
- risk_reward: number | {
1901
- result: any[];
1902
- value: number;
1903
- total: number;
1904
- risk_per_trade: number;
1905
- max: number;
1906
- min: number;
1907
- neg_pnl: any;
1908
- entry: any;
3455
+ max_quantity?: number;
3456
+ kelly?: {
3457
+ use_kelly?: boolean;
3458
+ kelly_confidence_factor?: number;
3459
+ kelly_minimum_risk?: number;
3460
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3461
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3462
+ };
3463
+ distribution?: GetEntriesParams["distribution"];
3464
+ distribution_params?: {
3465
+ curveFactor?: number;
3466
+ stdDevFactor?: number;
3467
+ lambda?: number;
1909
3468
  };
1910
- profit_percent: number;
1911
3469
  };
1912
- pnl: number;
3470
+ last_value: any;
1913
3471
  };
1914
3472
  }>;
1915
3473
  generateGapTp(payload: {
1916
3474
  symbol: string;
1917
3475
  factor?: number;
1918
3476
  }): Promise<{
1919
- long_tp: number;
1920
- short_tp: number;
1921
- short_to_reduce: number;
1922
- long_to_reduce: number;
1923
- to_sell: {
3477
+ profit_percent: {
3478
+ long: number;
3479
+ short: number;
3480
+ };
3481
+ risk: {
3482
+ short: number;
3483
+ long: number;
3484
+ };
3485
+ take_profit: {
3486
+ long: number;
3487
+ short: number;
3488
+ };
3489
+ to_reduce: {
3490
+ short: number;
3491
+ long: number;
3492
+ };
3493
+ full_reduce: {
3494
+ short: number;
3495
+ long: number;
3496
+ };
3497
+ sell_quantity: {
1924
3498
  short: number;
1925
3499
  long: number;
1926
3500
  };
@@ -1930,9 +3504,12 @@ declare class ExchangeAccount$1 {
1930
3504
  getSellPriceFromStrategy(payload: {
1931
3505
  symbol: string;
1932
3506
  reduce_position: PositionsView;
3507
+ kind?: "long" | "short";
3508
+ full_ratio?: number;
1933
3509
  }): Promise<{
1934
3510
  pnl: number;
1935
3511
  loss: number;
3512
+ full_loss: number;
1936
3513
  original_pnl: number;
1937
3514
  reward_factor: number;
1938
3515
  profit_percent: number;
@@ -1942,15 +3519,43 @@ declare class ExchangeAccount$1 {
1942
3519
  price_places: string;
1943
3520
  decimal_places: string;
1944
3521
  }>;
3522
+ placeCompoundShortTrade(payload: {}): Promise<void>;
3523
+ placeCompoundLongTrade(payload: {
3524
+ symbol: string;
3525
+ params: {
3526
+ resistance: number;
3527
+ support: number;
3528
+ profit_percent: number;
3529
+ risk_reward: number;
3530
+ risk: number;
3531
+ };
3532
+ place?: boolean;
3533
+ }): Promise<void>;
3534
+ getConfigProfiles(payload: {
3535
+ symbol: string;
3536
+ kind: "long" | "short";
3537
+ }): Promise<{
3538
+ id: any;
3539
+ entry: any;
3540
+ stop: any;
3541
+ kind: "long" | "short";
3542
+ risk_reward: any;
3543
+ risk: any;
3544
+ profit_percent: any;
3545
+ }[]>;
1945
3546
  }
1946
3547
  declare function getExchangeAccount(payload: {
1947
3548
  account: ExchangeType;
1948
3549
  app_db: AppDatabase;
1949
- getCredentials: (account: string, exchange: string) => {
3550
+ getCredentials: (payload: {
3551
+ account: string;
3552
+ exchange: string;
3553
+ app_db: AppDatabase;
3554
+ }) => Promise<{
1950
3555
  api_key: string;
1951
3556
  api_secret: string;
1952
3557
  email: string;
1953
- };
3558
+ }>;
1954
3559
  proxyOptions?: {
1955
3560
  proxy?: any;
1956
3561
  ignore_proxy?: boolean;
@@ -1965,11 +3570,14 @@ declare class App {
1965
3570
  canWithdraw?: boolean;
1966
3571
  };
1967
3572
  private getCredentials;
1968
- constructor(app_db: AppDatabase, getCredentials: (account: string, exchange: string) => {
3573
+ constructor(app_db: AppDatabase, getCredentials: (payload: {
3574
+ account: string;
3575
+ exchange: string;
3576
+ }) => Promise<{
1969
3577
  api_key: string;
1970
3578
  api_secret: string;
1971
3579
  email: string;
1972
- }, proxyOptions?: {
3580
+ }>, proxyOptions?: {
1973
3581
  proxy?: any;
1974
3582
  ignore_proxy?: boolean;
1975
3583
  canWithdraw?: boolean;
@@ -1985,13 +3593,14 @@ declare class App {
1985
3593
  expand?: {
1986
3594
  config: ScheduledTrade;
1987
3595
  account: ExchangeAccount;
3596
+ proxy: Proxy$1;
1988
3597
  };
1989
3598
  })[]>;
1990
3599
  syncOrders(payload: {
1991
3600
  account: ExchangeType;
1992
3601
  symbol: string;
1993
3602
  kind: "long" | "short";
1994
- }): Promise<any>;
3603
+ }): Promise<boolean>;
1995
3604
  cancelOrders(payload: {
1996
3605
  account: ExchangeType;
1997
3606
  symbol: string;
@@ -1999,7 +3608,7 @@ declare class App {
1999
3608
  price?: number;
2000
3609
  all?: boolean;
2001
3610
  stop?: boolean;
2002
- }): Promise<void | {
3611
+ }): Promise<any[] | {
2003
3612
  success: boolean;
2004
3613
  message: string;
2005
3614
  exchange_result?: undefined;
@@ -2038,10 +3647,16 @@ declare class App {
2038
3647
  getNonEssentialSymbols(): Promise<Set<any>>;
2039
3648
  refreshAllPositionsWithSymbol(payload: {
2040
3649
  symbol: string;
3650
+ callback?: (payload: {
3651
+ symbol: string;
3652
+ account: ExchangeType;
3653
+ }) => Promise<any>;
2041
3654
  }): Promise<void>;
2042
3655
  autoFollowPositions(): Promise<void>;
2043
3656
  getMoverExchangeInstances(): Promise<ExchangeAccount[]>;
2044
- updateTpOnAllMarkets(): Promise<void>;
3657
+ updateTpOnAllMarkets(callback?: (payload: {
3658
+ account: ExchangeType;
3659
+ }) => Promise<any>): Promise<void>;
2045
3660
  triggerMoverTask(payload: {
2046
3661
  callback: (params: {
2047
3662
  symbol: string;
@@ -2061,62 +3676,21 @@ declare class App {
2061
3676
  cancel?: boolean;
2062
3677
  raw?: boolean;
2063
3678
  }): Promise<any>;
2064
- runDbStrategyAccounts(callback: (params: {
2065
- symbol: string;
2066
- account: ExchangeType;
2067
- }) => Promise<any>): Promise<void>;
3679
+ runDbStrategyAccounts(payload: {
3680
+ runningCallback: (params: {
3681
+ symbol: string;
3682
+ account: ExchangeType;
3683
+ }) => Promise<any>;
3684
+ notRunningCallback: (params: {
3685
+ symbol: string;
3686
+ account: ExchangeType;
3687
+ kind: "long" | "short";
3688
+ }) => Promise<any>;
3689
+ }): Promise<void>;
2068
3690
  profitWithinGapStrategy(payload: {
2069
3691
  account: ExchangeType;
2070
3692
  symbol: string;
2071
3693
  }): Promise<{
2072
- reverse_config: any;
2073
- reverse_action: {
2074
- avg: {
2075
- entry: number;
2076
- price: number;
2077
- quantity: number;
2078
- };
2079
- loss: number;
2080
- profit_percent: number;
2081
- fee: number;
2082
- risk_per_trade: number;
2083
- risk_reward: number;
2084
- symbol?: string;
2085
- focus: number;
2086
- budget: number;
2087
- support: number;
2088
- resistance: number;
2089
- percent_change: number;
2090
- tradeSplit?: number;
2091
- take_profit?: number;
2092
- kind: "long" | "short";
2093
- entry: number;
2094
- stop: number;
2095
- min_size: number;
2096
- price_places?: string;
2097
- strategy?: "quantity" | "entry";
2098
- as_array?: boolean;
2099
- decimal_places?: string;
2100
- min_profit?: number;
2101
- raw?: boolean;
2102
- gap?: number;
2103
- rr?: number;
2104
- max_size?: number;
2105
- };
2106
- reverse_orders_to_buy: any;
2107
- positions: {
2108
- long: PositionsView & {
2109
- expand?: {
2110
- account_strategy?: AccountStrategy;
2111
- };
2112
- };
2113
- short: PositionsView & {
2114
- expand?: {
2115
- account_strategy?: AccountStrategy;
2116
- };
2117
- };
2118
- };
2119
- orders_to_place: any;
2120
3694
  config_details: {
2121
3695
  app_config: {
2122
3696
  fee: number;
@@ -2143,30 +3717,47 @@ declare class App {
2143
3717
  gap?: number;
2144
3718
  rr?: number;
2145
3719
  max_size?: number;
2146
- };
2147
- last_value: any;
2148
- config: {
2149
- entry: number;
2150
- stop: number;
2151
- risk: number;
2152
- risk_reward: number | {
2153
- result: any[];
2154
- value: number;
2155
- total: number;
2156
- risk_per_trade: number;
2157
- max: number;
2158
- min: number;
2159
- neg_pnl: any;
2160
- entry: any;
3720
+ max_quantity?: number;
3721
+ kelly?: {
3722
+ use_kelly?: boolean;
3723
+ kelly_confidence_factor?: number;
3724
+ kelly_minimum_risk?: number;
3725
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3726
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3727
+ };
3728
+ distribution?: GetEntriesParams["distribution"];
3729
+ distribution_params?: {
3730
+ curveFactor?: number;
3731
+ stdDevFactor?: number;
3732
+ lambda?: number;
2161
3733
  };
2162
- profit_percent: number;
2163
3734
  };
2164
- pnl: number;
3735
+ last_value: any;
3736
+ };
3737
+ }>;
3738
+ compoundLongTrade(payload: {
3739
+ main_account: ExchangeType & {
3740
+ symbol: string;
3741
+ };
3742
+ focus_account: ExchangeType & {
3743
+ symbol: string;
2165
3744
  };
3745
+ place?: boolean;
3746
+ rr?: number;
3747
+ }): Promise<{
3748
+ start_risk: number;
3749
+ short_profit: number;
3750
+ support: number;
3751
+ resistance: number;
3752
+ long_v: any;
3753
+ profit_percent: number;
3754
+ result: any;
3755
+ short_max_size: any;
2166
3756
  }>;
2167
3757
  reduceExistingPosition(payload: {
2168
3758
  main_account: ExchangeType & {
2169
3759
  symbol: string;
3760
+ kind?: "long" | "short";
2170
3761
  };
2171
3762
  reduce_account: ExchangeType & {
2172
3763
  symbol: string;
@@ -2174,6 +3765,8 @@ declare class App {
2174
3765
  kind: "long" | "short";
2175
3766
  place?: boolean;
2176
3767
  increase?: boolean;
3768
+ full_ratio?: number;
3769
+ cancel_limit?: boolean;
2177
3770
  }): Promise<any>;
2178
3771
  }
2179
3772
  export declare function initApp(payload: {
@@ -2183,21 +3776,27 @@ export declare function initApp(payload: {
2183
3776
  password: string;
2184
3777
  };
2185
3778
  password?: string;
2186
- getCredentials: (account: string, exchange: string) => {
3779
+ salt?: string;
3780
+ email?: string;
3781
+ getCredentials: (payload: {
3782
+ account: string;
3783
+ exchange: string;
3784
+ app_db: AppDatabase;
3785
+ }) => Promise<{
2187
3786
  api_key: string;
2188
3787
  api_secret: string;
2189
3788
  email: string;
2190
- };
3789
+ }>;
2191
3790
  proxy?: any;
2192
3791
  ignore_proxy?: boolean;
2193
3792
  canWithdraw?: boolean;
2194
3793
  triggerToken?: string;
2195
3794
  }): Promise<App>;
2196
- declare function getCredentials(account: string, exchange: string): {
2197
- api_key: string;
2198
- api_secret: string;
2199
- email: string;
2200
- };
3795
+ declare function getCredentials(payload: {
3796
+ account: string;
3797
+ exchange: string;
3798
+ app_db: AppDatabase;
3799
+ }): Promise<any>;
2201
3800
  export declare function initialize(payload: {
2202
3801
  password?: string;
2203
3802
  proxy?: any;
@@ -2206,7 +3805,7 @@ export declare function initialize(payload: {
2206
3805
  }): Promise<App>;
2207
3806
 
2208
3807
  declare namespace database {
2209
- export { AppDatabase, ExchangeType, initPocketBaseClient };
3808
+ export { AppDatabase, ExchangeType, decryptObject, encryptObject, initPocketBaseClient };
2210
3809
  }
2211
3810
  declare namespace exchange_account {
2212
3811
  export { ExchangeAccount$1 as ExchangeAccount, getExchangeAccount };