@cryptorobot.ai/client 1.26.0-dev.1023 → 1.26.0-dev.1025

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.
@@ -0,0 +1,4 @@
1
+ export declare const MAX_PENDING_RECOMMENDATIONS = 5;
2
+ export declare const RECOMMENDATION_EMAIL_COOLDOWN_MS: number;
3
+ export declare const enforcePendingCap: (context: any) => Promise<any>;
4
+ export declare const notifyOnRecommendationCreate: (context: any) => Promise<any>;
@@ -143,6 +143,34 @@ export declare const strategiesSchema: import("@feathersjs/typebox").TObject<{
143
143
  stress_shield: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
144
144
  enabled: import("@feathersjs/typebox").TBoolean;
145
145
  }>>;
146
+ dca: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
147
+ enabled: import("@feathersjs/typebox").TBoolean;
148
+ reference: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"ath">, import("@feathersjs/typebox").TLiteral<"lastEntry">, import("@feathersjs/typebox").TLiteral<"averageEntry">, import("@feathersjs/typebox").TLiteral<"baseEntry">]>>;
149
+ trigger: import("@feathersjs/typebox").TObject<{
150
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"priceDeviation">, import("@feathersjs/typebox").TLiteral<"interval">, import("@feathersjs/typebox").TLiteral<"signal">]>;
151
+ stepPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
152
+ stepScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
153
+ every: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"hour">, import("@feathersjs/typebox").TLiteral<"day">, import("@feathersjs/typebox").TLiteral<"week">, import("@feathersjs/typebox").TLiteral<"month">]>>;
154
+ count: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
155
+ }>;
156
+ baseOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
157
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"fixed">, import("@feathersjs/typebox").TLiteral<"percentOfBalance">]>;
158
+ value: import("@feathersjs/typebox").TNumber;
159
+ }>>;
160
+ safetyOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
161
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"multipleOfBase">, import("@feathersjs/typebox").TLiteral<"fixed">]>>;
162
+ value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
163
+ volumeScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
164
+ }>>;
165
+ maxSafetyOrders: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
166
+ start: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"immediate">, import("@feathersjs/typebox").TLiteral<"onSignal">]>>;
167
+ exit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
168
+ mode: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"none">, import("@feathersjs/typebox").TLiteral<"takeProfit">, import("@feathersjs/typebox").TLiteral<"newAth">, import("@feathersjs/typebox").TLiteral<"roi">]>;
169
+ takeProfitPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
170
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
171
+ stopLossPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
172
+ }>>;
173
+ }>>;
146
174
  configured: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
147
175
  sourceStrategyId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
148
176
  sourceUserId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
@@ -724,6 +752,34 @@ export declare const strategiesSchema: import("@feathersjs/typebox").TObject<{
724
752
  }>;
725
753
  }>>;
726
754
  }>;
755
+ dca: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
756
+ enabled: import("@feathersjs/typebox").TBoolean;
757
+ reference: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"ath">, import("@feathersjs/typebox").TLiteral<"lastEntry">, import("@feathersjs/typebox").TLiteral<"averageEntry">, import("@feathersjs/typebox").TLiteral<"baseEntry">]>>;
758
+ trigger: import("@feathersjs/typebox").TObject<{
759
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"priceDeviation">, import("@feathersjs/typebox").TLiteral<"interval">, import("@feathersjs/typebox").TLiteral<"signal">]>;
760
+ stepPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
761
+ stepScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
762
+ every: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"hour">, import("@feathersjs/typebox").TLiteral<"day">, import("@feathersjs/typebox").TLiteral<"week">, import("@feathersjs/typebox").TLiteral<"month">]>>;
763
+ count: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
764
+ }>;
765
+ baseOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
766
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"fixed">, import("@feathersjs/typebox").TLiteral<"percentOfBalance">]>;
767
+ value: import("@feathersjs/typebox").TNumber;
768
+ }>>;
769
+ safetyOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
770
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"multipleOfBase">, import("@feathersjs/typebox").TLiteral<"fixed">]>>;
771
+ value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
772
+ volumeScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
773
+ }>>;
774
+ maxSafetyOrders: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
775
+ start: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"immediate">, import("@feathersjs/typebox").TLiteral<"onSignal">]>>;
776
+ exit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
777
+ mode: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"none">, import("@feathersjs/typebox").TLiteral<"takeProfit">, import("@feathersjs/typebox").TLiteral<"newAth">, import("@feathersjs/typebox").TLiteral<"roi">]>;
778
+ takeProfitPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
779
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
780
+ stopLossPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
781
+ }>>;
782
+ }>>;
727
783
  }>;
