@gbozee/ultimate 0.0.2-98 → 0.0.2-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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,32 @@ export type SignalConfigType = {
800
1192
  first_order_size?: number;
801
1193
  gap?: number;
802
1194
  max_size?: number;
1195
+ use_kelly?: boolean;
1196
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1197
+ kelly_confidence_factor?: number;
1198
+ kelly_minimum_risk?: number;
1199
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1200
+ full_distribution?: {
1201
+ long: GetEntriesParams["distribution"];
1202
+ short: GetEntriesParams["distribution"];
1203
+ };
1204
+ max_quantity?: number;
1205
+ distribution_params?: {
1206
+ curveFactor?: number;
1207
+ stdDevFactor?: number;
1208
+ lambda?: number;
1209
+ };
803
1210
  };
804
1211
  declare class Signal {
805
1212
  focus: number;
806
1213
  budget: number;
807
1214
  percent_change: number;
808
1215
  price_places: string;
1216
+ distribution_params: {
1217
+ curveFactor?: number;
1218
+ stdDevFactor?: number;
1219
+ lambda?: number;
1220
+ };
809
1221
  decimal_places: string;
810
1222
  zone_risk: number;
811
1223
  fee: number;
@@ -822,8 +1234,19 @@ declare class Signal {
822
1234
  first_order_size: number;
823
1235
  gap: number;
824
1236
  max_size: number;
825
- 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, }: {
1237
+ use_kelly: boolean;
1238
+ kelly_prediction_model: "exponential" | "normal" | "uniform";
1239
+ kelly_confidence_factor: number;
1240
+ kelly_minimum_risk: number;
1241
+ kelly_func: "theoretical" | "position_based" | "theoretical_fixed";
1242
+ symbol?: string;
1243
+ distribution: {
1244
+ long: GetEntriesParams["distribution"];
1245
+ short: GetEntriesParams["distribution"];
1246
+ };
1247
+ max_quantity: number;
1248
+ constructor({ focus, symbol, budget, percent_change, price_places, decimal_places, zone_risk, fee, support, risk_reward, resistance, risk_per_trade, increase_size, additional_increase, minimum_pnl, take_profit, increase_position, minimum_size, first_order_size, gap, max_size, use_kelly, kelly_prediction_model, kelly_confidence_factor, kelly_minimum_risk, kelly_func, full_distribution, max_quantity, distribution_params, }: SignalConfigType);
1249
+ build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, distribution, distribution_params, }: {
827
1250
  take_profit?: number;
828
1251
  no_of_trades?: number;
829
1252
  current_price: number;
@@ -832,6 +1255,12 @@ declare class Signal {
832
1255
  risk: number;
833
1256
  stop_percent?: number;
834
1257
  pnl?: number;
1258
+ distribution?: GetEntriesParams["distribution"];
1259
+ distribution_params?: {
1260
+ curveFactor?: number;
1261
+ stdDevFactor?: number;
1262
+ lambda?: number;
1263
+ };
835
1264
  }): any;
836
1265
  get risk(): number;
837
1266
  get min_trades(): number;
@@ -865,6 +1294,11 @@ declare class Signal {
865
1294
  kind?: "long" | "short";
866
1295
  limit?: boolean;
867
1296
  }): any;