728
784
  timeinforce: import("@feathersjs/typebox").TString<string>;
729
785
  source: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"official">, import("@feathersjs/typebox").TLiteral<"community">]>>;
@@ -913,6 +969,34 @@ export declare const strategiesResolver: import("@feathersjs/schema").Resolver<{
913
969
  stress_shield?: {
914
970
  enabled: boolean;
915
971
  } | undefined;
972
+ dca?: {
973
+ enabled: boolean;
974
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
975
+ trigger: {
976
+ type: "interval" | "priceDeviation" | "signal";
977
+ stepPct?: number | undefined;
978
+ stepScale?: number | undefined;
979
+ every?: "day" | "hour" | "month" | "week" | undefined;
980
+ count?: number | undefined;
981
+ };
982
+ baseOrder?: {
983
+ type: "fixed" | "percentOfBalance";
984
+ value: number;
985
+ } | undefined;
986
+ safetyOrder?: {
987
+ type?: "fixed" | "multipleOfBase" | undefined;
988
+ value?: number | undefined;
989
+ volumeScale?: number | undefined;
990
+ } | undefined;
991
+ maxSafetyOrders?: number | undefined;
992
+ start?: "immediate" | "onSignal" | undefined;
993
+ exit?: {
994
+ mode: "newAth" | "none" | "roi" | "takeProfit";
995
+ takeProfitPct?: number | undefined;
996
+ trailing?: boolean | undefined;
997
+ stopLossPct?: number | undefined;
998
+ } | undefined;
999
+ } | undefined;
916
1000
  configured?: boolean | undefined;
917
1001
  sourceStrategyId?: string | {} | undefined;
918
1002
  sourceUserId?: string | {} | undefined;
@@ -1494,6 +1578,34 @@ export declare const strategiesResolver: import("@feathersjs/schema").Resolver<{
1494
1578
  };
1495
1579
  }[];
1496
1580
  };
1581
+ dca?: {
1582
+ enabled: boolean;
1583
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
1584
+ trigger: {
1585
+ type: "interval" | "priceDeviation" | "signal";
1586
+ stepPct?: number | undefined;
1587
+ stepScale?: number | undefined;
1588
+ every?: "day" | "hour" | "month" | "week" | undefined;
1589
+ count?: number | undefined;
1590
+ };
1591
+ baseOrder?: {
1592
+ type: "fixed" | "percentOfBalance";
1593
+ value: number;
1594
+ } | undefined;
1595
+ safetyOrder?: {
1596
+ type?: "fixed" | "multipleOfBase" | undefined;
1597
+ value?: number | undefined;
1598
+ volumeScale?: number | undefined;
1599
+ } | undefined;
1600
+ maxSafetyOrders?: number | undefined;
1601
+ start?: "immediate" | "onSignal" | undefined;
1602
+ exit?: {
1603
+ mode: "newAth" | "none" | "roi" | "takeProfit";
1604
+ takeProfitPct?: number | undefined;
1605
+ trailing?: boolean | undefined;
1606
+ stopLossPct?: number | undefined;
1607
+ } | undefined;
1608
+ } | undefined;
1497
1609
  };
1498
1610
  timeinforce: string;
1499
1611
  source?: "community" | "official" | undefined;
@@ -1681,6 +1793,34 @@ export declare const strategiesExternalResolver: import("@feathersjs/schema").Re
1681
1793
  stress_shield?: {
1682
1794
  enabled: boolean;
1683
1795
  } | undefined;
1796
+ dca?: {
1797
+ enabled: boolean;
1798
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
1799
+ trigger: {
1800
+ type: "interval" | "priceDeviation" | "signal";
1801
+ stepPct?: number | undefined;
1802
+ stepScale?: number | undefined;
1803
+ every?: "day" | "hour" | "month" | "week" | undefined;
1804
+ count?: number | undefined;
1805
+ };
1806
+ baseOrder?: {
1807
+ type: "fixed" | "percentOfBalance";
1808
+ value: number;
1809
+ } | undefined;
1810
+ safetyOrder?: {
1811
+ type?: "fixed" | "multipleOfBase" | undefined;
1812
+ value?: number | undefined;
1813
+ volumeScale?: number | undefined;
1814
+ } | undefined;
1815
+ maxSafetyOrders?: number | undefined;
1816
+ start?: "immediate" | "onSignal" | undefined;
1817
+ exit?: {
1818
+ mode: "newAth" | "none" | "roi" | "takeProfit";
1819
+ takeProfitPct?: number | undefined;
1820
+ trailing?: boolean | undefined;
1821
+ stopLossPct?: number | undefined;
1822
+ } | undefined;
1823
+ } | undefined;
1684
1824
  configured?: boolean | undefined;
1685
1825
  sourceStrategyId?: string | {} | undefined;
1686
1826
  sourceUserId?: string | {} | undefined;
@@ -2262,6 +2402,34 @@ export declare const strategiesExternalResolver: import("@feathersjs/schema").Re
2262
2402
  };
2263
2403
  }[];
2264
2404
  };
2405
+ dca?: {
2406
+ enabled: boolean;
2407
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
2408
+ trigger: {
2409
+ type: "interval" | "priceDeviation" | "signal";
2410
+ stepPct?: number | undefined;
2411
+ stepScale?: number | undefined;
2412
+ every?: "day" | "hour" | "month" | "week" | undefined;
2413
+ count?: number | undefined;
2414
+ };
2415
+ baseOrder?: {
2416
+ type: "fixed" | "percentOfBalance";
2417
+ value: number;
2418
+ } | undefined;
2419
+ safetyOrder?: {
2420
+ type?: "fixed" | "multipleOfBase" | undefined;
2421
+ value?: number | undefined;
2422
+ volumeScale?: number | undefined;
2423
+ } | undefined;
2424
+ maxSafetyOrders?: number | undefined;
2425
+ start?: "immediate" | "onSignal" | undefined;
2426
+ exit?: {
2427
+ mode: "newAth" | "none" | "roi" | "takeProfit";
2428
+ takeProfitPct?: number | undefined;
2429
+ trailing?: boolean | undefined;
2430
+ stopLossPct?: number | undefined;
2431
+ } | undefined;
2432
+ } | undefined;
2265
2433
  };
2266
2434
  timeinforce: string;
2267
2435
  source?: "community" | "official" | undefined;
@@ -2449,6 +2617,34 @@ export declare const strategiesDataSchema: import("@feathersjs/typebox").TPick<i
2449
2617
  stress_shield: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2450
2618
  enabled: import("@feathersjs/typebox").TBoolean;
2451
2619
  }>>;