1297
+ get_future_zones_simple({ current_price, kind, raw, }: {
1298
+ raw?: boolean;
1299
+ current_price: number;
1300
+ kind?: "long" | "short";
1301
+ }): number[];
868
1302
  get_future_zones({ current_price, kind, raw, }: {
869
1303
  raw?: boolean;
870
1304
  current_price: number;
@@ -908,15 +1342,6 @@ declare class Signal {
908
1342
  };
909
1343
  to_df(currentPrice: number, places?: string): number;
910
1344
  }
911
- export declare function determine_average_entry_and_size(orders: Array<{
912
- price: number;
913
- quantity: number;
914
- }>, places?: string, price_places?: string): {
915
- entry: number;
916
- price: number;
917
- quantity: number;
918
- };
919
- export declare const createArray: (start: number, stop: number, step: number) => number[];
920
1345
  export type AppConfig = {
921
1346
  fee: number;
922
1347
  risk_per_trade: number;
@@ -944,6 +1369,20 @@ export type AppConfig = {
944
1369
  max_size?: number;
945
1370
  last_value?: any;
946
1371
  entries?: any[];
1372
+ max_quantity?: number;
1373
+ kelly?: {
1374
+ use_kelly?: boolean;
1375
+ kelly_confidence_factor?: number;
1376
+ kelly_minimum_risk?: number;
1377
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1378
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1379
+ };
1380
+ distribution?: GetEntriesParams["distribution"];
1381
+ distribution_params?: {
1382
+ curveFactor?: number;
1383
+ stdDevFactor?: number;
1384
+ lambda?: number;
1385
+ };
947
1386
  };
948
1387
  export type ExtendConfigType = {
949
1388
  take_profit?: number;
@@ -960,8 +1399,20 @@ export type ExtendConfigType = {
960
1399
  kind?: "long" | "short";
961
1400
  gap?: number;
962
1401
  rr?: number;
1402
+ min_avg_size?: number;
1403
+ use_kelly?: boolean;
1404
+ kelly_confidence_factor?: number;
1405
+ kelly_minimum_risk?: number;
1406
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1407
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1408
+ distribution?: GetEntriesParams["distribution"];
1409
+ distribution_params?: {
1410
+ curveFactor?: number;
1411
+ stdDevFactor?: number;
1412
+ lambda?: number;
1413
+ };
963
1414
  };
964
- export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, }: ExtendConfigType): any[] | Signal;
1415
+ export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, use_kelly, kelly_confidence_factor, kelly_minimum_risk, kelly_prediction_model, kelly_func, min_avg_size, distribution, distribution_params, }: ExtendConfigType): any[] | Signal;
965
1416
  export declare function buildAvg({ _trades, kind, }: {
966
1417
  _trades: any[];
967
1418
  kind: "long" | "short";
@@ -971,6 +1422,17 @@ export declare function get_app_config_and_max_size(config: GlobalConfig, payloa
971
1422
  entry: number;
972
1423
  stop: number;
973
1424
  kind: "long" | "short";
1425
+ use_kelly?: boolean;
1426
+ kelly_confidence_factor?: number;
1427
+ kelly_minimum_risk?: number;
1428
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1429
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1430
+ distribution?: GetEntriesParams["distribution"];
1431
+ distribution_params?: {
1432
+ curveFactor?: number;
1433
+ stdDevFactor?: number;
1434
+ lambda?: number;
1435
+ };
974
1436
  }): {
975
1437
  app_config: AppConfig;
976
1438
  max_size: any;
@@ -990,11 +1452,28 @@ export declare function buildAppConfig(config: GlobalConfig, payload: {
990
1452
  risk: number;
991
1453
  symbol: string;
992
1454
  profit?: number;
1455
+ use_kelly?: boolean;
1456
+ kelly_confidence_factor?: number;
1457
+ kelly_minimum_risk?: number;
1458
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1459
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1460
+ distribution?: GetEntriesParams["distribution"];
1461
+ distribution_params?: {
1462
+ curveFactor?: number;
1463
+ stdDevFactor?: number;
1464
+ lambda?: number;
1465
+ };
993
1466
  }): AppConfig;
994
1467
  export declare function getOptimumStopAndRisk(app_config: AppConfig, params: {
995
1468
  max_size: number;
996
1469
  target_stop: number;
997
1470
  highest_risk?: number;
1471
+ distribution?: GetEntriesParams["distribution"];
1472
+ distribution_params?: {
1473
+ curveFactor?: number;
1474
+ stdDevFactor?: number;
1475
+ lambda?: number;
1476
+ };
998
1477
  }): {
999
1478
  optimal_stop: number;
1000
1479
  optimal_risk: number;
@@ -1051,26 +1530,82 @@ export declare function generateOptimumAppConfig(config: GlobalConfig, payload:
1051
1530
  risk_reward: number;
1052
1531
  start_risk: number;
1053
1532
  max_risk?: number;
1533
+ distribution?: GetEntriesParams["distribution"];
1534
+ distribution_params?: {
1535
+ curveFactor?: number;
1536
+ stdDevFactor?: number;
1537
+ lambda?: number;
1538
+ };
1054
1539
  }, position: {
1055
1540
  entry: number;
1056
1541
  quantity: number;
1057
1542
  kind: "long" | "short";
1058
1543
  }): AppConfig | null;
1059
- export declare function determineOptimumReward(app_config: AppConfig, increase?: boolean, low_range?: number, high_range?: number): number | {
1544
+ export declare function determineOptimumReward(payload: {
1545
+ app_config: AppConfig;
1546
+ increase?: boolean;
1547
+ low_range?: number;
1548
+ high_range?: number;
1549
+ target_loss?: number;
1550
+ distribution?: GetEntriesParams["distribution"];
1551
+ distribution_params?: {
1552
+ curveFactor?: number;
1553
+ stdDevFactor?: number;
1554
+ lambda?: number;
1555
+ };
1556
+ max_size?: number;
1557
+ }): number | {
1060
1558
  result: any[];
1061
1559
  value: number;
1062
1560
  total: number;
1063
1561
  risk_per_trade: number;
1064
1562
  max: number;
1065
1563
  min: number;
1564
+ avg_size: any;
1066
1565
  neg_pnl: any;
1067
1566
  entry: any;
1068
1567
  };
1568
+ export declare function determineOptimumRisk(config: GlobalConfig, payload: {
1569
+ entry: number;
1570
+ stop: number;
1571
+ risk_reward: number;
1572
+ risk: number;
1573
+ symbol: string;
1574
+ distribution?: GetEntriesParams["distribution"];
1575
+ distribution_params?: {
1576
+ curveFactor?: number;
1577
+ stdDevFactor?: number;
1578
+ lambda?: number;
1579
+ };
1580
+ }, params: {
1581
+ highest_risk: number;
1582
+ tolerance?: number;
1583
+ max_iterations?: number;
1584
+ }): {
1585
+ optimal_risk: number;
1586
+ achieved_neg_pnl: number;
1587
+ target_neg_pnl: number;
1588
+ difference: number;
1589
+ iterations: number;
1590
+ converged: boolean;
1591
+ last_value: any;
1592
+ entries: any[];
1593
+ app_config: AppConfig;
1594
+ };
1069
1595
  export declare function computeRiskReward(payload: {
1070
1596
  app_config: AppConfig;
1071
1597
  entry: number;
1072
1598
  stop: number;
1073
1599
  risk_per_trade: number;
1600
+ target_loss?: number;
1601
+ distribution?: GetEntriesParams["distribution"];
1602
+ distribution_params?: {
1603
+ curveFactor?: number;
1604
+ stdDevFactor?: number;
1605
+ lambda?: number;
1606
+ };
1607
+ high_range?: number;
1608
+ max_size?: number;
1074
1609
  }): number | {
1075
1610
  result: any[];
1076
1611
  value: number;
@@ -1078,6 +1613,7 @@ export declare function computeRiskReward(payload: {
1078
1613
  risk_per_trade: number;
1079
1614
  max: number;
1080
1615
  min: number;
1616
+ avg_size: any;
1081
1617
  neg_pnl: any;
1082
1618
  entry: any;
1083
1619
  };
@@ -1086,6 +1622,17 @@ export declare function getRiskReward(payload: {
1086
1622
  stop: number;
1087
1623
  risk: number;
1088
1624
  global_config: GlobalConfig;
1625
+ force_exact_risk?: boolean;
1626
+ target_loss?: number;
1627
+ max_size?: number;
1628
+ distribution?: GetEntriesParams["distribution"];
1629
+ distribution_params?: {
1630
+ curveFactor?: number;
1631
+ stdDevFactor?: number;
1632
+ lambda?: number;
1633
+ };
1634
+ risk_factor?: number;
1635
+ high_range?: number;
1089
1636
  }): any;
1090
1637
  export declare function computeProfitDetail(payload: {
1091
1638
  focus_position: {
@@ -1095,11 +1642,12 @@ export declare function computeProfitDetail(payload: {
1095
1642
  avg_qty: number;
1096
1643
  avg_price: number;
1097
1644
  };
1098
- strategy: {
1645
+ strategy?: {
1099
1646
  reward_factor: number;
1100
1647
  max_reward_factor: number;
1101
1648
  risk: number;
1102
1649
  };
1650
+ pnl: number;
1103
1651
  reduce_position?: {
1104
1652
  kind: "long" | "short";
1105
1653
  entry: number;
@@ -1116,11 +1664,13 @@ export declare function computeProfitDetail(payload: {
1116
1664
  quantity: number;
1117
1665
  };
1118
1666
  };
1667
+ full_ratio?: number;
1119
1668
  price_places?: string;
1120
1669
  decimal_places?: string;
1121
1670
  }): {
1122
1671
  pnl: number;
1123
1672
  loss: number;
1673
+ full_loss: number;
1124
1674
  original_pnl: number;
1125
1675
  reward_factor: number;
1126
1676
  profit_percent: number;
@@ -1139,40 +1689,656 @@ export declare function generateGapTp(payload: {
1139
1689
  entry: number;
1140
1690
  quantity: number;
1141
1691
  };
1692
+ risk?: number;
1693
+ kind?: "long" | "short";
1142
1694
  factor?: number;
1695
+ sell_factor?: number;
1143
1696
  price_places?: string;
1144
1697
  decimal_places?: string;
1145
1698
  }): {
1146
- long_tp: number;
1147
- short_tp: number;
1148
- short_to_reduce: number;
1149
- long_to_reduce: number;
1150
- to_sell: {
1699
+ profit_percent: {
1700
+ long: number;
1701
+ short: number;
1702
+ };
1703
+ risk: {
1151
1704
  short: number;
1152
1705
  long: number;
1153
1706
  };
1154
- gap: number;
1155
- gap_loss: number;
1707
+ take_profit: {
1708
+ long: number;
1709
+ short: number;
1710
+ };
1711
+ to_reduce: {
1712
+ short: number;
1713
+ long: number;
1714
+ };
1715
+ full_reduce: {
1716
+ short: number;
1717
+ long: number;
1718
+ };
1719
+ sell_quantity: {
1720
+ short: number;
1721
+ long: number;
1722
+ };
1723
+ gap: number;
1724
+ gap_loss: number;
1725
+ };
1726
+ export declare function calculateFactorFromTakeProfit(payload: {
1727
+ long: {
1728
+ entry: number;
1729
+ quantity: number;
1730
+ };
1731
+ short: {
1732
+ entry: number;
1733
+ quantity: number;
1734
+ };
1735
+ knownTp: number;
1736
+ tpType: "long" | "short";
1737
+ price_places?: string;
1738
+ }): number;
1739
+ export declare function calculateFactorFromSellQuantity(payload: {
1740
+ long: {
1741
+ entry: number;
1742
+ quantity: number;
1743
+ };
1744
+ short: {
1745
+ entry: number;
1746
+ quantity: number;
1747
+ };
1748
+ knownSellQuantity: number;
1749
+ sellType: "long" | "short";
1750
+ sell_factor?: number;
1751
+ price_places?: string;
1752
+ decimal_places?: string;
1753
+ }): number;
1754
+ export declare function determineRewardFactor(payload: {
1755
+ quantity: number;
1756
+ avg_qty: number;
1757
+ minimum_pnl: number;
1758
+ risk: number;
1759
+ }): number;
1760
+ export type BotPosition = {
1761
+ kind: "long" | "short";
1762
+ entry: number;
1763
+ quantity: number;
1764
+ tp: {
1765
+ price: number;
1766
+ };
1767
+ };
1768
+ export declare function getHedgeZone(payload: {
1769
+ symbol_config: GlobalConfig;
1770
+ risk: number;
1771
+ position: BotPosition;
1772
+ reward_factor?: number;
1773
+ risk_factor?: number;
1774
+ support?: number;
1775
+ }): {
1776
+ support: number;
1777
+ resistance: number;
1778
+ risk: number;
1779
+ profit_percent: number;
1780
+ };
1781
+ export declare function getOptimumHedgeFactor(payload: {
1782
+ target_support: number;
1783
+ tolerance?: number;
1784
+ max_iterations?: number;
1785
+ min_factor?: number;
1786
+ max_factor?: number;
1787
+ symbol_config: GlobalConfig;
1788
+ risk: number;
1789
+ position: BotPosition;
1790
+ }): {
1791
+ reward_factor: number;
1792
+ achieved_support: number;
1793
+ target_support: number;
1794
+ difference: number;
1795
+ iterations: number;
1796
+ converged?: undefined;
1797
+ } | {
1798
+ reward_factor: number;
1799
+ achieved_support: number;
1800
+ target_support: number;
1801
+ difference: number;
1802
+ iterations: number;
1803
+ converged: boolean;
1804
+ };
1805
+ export type CType = {
1806
+ next_order: number;
1807
+ take_profit: number;
1808
+ };
1809
+ export declare function determineCompoundLongTrade(payload: {
1810
+ focus_short_position: CType;
1811
+ focus_long_position: CType;
1812
+ shortConfig: {
1813
+ entry: number;
1814
+ stop: number;
1815
+ risk_reward: number;
1816
+ risk: number;
1817
+ symbol: string;
1818
+ profit_percent: number;
1819
+ };
1820
+ rr?: number;
1821
+ global_config: GlobalConfig;
1822
+ }): {
1823
+ start_risk: number;
1824
+ short_profit: number;
1825
+ support: number;
1826
+ resistance: number;
1827
+ long_v: any;
1828
+ profit_percent: number;
1829
+ result: any;
1830
+ short_max_size: any;
1831
+ };
1832
+ export declare function generateOppositeTradeConfig(payload: {
1833
+ kind: "long" | "short";
1834
+ entry: number;
1835
+ quantity: number;
1836
+ target_pnl: number;
1837
+ global_config: GlobalConfig;
1838
+ ratio?: number;
1839
+ }): {
1840
+ entry: number;
1841
+ stop: number;
1842
+ risk: number;
1843
+ risk_reward: number | {
1844
+ result: any[];
1845
+ value: number;
1846
+ total: number;
1847
+ risk_per_trade: number;
1848
+ max: number;
1849
+ min: number;
1850
+ avg_size: any;
1851
+ neg_pnl: any;
1852
+ entry: any;
1853
+ };
1854
+ };
1855
+ export declare function constructAppConfig(payload: {
1856
+ account: PositionsView;
1857
+ global_config: GlobalConfig;
1858
+ kelly_config?: {
1859
+ use_kelly: boolean;
1860
+ kelly_confidence_factor: number;
1861
+ kelly_minimum_risk: number;
1862
+ kelly_prediction_model: string;
1863
+ };
1864
+ distribution_config?: {
1865
+ distribution?: GetEntriesParams["distribution"];
1866
+ distribution_params?: {
1867
+ curveFactor?: number;
1868
+ stdDevFactor?: number;
1869
+ lambda?: number;
1870
+ };
1871
+ };
1872
+ }): {
1873
+ fee: number;
1874
+ risk_per_trade: number;
1875
+ risk_reward: number;
1876
+ symbol?: string;
1877
+ focus: number;
1878
+ budget: number;
1879
+ support: number;
1880
+ resistance: number;
1881
+ percent_change: number;
1882
+ tradeSplit?: number;
1883
+ take_profit?: number;
1884
+ kind: "long" | "short";
1885
+ entry: number;
1886
+ stop: number;
1887
+ min_size: number;
1888
+ price_places?: string;
1889
+ strategy?: "quantity" | "entry";
1890
+ as_array?: boolean;
1891
+ decimal_places?: string;
1892
+ min_profit?: number;
1893
+ raw?: boolean;
1894
+ gap?: number;
1895
+ rr?: number;
1896
+ max_size?: number;
1897
+ last_value?: any;
1898
+ max_quantity?: number;
1899
+ kelly?: {
1900
+ use_kelly?: boolean;
1901
+ kelly_confidence_factor?: number;
1902
+ kelly_minimum_risk?: number;
1903
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1904
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1905
+ };
1906
+ distribution?: GetEntriesParams["distribution"];
1907
+ distribution_params?: {
1908
+ curveFactor?: number;
1909
+ stdDevFactor?: number;
1910
+ lambda?: number;
1911
+ };
1912
+ };
1913
+ export declare function generateDangerousConfig(payload: {
1914
+ account: PositionsView;
1915
+ global_config: GlobalConfig;
1916
+ config: {
1917
+ quantity: number;
1918
+ stop: number;
1919
+ entry: number;
1920
+ };
1921
+ }): {
1922
+ entry: number;
1923
+ risk: number;
1924
+ stop: number;
1925
+ risk_reward: number | {
1926
+ result: any[];
1927
+ value: number;
1928
+ total: number;
1929
+ risk_per_trade: number;
1930
+ max: number;
1931
+ min: number;
1932
+ avg_size: any;
1933
+ neg_pnl: any;
1934
+ entry: any;
1935
+ };
1936
+ };
1937
+ export interface ComputedTrade {
1938
+ entry: number;
1939
+ quantity: number;
1940
+ avg_size: number;
1941
+ neg_pnl: number;
1942
+ avg_entry: number;
1943
+ stop: number;
1944
+ reverse_avg_entry: number;
1945
+ reverse_avg_quantity: number;
1946
+ fee: number;
1947
+ }
1948
+ export type TradeConfig = {
1949
+ entry: number;
1950
+ stop: number;
1951
+ risk_reward: number;
1952
+ risk: number;
1953
+ symbol: string;
1954
+ distribution?: GetEntriesParams["distribution"];
1955
+ distribution_params?: {
1956
+ curveFactor?: number;
1957
+ stdDevFactor?: number;
1958
+ lambda?: number;
1959
+ };
1960
+ };
1961
+ declare function constructAppConfig$1({ config, global_config, }: {
1962
+ config: TradeConfig;
1963
+ global_config: GlobalConfig;
1964
+ }): {
1965
+ fee: number;
1966
+ risk_per_trade: number;
1967
+ risk_reward: number;
1968
+ symbol?: string;
1969
+ focus: number;
1970
+ budget: number;
1971
+ support: number;
1972
+ resistance: number;
1973
+ percent_change: number;
1974
+ tradeSplit?: number;
1975
+ take_profit?: number;
1976
+ kind: "long" | "short";
1977
+ entry: number;
1978
+ stop: number;
1979
+ min_size: number;
1980
+ price_places?: string;
1981
+ strategy?: "quantity" | "entry";
1982
+ as_array?: boolean;
1983
+ decimal_places?: string;
1984
+ min_profit?: number;
1985
+ raw?: boolean;
1986
+ gap?: number;
1987
+ rr?: number;
1988
+ max_size?: number;
1989
+ last_value?: any;
1990
+ max_quantity?: number;
1991
+ kelly?: {
1992
+ use_kelly?: boolean;
1993
+ kelly_confidence_factor?: number;
1994
+ kelly_minimum_risk?: number;
1995
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
1996
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
1997
+ };
1998
+ distribution?: GetEntriesParams["distribution"];
1999
+ distribution_params?: {
2000
+ curveFactor?: number;
2001
+ stdDevFactor?: number;
2002
+ lambda?: number;
2003
+ };
2004
+ };
2005
+ declare function buildWithOptimumReward({ config, settings, global_config, force_exact, }: {
2006
+ config: TradeConfig;
2007
+ global_config: GlobalConfig;
2008
+ settings: {
2009
+ entry?: number;
2010
+ stop?: number;
2011
+ risk: number;
2012
+ stop_ratio?: number;
2013
+ risk_reward?: number;
2014
+ distribution?: GetEntriesParams["distribution"];
2015
+ distribution_params?: {
2016
+ curveFactor?: number;
2017
+ stdDevFactor?: number;
2018
+ lambda?: number;
2019
+ };
2020
+ };
2021
+ force_exact?: boolean;
2022
+ }): {
2023
+ trades: any[];
2024
+ summary: {
2025
+ entry: number;
2026
+ stop: number;
2027
+ risk: number;
2028
+ risk_reward: any;
2029
+ avg_entry: number;
2030
+ avg_size: number;
2031
+ first_entry: number;
2032
+ pnl: number;
2033
+ fee: number;
2034
+ loss: number;
2035
+ last_entry: number;
2036
+ margin: number;
2037
+ };
2038
+ config: any;
2039
+ stop_order: {
2040
+ quantity: number;
2041
+ price: number;
2042
+ };
2043
+ kind: string;
2044
+ };
2045
+ declare function generateOppositeOptimum({ config, global_config, settings, ratio, distribution, distribution_params, risk_factor, }: {
2046
+ settings: {
2047
+ entry: number;
2048
+ stop: number;
2049
+ risk: number;
2050
+ };
2051
+ config: TradeConfig;
2052
+ global_config: GlobalConfig;
2053
+ fee_percent?: number;
2054
+ ratio?: number;
2055
+ distribution?: any;
2056
+ distribution_params?: {
2057
+ curveFactor?: number;
2058
+ stdDevFactor?: number;
2059
+ lambda?: number;
2060
+ };
2061
+ risk_factor?: number;
2062
+ }): {
2063
+ trades: any[];
2064
+ summary: any;
2065
+ config: {
2066
+ entry: number;
2067
+ stop: number;
2068
+ risk: number;
2069
+ distribution: any;
2070
+ distribution_params: {
2071
+ curveFactor?: number;
2072
+ stdDevFactor?: number;
2073
+ lambda?: number;
2074
+ };
2075
+ risk_factor: number;
2076
+ };
2077
+ kind: string;
2078
+ } | {
2079
+ trades: any[];
2080
+ summary: {
2081
+ entry: number;
2082
+ stop: number;
2083
+ risk: number;
2084
+ risk_reward: any;
2085
+ avg_entry: number;
2086
+ avg_size: number;
2087
+ first_entry: number;
2088
+ pnl: number;
2089
+ fee: number;
2090
+ loss: number;
2091
+ last_entry: number;
2092
+ defaultEntry: number;
2093
+ };
2094
+ config: any;
2095
+ kind: string;
2096
+ };
2097
+ declare function increaseTradeHelper({ increase_qty, stop, config, global_config, style, entry, position, stop_ratio, distribution: default_distribution, distribution_params: default_distribution_params, }: {
2098
+ position: {
2099
+ entry: number;
2100
+ quantity: number;
2101
+ };
2102
+ entry: number;
2103
+ stop: number;
2104
+ config: TradeConfig;
2105
+ global_config: GlobalConfig;
2106
+ increase_qty: number;
2107
+ style: "minimum" | "optimum";
2108
+ stop_ratio?: number;
2109
+ distribution?: any;
2110
+ distribution_params?: {
2111
+ curveFactor?: number;
2112
+ stdDevFactor?: number;
2113
+ lambda?: number;
2114
+ };
2115
+ }): {
2116
+ trades: any[];
2117
+ summary: any;
2118
+ config: any;
2119
+ kind: string;
2120
+ current: {
2121
+ trades: any[];
2122
+ summary: {
2123
+ first_entry: number;
2124
+ last_entry: number;
2125
+ quantity: number;
2126
+ entry: number;
2127
+ loss: number;
2128
+ number_of_trades: number;
2129
+ fee: number;
2130
+ anchor_pnl: any;
2131
+ };
2132
+ };
2133
+ stop_order?: undefined;
2134
+ } | {
2135
+ trades: any[];
2136
+ summary: {
2137
+ entry: number;
2138
+ stop: number;
2139
+ risk: number;
2140
+ risk_reward: any;
2141
+ avg_entry: number;
2142
+ avg_size: number;
2143
+ first_entry: number;
2144
+ pnl: number;
2145
+ fee: number;
2146
+ loss: number;
2147
+ last_entry: number;
2148
+ margin: number;
2149
+ };
2150
+ stop_order: {
2151
+ quantity: number;
2152
+ price: number;
2153
+ };
2154
+ config: any;
2155
+ kind: string;
2156
+ current: {
2157
+ trades: any[];
2158
+ summary: {
2159
+ first_entry: number;
2160
+ last_entry: number;
2161
+ quantity: number;
2162
+ entry: number;
2163
+ loss: number;
2164
+ number_of_trades: number;
2165
+ fee: number;
2166
+ anchor_pnl: any;
2167
+ };
2168
+ };
2169
+ };
2170
+ declare function generatePositionIncreaseTrade({ account, zoneAccount, ratio, config, global_config, style, distribution, distribution_params, }: {
2171
+ style?: "optimum" | "minimum";
2172
+ account: {
2173
+ long: {
2174
+ entry: number;
2175
+ quantity: number;
2176
+ };
2177
+ short: {
2178
+ entry: number;
2179
+ quantity: number;
2180
+ };
2181
+ };
2182
+ config: TradeConfig;
2183
+ global_config: GlobalConfig;
2184
+ zoneAccount: {
2185
+ entry: number;
2186
+ stop: number;
2187
+ };
2188
+ ratio?: number;
2189
+ distribution?: any;
2190
+ distribution_params?: {
2191
+ curveFactor?: number;
2192
+ stdDevFactor?: number;
2193
+ lambda?: number;
2194
+ };
2195
+ }): {
2196
+ trades: any[];
2197
+ summary: any;
2198
+ config: any;
2199
+ kind: string;
2200
+ current: {
2201
+ trades: any[];
2202
+ summary: {
2203
+ first_entry: number;
2204
+ last_entry: number;
2205
+ quantity: number;
2206
+ entry: number;
2207
+ loss: number;
2208
+ number_of_trades: number;
2209
+ fee: number;
2210
+ anchor_pnl: any;
2211
+ };
2212
+ };
2213
+ stop_order?: undefined;
2214
+ } | {
2215
+ trades: any[];
2216
+ summary: {
2217
+ entry: number;
2218
+ stop: number;
2219
+ risk: number;
2220
+ risk_reward: any;
2221
+ avg_entry: number;
2222
+ avg_size: number;
2223
+ first_entry: number;
2224
+ pnl: number;
2225
+ fee: number;
2226
+ loss: number;
2227
+ last_entry: number;
2228
+ margin: number;
2229
+ };
2230
+ stop_order: {
2231
+ quantity: number;
2232
+ price: number;
2233
+ };
2234
+ config: any;
2235
+ kind: string;
2236
+ current: {
2237
+ trades: any[];
2238
+ summary: {
2239
+ first_entry: number;
2240
+ last_entry: number;
2241
+ quantity: number;
2242
+ entry: number;
2243
+ loss: number;
2244
+ number_of_trades: number;
2245
+ fee: number;
2246
+ anchor_pnl: any;
2247
+ };
2248
+ };
2249
+ };
2250
+ declare function determineHedgeTradeToPlace({ position, config, global_config, profit_risk, allowable_loss, }: {
2251
+ position: {
2252
+ entry: number;
2253
+ quantity: number;
2254
+ kind: "long" | "short";
2255
+ };
2256
+ config: TradeConfig;
2257
+ global_config: GlobalConfig;
2258
+ profit_risk?: number;
2259
+ allowable_loss?: number;
2260
+ }): {
2261
+ opposite: {
2262
+ trades: any[];
2263
+ summary: {
2264
+ entry: number;
2265
+ stop: number;
2266
+ risk: number;
2267
+ risk_reward: any;
2268
+ avg_entry: number;
2269
+ avg_size: number;
2270
+ first_entry: number;
2271
+ pnl: number;
2272
+ fee: number;
2273
+ loss: number;
2274
+ last_entry: number;
2275
+ margin: number;
2276
+ };
2277
+ config: any;
2278
+ stop_order: {
2279
+ quantity: number;
2280
+ price: number;
2281
+ };
2282
+ kind: string;
2283
+ };
2284
+ take_profit: number;
2285
+ };
2286
+ export declare const compoundAPI: {
2287
+ determineHedgeTradeToPlace: typeof determineHedgeTradeToPlace;
2288
+ buildWithOptimumReward: typeof buildWithOptimumReward;
2289
+ constructAppConfig: typeof constructAppConfig$1;
2290
+ generateOppositeOptimum: typeof generateOppositeOptimum;
2291
+ increaseTradeHelper: typeof increaseTradeHelper;
2292
+ generatePositionIncreaseTrade: typeof generatePositionIncreaseTrade;
2293
+ };
2294
+ export type ExchangeOrder = {
2295
+ symbol: string;
2296
+ price: number;
2297
+ quantity: number;
2298
+ kind: "long" | "short";
2299
+ side: "buy" | "sell";
2300
+ stop: number;
2301
+ order_id: string;
2302
+ triggerPrice?: number;
1156
2303
  };
1157
- declare class ExchangePosition {
2304
+ export declare class ExchangePosition {
1158
2305
  exchange: BaseExchange;
1159
2306
  exchange_account: ExchangeAccount$1;
1160
2307
  private app_db;
1161
2308
  private instance;
2309
+ orders: {
2310
+ entries: ExchangeOrder[];
2311
+ stop_orders: ExchangeOrder[];
2312
+ tp_orders: ExchangeOrder[];
2313
+ };
1162
2314
  constructor(payload: {
1163
2315
  exchange: BaseExchange;
1164
2316
  app_db: AppDatabase;
1165
2317
  instance: PositionsView;
1166
2318
  exchange_account: ExchangeAccount$1;
1167
2319
  without_view?: PositionsView;
2320
+ orders?: {
2321
+ entries: any[];
2322
+ stop_orders: any[];
2323
+ tp_orders: any[];
2324
+ };
1168
2325
  });
2326
+ get symbol_config(): SymbolConfig;
2327
+ initialize(): Promise<void>;
2328
+ getInstance(): PositionsView;
1169
2329
  get symbol(): any;
1170
2330
  get kind(): any;
1171
- get account(): any;
2331
+ get account(): ExchangeAccount;
2332
+ get compound(): CompoundInstance & {
2333
+ amount_to_risk?: number;
2334
+ profit_percent?: number;
2335
+ };
2336
+ getProxyForAccount(): Promise<HttpsProxyAgent<`http://${string}`> | SocksProxyAgent>;
1172
2337
  cancelOrders(payload: {
1173
2338
  limit?: boolean;
1174
2339
  price?: number;
1175
- }): Promise<void | {
2340
+ raw?: boolean;
2341
+ }): Promise<any[] | {
1176
2342
  success: boolean;
1177
2343
  message: string;
1178
2344
  exchange_result?: undefined;
@@ -1197,9 +2363,10 @@ declare class ExchangePosition {
1197
2363
  profit_percent?: number;
1198
2364
  place_tp?: boolean;
1199
2365
  profit?: number;
2366
+ reduce_ratio?: number;
1200
2367
  };
1201
2368
  }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
1202
- updateTargetPnl(): Promise<number>;
2369
+ updateTargetPnl(): Promise<any>;
1203
2370
  updateConfigPnl(): Promise<void>;
1204
2371
  triggerTradeFromConfig(payload: {
1205
2372
  place?: boolean;
@@ -1208,8 +2375,11 @@ declare class ExchangePosition {
1208
2375
  stop?: boolean;
1209
2376
  use_current?: boolean;
1210
2377
  ignore_config?: boolean;
2378
+ risky?: boolean;
2379
+ hedge?: boolean;
2380
+ stop_ratio?: number;
1211
2381
  }): Promise<any>;
1212
- placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders", payload: {
2382
+ placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
1213
2383
  entry: number;
1214
2384
  stop: number;
1215
2385
  risk_reward: number;
@@ -1218,6 +2388,15 @@ declare class ExchangePosition {
1218
2388
  update_db?: boolean;
1219
2389
  raw?: boolean;
1220
2390
  use_current?: boolean;
2391
+ stop_percent?: number;
2392
+ distribution?: GetEntriesParams["distribution"];
2393
+ distribution_params?: {
2394
+ curveFactor?: number;
2395
+ stdDevFactor?: number;
2396
+ lambda?: number;
2397
+ };
2398
+ hedge?: boolean;
2399
+ stop_ratio?: number;
1221
2400
  }): Promise<any>;
1222
2401
  buildAppConfig(payload: {
1223
2402
  entry: number;
@@ -1227,6 +2406,17 @@ declare class ExchangePosition {
1227
2406
  profit?: number;
1228
2407
  update_db?: boolean;
1229
2408
  profit_percent?: number;
2409
+ use_kelly?: boolean;
2410
+ kelly_confidence_factor?: number;
2411
+ kelly_minimum_risk?: number;
2412
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2413
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2414
+ distribution?: GetEntriesParams["distribution"];
2415
+ distribution_params?: {
2416
+ curveFactor?: number;
2417
+ stdDevFactor?: number;
2418
+ lambda?: number;
2419
+ };
1230
2420
  }): Promise<AppConfig>;
1231
2421
  placeConfigOrders(app_config: AppConfig, solution: {
1232
2422
  risk_reward: number;
@@ -1237,6 +2427,18 @@ declare class ExchangePosition {
1237
2427
  neg_pnl: number;
1238
2428
  min_size: number;
1239
2429
  symbol: string;
2430
+ stop_percent?: number;
2431
+ use_kelly?: boolean;
2432
+ kelly_confidence_factor?: number;
2433
+ kelly_minimum_risk?: number;
2434
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2435
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2436
+ distribution?: GetEntriesParams["distribution"];
2437
+ distribution_params?: {
2438
+ curveFactor?: number;
2439
+ stdDevFactor?: number;
2440
+ lambda?: number;
2441
+ };
1240
2442
  }, place?: boolean, skip_stop?: boolean): Promise<{
1241
2443
  entry_orders: {
1242
2444
  orders: {
@@ -1277,17 +2479,318 @@ declare class ExchangePosition {
1277
2479
  tp?: boolean;
1278
2480
  stop?: boolean;
1279
2481
  raw?: boolean;
2482
+ limit?: boolean;
1280
2483
  cancel?: boolean;
1281
2484
  ignore_config?: boolean;
2485
+ risky?: boolean;
2486
+ target_pnl?: number;
2487
+ hedge?: boolean;
2488
+ stop_ratio?: number;
2489
+ }): Promise<any>;
2490
+ placeStopLimit(payload: {
2491
+ place?: boolean;
2492
+ stop: number;
2493
+ quantity?: number;
2494
+ }): Promise<any>;
2495
+ computeTargetPnl(payload: {
2496
+ secondary: ExchangePosition;
2497
+ }): Promise<number>;
2498
+ runSimulation(payload: {
2499
+ iterations?: number;
2500
+ long_position: ExchangePosition;
2501
+ short_position: ExchangePosition;
2502
+ raw?: boolean;
2503
+ }): Promise<Strategy | {
2504
+ last_entry: any;
2505
+ first_entry: any;
2506
+ threshold: any;
2507
+ risk: number;
2508
+ risk_reward: number;
2509
+ spread: number;
2510
+ gap_loss: number;
2511
+ net_profit: number;
2512
+ long: {
2513
+ avg_entry: number;
2514
+ avg_size: number;
2515
+ loss: number;
2516
+ stop: number;
2517
+ stop_quantity: number;
2518
+ re_entry_quantity: number;
2519
+ initial_pnl: number;
2520
+ tp: number;
2521
+ incurred_loss: number;
2522
+ pnl: number;
2523
+ remaining_quantity: number;
2524
+ };
2525
+ short: {
2526
+ avg_entry: number;
2527
+ avg_size: number;
2528
+ loss: number;
2529
+ stop: number;
2530
+ stop_quantity: number;
2531
+ re_entry_quantity: number;
2532
+ initial_pnl: number;
2533
+ tp: number;
2534
+ incurred_loss: number;
2535
+ pnl: number;
2536
+ remaining_quantity: number;
2537
+ };
2538
+ }[]>;
2539
+ rawConfigUpdate(payload: any): Promise<void>;
2540
+ /**
2541
+ * This method is used to place the opposite trade action
2542
+ */
2543
+ placeOppositeTradeAction(payload: {
2544
+ data: {
2545
+ avg: {
2546
+ quantity: number;
2547
+ price: number;
2548
+ };
2549
+ entry: number;
2550
+ stop: number;
2551
+ risk_per_trade: number;
2552
+ profit_percent: number;
2553
+ risk_reward: number;
2554
+ };
2555
+ }): Promise<void>;
2556
+ /**
2557
+ * Updates the risk configuration for an empty position using the next_risk value.
2558
+ * This implements progressive risk management where successful trades increase future risk tolerance.
2559
+ *
2560
+ * @param payload.symbol - The trading symbol (e.g., "BTCUSDT")
2561
+ * @param payload.kind - Position type: "long" or "short"
2562
+ * @returns Object indicating if update was successful with old/new risk values
2563
+ */
2564
+ updateRiskOnEmpty(): Promise<{
2565
+ updated: boolean;
2566
+ symbol: any;
2567
+ kind: any;
2568
+ old_risk: number;
2569
+ new_risk: number;
2570
+ reason?: undefined;
2571
+ } | {
2572
+ updated: boolean;
2573
+ symbol: any;
2574
+ kind: any;
2575
+ reason: string;
2576
+ old_risk?: undefined;
2577
+ new_risk?: undefined;
2578
+ }>;
2579
+ increasePositionAtStop(payload: {
2580
+ place?: boolean;
2581
+ price?: number;
2582
+ quantity?: number;
2583
+ increase?: boolean;
2584
+ ratio_to_loose?: number;
2585
+ reverse_position?: ExchangePosition;
2586
+ increase_ratio?: number;
2587
+ }): Promise<any>;
2588
+ lockReduction({ pnl, place, pause_tp, }: {
2589
+ pnl: number;
2590
+ place?: boolean;
2591
+ pause_tp?: boolean;
2592
+ }): Promise<{
2593
+ sell_ratio: number;
2594
+ current_pnl: number;
2595
+ profit_percent: number;
2596
+ current_price: number;
2597
+ notional_value: number;
2598
+ }>;
2599
+ placeSingleOrder(payload: {
2600
+ long_position: ExchangePosition;
2601
+ short_position: ExchangePosition;
2602
+ }): Promise<string>;
2603
+ placeMarketOrder(payload: {
2604
+ quantity?: number;
2605
+ close?: boolean;
2606
+ }): Promise<void>;
2607
+ generate_config_params(payload: {
2608
+ entry: number;
2609
+ stop: number;
2610
+ risk_reward: number;
2611
+ risk: number;
2612
+ with_trades?: boolean;
2613
+ }): Promise<any>;
2614
+ extrapolateConfig(payload: {
2615
+ risk_reward?: number;
2616
+ risk?: number;
2617
+ kind?: "long" | "short";
2618
+ }): Promise<any>;
2619
+ build_short_order(): Promise<any>;
2620
+ /**
2621
+ * This function builds a config for a symbol
2622
+ * @param payload
2623
+ * @returns
2624
+ */
2625
+ buildConfigForSymbol(payload: {
2626
+ risk: number;
2627
+ risk_reward?: number;
2628
+ as_config?: boolean;
2629
+ with_trades?: boolean;
2630
+ }): Promise<any>;
2631
+ buildTrades(payload: {
2632
+ risk?: number;
2633
+ }): Promise<{
2634
+ trades: any[];
2635
+ max_size: any;
2636
+ last_price: any;
2637
+ total_size: number;
2638
+ avg_entry: number;
2639
+ }>;
2640
+ tradeConfig(payload: {
2641
+ override?: any;
2642
+ }): Promise<AppConfig>;
2643
+ getOrCreatePositionConfig(payload: {
2644
+ risk?: number;
2645
+ risk_reward?: number;
2646
+ }): Promise<import("pocketbase").RecordModel | ScheduledTrade>;
2647
+ getOppositeConfig(payload: {
2648
+ ratio?: number;
2649
+ }): {
2650
+ entry: number;
2651
+ stop: number;
2652
+ risk: number;
2653
+ risk_reward: number | {
2654
+ result: any[];
2655
+ value: number;
2656
+ total: number;
2657
+ risk_per_trade: number;
2658
+ max: number;
2659
+ min: number;
2660
+ avg_size: any;
2661
+ neg_pnl: any;
2662
+ entry: any;
2663
+ };
2664
+ };
2665
+ getOptimumRiskReward(): Promise<number | {
2666
+ result: any[];
2667
+ value: number;
2668
+ total: number;
2669
+ risk_per_trade: number;
2670
+ max: number;
2671
+ min: number;
2672
+ avg_size: any;
2673
+ neg_pnl: any;
2674
+ entry: any;
2675
+ }>;
2676
+ get appConfig(): {
2677
+ fee: number;
2678
+ risk_per_trade: number;
2679
+ risk_reward: number;
2680
+ symbol?: string;
2681
+ focus: number;
2682
+ budget: number;
2683
+ support: number;
2684
+ resistance: number;
2685
+ percent_change: number;
2686
+ tradeSplit?: number;
2687
+ take_profit?: number;
2688
+ kind: "long" | "short";
2689
+ entry: number;
2690
+ stop: number;
2691
+ min_size: number;
2692
+ price_places?: string;
2693
+ strategy?: "quantity" | "entry";
2694
+ as_array?: boolean;
2695
+ decimal_places?: string;
2696
+ min_profit?: number;
2697
+ raw?: boolean;
2698
+ gap?: number;
2699
+ rr?: number;
2700
+ max_size?: number;
2701
+ last_value?: any;
2702
+ max_quantity?: number;
2703
+ kelly?: {
2704
+ use_kelly?: boolean;
2705
+ kelly_confidence_factor?: number;
2706
+ kelly_minimum_risk?: number;
2707
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
2708
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
2709
+ };
2710
+ distribution?: GetEntriesParams["distribution"];
2711
+ distribution_params?: {
2712
+ curveFactor?: number;
2713
+ stdDevFactor?: number;
2714
+ lambda?: number;
2715
+ };
2716
+ };
2717
+ updateProfitPercentWithRisk(payload: {
2718
+ focus_position: ExchangePosition;
2719
+ }): Promise<{
2720
+ profit_percent: number;
2721
+ take_profit: number;
2722
+ last_order: number;
2723
+ }>;
2724
+ getOrders(payload: {
2725
+ type?: "limit" | "stop" | "tp";
2726
+ }): {
2727
+ symbol: any;
2728
+ price: any;
2729
+ quantity: any;
2730
+ kind: any;
2731
+ side: any;
2732
+ stop: any;
2733
+ order_id: any;
2734
+ triggerPrice: any;
2735
+ client_order_id: any;
2736
+ }[];
2737
+ cancelExchangeOrder(payload: {
2738
+ type: "limit" | "stop" | "tp";
2739
+ refresh?: boolean;
2740
+ }): Promise<any>;
2741
+ placeDangerousTrade(payload: {
2742
+ entry: number;
2743
+ quantity: number;
2744
+ stop?: number;
2745
+ }): {
2746
+ entry: number;
2747
+ risk: number;
2748
+ stop: number;
2749
+ risk_reward: number | {
2750
+ result: any[];
2751
+ value: number;
2752
+ total: number;
2753
+ risk_per_trade: number;
2754
+ max: number;
2755
+ min: number;
2756
+ avg_size: any;
2757
+ neg_pnl: any;
2758
+ entry: any;
2759
+ };
2760
+ };
2761
+ followStop(payload: {
2762
+ focus_position: ExchangePosition;
2763
+ fee_percent?: number;
2764
+ place?: boolean;
1282
2765
  }): Promise<any>;
2766
+ get support(): SupportTable;
2767
+ get linkedConfig(): ScheduledTrade;
2768
+ get isActiveTrade(): {
2769
+ config: ScheduledTrade;
2770
+ condition: boolean;
2771
+ };
2772
+ updateCompound(payload?: {
2773
+ place?: boolean;
2774
+ }): Promise<{
2775
+ support: number;
2776
+ counter: number;
2777
+ new_risk: number;
2778
+ condition: boolean;
2779
+ stop: number;
2780
+ }>;
2781
+ cleanOnActiveCompoundInstance(): Promise<void>;
1283
2782
  }
1284
2783
  declare class ExchangeAccount$1 {
1285
- private instance;
2784
+ instance: {
2785
+ owner: string;
2786
+ exchange: string;
2787
+ };
1286
2788
  exchange: BaseExchange;
1287
2789
  main_exchange?: BaseExchange;
1288
2790
  private app_db;
1289
- private long_position?;
1290
- private short_position?;
2791
+ long_position?: ExchangePosition;
2792
+ short_position?: ExchangePosition;
2793
+ raw_positions?: PositionsView[];
1291
2794
  constructor(payload: ExchangeType, options: {
1292
2795
  exchange: BaseExchange;
1293
2796
  app_db: AppDatabase;
@@ -1306,8 +2809,8 @@ declare class ExchangeAccount$1 {
1306
2809
  }): Promise<import("pocketbase").RecordModel>;
1307
2810
  initializePositions(payload: {
1308
2811
  symbol: string;
1309
- as_view?: boolean;
1310
2812
  kind: "long" | "short";
2813
+ update?: boolean;
1311
2814
  }): Promise<ExchangePosition>;
1312
2815
  getActiveAccount(payload: {
1313
2816
  symbol: string;
@@ -1330,6 +2833,7 @@ declare class ExchangeAccount$1 {
1330
2833
  expand?: {
1331
2834
  config: ScheduledTrade;
1332
2835
  account: ExchangeAccount;
2836
+ proxy: Proxy$1;
1333
2837
  };
1334
2838
  })[]>;
1335
2839
  syncAccount(options: {
@@ -1343,9 +2847,9 @@ declare class ExchangeAccount$1 {
1343
2847
  expand?: {
1344
2848
  config: ScheduledTrade;
1345
2849
  account: ExchangeAccount;
2850
+ proxy: Proxy$1;
1346
2851
  };
1347
2852
  })[]>;
1348
- getRunningInstanceFromDB(symbol: string): Promise<TradeBlockTracking>;
1349
2853
  syncOrders(options: {
1350
2854
  symbol: string;
1351
2855
  kind?: "long" | "short";
@@ -1356,6 +2860,11 @@ declare class ExchangeAccount$1 {
1356
2860
  kind: "long" | "short";
1357
2861
  should_stop?: boolean;
1358
2862
  }): Promise<import("pocketbase").RecordModel>;
2863
+ getFocusPosition(payload: {
2864
+ symbol: string;
2865
+ kind: "long" | "short";
2866
+ update?: boolean;
2867
+ }): Promise<ExchangePosition>;
1359
2868
  cancelOrders(payload: {
1360
2869
  symbol: string;
1361
2870
  kind: "long" | "short";
@@ -1363,7 +2872,8 @@ declare class ExchangeAccount$1 {
1363
2872
  all?: boolean;
1364
2873
  stop?: boolean;
1365
2874
  limit?: boolean;
1366
- }): Promise<void | {
2875
+ raw?: boolean;
2876
+ }): Promise<any[] | {
1367
2877
  success: boolean;
1368
2878
  message: string;
1369
2879
  exchange_result?: undefined;
@@ -1384,24 +2894,15 @@ declare class ExchangeAccount$1 {
1384
2894
  orders: number[];
1385
2895
  }): Promise<any>;
1386
2896
  getBreakEvenPrice(payload: {
1387
- symbol: string;
1388
- }): Promise<{
1389
- price: number;
1390
- direction: string;
1391
- }>;
1392
- buildAppConfig(payload: {
1393
- entry: number;
1394
- stop: number;
1395
- risk_reward: number;
1396
- risk: number;
1397
- symbol: string;
1398
- profit?: number;
1399
- update_db?: boolean;
1400
- profit_percent?: number;
1401
- }): Promise<AppConfig>;
2897
+ symbol: string;
2898
+ }): Promise<{
2899
+ price: number;
2900
+ direction: string;
2901
+ }>;
1402
2902
  tradeConfig(payload: {
1403
2903
  symbol: string;
1404
2904
  kind: "long" | "short";
2905
+ override?: any;
1405
2906
  }): Promise<AppConfig>;
1406
2907
  justInTimeProfit(payload: {
1407
2908
  symbol: string;
@@ -1429,48 +2930,7 @@ declare class ExchangeAccount$1 {
1429
2930
  total_size: number;
1430
2931
  avg_entry: number;
1431
2932
  }>;
1432
- 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: {
2933
+ placeSharedOrder(action: "place_limit_orders" | "place_stop_orders" | "place_tp_orders" | "dangerous_entry_orders", payload: {
1474
2934
  symbol: string;
1475
2935
  entry: number;
1476
2936
  stop: number;
@@ -1480,6 +2940,7 @@ declare class ExchangeAccount$1 {
1480
2940
  update_db?: boolean;
1481
2941
  raw?: boolean;
1482
2942
  use_current?: boolean;
2943
+ stop_percent?: number;
1483
2944
  }): Promise<any>;
1484
2945
  getOrCreatePositionConfig(payload: {
1485
2946
  symbol: string;
@@ -1548,7 +3009,7 @@ declare class ExchangeAccount$1 {
1548
3009
  not_reduce: boolean;
1549
3010
  ratio: any;
1550
3011
  use_full: boolean;
1551
- sell_ratio: any;
3012
+ sell_ratio: number;
1552
3013
  };
1553
3014
  trigger: {
1554
3015
  long: boolean;
@@ -1581,14 +3042,6 @@ declare class ExchangeAccount$1 {
1581
3042
  target_pnl?: number;
1582
3043
  }): Promise<any>;
1583
3044
  reEnterPositionOnEmpty(symbol: string): Promise<void>;
1584
- generate_config_params(payload: {
1585
- entry: number;
1586
- stop: number;
1587
- risk_reward: number;
1588
- risk: number;
1589
- symbol: string;
1590
- with_trades?: boolean;
1591
- }): Promise<any>;
1592
3045
  build_short_order(payload: {
1593
3046
  symbol: string;
1594
3047
  kind: "long" | "short";
@@ -1602,12 +3055,29 @@ declare class ExchangeAccount$1 {
1602
3055
  placeMarketOrder(payload: {
1603
3056
  symbol: string;
1604
3057
  kind: "long" | "short";
1605
- quantity: number;
3058
+ quantity?: number;
3059
+ close?: boolean;
1606
3060
  }): Promise<void>;
1607
3061
  placeSingleOrder(payload: {
1608
3062
  symbol: string;
1609
3063
  kind: "long" | "short";
1610
3064
  }): Promise<string>;
3065
+ followStop(payload: {
3066
+ symbol: string;
3067
+ kind: "long" | "short";
3068
+ fee_percent?: number;
3069
+ focus_position: ExchangePosition;
3070
+ place?: boolean;
3071
+ }): Promise<any>;
3072
+ increasePositionAtStop(payload: {
3073
+ symbol: string;
3074
+ kind: "long" | "short";
3075
+ place?: boolean;
3076
+ price?: number;
3077
+ quantity?: number;
3078
+ increase?: boolean;
3079
+ ratio_to_loose?: number;
3080
+ }): Promise<any>;
1611
3081
  triggerTradeFromConfig(payload: {
1612
3082
  symbol: string;
1613
3083
  kind: "long" | "short";
@@ -1617,6 +3087,7 @@ declare class ExchangeAccount$1 {
1617
3087
  stop?: boolean;
1618
3088
  use_current?: boolean;
1619
3089
  ignore_config?: boolean;
3090
+ risky?: boolean;
1620
3091
  }): Promise<any>;
1621
3092
  verifyStopLoss(payload: {
1622
3093
  symbol: string;
@@ -1631,7 +3102,46 @@ declare class ExchangeAccount$1 {
1631
3102
  updateTargetPnl(payload: {
1632
3103
  symbol: string;
1633
3104
  kind: "long" | "short";
1634
- }): Promise<number>;
3105
+ }): Promise<any>;
3106
+ updateRiskOnEmpty(payload: {
3107
+ symbol: string;
3108
+ kind: "long" | "short";
3109
+ }): Promise<{
3110
+ updated: boolean;
3111
+ symbol: any;
3112
+ kind: any;
3113
+ old_risk: number;
3114
+ new_risk: number;
3115
+ reason?: undefined;
3116
+ } | {
3117
+ updated: boolean;
3118
+ symbol: any;
3119
+ kind: any;
3120
+ reason: string;
3121
+ old_risk?: undefined;
3122
+ new_risk?: undefined;
3123
+ }>;
3124
+ updateGoodHedgeConfig(payload: {
3125
+ symbol: string;
3126
+ params?: {
3127
+ support: number;
3128
+ resistance: number;
3129
+ risk: number;
3130
+ profit_percent: number;
3131
+ };
3132
+ risk_factor?: number;
3133
+ update?: boolean;
3134
+ place?: boolean;
3135
+ update_tp?: boolean;
3136
+ }): Promise<{
3137
+ support: number;
3138
+ resistance: number;
3139
+ risk: number;
3140
+ profit_percent: number;
3141
+ }>;
3142
+ /**
3143
+ * This method is used to place the opposite trade action
3144
+ */
1635
3145
  placeOppositeTradeAction(payload: {
1636
3146
  symbol: string;
1637
3147
  kind: "long" | "short";
@@ -1684,6 +3194,20 @@ declare class ExchangeAccount$1 {
1684
3194
  gap?: number;
1685
3195
  rr?: number;
1686
3196
  max_size?: number;
3197
+ max_quantity?: number;
3198
+ kelly?: {
3199
+ use_kelly?: boolean;
3200
+ kelly_confidence_factor?: number;
3201
+ kelly_minimum_risk?: number;
3202
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3203
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3204
+ };
3205
+ distribution?: GetEntriesParams["distribution"];
3206
+ distribution_params?: {
3207
+ curveFactor?: number;
3208
+ stdDevFactor?: number;
3209
+ lambda?: number;
3210
+ };
1687
3211
  }>;
1688
3212
  runSimulation(payload: {
1689
3213
  symbol: string;
@@ -1785,6 +3309,37 @@ declare class ExchangeAccount$1 {
1785
3309
  symbol: string;
1786
3310
  kind: "long" | "short";
1787
3311
  }): Promise<number>;
3312
+ placeStopLimit(payload: {
3313
+ symbol: string;
3314
+ kind: "long" | "short";
3315
+ place?: boolean;
3316
+ stop: number;
3317
+ quantity?: number;
3318
+ }): Promise<any>;
3319
+ placeDangerousTrade(payload: {
3320
+ symbol: string;
3321
+ config: {
3322
+ entry: number;
3323
+ quantity: number;
3324
+ stop: number;
3325
+ };
3326
+ kind: "long" | "short";
3327
+ }): Promise<{
3328
+ entry: number;
3329
+ risk: number;
3330
+ stop: number;
3331
+ risk_reward: number | {
3332
+ result: any[];
3333
+ value: number;
3334
+ total: number;
3335
+ risk_per_trade: number;
3336
+ max: number;
3337
+ min: number;
3338
+ avg_size: any;
3339
+ neg_pnl: any;
3340
+ entry: any;
3341
+ };
3342
+ }>;
1788
3343
  placeTrade(payload: {
1789
3344
  symbol: string;
1790
3345
  kind: "long" | "short";
@@ -1796,6 +3351,7 @@ declare class ExchangeAccount$1 {
1796
3351
  cancel?: boolean;
1797
3352
  ignore_config?: boolean;
1798
3353
  target_pnl?: number;
3354
+ risky?: boolean;
1799
3355
  }): Promise<any>;
1800
3356
  updateConfigPnl(payload: {
1801
3357
  symbol: string;
@@ -1814,57 +3370,18 @@ declare class ExchangeAccount$1 {
1814
3370
  long_percent: number;
1815
3371
  short_percent: number;
1816
3372
  }>;
3373
+ oppositeGapExists(payload: {
3374
+ symbol: string;
3375
+ kind: "long" | "short";
3376
+ }): Promise<void>;
1817
3377
  profitWithinGapStrategy(payload: {
1818
3378
  symbol: string;
1819
- }): 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;
3379
+ callback?: (params: {
3380
+ symbol: string;
3381
+ account: ExchangeType;
1840
3382
  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;
3383
+ }) => Promise<any>;
3384
+ }): Promise<{
1868
3385
  config_details: {
1869
3386
  app_config: {
1870
3387
  fee: number;
@@ -1891,36 +3408,49 @@ declare class ExchangeAccount$1 {
1891
3408
  gap?: number;
1892
3409
  rr?: number;
1893
3410
  max_size?: number;
1894
- };
1895
- 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;
3411
+ max_quantity?: number;
3412
+ kelly?: {
3413
+ use_kelly?: boolean;
3414
+ kelly_confidence_factor?: number;
3415
+ kelly_minimum_risk?: number;
3416
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3417
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3418
+ };
3419
+ distribution?: GetEntriesParams["distribution"];
3420
+ distribution_params?: {
3421
+ curveFactor?: number;
3422
+ stdDevFactor?: number;
3423
+ lambda?: number;
1909
3424
  };
1910
- profit_percent: number;
1911
3425
  };
1912
- pnl: number;
3426
+ last_value: any;
1913
3427
  };
1914
3428
  }>;
1915
3429
  generateGapTp(payload: {
1916
3430
  symbol: string;
1917
3431
  factor?: number;
1918
3432
  }): Promise<{
1919
- long_tp: number;
1920
- short_tp: number;
1921
- short_to_reduce: number;
1922
- long_to_reduce: number;
1923
- to_sell: {
3433
+ profit_percent: {
3434
+ long: number;
3435
+ short: number;
3436
+ };
3437
+ risk: {
3438
+ short: number;
3439
+ long: number;
3440
+ };
3441
+ take_profit: {
3442
+ long: number;
3443
+ short: number;
3444
+ };
3445
+ to_reduce: {
3446
+ short: number;
3447
+ long: number;
3448
+ };
3449
+ full_reduce: {
3450
+ short: number;
3451
+ long: number;
3452
+ };
3453
+ sell_quantity: {
1924
3454
  short: number;
1925
3455
  long: number;
1926
3456
  };
@@ -1930,9 +3460,12 @@ declare class ExchangeAccount$1 {
1930
3460
  getSellPriceFromStrategy(payload: {
1931
3461
  symbol: string;
1932
3462
  reduce_position: PositionsView;
3463
+ kind?: "long" | "short";
3464
+ full_ratio?: number;
1933
3465
  }): Promise<{
1934
3466
  pnl: number;
1935
3467
  loss: number;
3468
+ full_loss: number;
1936
3469
  original_pnl: number;
1937
3470
  reward_factor: number;
1938
3471
  profit_percent: number;
@@ -1942,15 +3475,43 @@ declare class ExchangeAccount$1 {
1942
3475
  price_places: string;
1943
3476
  decimal_places: string;
1944
3477
  }>;
3478
+ placeCompoundShortTrade(payload: {}): Promise<void>;
3479
+ placeCompoundLongTrade(payload: {
3480
+ symbol: string;
3481
+ params: {
3482
+ resistance: number;
3483
+ support: number;
3484
+ profit_percent: number;
3485
+ risk_reward: number;
3486
+ risk: number;
3487
+ };
3488
+ place?: boolean;
3489
+ }): Promise<void>;
3490
+ getConfigProfiles(payload: {
3491
+ symbol: string;
3492
+ kind: "long" | "short";
3493
+ }): Promise<{
3494
+ id: any;
3495
+ entry: any;
3496
+ stop: any;
3497
+ kind: "long" | "short";
3498
+ risk_reward: any;
3499
+ risk: any;
3500
+ profit_percent: any;
3501
+ }[]>;
1945
3502
  }
1946
3503
  declare function getExchangeAccount(payload: {
1947
3504
  account: ExchangeType;
1948
3505
  app_db: AppDatabase;
1949
- getCredentials: (account: string, exchange: string) => {
3506
+ getCredentials: (payload: {
3507
+ account: string;
3508
+ exchange: string;
3509
+ app_db: AppDatabase;
3510
+ }) => Promise<{
1950
3511
  api_key: string;
1951
3512
  api_secret: string;
1952
3513
  email: string;
1953
- };
3514
+ }>;
1954
3515
  proxyOptions?: {
1955
3516
  proxy?: any;
1956
3517
  ignore_proxy?: boolean;
@@ -1965,11 +3526,14 @@ declare class App {
1965
3526
  canWithdraw?: boolean;
1966
3527
  };
1967
3528
  private getCredentials;
1968
- constructor(app_db: AppDatabase, getCredentials: (account: string, exchange: string) => {
3529
+ constructor(app_db: AppDatabase, getCredentials: (payload: {
3530
+ account: string;
3531
+ exchange: string;
3532
+ }) => Promise<{
1969
3533
  api_key: string;
1970
3534
  api_secret: string;
1971
3535
  email: string;
1972
- }, proxyOptions?: {
3536
+ }>, proxyOptions?: {
1973
3537
  proxy?: any;
1974
3538
  ignore_proxy?: boolean;
1975
3539
  canWithdraw?: boolean;
@@ -1985,13 +3549,14 @@ declare class App {
1985
3549
  expand?: {
1986
3550
  config: ScheduledTrade;
1987
3551
  account: ExchangeAccount;
3552
+ proxy: Proxy$1;
1988
3553
  };
1989
3554
  })[]>;
1990
3555
  syncOrders(payload: {
1991
3556
  account: ExchangeType;
1992
3557
  symbol: string;
1993
3558
  kind: "long" | "short";
1994
- }): Promise<any>;
3559
+ }): Promise<boolean>;
1995
3560
  cancelOrders(payload: {
1996
3561
  account: ExchangeType;
1997
3562
  symbol: string;
@@ -1999,7 +3564,7 @@ declare class App {
1999
3564
  price?: number;
2000
3565
  all?: boolean;
2001
3566
  stop?: boolean;
2002
- }): Promise<void | {
3567
+ }): Promise<any[] | {
2003
3568
  success: boolean;
2004
3569
  message: string;
2005
3570
  exchange_result?: undefined;
@@ -2038,10 +3603,16 @@ declare class App {
2038
3603
  getNonEssentialSymbols(): Promise<Set<any>>;
2039
3604
  refreshAllPositionsWithSymbol(payload: {
2040
3605
  symbol: string;
3606
+ callback?: (payload: {
3607
+ symbol: string;
3608
+ account: ExchangeType;
3609
+ }) => Promise<any>;
2041
3610
  }): Promise<void>;
2042
3611
  autoFollowPositions(): Promise<void>;
2043
3612
  getMoverExchangeInstances(): Promise<ExchangeAccount[]>;
2044
- updateTpOnAllMarkets(): Promise<void>;
3613
+ updateTpOnAllMarkets(callback?: (payload: {
3614
+ account: ExchangeType;
3615
+ }) => Promise<any>): Promise<void>;
2045
3616
  triggerMoverTask(payload: {
2046
3617
  callback: (params: {
2047
3618
  symbol: string;
@@ -2061,62 +3632,21 @@ declare class App {
2061
3632
  cancel?: boolean;
2062
3633
  raw?: boolean;
2063
3634
  }): Promise<any>;
2064
- runDbStrategyAccounts(callback: (params: {
2065
- symbol: string;
2066
- account: ExchangeType;
2067
- }) => Promise<any>): Promise<void>;
3635
+ runDbStrategyAccounts(payload: {
3636
+ runningCallback: (params: {
3637
+ symbol: string;
3638
+ account: ExchangeType;
3639
+ }) => Promise<any>;
3640
+ notRunningCallback: (params: {
3641
+ symbol: string;
3642
+ account: ExchangeType;
3643
+ kind: "long" | "short";
3644
+ }) => Promise<any>;
3645
+ }): Promise<void>;
2068
3646
  profitWithinGapStrategy(payload: {
2069
3647
  account: ExchangeType;
2070
3648
  symbol: string;
2071
3649
  }): Promise<{
2072
- reverse_config: any;
2073
- reverse_action: {
2074
- avg: {
2075
- entry: number;
2076
- price: number;
2077
- quantity: number;
2078
- };
2079
- loss: number;
2080
- profit_percent: number;
2081
- fee: number;
2082
- risk_per_trade: number;
2083
- risk_reward: number;
2084
- symbol?: string;
2085
- focus: number;
2086
- budget: number;
2087
- support: number;
2088
- resistance: number;
2089
- percent_change: number;
2090
- tradeSplit?: number;
2091
- take_profit?: number;
2092
- kind: "long" | "short";
2093
- entry: number;
2094
- stop: number;
2095
- min_size: number;
2096
- price_places?: string;
2097
- strategy?: "quantity" | "entry";
2098
- as_array?: boolean;
2099
- decimal_places?: string;
2100
- min_profit?: number;
2101
- raw?: boolean;
2102
- gap?: number;
2103
- rr?: number;
2104
- max_size?: number;
2105
- };
2106
- reverse_orders_to_buy: any;
2107
- positions: {
2108
- long: PositionsView & {
2109
- expand?: {
2110
- account_strategy?: AccountStrategy;
2111
- };
2112
- };
2113
- short: PositionsView & {
2114
- expand?: {
2115
- account_strategy?: AccountStrategy;
2116
- };
2117
- };
2118
- };
2119
- orders_to_place: any;
2120
3650
  config_details: {
2121
3651
  app_config: {
2122
3652
  fee: number;
@@ -2143,30 +3673,47 @@ declare class App {
2143
3673
  gap?: number;
2144
3674
  rr?: number;
2145
3675
  max_size?: number;
2146
- };
2147
- 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;
3676
+ max_quantity?: number;
3677
+ kelly?: {
3678
+ use_kelly?: boolean;
3679
+ kelly_confidence_factor?: number;
3680
+ kelly_minimum_risk?: number;
3681
+ kelly_prediction_model?: "exponential" | "normal" | "uniform";
3682
+ kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
3683
+ };
3684
+ distribution?: GetEntriesParams["distribution"];
3685
+ distribution_params?: {
3686
+ curveFactor?: number;
3687
+ stdDevFactor?: number;
3688
+ lambda?: number;
2161
3689
  };
2162
- profit_percent: number;
2163
3690
  };
2164
- pnl: number;
3691
+ last_value: any;
3692
+ };
3693
+ }>;
3694
+ compoundLongTrade(payload: {
3695
+ main_account: ExchangeType & {
3696
+ symbol: string;
3697
+ };
3698
+ focus_account: ExchangeType & {
3699
+ symbol: string;
2165
3700
  };
3701
+ place?: boolean;
3702
+ rr?: number;
3703
+ }): Promise<{
3704
+ start_risk: number;
3705
+ short_profit: number;
3706
+ support: number;
3707
+ resistance: number;
3708
+ long_v: any;
3709
+ profit_percent: number;
3710
+ result: any;
3711
+ short_max_size: any;
2166
3712
  }>;
2167
3713
  reduceExistingPosition(payload: {
2168
3714
  main_account: ExchangeType & {
2169
3715
  symbol: string;
3716
+ kind?: "long" | "short";
2170
3717
  };
2171
3718
  reduce_account: ExchangeType & {
2172
3719
  symbol: string;
@@ -2174,6 +3721,8 @@ declare class App {
2174
3721
  kind: "long" | "short";
2175
3722
  place?: boolean;
2176
3723
  increase?: boolean;
3724
+ full_ratio?: number;
3725
+ cancel_limit?: boolean;
2177
3726
  }): Promise<any>;
2178
3727
  }
2179
3728
  export declare function initApp(payload: {
@@ -2183,21 +3732,27 @@ export declare function initApp(payload: {
2183
3732
  password: string;
2184
3733
  };
2185
3734
  password?: string;
2186
- getCredentials: (account: string, exchange: string) => {
3735
+ salt?: string;
3736
+ email?: string;
3737
+ getCredentials: (payload: {
3738
+ account: string;
3739
+ exchange: string;
3740
+ app_db: AppDatabase;
3741
+ }) => Promise<{
2187
3742
  api_key: string;
2188
3743
  api_secret: string;
2189
3744
  email: string;
2190
- };
3745
+ }>;
2191
3746
  proxy?: any;
2192
3747
  ignore_proxy?: boolean;
2193
3748
  canWithdraw?: boolean;
2194
3749
  triggerToken?: string;
2195
3750
  }): Promise<App>;
2196
- declare function getCredentials(account: string, exchange: string): {
2197
- api_key: string;
2198
- api_secret: string;
2199
- email: string;
2200
- };
3751
+ declare function getCredentials(payload: {
3752
+ account: string;
3753
+ exchange: string;
3754
+ app_db: AppDatabase;
3755
+ }): Promise<any>;
2201
3756
  export declare function initialize(payload: {
2202
3757
  password?: string;
2203
3758
  proxy?: any;
@@ -2206,7 +3761,7 @@ export declare function initialize(payload: {
2206
3761
  }): Promise<App>;
2207
3762
 
2208
3763
  declare namespace database {
2209
- export { AppDatabase, ExchangeType, initPocketBaseClient };
3764
+ export { AppDatabase, ExchangeType, decryptObject, encryptObject, initPocketBaseClient };
2210
3765
  }
2211
3766
  declare namespace exchange_account {
2212
3767
  export { ExchangeAccount$1 as ExchangeAccount, getExchangeAccount };