2620
+ dca: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2621
+ enabled: import("@feathersjs/typebox").TBoolean;
2622
+ reference: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"ath">, import("@feathersjs/typebox").TLiteral<"lastEntry">, import("@feathersjs/typebox").TLiteral<"averageEntry">, import("@feathersjs/typebox").TLiteral<"baseEntry">]>>;
2623
+ trigger: import("@feathersjs/typebox").TObject<{
2624
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"priceDeviation">, import("@feathersjs/typebox").TLiteral<"interval">, import("@feathersjs/typebox").TLiteral<"signal">]>;
2625
+ stepPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2626
+ stepScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2627
+ every: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"hour">, import("@feathersjs/typebox").TLiteral<"day">, import("@feathersjs/typebox").TLiteral<"week">, import("@feathersjs/typebox").TLiteral<"month">]>>;
2628
+ count: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2629
+ }>;
2630
+ baseOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2631
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"fixed">, import("@feathersjs/typebox").TLiteral<"percentOfBalance">]>;
2632
+ value: import("@feathersjs/typebox").TNumber;
2633
+ }>>;
2634
+ safetyOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2635
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"multipleOfBase">, import("@feathersjs/typebox").TLiteral<"fixed">]>>;
2636
+ value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2637
+ volumeScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2638
+ }>>;
2639
+ maxSafetyOrders: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2640
+ start: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"immediate">, import("@feathersjs/typebox").TLiteral<"onSignal">]>>;
2641
+ exit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2642
+ mode: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"none">, import("@feathersjs/typebox").TLiteral<"takeProfit">, import("@feathersjs/typebox").TLiteral<"newAth">, import("@feathersjs/typebox").TLiteral<"roi">]>;
2643
+ takeProfitPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2644
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2645
+ stopLossPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2646
+ }>>;
2647
+ }>>;
2452
2648
  configured: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2453
2649
  sourceStrategyId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2454
2650
  sourceUserId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
@@ -3030,6 +3226,34 @@ export declare const strategiesDataSchema: import("@feathersjs/typebox").TPick<i
3030
3226
  }>;
3031
3227
  }>>;
3032
3228
  }>;
3229
+ dca: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3230
+ enabled: import("@feathersjs/typebox").TBoolean;
3231
+ reference: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"ath">, import("@feathersjs/typebox").TLiteral<"lastEntry">, import("@feathersjs/typebox").TLiteral<"averageEntry">, import("@feathersjs/typebox").TLiteral<"baseEntry">]>>;
3232
+ trigger: import("@feathersjs/typebox").TObject<{
3233
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"priceDeviation">, import("@feathersjs/typebox").TLiteral<"interval">, import("@feathersjs/typebox").TLiteral<"signal">]>;
3234
+ stepPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3235
+ stepScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3236
+ every: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"hour">, import("@feathersjs/typebox").TLiteral<"day">, import("@feathersjs/typebox").TLiteral<"week">, import("@feathersjs/typebox").TLiteral<"month">]>>;
3237
+ count: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3238
+ }>;
3239
+ baseOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3240
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"fixed">, import("@feathersjs/typebox").TLiteral<"percentOfBalance">]>;
3241
+ value: import("@feathersjs/typebox").TNumber;
3242
+ }>>;
3243
+ safetyOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3244
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"multipleOfBase">, import("@feathersjs/typebox").TLiteral<"fixed">]>>;
3245
+ value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3246
+ volumeScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3247
+ }>>;
3248
+ maxSafetyOrders: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3249
+ start: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"immediate">, import("@feathersjs/typebox").TLiteral<"onSignal">]>>;
3250
+ exit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3251
+ mode: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"none">, import("@feathersjs/typebox").TLiteral<"takeProfit">, import("@feathersjs/typebox").TLiteral<"newAth">, import("@feathersjs/typebox").TLiteral<"roi">]>;
3252
+ takeProfitPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3253
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3254
+ stopLossPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3255
+ }>>;
3256
+ }>>;
3033
3257
  }>;
3034
3258
  timeinforce: import("@feathersjs/typebox").TString<string>;
3035
3259
  source: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"official">, import("@feathersjs/typebox").TLiteral<"community">]>>;
@@ -3219,6 +3443,34 @@ export declare const strategiesDataResolver: import("@feathersjs/schema").Resolv
3219
3443
  stress_shield?: {
3220
3444
  enabled: boolean;
3221
3445
  } | undefined;
3446
+ dca?: {
3447
+ enabled: boolean;
3448
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
3449
+ trigger: {
3450
+ type: "interval" | "priceDeviation" | "signal";
3451
+ stepPct?: number | undefined;
3452
+ stepScale?: number | undefined;
3453
+ every?: "day" | "hour" | "month" | "week" | undefined;
3454
+ count?: number | undefined;
3455
+ };
3456
+ baseOrder?: {
3457
+ type: "fixed" | "percentOfBalance";
3458
+ value: number;
3459
+ } | undefined;
3460
+ safetyOrder?: {
3461
+ type?: "fixed" | "multipleOfBase" | undefined;
3462
+ value?: number | undefined;
3463
+ volumeScale?: number | undefined;
3464
+ } | undefined;
3465
+ maxSafetyOrders?: number | undefined;
3466
+ start?: "immediate" | "onSignal" | undefined;
3467
+ exit?: {
3468
+ mode: "newAth" | "none" | "roi" | "takeProfit";
3469
+ takeProfitPct?: number | undefined;
3470
+ trailing?: boolean | undefined;
3471
+ stopLossPct?: number | undefined;
3472
+ } | undefined;
3473
+ } | undefined;
3222
3474
  configured?: boolean | undefined;
3223
3475
  sourceStrategyId?: string | {} | undefined;
3224
3476
  sourceUserId?: string | {} | undefined;
@@ -3800,6 +4052,34 @@ export declare const strategiesDataResolver: import("@feathersjs/schema").Resolv
3800
4052
  };
3801
4053
  }[];
3802
4054
  };
4055
+ dca?: {
4056
+ enabled: boolean;
4057
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
4058
+ trigger: {
4059
+ type: "interval" | "priceDeviation" | "signal";
4060
+ stepPct?: number | undefined;
4061
+ stepScale?: number | undefined;
4062
+ every?: "day" | "hour" | "month" | "week" | undefined;
4063
+ count?: number | undefined;
4064
+ };
4065
+ baseOrder?: {
4066
+ type: "fixed" | "percentOfBalance";
4067
+ value: number;
4068
+ } | undefined;
4069
+ safetyOrder?: {
4070
+ type?: "fixed" | "multipleOfBase" | undefined;
4071
+ value?: number | undefined;
4072
+ volumeScale?: number | undefined;
4073
+ } | undefined;
4074
+ maxSafetyOrders?: number | undefined;
4075
+ start?: "immediate" | "onSignal" | undefined;
4076
+ exit?: {
4077
+ mode: "newAth" | "none" | "roi" | "takeProfit";
4078
+ takeProfitPct?: number | undefined;
4079
+ trailing?: boolean | undefined;
4080
+ stopLossPct?: number | undefined;
4081
+ } | undefined;
4082
+ } | undefined;
3803
4083
  };
3804
4084
  timeinforce: string;
3805
4085
  source?: "community" | "official" | undefined;
@@ -3987,6 +4267,34 @@ export declare const strategiesPatchSchema: import("@feathersjs/typebox").TParti
3987
4267
  stress_shield: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3988
4268
  enabled: import("@feathersjs/typebox").TBoolean;
3989
4269
  }>>;
4270
+ dca: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4271
+ enabled: import("@feathersjs/typebox").TBoolean;
4272
+ reference: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"ath">, import("@feathersjs/typebox").TLiteral<"lastEntry">, import("@feathersjs/typebox").TLiteral<"averageEntry">, import("@feathersjs/typebox").TLiteral<"baseEntry">]>>;
4273
+ trigger: import("@feathersjs/typebox").TObject<{
4274
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"priceDeviation">, import("@feathersjs/typebox").TLiteral<"interval">, import("@feathersjs/typebox").TLiteral<"signal">]>;
4275
+ stepPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4276
+ stepScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4277
+ every: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"hour">, import("@feathersjs/typebox").TLiteral<"day">, import("@feathersjs/typebox").TLiteral<"week">, import("@feathersjs/typebox").TLiteral<"month">]>>;
4278
+ count: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4279
+ }>;
4280
+ baseOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4281
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"fixed">, import("@feathersjs/typebox").TLiteral<"percentOfBalance">]>;
4282
+ value: import("@feathersjs/typebox").TNumber;
4283
+ }>>;
4284
+ safetyOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4285
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"multipleOfBase">, import("@feathersjs/typebox").TLiteral<"fixed">]>>;
4286
+ value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4287
+ volumeScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4288
+ }>>;
4289
+ maxSafetyOrders: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4290
+ start: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"immediate">, import("@feathersjs/typebox").TLiteral<"onSignal">]>>;
4291
+ exit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4292
+ mode: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"none">, import("@feathersjs/typebox").TLiteral<"takeProfit">, import("@feathersjs/typebox").TLiteral<"newAth">, import("@feathersjs/typebox").TLiteral<"roi">]>;
4293
+ takeProfitPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4294
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4295
+ stopLossPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4296
+ }>>;
4297
+ }>>;
3990
4298
  configured: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3991
4299
  sourceStrategyId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
3992
4300
  sourceUserId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
@@ -4568,6 +4876,34 @@ export declare const strategiesPatchSchema: import("@feathersjs/typebox").TParti
4568
4876
  }>;
4569
4877
  }>>;
4570
4878
  }>;
4879
+ dca: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4880
+ enabled: import("@feathersjs/typebox").TBoolean;
4881
+ reference: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"ath">, import("@feathersjs/typebox").TLiteral<"lastEntry">, import("@feathersjs/typebox").TLiteral<"averageEntry">, import("@feathersjs/typebox").TLiteral<"baseEntry">]>>;
4882
+ trigger: import("@feathersjs/typebox").TObject<{
4883
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"priceDeviation">, import("@feathersjs/typebox").TLiteral<"interval">, import("@feathersjs/typebox").TLiteral<"signal">]>;
4884
+ stepPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4885
+ stepScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4886
+ every: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"hour">, import("@feathersjs/typebox").TLiteral<"day">, import("@feathersjs/typebox").TLiteral<"week">, import("@feathersjs/typebox").TLiteral<"month">]>>;
4887
+ count: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4888
+ }>;
4889
+ baseOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4890
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"fixed">, import("@feathersjs/typebox").TLiteral<"percentOfBalance">]>;
4891
+ value: import("@feathersjs/typebox").TNumber;
4892
+ }>>;
4893
+ safetyOrder: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4894
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"multipleOfBase">, import("@feathersjs/typebox").TLiteral<"fixed">]>>;
4895
+ value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4896
+ volumeScale: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4897
+ }>>;
4898
+ maxSafetyOrders: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4899
+ start: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"immediate">, import("@feathersjs/typebox").TLiteral<"onSignal">]>>;
4900
+ exit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4901
+ mode: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"none">, import("@feathersjs/typebox").TLiteral<"takeProfit">, import("@feathersjs/typebox").TLiteral<"newAth">, import("@feathersjs/typebox").TLiteral<"roi">]>;
4902
+ takeProfitPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4903
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4904
+ stopLossPct: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4905
+ }>>;
4906
+ }>>;
4571
4907
  }>;
4572
4908
  timeinforce: import("@feathersjs/typebox").TString<string>;
4573
4909
  source: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"official">, import("@feathersjs/typebox").TLiteral<"community">]>>;
@@ -4757,6 +5093,34 @@ export declare const strategiesPatchResolver: import("@feathersjs/schema").Resol
4757
5093
  stress_shield?: {
4758
5094
  enabled: boolean;
4759
5095
  } | undefined;
5096
+ dca?: {
5097
+ enabled: boolean;
5098
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
5099
+ trigger: {
5100
+ type: "interval" | "priceDeviation" | "signal";
5101
+ stepPct?: number | undefined;
5102
+ stepScale?: number | undefined;
5103
+ every?: "day" | "hour" | "month" | "week" | undefined;
5104
+ count?: number | undefined;
5105
+ };
5106
+ baseOrder?: {
5107
+ type: "fixed" | "percentOfBalance";
5108
+ value: number;
5109
+ } | undefined;
5110
+ safetyOrder?: {
5111
+ type?: "fixed" | "multipleOfBase" | undefined;
5112
+ value?: number | undefined;
5113
+ volumeScale?: number | undefined;
5114
+ } | undefined;
5115
+ maxSafetyOrders?: number | undefined;
5116
+ start?: "immediate" | "onSignal" | undefined;
5117
+ exit?: {
5118
+ mode: "newAth" | "none" | "roi" | "takeProfit";
5119
+ takeProfitPct?: number | undefined;
5120
+ trailing?: boolean | undefined;
5121
+ stopLossPct?: number | undefined;
5122
+ } | undefined;
5123
+ } | undefined;
4760
5124
  configured?: boolean | undefined;
4761
5125
  sourceStrategyId?: string | {} | undefined;
4762
5126
  sourceUserId?: string | {} | undefined;
@@ -5338,6 +5702,34 @@ export declare const strategiesPatchResolver: import("@feathersjs/schema").Resol
5338
5702
  };
5339
5703
  }[];
5340
5704
  };
5705
+ dca?: {
5706
+ enabled: boolean;
5707
+ reference?: "ath" | "averageEntry" | "baseEntry" | "lastEntry" | undefined;
5708
+ trigger: {
5709
+ type: "interval" | "priceDeviation" | "signal";
5710
+ stepPct?: number | undefined;
5711
+ stepScale?: number | undefined;
5712
+ every?: "day" | "hour" | "month" | "week" | undefined;
5713
+ count?: number | undefined;
5714
+ };
5715
+ baseOrder?: {
5716
+ type: "fixed" | "percentOfBalance";
5717
+ value: number;
5718
+ } | undefined;
5719
+ safetyOrder?: {
5720
+ type?: "fixed" | "multipleOfBase" | undefined;
5721
+ value?: number | undefined;
5722
+ volumeScale?: number | undefined;
5723
+ } | undefined;
5724
+ maxSafetyOrders?: number | undefined;
5725
+ start?: "immediate" | "onSignal" | undefined;
5726
+ exit?: {
5727
+ mode: "newAth" | "none" | "roi" | "takeProfit";
5728
+ takeProfitPct?: number | undefined;
5729
+ trailing?: boolean | undefined;
5730
+ stopLossPct?: number | undefined;
5731
+ } | undefined;
5732
+ } | undefined;
5341
5733
  };
5342
5734
  timeinforce: string;
5343
5735
  source?: "community" | "official" | undefined;
@@ -5489,4 +5881,31 @@ export interface StrategyIR {
5489
5881
  stress_shield?: {
5490
5882
  enabled: boolean;
5491
5883
  };
5884
+ dca?: {
5885
+ enabled: boolean;
5886
+ reference: 'ath' | 'lastEntry' | 'averageEntry' | 'baseEntry';
5887
+ trigger: {
5888
+ type: 'priceDeviation' | 'interval' | 'signal';
5889
+ stepPct: number;
5890
+ stepScale: number;
5891
+ intervalSeconds: number;
5892
+ };
5893
+ baseOrder: {
5894
+ type: 'fixed' | 'percentOfBalance';
5895
+ value: number;
5896
+ };
5897
+ safetyOrder: {
5898
+ type: 'multipleOfBase' | 'fixed';
5899
+ value: number;
5900
+ volumeScale: number;
5901
+ };
5902
+ maxSafetyOrders: number;
5903
+ start: 'immediate' | 'onSignal';
5904
+ exit: {
5905
+ mode: 'none' | 'takeProfit' | 'newAth' | 'roi';
5906
+ takeProfitPct?: number;
5907
+ trailing: boolean;
5908
+ stopLossPct?: number;
5909
+ };
5910
+ };
5492
5911
  }