@cryptorobot.ai/client 0.0.39 → 0.0.40

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.
Files changed (81) hide show
  1. package/lib/src/client.js +29 -2
  2. package/lib/src/services/agents/agents.class.d.ts +11 -0
  3. package/lib/src/services/agents/agents.d.ts +11 -0
  4. package/lib/src/services/agents/agents.schema.d.ts +2371 -0
  5. package/lib/src/services/agents/agents.shared.d.ts +13 -0
  6. package/lib/src/services/agents/agents.shared.js +13 -0
  7. package/lib/src/services/agents/prepare/prepare.class.d.ts +18 -0
  8. package/lib/src/services/agents/prepare/prepare.d.ts +11 -0
  9. package/lib/src/services/agents/prepare/prepare.schema.d.ts +285 -0
  10. package/lib/src/services/agents/prepare/prepare.shared.d.ts +13 -0
  11. package/lib/src/services/agents/prepare/prepare.shared.js +13 -0
  12. package/lib/src/services/agents/sessions/conversations/conversations.class.d.ts +11 -0
  13. package/lib/src/services/agents/sessions/conversations/conversations.d.ts +11 -0
  14. package/lib/src/services/agents/sessions/conversations/conversations.schema.d.ts +2561 -0
  15. package/lib/src/services/agents/sessions/conversations/conversations.shared.d.ts +13 -0
  16. package/lib/src/services/agents/sessions/conversations/conversations.shared.js +13 -0
  17. package/lib/src/services/agents/sessions/sessions.class.d.ts +11 -0
  18. package/lib/src/services/agents/sessions/sessions.d.ts +11 -0
  19. package/lib/src/services/agents/sessions/sessions.schema.d.ts +803 -0
  20. package/lib/src/services/agents/sessions/sessions.shared.d.ts +13 -0
  21. package/lib/src/services/agents/sessions/sessions.shared.js +13 -0
  22. package/lib/src/services/events/events.class.d.ts +11 -0
  23. package/lib/src/services/events/events.d.ts +11 -0
  24. package/lib/src/services/events/events.schema.d.ts +786 -0
  25. package/lib/src/services/events/events.shared.d.ts +13 -0
  26. package/lib/src/services/events/events.shared.js +13 -0
  27. package/lib/src/services/events/triggers/triggers.class.d.ts +11 -0
  28. package/lib/src/services/events/triggers/triggers.d.ts +11 -0
  29. package/lib/src/services/events/triggers/triggers.schema.d.ts +1582 -0
  30. package/lib/src/services/events/triggers/triggers.shared.d.ts +13 -0
  31. package/lib/src/services/events/triggers/triggers.shared.js +13 -0
  32. package/lib/src/services/events/types/types.class.d.ts +11 -0
  33. package/lib/src/services/events/types/types.d.ts +11 -0
  34. package/lib/src/services/events/types/types.schema.d.ts +688 -0
  35. package/lib/src/services/events/types/types.shared.d.ts +13 -0
  36. package/lib/src/services/events/types/types.shared.js +13 -0
  37. package/lib/src/services/exchanges/download/download.shared.d.ts +1 -1
  38. package/lib/src/services/exchanges/download/download.shared.js +1 -1
  39. package/lib/src/services/extensions/extensions.class.d.ts +11 -0
  40. package/lib/src/services/extensions/extensions.d.ts +11 -0
  41. package/lib/src/services/extensions/extensions.schema.d.ts +1275 -0
  42. package/lib/src/services/extensions/extensions.shared.d.ts +13 -0
  43. package/lib/src/services/extensions/extensions.shared.js +13 -0
  44. package/lib/src/services/keys/KeysService.d.ts +13 -0
  45. package/lib/src/services/keys/keys.class.d.ts +11 -0
  46. package/lib/src/services/keys/keys.d.ts +11 -0
  47. package/lib/src/services/keys/keys.schema.d.ts +719 -0
  48. package/lib/src/services/keys/keys.shared.d.ts +14 -0
  49. package/lib/src/services/keys/keys.shared.js +13 -0
  50. package/lib/src/services/messages/messages.schema.d.ts +4 -4
  51. package/lib/src/services/restricted/restricted.class.d.ts +26 -0
  52. package/lib/src/services/restricted/restricted.d.ts +21 -0
  53. package/lib/src/services/restricted/restricted.shared.d.ts +13 -0
  54. package/lib/src/services/restricted/restricted.shared.js +13 -0
  55. package/lib/src/services/strategies/backtest/results/results.schema.d.ts +28 -28
  56. package/lib/src/services/strategies/generate/generate.class.d.ts +11 -0
  57. package/lib/src/services/strategies/generate/generate.d.ts +11 -0
  58. package/lib/src/services/strategies/generate/generate.schema.d.ts +429 -0
  59. package/lib/src/services/strategies/generate/generate.shared.d.ts +13 -0
  60. package/lib/src/services/strategies/generate/generate.shared.js +13 -0
  61. package/lib/src/services/strategies/hyperopt/hyperopt.schema.d.ts +12 -4
  62. package/lib/src/services/strategies/indicators/indicators.schema.d.ts +177 -97
  63. package/lib/src/services/strategies/indicators/talib/talib.schema.d.ts +4 -4
  64. package/lib/src/services/strategies/strategies.schema.d.ts +2708 -303
  65. package/lib/src/services/strategies/templates/templates.schema.d.ts +2142 -12
  66. package/lib/src/services/tools/openapi/openapi.class.d.ts +34 -0
  67. package/lib/src/services/tools/openapi/openapi.d.ts +10 -0
  68. package/lib/src/services/tools/openapi/openapi.shared.d.ts +13 -0
  69. package/lib/src/services/tools/openapi/openapi.shared.js +13 -0
  70. package/lib/src/services/tools/tools.class.d.ts +11 -0
  71. package/lib/src/services/tools/tools.d.ts +11 -0
  72. package/lib/src/services/tools/tools.schema.d.ts +269 -0
  73. package/lib/src/services/tools/tools.shared.d.ts +13 -0
  74. package/lib/src/services/tools/tools.shared.js +13 -0
  75. package/lib/src/services/traders/pods/api/api.schema.d.ts +1284 -188
  76. package/lib/src/services/traders/pods/events/events.schema.d.ts +4 -4
  77. package/lib/src/services/traders/pods/pods.schema.d.ts +1280 -184
  78. package/lib/src/services/traders/traders.schema.d.ts +4 -4
  79. package/lib/src/services/users/users.class.d.ts +2 -2
  80. package/lib/src/services/users/users.schema.d.ts +4 -4
  81. package/package.json +1 -1
@@ -431,17 +431,24 @@ export declare const tradersPodsApiSchema: import("@feathersjs/typebox").TObject
431
431
  exchangeId: import("@feathersjs/typebox").TString<string>;
432
432
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
433
433
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
434
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
435
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
434
+ _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
435
+ userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
436
436
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
437
437
  templateId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
438
438
  name: import("@feathersjs/typebox").TAny;
439
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
439
440
  interval: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"1m">, import("@feathersjs/typebox").TLiteral<"5m">, import("@feathersjs/typebox").TLiteral<"30m">, import("@feathersjs/typebox").TLiteral<"2h">, import("@feathersjs/typebox").TLiteral<"6h">, import("@feathersjs/typebox").TLiteral<"12h">, import("@feathersjs/typebox").TLiteral<"1d">, import("@feathersjs/typebox").TLiteral<"1w">]>>;
440
441
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
441
442
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
442
443
  minutes: import("@feathersjs/typebox").TNumber;
443
444
  profit: import("@feathersjs/typebox").TNumber;
444
445
  }>>>;
446
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
447
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
448
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
449
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
450
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
451
+ }>>;
445
452
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
446
453
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
447
454
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -469,21 +476,65 @@ export declare const tradersPodsApiSchema: import("@feathersjs/typebox").TObject
469
476
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
470
477
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
471
478
  }>>>;
472
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
479
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
480
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
481
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
482
+ indicator: import("@feathersjs/typebox").TString<string>;
483
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
484
+ compare_to: import("@feathersjs/typebox").TObject<{
485
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
486
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
487
+ }>;
488
+ }>]>>;
489
+ }>>, import("@feathersjs/typebox").TObject<{
473
490
  indicator: import("@feathersjs/typebox").TString<string>;
474
491
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
475
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
476
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
477
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
478
- }>>>;
479
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
492
+ compare_to: import("@feathersjs/typebox").TObject<{
493
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
494
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
495
+ }>;
496
+ }>]>>;
497
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
498
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
499
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
500
+ indicator: import("@feathersjs/typebox").TString<string>;
501
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">, import("@feathersjs/typebox").TLiteral<"crossed_above">, import("@feathersjs/typebox").TLiteral<"crossed_below">, import("@feathersjs/typebox").TLiteral<"crossed">]>;
502
+ compare_to: import("@feathersjs/typebox").TObject<{
503
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
504
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
505
+ }>;
506
+ }>]>>;
507
+ }>>, import("@feathersjs/typebox").TObject<{
480
508
  indicator: import("@feathersjs/typebox").TString<string>;
481
509
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
482
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
483
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
484
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
510
+ compare_to: import("@feathersjs/typebox").TObject<{
511
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
512
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
513
+ }>;
514
+ }>]>>;
515
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
516
+ _id: import("@feathersjs/typebox").TString<string>;
517
+ alias: import("@feathersjs/typebox").TString<string>;
518
+ name: import("@feathersjs/typebox").TString<string>;
519
+ group: import("@feathersjs/typebox").TString<string>;
520
+ description: import("@feathersjs/typebox").TString<string>;
521
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
522
+ name: import("@feathersjs/typebox").TString<string>;
523
+ displayName: import("@feathersjs/typebox").TString<string>;
524
+ defaultValue: import("@feathersjs/typebox").TNumber;
525
+ hint: import("@feathersjs/typebox").TString<string>;
526
+ type: import("@feathersjs/typebox").TString<string>;
527
+ normName: import("@feathersjs/typebox").TString<string>;
528
+ }>>;
529
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
530
+ field: import("@feathersjs/typebox").TString<string>;
531
+ space: import("@feathersjs/typebox").TString<string>;
532
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"IntParameter">, import("@feathersjs/typebox").TLiteral<"DecimalParameter">, import("@feathersjs/typebox").TLiteral<"BooleanParameter">, import("@feathersjs/typebox").TLiteral<"CategoricalParameter">]>;
533
+ min: import("@feathersjs/typebox").TInteger;
534
+ max: import("@feathersjs/typebox").TInteger;
535
+ default: import("@feathersjs/typebox").TInteger;
536
+ }>>>;
485
537
  }>>>;
486
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
487
538
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
488
539
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
489
540
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -677,10 +728,96 @@ export declare const tradersPodsApiSchema: import("@feathersjs/typebox").TObject
677
728
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
678
729
  name: import("@feathersjs/typebox").TString<string>;
679
730
  type: import("@feathersjs/typebox").TString<string>;
731
+ revision: import("@feathersjs/typebox").TNumber;
680
732
  description: import("@feathersjs/typebox").TString<string>;
681
733
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
682
734
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
683
- values: import("@feathersjs/typebox").TAny;
735
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
736
+ values: import("@feathersjs/typebox").TObject<{
737
+ interval: import("@feathersjs/typebox").TString<string>;
738
+ stoploss: import("@feathersjs/typebox").TNumber;
739
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
740
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
741
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
742
+ _id: import("@feathersjs/typebox").TString<string>;
743
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
744
+ name: import("@feathersjs/typebox").TString<string>;
745
+ group: import("@feathersjs/typebox").TString<string>;
746
+ description: import("@feathersjs/typebox").TString<string>;
747
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
748
+ name: import("@feathersjs/typebox").TString<string>;
749
+ displayName: import("@feathersjs/typebox").TString<string>;
750
+ defaultValue: import("@feathersjs/typebox").TAny;
751
+ hint: import("@feathersjs/typebox").TString<string>;
752
+ type: import("@feathersjs/typebox").TString<string>;
753
+ normName: import("@feathersjs/typebox").TString<string>;
754
+ }>>;
755
+ }>>>;
756
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
757
+ minutes: import("@feathersjs/typebox").TNumber;
758
+ profit: import("@feathersjs/typebox").TNumber;
759
+ }>>;
760
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
761
+ enabled: import("@feathersjs/typebox").TBoolean;
762
+ type: import("@feathersjs/typebox").TString<string>;
763
+ method: import("@feathersjs/typebox").TString<string>;
764
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
765
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
766
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
767
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
768
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
769
+ }>>;
770
+ order_types: import("@feathersjs/typebox").TObject<{
771
+ entry: import("@feathersjs/typebox").TString<string>;
772
+ exit: import("@feathersjs/typebox").TString<string>;
773
+ emergencysell: import("@feathersjs/typebox").TString<string>;
774
+ forcebuy: import("@feathersjs/typebox").TString<string>;
775
+ forcesell: import("@feathersjs/typebox").TString<string>;
776
+ stoploss: import("@feathersjs/typebox").TString<string>;
777
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
778
+ }>;
779
+ sellwhen: import("@feathersjs/typebox").TObject<{
780
+ logic: import("@feathersjs/typebox").TString<string>;
781
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
782
+ indicator: import("@feathersjs/typebox").TString<string>;
783
+ condition: import("@feathersjs/typebox").TString<string>;
784
+ compare_to: import("@feathersjs/typebox").TObject<{
785
+ type: import("@feathersjs/typebox").TString<string>;
786
+ value: import("@feathersjs/typebox").TAny;
787
+ }>;
788
+ }>>;
789
+ }>;
790
+ buywhen: import("@feathersjs/typebox").TObject<{
791
+ logic: import("@feathersjs/typebox").TString<string>;
792
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
793
+ indicator: import("@feathersjs/typebox").TString<string>;
794
+ condition: import("@feathersjs/typebox").TString<string>;
795
+ compare_to: import("@feathersjs/typebox").TObject<{
796
+ type: import("@feathersjs/typebox").TString<string>;
797
+ value: import("@feathersjs/typebox").TAny;
798
+ }>;
799
+ }>>;
800
+ }>;
801
+ }>;
802
+ timeinforce: import("@feathersjs/typebox").TString<string>;
803
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
804
+ enabled: import("@feathersjs/typebox").TBoolean;
805
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
806
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
807
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
808
+ }>>;
809
+ if: import("@feathersjs/typebox").TObject<{
810
+ hyperopt: import("@feathersjs/typebox").TObject<{
811
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
812
+ field: import("@feathersjs/typebox").TString<string>;
813
+ operator: import("@feathersjs/typebox").TString<string>;
814
+ compare: import("@feathersjs/typebox").TAny;
815
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
816
+ }>>;
817
+ }>;
818
+ }>;
819
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
820
+ }>>;
684
821
  }>>>;
685
822
  'strategies/indicators': import("@feathersjs/typebox").TAny;
686
823
  }>>>;
@@ -705,6 +842,7 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
705
842
  provider: "docker";
706
843
  _id: string | {};
707
844
  strategy: Partial<{
845
+ public?: boolean | undefined;
708
846
  traders?: {
709
847
  telegram?: {
710
848
  access_hash?: string | null | undefined;
@@ -843,7 +981,6 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
843
981
  host: string;
844
982
  name: any;
845
983
  provider: "docker";
846
- strategies: string[];
847
984
  secret: string;
848
985
  key: string;
849
986
  createdAt: any;
@@ -852,6 +989,7 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
852
989
  which: string;
853
990
  userId: any;
854
991
  strategy: any;
992
+ strategies: string[];
855
993
  "traders/pods": any;
856
994
  exchange: any;
857
995
  exchangeId: any;
@@ -894,26 +1032,143 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
894
1032
  updatedAt?: any;
895
1033
  userId?: string | {} | undefined;
896
1034
  'strategies/templates'?: {
1035
+ public?: boolean | undefined;
897
1036
  _id?: string | {} | undefined;
898
1037
  createdAt?: any;
899
1038
  updatedAt?: any;
900
- values: any;
1039
+ optimize?: {
1040
+ best?: {
1041
+ by: "total_profit" | "sharpe";
1042
+ direction: "max" | "min";
1043
+ } | undefined;
1044
+ enabled: boolean;
1045
+ then: {}[];
1046
+ if: {
1047
+ hyperopt: {
1048
+ results: {
1049
+ type?: string | undefined;
1050
+ field: string;
1051
+ operator: string;
1052
+ compare: any;
1053
+ }[];
1054
+ };
1055
+ };
1056
+ } | undefined;
1057
+ values: {
1058
+ indicators?: {
1059
+ alias?: string | undefined;
1060
+ name: string;
1061
+ _id: string;
1062
+ description: string;
1063
+ group: string;
1064
+ optInputs: {
1065
+ name: string;
1066
+ type: string;
1067
+ displayName: string;
1068
+ defaultValue: any;
1069
+ hint: string;
1070
+ normName: string;
1071
+ }[];
1072
+ }[] | undefined;
1073
+ interval: string;
1074
+ stoploss: number;
1075
+ exit_profit_only: boolean;
1076
+ exit_profit_offset: number;
1077
+ minimal_roi: {
1078
+ minutes: number;
1079
+ profit: number;
1080
+ }[];
1081
+ protections: {
1082
+ stop_duration_candles?: number | undefined;
1083
+ lookback_period_candles?: number | undefined;
1084
+ trade_limit?: number | undefined;
1085
+ max_allowed_drawdown?: number | undefined;
1086
+ only_per_pair?: boolean | undefined;
1087
+ enabled: boolean;
1088
+ type: string;
1089
+ method: string;
1090
+ }[];
1091
+ order_types: {
1092
+ stoploss: string;
1093
+ entry: string;
1094
+ exit: string;
1095
+ emergencysell: string;
1096
+ forcebuy: string;
1097
+ forcesell: string;
1098
+ stoploss_on_exchange: boolean;
1099
+ };
1100
+ sellwhen: {
1101
+ logic: string;
1102
+ conditions: {
1103
+ indicator: string;
1104
+ condition: string;
1105
+ compare_to: {
1106
+ type: string;
1107
+ value: any;
1108
+ };
1109
+ }[];
1110
+ };
1111
+ buywhen: {
1112
+ logic: string;
1113
+ conditions: {
1114
+ indicator: string;
1115
+ condition: string;
1116
+ compare_to: {
1117
+ type: string;
1118
+ value: any;
1119
+ };
1120
+ }[];
1121
+ };
1122
+ };
901
1123
  name: string;
902
1124
  type: string;
1125
+ revision: number;
903
1126
  description: string;
1127
+ timeinforce: string;
904
1128
  } | undefined;
905
- file?: any;
906
- templateId?: string | {} | undefined;
907
1129
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
908
1130
  stoploss?: number | undefined;
1131
+ exit_profit_only?: boolean | undefined;
1132
+ exit_profit_offset?: number | undefined;
1133
+ indicators?: {
1134
+ hyperopt?: {
1135
+ default: number;
1136
+ max: number;
1137
+ min: number;
1138
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
1139
+ field: string;
1140
+ space: string;
1141
+ }[] | undefined;
1142
+ name: string;
1143
+ _id: string;
1144
+ description: string;
1145
+ alias: string;
1146
+ group: string;
1147
+ optInputs: {
1148
+ name: string;
1149
+ type: string;
1150
+ displayName: string;
1151
+ defaultValue: number;
1152
+ hint: string;
1153
+ normName: string;
1154
+ }[];
1155
+ }[] | undefined;
909
1156
  minimal_roi?: {
910
1157
  minutes: number;
911
1158
  profit: number;
912
1159
  }[] | undefined;
913
- exit_sell_signal?: boolean | undefined;
914
- exit_profit_only?: boolean | undefined;
915
- exit_profit_offset?: number | undefined;
916
- timeinforce?: unknown;
1160
+ protections?: {
1161
+ stop_duration_candles?: number | undefined;
1162
+ lookback_period_candles?: unknown;
1163
+ trade_limit?: unknown;
1164
+ max_allowed_drawdown?: unknown;
1165
+ only_per_pair?: unknown;
1166
+ stop_duration_in_seconds?: unknown;
1167
+ required_profit?: unknown;
1168
+ enabled: boolean;
1169
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
1170
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
1171
+ }[] | undefined;
917
1172
  order_types?: {
918
1173
  stoploss?: string | undefined;
919
1174
  entry?: "Limit" | "Market" | undefined;
@@ -925,35 +1180,54 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
925
1180
  stoploss_on_exchange_interval?: number | undefined;
926
1181
  stoploss_on_exchange_limit_ratio?: number | undefined;
927
1182
  } | undefined;
928
- protections?: {
929
- stop_duration_candles?: number | undefined;
930
- stop_duration_in_seconds?: unknown;
931
- lookback_period_candles?: unknown;
932
- trade_limit?: unknown;
933
- required_profit?: unknown;
934
- max_allowed_drawdown?: unknown;
935
- only_per_pair?: unknown;
936
- enabled: boolean;
937
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
938
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
939
- }[] | undefined;
940
- buywhen?: {
941
- value?: number | undefined;
942
- indicator2?: string | undefined;
943
- type: "number" | "indicator";
1183
+ sellwhen?: {
1184
+ logic: "AND" | "OR";
1185
+ conditions: (/*elided*/ any | {
1186
+ indicator: string;
1187
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
1188
+ compare_to: {
1189
+ type: "number" | "indicator";
1190
+ value: string | number;
1191
+ };
1192
+ })[];
1193
+ } | {
944
1194
  indicator: string;
945
1195
  condition: ">" | "<" | "==";
946
- }[] | undefined;
947
- sellwhen?: {
948
- value?: number | undefined;
949
- indicator2?: string | undefined;
950
- type: "number" | "indicator";
1196
+ compare_to: {
1197
+ type: "number" | "indicator";
1198
+ value: string | number;
1199
+ };
1200
+ } | undefined;
1201
+ buywhen?: {
1202
+ logic: "AND" | "OR";
1203
+ conditions: (/*elided*/ any | {
1204
+ indicator: string;
1205
+ condition: ">" | "<" | "==";
1206
+ compare_to: {
1207
+ type: "number" | "indicator";
1208
+ value: string | number;
1209
+ };
1210
+ })[];
1211
+ } | {
951
1212
  indicator: string;
952
1213
  condition: ">" | "<" | "==";
953
- }[] | undefined;
954
- indicators?: unknown[] | undefined;
955
- code?: unknown;
1214
+ compare_to: {
1215
+ type: "number" | "indicator";
1216
+ value: string | number;
1217
+ };
1218
+ } | undefined;
1219
+ timeinforce?: unknown;
956
1220
  results?: unknown;
1221
+ file?: any;
1222
+ templateId?: string | {} | undefined;
1223
+ trailing?: {
1224
+ trailing_stop?: boolean | undefined;
1225
+ trailing_stop_positive?: number | undefined;
1226
+ trailing_stop_positive_offset?: number | undefined;
1227
+ trailing_only_offset_is_reached?: boolean | undefined;
1228
+ } | undefined;
1229
+ exit_sell_signal?: boolean | undefined;
1230
+ code?: unknown;
957
1231
  configured?: boolean | undefined;
958
1232
  name: any;
959
1233
  'strategies/indicators': any;
@@ -1152,7 +1426,6 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
1152
1426
  host: string;
1153
1427
  name: any;
1154
1428
  provider: "docker";
1155
- strategies: string[];
1156
1429
  secret: string;
1157
1430
  key: string;
1158
1431
  createdAt: any;
@@ -1161,6 +1434,7 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
1161
1434
  which: string;
1162
1435
  userId: any;
1163
1436
  strategy: any;
1437
+ strategies: string[];
1164
1438
  "traders/pods": any;
1165
1439
  exchange: any;
1166
1440
  exchangeId: any;
@@ -1338,7 +1612,6 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
1338
1612
  host: string;
1339
1613
  name: any;
1340
1614
  provider: "docker";
1341
- strategies: string[];
1342
1615
  secret: string;
1343
1616
  key: string;
1344
1617
  createdAt: any;
@@ -1347,6 +1620,7 @@ export declare const tradersPodsApiResolver: import("@feathersjs/schema").Resolv
1347
1620
  which: string;
1348
1621
  userId: any;
1349
1622
  strategy: any;
1623
+ strategies: string[];
1350
1624
  "traders/pods": any;
1351
1625
  exchange: any;
1352
1626
  exchangeId: any;
@@ -1400,6 +1674,7 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1400
1674
  provider: "docker";
1401
1675
  _id: string | {};
1402
1676
  strategy: Partial<{
1677
+ public?: boolean | undefined;
1403
1678
  traders?: {
1404
1679
  telegram?: {
1405
1680
  access_hash?: string | null | undefined;
@@ -1538,7 +1813,6 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1538
1813
  host: string;
1539
1814
  name: any;
1540
1815
  provider: "docker";
1541
- strategies: string[];
1542
1816
  secret: string;
1543
1817
  key: string;
1544
1818
  createdAt: any;
@@ -1547,6 +1821,7 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1547
1821
  which: string;
1548
1822
  userId: any;
1549
1823
  strategy: any;
1824
+ strategies: string[];
1550
1825
  "traders/pods": any;
1551
1826
  exchange: any;
1552
1827
  exchangeId: any;
@@ -1589,26 +1864,143 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1589
1864
  updatedAt?: any;
1590
1865
  userId?: string | {} | undefined;
1591
1866
  'strategies/templates'?: {
1867
+ public?: boolean | undefined;
1592
1868
  _id?: string | {} | undefined;
1593
1869
  createdAt?: any;
1594
1870
  updatedAt?: any;
1595
- values: any;
1871
+ optimize?: {
1872
+ best?: {
1873
+ by: "total_profit" | "sharpe";
1874
+ direction: "max" | "min";
1875
+ } | undefined;
1876
+ enabled: boolean;
1877
+ then: {}[];
1878
+ if: {
1879
+ hyperopt: {
1880
+ results: {
1881
+ type?: string | undefined;
1882
+ field: string;
1883
+ operator: string;
1884
+ compare: any;
1885
+ }[];
1886
+ };
1887
+ };
1888
+ } | undefined;
1889
+ values: {
1890
+ indicators?: {
1891
+ alias?: string | undefined;
1892
+ name: string;
1893
+ _id: string;
1894
+ description: string;
1895
+ group: string;
1896
+ optInputs: {
1897
+ name: string;
1898
+ type: string;
1899
+ displayName: string;
1900
+ defaultValue: any;
1901
+ hint: string;
1902
+ normName: string;
1903
+ }[];
1904
+ }[] | undefined;
1905
+ interval: string;
1906
+ stoploss: number;
1907
+ exit_profit_only: boolean;
1908
+ exit_profit_offset: number;
1909
+ minimal_roi: {
1910
+ minutes: number;
1911
+ profit: number;
1912
+ }[];
1913
+ protections: {
1914
+ stop_duration_candles?: number | undefined;
1915
+ lookback_period_candles?: number | undefined;
1916
+ trade_limit?: number | undefined;
1917
+ max_allowed_drawdown?: number | undefined;
1918
+ only_per_pair?: boolean | undefined;
1919
+ enabled: boolean;
1920
+ type: string;
1921
+ method: string;
1922
+ }[];
1923
+ order_types: {
1924
+ stoploss: string;
1925
+ entry: string;
1926
+ exit: string;
1927
+ emergencysell: string;
1928
+ forcebuy: string;
1929
+ forcesell: string;
1930
+ stoploss_on_exchange: boolean;
1931
+ };
1932
+ sellwhen: {
1933
+ logic: string;
1934
+ conditions: {
1935
+ indicator: string;
1936
+ condition: string;
1937
+ compare_to: {
1938
+ type: string;
1939
+ value: any;
1940
+ };
1941
+ }[];
1942
+ };
1943
+ buywhen: {
1944
+ logic: string;
1945
+ conditions: {
1946
+ indicator: string;
1947
+ condition: string;
1948
+ compare_to: {
1949
+ type: string;
1950
+ value: any;
1951
+ };
1952
+ }[];
1953
+ };
1954
+ };
1596
1955
  name: string;
1597
1956
  type: string;
1957
+ revision: number;
1598
1958
  description: string;
1959
+ timeinforce: string;
1599
1960
  } | undefined;
1600
- file?: any;
1601
- templateId?: string | {} | undefined;
1602
1961
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
1603
1962
  stoploss?: number | undefined;
1963
+ exit_profit_only?: boolean | undefined;
1964
+ exit_profit_offset?: number | undefined;
1965
+ indicators?: {
1966
+ hyperopt?: {
1967
+ default: number;
1968
+ max: number;
1969
+ min: number;
1970
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
1971
+ field: string;
1972
+ space: string;
1973
+ }[] | undefined;
1974
+ name: string;
1975
+ _id: string;
1976
+ description: string;
1977
+ alias: string;
1978
+ group: string;
1979
+ optInputs: {
1980
+ name: string;
1981
+ type: string;
1982
+ displayName: string;
1983
+ defaultValue: number;
1984
+ hint: string;
1985
+ normName: string;
1986
+ }[];
1987
+ }[] | undefined;
1604
1988
  minimal_roi?: {
1605
1989
  minutes: number;
1606
1990
  profit: number;
1607
1991
  }[] | undefined;
1608
- exit_sell_signal?: boolean | undefined;
1609
- exit_profit_only?: boolean | undefined;
1610
- exit_profit_offset?: number | undefined;
1611
- timeinforce?: unknown;
1992
+ protections?: {
1993
+ stop_duration_candles?: number | undefined;
1994
+ lookback_period_candles?: unknown;
1995
+ trade_limit?: unknown;
1996
+ max_allowed_drawdown?: unknown;
1997
+ only_per_pair?: unknown;
1998
+ stop_duration_in_seconds?: unknown;
1999
+ required_profit?: unknown;
2000
+ enabled: boolean;
2001
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
2002
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
2003
+ }[] | undefined;
1612
2004
  order_types?: {
1613
2005
  stoploss?: string | undefined;
1614
2006
  entry?: "Limit" | "Market" | undefined;
@@ -1620,35 +2012,54 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1620
2012
  stoploss_on_exchange_interval?: number | undefined;
1621
2013
  stoploss_on_exchange_limit_ratio?: number | undefined;
1622
2014
  } | undefined;
1623
- protections?: {
1624
- stop_duration_candles?: number | undefined;
1625
- stop_duration_in_seconds?: unknown;
1626
- lookback_period_candles?: unknown;
1627
- trade_limit?: unknown;
1628
- required_profit?: unknown;
1629
- max_allowed_drawdown?: unknown;
1630
- only_per_pair?: unknown;
1631
- enabled: boolean;
1632
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
1633
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
1634
- }[] | undefined;
1635
- buywhen?: {
1636
- value?: number | undefined;
1637
- indicator2?: string | undefined;
1638
- type: "number" | "indicator";
2015
+ sellwhen?: {
2016
+ logic: "AND" | "OR";
2017
+ conditions: (/*elided*/ any | {
2018
+ indicator: string;
2019
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
2020
+ compare_to: {
2021
+ type: "number" | "indicator";
2022
+ value: string | number;
2023
+ };
2024
+ })[];
2025
+ } | {
1639
2026
  indicator: string;
1640
2027
  condition: ">" | "<" | "==";
1641
- }[] | undefined;
1642
- sellwhen?: {
1643
- value?: number | undefined;
1644
- indicator2?: string | undefined;
1645
- type: "number" | "indicator";
2028
+ compare_to: {
2029
+ type: "number" | "indicator";
2030
+ value: string | number;
2031
+ };
2032
+ } | undefined;
2033
+ buywhen?: {
2034
+ logic: "AND" | "OR";
2035
+ conditions: (/*elided*/ any | {
2036
+ indicator: string;
2037
+ condition: ">" | "<" | "==";
2038
+ compare_to: {
2039
+ type: "number" | "indicator";
2040
+ value: string | number;
2041
+ };
2042
+ })[];
2043
+ } | {
1646
2044
  indicator: string;
1647
2045
  condition: ">" | "<" | "==";
1648
- }[] | undefined;
1649
- indicators?: unknown[] | undefined;
1650
- code?: unknown;
2046
+ compare_to: {
2047
+ type: "number" | "indicator";
2048
+ value: string | number;
2049
+ };
2050
+ } | undefined;
2051
+ timeinforce?: unknown;
1651
2052
  results?: unknown;
2053
+ file?: any;
2054
+ templateId?: string | {} | undefined;
2055
+ trailing?: {
2056
+ trailing_stop?: boolean | undefined;
2057
+ trailing_stop_positive?: number | undefined;
2058
+ trailing_stop_positive_offset?: number | undefined;
2059
+ trailing_only_offset_is_reached?: boolean | undefined;
2060
+ } | undefined;
2061
+ exit_sell_signal?: boolean | undefined;
2062
+ code?: unknown;
1652
2063
  configured?: boolean | undefined;
1653
2064
  name: any;
1654
2065
  'strategies/indicators': any;
@@ -1847,7 +2258,6 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1847
2258
  host: string;
1848
2259
  name: any;
1849
2260
  provider: "docker";
1850
- strategies: string[];
1851
2261
  secret: string;
1852
2262
  key: string;
1853
2263
  createdAt: any;
@@ -1856,6 +2266,7 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
1856
2266
  which: string;
1857
2267
  userId: any;
1858
2268
  strategy: any;
2269
+ strategies: string[];
1859
2270
  "traders/pods": any;
1860
2271
  exchange: any;
1861
2272
  exchangeId: any;
@@ -2033,7 +2444,6 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
2033
2444
  host: string;
2034
2445
  name: any;
2035
2446
  provider: "docker";
2036
- strategies: string[];
2037
2447
  secret: string;
2038
2448
  key: string;
2039
2449
  createdAt: any;
@@ -2042,6 +2452,7 @@ export declare const tradersPodsApiExternalResolver: import("@feathersjs/schema"
2042
2452
  which: string;
2043
2453
  userId: any;
2044
2454
  strategy: any;
2455
+ strategies: string[];
2045
2456
  "traders/pods": any;
2046
2457
  exchange: any;
2047
2458
  exchangeId: any;
@@ -2518,17 +2929,24 @@ export declare const tradersPodsApiDataSchema: import("@feathersjs/typebox").TPi
2518
2929
  exchangeId: import("@feathersjs/typebox").TString<string>;
2519
2930
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
2520
2931
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
2521
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2522
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2932
+ _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
2933
+ userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
2523
2934
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2524
2935
  templateId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
2525
2936
  name: import("@feathersjs/typebox").TAny;
2937
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2526
2938
  interval: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"1m">, import("@feathersjs/typebox").TLiteral<"5m">, import("@feathersjs/typebox").TLiteral<"30m">, import("@feathersjs/typebox").TLiteral<"2h">, import("@feathersjs/typebox").TLiteral<"6h">, import("@feathersjs/typebox").TLiteral<"12h">, import("@feathersjs/typebox").TLiteral<"1d">, import("@feathersjs/typebox").TLiteral<"1w">]>>;
2527
2939
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2528
2940
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2529
2941
  minutes: import("@feathersjs/typebox").TNumber;
2530
2942
  profit: import("@feathersjs/typebox").TNumber;
2531
2943
  }>>>;
2944
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2945
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2946
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2947
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2948
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2949
+ }>>;
2532
2950
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2533
2951
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2534
2952
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -2556,21 +2974,65 @@ export declare const tradersPodsApiDataSchema: import("@feathersjs/typebox").TPi
2556
2974
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
2557
2975
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
2558
2976
  }>>>;
2559
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2977
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
2978
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
2979
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
2980
+ indicator: import("@feathersjs/typebox").TString<string>;
2981
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
2982
+ compare_to: import("@feathersjs/typebox").TObject<{
2983
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2984
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
2985
+ }>;
2986
+ }>]>>;
2987
+ }>>, import("@feathersjs/typebox").TObject<{
2560
2988
  indicator: import("@feathersjs/typebox").TString<string>;
2561
2989
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
2562
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2563
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2564
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
2565
- }>>>;
2566
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2990
+ compare_to: import("@feathersjs/typebox").TObject<{
2991
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2992
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
2993
+ }>;
2994
+ }>]>>;
2995
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
2996
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
2997
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
2998
+ indicator: import("@feathersjs/typebox").TString<string>;
2999
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">, import("@feathersjs/typebox").TLiteral<"crossed_above">, import("@feathersjs/typebox").TLiteral<"crossed_below">, import("@feathersjs/typebox").TLiteral<"crossed">]>;
3000
+ compare_to: import("@feathersjs/typebox").TObject<{
3001
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3002
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
3003
+ }>;
3004
+ }>]>>;
3005
+ }>>, import("@feathersjs/typebox").TObject<{
2567
3006
  indicator: import("@feathersjs/typebox").TString<string>;
2568
3007
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
2569
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2570
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2571
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3008
+ compare_to: import("@feathersjs/typebox").TObject<{
3009
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3010
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
3011
+ }>;
3012
+ }>]>>;
3013
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3014
+ _id: import("@feathersjs/typebox").TString<string>;
3015
+ alias: import("@feathersjs/typebox").TString<string>;
3016
+ name: import("@feathersjs/typebox").TString<string>;
3017
+ group: import("@feathersjs/typebox").TString<string>;
3018
+ description: import("@feathersjs/typebox").TString<string>;
3019
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3020
+ name: import("@feathersjs/typebox").TString<string>;
3021
+ displayName: import("@feathersjs/typebox").TString<string>;
3022
+ defaultValue: import("@feathersjs/typebox").TNumber;
3023
+ hint: import("@feathersjs/typebox").TString<string>;
3024
+ type: import("@feathersjs/typebox").TString<string>;
3025
+ normName: import("@feathersjs/typebox").TString<string>;
3026
+ }>>;
3027
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3028
+ field: import("@feathersjs/typebox").TString<string>;
3029
+ space: import("@feathersjs/typebox").TString<string>;
3030
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"IntParameter">, import("@feathersjs/typebox").TLiteral<"DecimalParameter">, import("@feathersjs/typebox").TLiteral<"BooleanParameter">, import("@feathersjs/typebox").TLiteral<"CategoricalParameter">]>;
3031
+ min: import("@feathersjs/typebox").TInteger;
3032
+ max: import("@feathersjs/typebox").TInteger;
3033
+ default: import("@feathersjs/typebox").TInteger;
3034
+ }>>>;
2572
3035
  }>>>;
2573
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
2574
3036
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
2575
3037
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2576
3038
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -2764,10 +3226,96 @@ export declare const tradersPodsApiDataSchema: import("@feathersjs/typebox").TPi
2764
3226
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2765
3227
  name: import("@feathersjs/typebox").TString<string>;
2766
3228
  type: import("@feathersjs/typebox").TString<string>;
3229
+ revision: import("@feathersjs/typebox").TNumber;
2767
3230
  description: import("@feathersjs/typebox").TString<string>;
2768
3231
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2769
3232
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2770
- values: import("@feathersjs/typebox").TAny;
3233
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3234
+ values: import("@feathersjs/typebox").TObject<{
3235
+ interval: import("@feathersjs/typebox").TString<string>;
3236
+ stoploss: import("@feathersjs/typebox").TNumber;
3237
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
3238
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
3239
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3240
+ _id: import("@feathersjs/typebox").TString<string>;
3241
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3242
+ name: import("@feathersjs/typebox").TString<string>;
3243
+ group: import("@feathersjs/typebox").TString<string>;
3244
+ description: import("@feathersjs/typebox").TString<string>;
3245
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3246
+ name: import("@feathersjs/typebox").TString<string>;
3247
+ displayName: import("@feathersjs/typebox").TString<string>;
3248
+ defaultValue: import("@feathersjs/typebox").TAny;
3249
+ hint: import("@feathersjs/typebox").TString<string>;
3250
+ type: import("@feathersjs/typebox").TString<string>;
3251
+ normName: import("@feathersjs/typebox").TString<string>;
3252
+ }>>;
3253
+ }>>>;
3254
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3255
+ minutes: import("@feathersjs/typebox").TNumber;
3256
+ profit: import("@feathersjs/typebox").TNumber;
3257
+ }>>;
3258
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3259
+ enabled: import("@feathersjs/typebox").TBoolean;
3260
+ type: import("@feathersjs/typebox").TString<string>;
3261
+ method: import("@feathersjs/typebox").TString<string>;
3262
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3263
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3264
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3265
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3266
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3267
+ }>>;
3268
+ order_types: import("@feathersjs/typebox").TObject<{
3269
+ entry: import("@feathersjs/typebox").TString<string>;
3270
+ exit: import("@feathersjs/typebox").TString<string>;
3271
+ emergencysell: import("@feathersjs/typebox").TString<string>;
3272
+ forcebuy: import("@feathersjs/typebox").TString<string>;
3273
+ forcesell: import("@feathersjs/typebox").TString<string>;
3274
+ stoploss: import("@feathersjs/typebox").TString<string>;
3275
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
3276
+ }>;
3277
+ sellwhen: import("@feathersjs/typebox").TObject<{
3278
+ logic: import("@feathersjs/typebox").TString<string>;
3279
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3280
+ indicator: import("@feathersjs/typebox").TString<string>;
3281
+ condition: import("@feathersjs/typebox").TString<string>;
3282
+ compare_to: import("@feathersjs/typebox").TObject<{
3283
+ type: import("@feathersjs/typebox").TString<string>;
3284
+ value: import("@feathersjs/typebox").TAny;
3285
+ }>;
3286
+ }>>;
3287
+ }>;
3288
+ buywhen: import("@feathersjs/typebox").TObject<{
3289
+ logic: import("@feathersjs/typebox").TString<string>;
3290
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3291
+ indicator: import("@feathersjs/typebox").TString<string>;
3292
+ condition: import("@feathersjs/typebox").TString<string>;
3293
+ compare_to: import("@feathersjs/typebox").TObject<{
3294
+ type: import("@feathersjs/typebox").TString<string>;
3295
+ value: import("@feathersjs/typebox").TAny;
3296
+ }>;
3297
+ }>>;
3298
+ }>;
3299
+ }>;
3300
+ timeinforce: import("@feathersjs/typebox").TString<string>;
3301
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3302
+ enabled: import("@feathersjs/typebox").TBoolean;
3303
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3304
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
3305
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
3306
+ }>>;
3307
+ if: import("@feathersjs/typebox").TObject<{
3308
+ hyperopt: import("@feathersjs/typebox").TObject<{
3309
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3310
+ field: import("@feathersjs/typebox").TString<string>;
3311
+ operator: import("@feathersjs/typebox").TString<string>;
3312
+ compare: import("@feathersjs/typebox").TAny;
3313
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3314
+ }>>;
3315
+ }>;
3316
+ }>;
3317
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
3318
+ }>>;
2771
3319
  }>>>;
2772
3320
  'strategies/indicators': import("@feathersjs/typebox").TAny;
2773
3321
  }>>>;
@@ -2792,6 +3340,7 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
2792
3340
  provider: "docker";
2793
3341
  _id: string | {};
2794
3342
  strategy: Partial<{
3343
+ public?: boolean | undefined;
2795
3344
  traders?: {
2796
3345
  telegram?: {
2797
3346
  access_hash?: string | null | undefined;
@@ -2930,7 +3479,6 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
2930
3479
  host: string;
2931
3480
  name: any;
2932
3481
  provider: "docker";
2933
- strategies: string[];
2934
3482
  secret: string;
2935
3483
  key: string;
2936
3484
  createdAt: any;
@@ -2939,6 +3487,7 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
2939
3487
  which: string;
2940
3488
  userId: any;
2941
3489
  strategy: any;
3490
+ strategies: string[];
2942
3491
  "traders/pods": any;
2943
3492
  exchange: any;
2944
3493
  exchangeId: any;
@@ -2981,26 +3530,143 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
2981
3530
  updatedAt?: any;
2982
3531
  userId?: string | {} | undefined;
2983
3532
  'strategies/templates'?: {
3533
+ public?: boolean | undefined;
2984
3534
  _id?: string | {} | undefined;
2985
3535
  createdAt?: any;
2986
3536
  updatedAt?: any;
2987
- values: any;
3537
+ optimize?: {
3538
+ best?: {
3539
+ by: "total_profit" | "sharpe";
3540
+ direction: "max" | "min";
3541
+ } | undefined;
3542
+ enabled: boolean;
3543
+ then: {}[];
3544
+ if: {
3545
+ hyperopt: {
3546
+ results: {
3547
+ type?: string | undefined;
3548
+ field: string;
3549
+ operator: string;
3550
+ compare: any;
3551
+ }[];
3552
+ };
3553
+ };
3554
+ } | undefined;
3555
+ values: {
3556
+ indicators?: {
3557
+ alias?: string | undefined;
3558
+ name: string;
3559
+ _id: string;
3560
+ description: string;
3561
+ group: string;
3562
+ optInputs: {
3563
+ name: string;
3564
+ type: string;
3565
+ displayName: string;
3566
+ defaultValue: any;
3567
+ hint: string;
3568
+ normName: string;
3569
+ }[];
3570
+ }[] | undefined;
3571
+ interval: string;
3572
+ stoploss: number;
3573
+ exit_profit_only: boolean;
3574
+ exit_profit_offset: number;
3575
+ minimal_roi: {
3576
+ minutes: number;
3577
+ profit: number;
3578
+ }[];
3579
+ protections: {
3580
+ stop_duration_candles?: number | undefined;
3581
+ lookback_period_candles?: number | undefined;
3582
+ trade_limit?: number | undefined;
3583
+ max_allowed_drawdown?: number | undefined;
3584
+ only_per_pair?: boolean | undefined;
3585
+ enabled: boolean;
3586
+ type: string;
3587
+ method: string;
3588
+ }[];
3589
+ order_types: {
3590
+ stoploss: string;
3591
+ entry: string;
3592
+ exit: string;
3593
+ emergencysell: string;
3594
+ forcebuy: string;
3595
+ forcesell: string;
3596
+ stoploss_on_exchange: boolean;
3597
+ };
3598
+ sellwhen: {
3599
+ logic: string;
3600
+ conditions: {
3601
+ indicator: string;
3602
+ condition: string;
3603
+ compare_to: {
3604
+ type: string;
3605
+ value: any;
3606
+ };
3607
+ }[];
3608
+ };
3609
+ buywhen: {
3610
+ logic: string;
3611
+ conditions: {
3612
+ indicator: string;
3613
+ condition: string;
3614
+ compare_to: {
3615
+ type: string;
3616
+ value: any;
3617
+ };
3618
+ }[];
3619
+ };
3620
+ };
2988
3621
  name: string;
2989
3622
  type: string;
3623
+ revision: number;
2990
3624
  description: string;
3625
+ timeinforce: string;
2991
3626
  } | undefined;
2992
- file?: any;
2993
- templateId?: string | {} | undefined;
2994
3627
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
2995
3628
  stoploss?: number | undefined;
3629
+ exit_profit_only?: boolean | undefined;
3630
+ exit_profit_offset?: number | undefined;
3631
+ indicators?: {
3632
+ hyperopt?: {
3633
+ default: number;
3634
+ max: number;
3635
+ min: number;
3636
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
3637
+ field: string;
3638
+ space: string;
3639
+ }[] | undefined;
3640
+ name: string;
3641
+ _id: string;
3642
+ description: string;
3643
+ alias: string;
3644
+ group: string;
3645
+ optInputs: {
3646
+ name: string;
3647
+ type: string;
3648
+ displayName: string;
3649
+ defaultValue: number;
3650
+ hint: string;
3651
+ normName: string;
3652
+ }[];
3653
+ }[] | undefined;
2996
3654
  minimal_roi?: {
2997
3655
  minutes: number;
2998
3656
  profit: number;
2999
3657
  }[] | undefined;
3000
- exit_sell_signal?: boolean | undefined;
3001
- exit_profit_only?: boolean | undefined;
3002
- exit_profit_offset?: number | undefined;
3003
- timeinforce?: unknown;
3658
+ protections?: {
3659
+ stop_duration_candles?: number | undefined;
3660
+ lookback_period_candles?: unknown;
3661
+ trade_limit?: unknown;
3662
+ max_allowed_drawdown?: unknown;
3663
+ only_per_pair?: unknown;
3664
+ stop_duration_in_seconds?: unknown;
3665
+ required_profit?: unknown;
3666
+ enabled: boolean;
3667
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
3668
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
3669
+ }[] | undefined;
3004
3670
  order_types?: {
3005
3671
  stoploss?: string | undefined;
3006
3672
  entry?: "Limit" | "Market" | undefined;
@@ -3012,35 +3678,54 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
3012
3678
  stoploss_on_exchange_interval?: number | undefined;
3013
3679
  stoploss_on_exchange_limit_ratio?: number | undefined;
3014
3680
  } | undefined;
3015
- protections?: {
3016
- stop_duration_candles?: number | undefined;
3017
- stop_duration_in_seconds?: unknown;
3018
- lookback_period_candles?: unknown;
3019
- trade_limit?: unknown;
3020
- required_profit?: unknown;
3021
- max_allowed_drawdown?: unknown;
3022
- only_per_pair?: unknown;
3023
- enabled: boolean;
3024
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
3025
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
3026
- }[] | undefined;
3027
- buywhen?: {
3028
- value?: number | undefined;
3029
- indicator2?: string | undefined;
3030
- type: "number" | "indicator";
3681
+ sellwhen?: {
3682
+ logic: "AND" | "OR";
3683
+ conditions: (/*elided*/ any | {
3684
+ indicator: string;
3685
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
3686
+ compare_to: {
3687
+ type: "number" | "indicator";
3688
+ value: string | number;
3689
+ };
3690
+ })[];
3691
+ } | {
3031
3692
  indicator: string;
3032
3693
  condition: ">" | "<" | "==";
3033
- }[] | undefined;
3034
- sellwhen?: {
3035
- value?: number | undefined;
3036
- indicator2?: string | undefined;
3037
- type: "number" | "indicator";
3694
+ compare_to: {
3695
+ type: "number" | "indicator";
3696
+ value: string | number;
3697
+ };
3698
+ } | undefined;
3699
+ buywhen?: {
3700
+ logic: "AND" | "OR";
3701
+ conditions: (/*elided*/ any | {
3702
+ indicator: string;
3703
+ condition: ">" | "<" | "==";
3704
+ compare_to: {
3705
+ type: "number" | "indicator";
3706
+ value: string | number;
3707
+ };
3708
+ })[];
3709
+ } | {
3038
3710
  indicator: string;
3039
3711
  condition: ">" | "<" | "==";
3040
- }[] | undefined;
3041
- indicators?: unknown[] | undefined;
3042
- code?: unknown;
3712
+ compare_to: {
3713
+ type: "number" | "indicator";
3714
+ value: string | number;
3715
+ };
3716
+ } | undefined;
3717
+ timeinforce?: unknown;
3043
3718
  results?: unknown;
3719
+ file?: any;
3720
+ templateId?: string | {} | undefined;
3721
+ trailing?: {
3722
+ trailing_stop?: boolean | undefined;
3723
+ trailing_stop_positive?: number | undefined;
3724
+ trailing_stop_positive_offset?: number | undefined;
3725
+ trailing_only_offset_is_reached?: boolean | undefined;
3726
+ } | undefined;
3727
+ exit_sell_signal?: boolean | undefined;
3728
+ code?: unknown;
3044
3729
  configured?: boolean | undefined;
3045
3730
  name: any;
3046
3731
  'strategies/indicators': any;
@@ -3239,7 +3924,6 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
3239
3924
  host: string;
3240
3925
  name: any;
3241
3926
  provider: "docker";
3242
- strategies: string[];
3243
3927
  secret: string;
3244
3928
  key: string;
3245
3929
  createdAt: any;
@@ -3248,6 +3932,7 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
3248
3932
  which: string;
3249
3933
  userId: any;
3250
3934
  strategy: any;
3935
+ strategies: string[];
3251
3936
  "traders/pods": any;
3252
3937
  exchange: any;
3253
3938
  exchangeId: any;
@@ -3425,7 +4110,6 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
3425
4110
  host: string;
3426
4111
  name: any;
3427
4112
  provider: "docker";
3428
- strategies: string[];
3429
4113
  secret: string;
3430
4114
  key: string;
3431
4115
  createdAt: any;
@@ -3434,6 +4118,7 @@ export declare const tradersPodsApiDataResolver: import("@feathersjs/schema").Re
3434
4118
  which: string;
3435
4119
  userId: any;
3436
4120
  strategy: any;
4121
+ strategies: string[];
3437
4122
  "traders/pods": any;
3438
4123
  exchange: any;
3439
4124
  exchangeId: any;
@@ -3910,17 +4595,24 @@ export declare const tradersPodsApiPatchSchema: import("@feathersjs/typebox").TP
3910
4595
  exchangeId: import("@feathersjs/typebox").TString<string>;
3911
4596
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
3912
4597
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
3913
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
3914
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
4598
+ _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
4599
+ userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
3915
4600
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
3916
4601
  templateId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
3917
4602
  name: import("@feathersjs/typebox").TAny;
4603
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3918
4604
  interval: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"1m">, import("@feathersjs/typebox").TLiteral<"5m">, import("@feathersjs/typebox").TLiteral<"30m">, import("@feathersjs/typebox").TLiteral<"2h">, import("@feathersjs/typebox").TLiteral<"6h">, import("@feathersjs/typebox").TLiteral<"12h">, import("@feathersjs/typebox").TLiteral<"1d">, import("@feathersjs/typebox").TLiteral<"1w">]>>;
3919
4605
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3920
4606
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3921
4607
  minutes: import("@feathersjs/typebox").TNumber;
3922
4608
  profit: import("@feathersjs/typebox").TNumber;
3923
4609
  }>>>;
4610
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4611
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4612
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4613
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4614
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4615
+ }>>;
3924
4616
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3925
4617
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3926
4618
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -3948,21 +4640,65 @@ export declare const tradersPodsApiPatchSchema: import("@feathersjs/typebox").TP
3948
4640
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
3949
4641
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
3950
4642
  }>>>;
3951
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4643
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
4644
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
4645
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
4646
+ indicator: import("@feathersjs/typebox").TString<string>;
4647
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
4648
+ compare_to: import("@feathersjs/typebox").TObject<{
4649
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4650
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4651
+ }>;
4652
+ }>]>>;
4653
+ }>>, import("@feathersjs/typebox").TObject<{
3952
4654
  indicator: import("@feathersjs/typebox").TString<string>;
3953
4655
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
3954
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3955
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3956
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3957
- }>>>;
3958
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4656
+ compare_to: import("@feathersjs/typebox").TObject<{
4657
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4658
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4659
+ }>;
4660
+ }>]>>;
4661
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
4662
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
4663
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
4664
+ indicator: import("@feathersjs/typebox").TString<string>;
4665
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">, import("@feathersjs/typebox").TLiteral<"crossed_above">, import("@feathersjs/typebox").TLiteral<"crossed_below">, import("@feathersjs/typebox").TLiteral<"crossed">]>;
4666
+ compare_to: import("@feathersjs/typebox").TObject<{
4667
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4668
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4669
+ }>;
4670
+ }>]>>;
4671
+ }>>, import("@feathersjs/typebox").TObject<{
3959
4672
  indicator: import("@feathersjs/typebox").TString<string>;
3960
4673
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
3961
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3962
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3963
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
4674
+ compare_to: import("@feathersjs/typebox").TObject<{
4675
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4676
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4677
+ }>;
4678
+ }>]>>;
4679
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4680
+ _id: import("@feathersjs/typebox").TString<string>;
4681
+ alias: import("@feathersjs/typebox").TString<string>;
4682
+ name: import("@feathersjs/typebox").TString<string>;
4683
+ group: import("@feathersjs/typebox").TString<string>;
4684
+ description: import("@feathersjs/typebox").TString<string>;
4685
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4686
+ name: import("@feathersjs/typebox").TString<string>;
4687
+ displayName: import("@feathersjs/typebox").TString<string>;
4688
+ defaultValue: import("@feathersjs/typebox").TNumber;
4689
+ hint: import("@feathersjs/typebox").TString<string>;
4690
+ type: import("@feathersjs/typebox").TString<string>;
4691
+ normName: import("@feathersjs/typebox").TString<string>;
4692
+ }>>;
4693
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4694
+ field: import("@feathersjs/typebox").TString<string>;
4695
+ space: import("@feathersjs/typebox").TString<string>;
4696
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"IntParameter">, import("@feathersjs/typebox").TLiteral<"DecimalParameter">, import("@feathersjs/typebox").TLiteral<"BooleanParameter">, import("@feathersjs/typebox").TLiteral<"CategoricalParameter">]>;
4697
+ min: import("@feathersjs/typebox").TInteger;
4698
+ max: import("@feathersjs/typebox").TInteger;
4699
+ default: import("@feathersjs/typebox").TInteger;
4700
+ }>>>;
3964
4701
  }>>>;
3965
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
3966
4702
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
3967
4703
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
3968
4704
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -4156,10 +4892,96 @@ export declare const tradersPodsApiPatchSchema: import("@feathersjs/typebox").TP
4156
4892
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
4157
4893
  name: import("@feathersjs/typebox").TString<string>;
4158
4894
  type: import("@feathersjs/typebox").TString<string>;
4895
+ revision: import("@feathersjs/typebox").TNumber;
4159
4896
  description: import("@feathersjs/typebox").TString<string>;
4160
4897
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
4161
4898
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
4162
- values: import("@feathersjs/typebox").TAny;
4899
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4900
+ values: import("@feathersjs/typebox").TObject<{
4901
+ interval: import("@feathersjs/typebox").TString<string>;
4902
+ stoploss: import("@feathersjs/typebox").TNumber;
4903
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
4904
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
4905
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4906
+ _id: import("@feathersjs/typebox").TString<string>;
4907
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
4908
+ name: import("@feathersjs/typebox").TString<string>;
4909
+ group: import("@feathersjs/typebox").TString<string>;
4910
+ description: import("@feathersjs/typebox").TString<string>;
4911
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4912
+ name: import("@feathersjs/typebox").TString<string>;
4913
+ displayName: import("@feathersjs/typebox").TString<string>;
4914
+ defaultValue: import("@feathersjs/typebox").TAny;
4915
+ hint: import("@feathersjs/typebox").TString<string>;
4916
+ type: import("@feathersjs/typebox").TString<string>;
4917
+ normName: import("@feathersjs/typebox").TString<string>;
4918
+ }>>;
4919
+ }>>>;
4920
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4921
+ minutes: import("@feathersjs/typebox").TNumber;
4922
+ profit: import("@feathersjs/typebox").TNumber;
4923
+ }>>;
4924
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4925
+ enabled: import("@feathersjs/typebox").TBoolean;
4926
+ type: import("@feathersjs/typebox").TString<string>;
4927
+ method: import("@feathersjs/typebox").TString<string>;
4928
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4929
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4930
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4931
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4932
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4933
+ }>>;
4934
+ order_types: import("@feathersjs/typebox").TObject<{
4935
+ entry: import("@feathersjs/typebox").TString<string>;
4936
+ exit: import("@feathersjs/typebox").TString<string>;
4937
+ emergencysell: import("@feathersjs/typebox").TString<string>;
4938
+ forcebuy: import("@feathersjs/typebox").TString<string>;
4939
+ forcesell: import("@feathersjs/typebox").TString<string>;
4940
+ stoploss: import("@feathersjs/typebox").TString<string>;
4941
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
4942
+ }>;
4943
+ sellwhen: import("@feathersjs/typebox").TObject<{
4944
+ logic: import("@feathersjs/typebox").TString<string>;
4945
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4946
+ indicator: import("@feathersjs/typebox").TString<string>;
4947
+ condition: import("@feathersjs/typebox").TString<string>;
4948
+ compare_to: import("@feathersjs/typebox").TObject<{
4949
+ type: import("@feathersjs/typebox").TString<string>;
4950
+ value: import("@feathersjs/typebox").TAny;
4951
+ }>;
4952
+ }>>;
4953
+ }>;
4954
+ buywhen: import("@feathersjs/typebox").TObject<{
4955
+ logic: import("@feathersjs/typebox").TString<string>;
4956
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4957
+ indicator: import("@feathersjs/typebox").TString<string>;
4958
+ condition: import("@feathersjs/typebox").TString<string>;
4959
+ compare_to: import("@feathersjs/typebox").TObject<{
4960
+ type: import("@feathersjs/typebox").TString<string>;
4961
+ value: import("@feathersjs/typebox").TAny;
4962
+ }>;
4963
+ }>>;
4964
+ }>;
4965
+ }>;
4966
+ timeinforce: import("@feathersjs/typebox").TString<string>;
4967
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4968
+ enabled: import("@feathersjs/typebox").TBoolean;
4969
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4970
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
4971
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
4972
+ }>>;
4973
+ if: import("@feathersjs/typebox").TObject<{
4974
+ hyperopt: import("@feathersjs/typebox").TObject<{
4975
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4976
+ field: import("@feathersjs/typebox").TString<string>;
4977
+ operator: import("@feathersjs/typebox").TString<string>;
4978
+ compare: import("@feathersjs/typebox").TAny;
4979
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
4980
+ }>>;
4981
+ }>;
4982
+ }>;
4983
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
4984
+ }>>;
4163
4985
  }>>>;
4164
4986
  'strategies/indicators': import("@feathersjs/typebox").TAny;
4165
4987
  }>>>;
@@ -4184,6 +5006,7 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4184
5006
  provider: "docker";
4185
5007
  _id: string | {};
4186
5008
  strategy: Partial<{
5009
+ public?: boolean | undefined;
4187
5010
  traders?: {
4188
5011
  telegram?: {
4189
5012
  access_hash?: string | null | undefined;
@@ -4322,7 +5145,6 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4322
5145
  host: string;
4323
5146
  name: any;
4324
5147
  provider: "docker";
4325
- strategies: string[];
4326
5148
  secret: string;
4327
5149
  key: string;
4328
5150
  createdAt: any;
@@ -4331,6 +5153,7 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4331
5153
  which: string;
4332
5154
  userId: any;
4333
5155
  strategy: any;
5156
+ strategies: string[];
4334
5157
  "traders/pods": any;
4335
5158
  exchange: any;
4336
5159
  exchangeId: any;
@@ -4373,26 +5196,143 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4373
5196
  updatedAt?: any;
4374
5197
  userId?: string | {} | undefined;
4375
5198
  'strategies/templates'?: {
5199
+ public?: boolean | undefined;
4376
5200
  _id?: string | {} | undefined;
4377
5201
  createdAt?: any;
4378
5202
  updatedAt?: any;
4379
- values: any;
5203
+ optimize?: {
5204
+ best?: {
5205
+ by: "total_profit" | "sharpe";
5206
+ direction: "max" | "min";
5207
+ } | undefined;
5208
+ enabled: boolean;
5209
+ then: {}[];
5210
+ if: {
5211
+ hyperopt: {
5212
+ results: {
5213
+ type?: string | undefined;
5214
+ field: string;
5215
+ operator: string;
5216
+ compare: any;
5217
+ }[];
5218
+ };
5219
+ };
5220
+ } | undefined;
5221
+ values: {
5222
+ indicators?: {
5223
+ alias?: string | undefined;
5224
+ name: string;
5225
+ _id: string;
5226
+ description: string;
5227
+ group: string;
5228
+ optInputs: {
5229
+ name: string;
5230
+ type: string;
5231
+ displayName: string;
5232
+ defaultValue: any;
5233
+ hint: string;
5234
+ normName: string;
5235
+ }[];
5236
+ }[] | undefined;
5237
+ interval: string;
5238
+ stoploss: number;
5239
+ exit_profit_only: boolean;
5240
+ exit_profit_offset: number;
5241
+ minimal_roi: {
5242
+ minutes: number;
5243
+ profit: number;
5244
+ }[];
5245
+ protections: {
5246
+ stop_duration_candles?: number | undefined;
5247
+ lookback_period_candles?: number | undefined;
5248
+ trade_limit?: number | undefined;
5249
+ max_allowed_drawdown?: number | undefined;
5250
+ only_per_pair?: boolean | undefined;
5251
+ enabled: boolean;
5252
+ type: string;
5253
+ method: string;
5254
+ }[];
5255
+ order_types: {
5256
+ stoploss: string;
5257
+ entry: string;
5258
+ exit: string;
5259
+ emergencysell: string;
5260
+ forcebuy: string;
5261
+ forcesell: string;
5262
+ stoploss_on_exchange: boolean;
5263
+ };
5264
+ sellwhen: {
5265
+ logic: string;
5266
+ conditions: {
5267
+ indicator: string;
5268
+ condition: string;
5269
+ compare_to: {
5270
+ type: string;
5271
+ value: any;
5272
+ };
5273
+ }[];
5274
+ };
5275
+ buywhen: {
5276
+ logic: string;
5277
+ conditions: {
5278
+ indicator: string;
5279
+ condition: string;
5280
+ compare_to: {
5281
+ type: string;
5282
+ value: any;
5283
+ };
5284
+ }[];
5285
+ };
5286
+ };
4380
5287
  name: string;
4381
5288
  type: string;
5289
+ revision: number;
4382
5290
  description: string;
5291
+ timeinforce: string;
4383
5292
  } | undefined;
4384
- file?: any;
4385
- templateId?: string | {} | undefined;
4386
5293
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
4387
5294
  stoploss?: number | undefined;
5295
+ exit_profit_only?: boolean | undefined;
5296
+ exit_profit_offset?: number | undefined;
5297
+ indicators?: {
5298
+ hyperopt?: {
5299
+ default: number;
5300
+ max: number;
5301
+ min: number;
5302
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
5303
+ field: string;
5304
+ space: string;
5305
+ }[] | undefined;
5306
+ name: string;
5307
+ _id: string;
5308
+ description: string;
5309
+ alias: string;
5310
+ group: string;
5311
+ optInputs: {
5312
+ name: string;
5313
+ type: string;
5314
+ displayName: string;
5315
+ defaultValue: number;
5316
+ hint: string;
5317
+ normName: string;
5318
+ }[];
5319
+ }[] | undefined;
4388
5320
  minimal_roi?: {
4389
5321
  minutes: number;
4390
5322
  profit: number;
4391
5323
  }[] | undefined;
4392
- exit_sell_signal?: boolean | undefined;
4393
- exit_profit_only?: boolean | undefined;
4394
- exit_profit_offset?: number | undefined;
4395
- timeinforce?: unknown;
5324
+ protections?: {
5325
+ stop_duration_candles?: number | undefined;
5326
+ lookback_period_candles?: unknown;
5327
+ trade_limit?: unknown;
5328
+ max_allowed_drawdown?: unknown;
5329
+ only_per_pair?: unknown;
5330
+ stop_duration_in_seconds?: unknown;
5331
+ required_profit?: unknown;
5332
+ enabled: boolean;
5333
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
5334
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
5335
+ }[] | undefined;
4396
5336
  order_types?: {
4397
5337
  stoploss?: string | undefined;
4398
5338
  entry?: "Limit" | "Market" | undefined;
@@ -4404,35 +5344,54 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4404
5344
  stoploss_on_exchange_interval?: number | undefined;
4405
5345
  stoploss_on_exchange_limit_ratio?: number | undefined;
4406
5346
  } | undefined;
4407
- protections?: {
4408
- stop_duration_candles?: number | undefined;
4409
- stop_duration_in_seconds?: unknown;
4410
- lookback_period_candles?: unknown;
4411
- trade_limit?: unknown;
4412
- required_profit?: unknown;
4413
- max_allowed_drawdown?: unknown;
4414
- only_per_pair?: unknown;
4415
- enabled: boolean;
4416
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
4417
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
4418
- }[] | undefined;
4419
- buywhen?: {
4420
- value?: number | undefined;
4421
- indicator2?: string | undefined;
4422
- type: "number" | "indicator";
5347
+ sellwhen?: {
5348
+ logic: "AND" | "OR";
5349
+ conditions: (/*elided*/ any | {
5350
+ indicator: string;
5351
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
5352
+ compare_to: {
5353
+ type: "number" | "indicator";
5354
+ value: string | number;
5355
+ };
5356
+ })[];
5357
+ } | {
4423
5358
  indicator: string;
4424
5359
  condition: ">" | "<" | "==";
4425
- }[] | undefined;
4426
- sellwhen?: {
4427
- value?: number | undefined;
4428
- indicator2?: string | undefined;
4429
- type: "number" | "indicator";
5360
+ compare_to: {
5361
+ type: "number" | "indicator";
5362
+ value: string | number;
5363
+ };
5364
+ } | undefined;
5365
+ buywhen?: {
5366
+ logic: "AND" | "OR";
5367
+ conditions: (/*elided*/ any | {
5368
+ indicator: string;
5369
+ condition: ">" | "<" | "==";
5370
+ compare_to: {
5371
+ type: "number" | "indicator";
5372
+ value: string | number;
5373
+ };
5374
+ })[];
5375
+ } | {
4430
5376
  indicator: string;
4431
5377
  condition: ">" | "<" | "==";
4432
- }[] | undefined;
4433
- indicators?: unknown[] | undefined;
4434
- code?: unknown;
5378
+ compare_to: {
5379
+ type: "number" | "indicator";
5380
+ value: string | number;
5381
+ };
5382
+ } | undefined;
5383
+ timeinforce?: unknown;
4435
5384
  results?: unknown;
5385
+ file?: any;
5386
+ templateId?: string | {} | undefined;
5387
+ trailing?: {
5388
+ trailing_stop?: boolean | undefined;
5389
+ trailing_stop_positive?: number | undefined;
5390
+ trailing_stop_positive_offset?: number | undefined;
5391
+ trailing_only_offset_is_reached?: boolean | undefined;
5392
+ } | undefined;
5393
+ exit_sell_signal?: boolean | undefined;
5394
+ code?: unknown;
4436
5395
  configured?: boolean | undefined;
4437
5396
  name: any;
4438
5397
  'strategies/indicators': any;
@@ -4631,7 +5590,6 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4631
5590
  host: string;
4632
5591
  name: any;
4633
5592
  provider: "docker";
4634
- strategies: string[];
4635
5593
  secret: string;
4636
5594
  key: string;
4637
5595
  createdAt: any;
@@ -4640,6 +5598,7 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4640
5598
  which: string;
4641
5599
  userId: any;
4642
5600
  strategy: any;
5601
+ strategies: string[];
4643
5602
  "traders/pods": any;
4644
5603
  exchange: any;
4645
5604
  exchangeId: any;
@@ -4817,7 +5776,6 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4817
5776
  host: string;
4818
5777
  name: any;
4819
5778
  provider: "docker";
4820
- strategies: string[];
4821
5779
  secret: string;
4822
5780
  key: string;
4823
5781
  createdAt: any;
@@ -4826,6 +5784,7 @@ export declare const tradersPodsApiPatchResolver: import("@feathersjs/schema").R
4826
5784
  which: string;
4827
5785
  userId: any;
4828
5786
  strategy: any;
5787
+ strategies: string[];
4829
5788
  "traders/pods": any;
4830
5789
  exchange: any;
4831
5790
  exchangeId: any;
@@ -5302,17 +6261,24 @@ export declare const tradersPodsApiQueryProperties: import("@feathersjs/typebox"
5302
6261
  exchangeId: import("@feathersjs/typebox").TString<string>;
5303
6262
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
5304
6263
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
5305
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
5306
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
6264
+ _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
6265
+ userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
5307
6266
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
5308
6267
  templateId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>, import("@feathersjs/typebox").TString<string>]>>;
5309
6268
  name: import("@feathersjs/typebox").TAny;
6269
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
5310
6270
  interval: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"1m">, import("@feathersjs/typebox").TLiteral<"5m">, import("@feathersjs/typebox").TLiteral<"30m">, import("@feathersjs/typebox").TLiteral<"2h">, import("@feathersjs/typebox").TLiteral<"6h">, import("@feathersjs/typebox").TLiteral<"12h">, import("@feathersjs/typebox").TLiteral<"1d">, import("@feathersjs/typebox").TLiteral<"1w">]>>;
5311
6271
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5312
6272
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5313
6273
  minutes: import("@feathersjs/typebox").TNumber;
5314
6274
  profit: import("@feathersjs/typebox").TNumber;
5315
6275
  }>>>;
6276
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
6277
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
6278
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
6279
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
6280
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
6281
+ }>>;
5316
6282
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
5317
6283
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
5318
6284
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -5340,21 +6306,65 @@ export declare const tradersPodsApiQueryProperties: import("@feathersjs/typebox"
5340
6306
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
5341
6307
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
5342
6308
  }>>>;
5343
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6309
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
6310
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
6311
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
6312
+ indicator: import("@feathersjs/typebox").TString<string>;
6313
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
6314
+ compare_to: import("@feathersjs/typebox").TObject<{
6315
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
6316
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
6317
+ }>;
6318
+ }>]>>;
6319
+ }>>, import("@feathersjs/typebox").TObject<{
5344
6320
  indicator: import("@feathersjs/typebox").TString<string>;
5345
6321
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
5346
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
5347
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5348
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
5349
- }>>>;
5350
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6322
+ compare_to: import("@feathersjs/typebox").TObject<{
6323
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
6324
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
6325
+ }>;
6326
+ }>]>>;
6327
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
6328
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
6329
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
6330
+ indicator: import("@feathersjs/typebox").TString<string>;
6331
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">, import("@feathersjs/typebox").TLiteral<"crossed_above">, import("@feathersjs/typebox").TLiteral<"crossed_below">, import("@feathersjs/typebox").TLiteral<"crossed">]>;
6332
+ compare_to: import("@feathersjs/typebox").TObject<{
6333
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
6334
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
6335
+ }>;
6336
+ }>]>>;
6337
+ }>>, import("@feathersjs/typebox").TObject<{
5351
6338
  indicator: import("@feathersjs/typebox").TString<string>;
5352
6339
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
5353
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
5354
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5355
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
6340
+ compare_to: import("@feathersjs/typebox").TObject<{
6341
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
6342
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
6343
+ }>;
6344
+ }>]>>;
6345
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6346
+ _id: import("@feathersjs/typebox").TString<string>;
6347
+ alias: import("@feathersjs/typebox").TString<string>;
6348
+ name: import("@feathersjs/typebox").TString<string>;
6349
+ group: import("@feathersjs/typebox").TString<string>;
6350
+ description: import("@feathersjs/typebox").TString<string>;
6351
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6352
+ name: import("@feathersjs/typebox").TString<string>;
6353
+ displayName: import("@feathersjs/typebox").TString<string>;
6354
+ defaultValue: import("@feathersjs/typebox").TNumber;
6355
+ hint: import("@feathersjs/typebox").TString<string>;
6356
+ type: import("@feathersjs/typebox").TString<string>;
6357
+ normName: import("@feathersjs/typebox").TString<string>;
6358
+ }>>;
6359
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6360
+ field: import("@feathersjs/typebox").TString<string>;
6361
+ space: import("@feathersjs/typebox").TString<string>;
6362
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"IntParameter">, import("@feathersjs/typebox").TLiteral<"DecimalParameter">, import("@feathersjs/typebox").TLiteral<"BooleanParameter">, import("@feathersjs/typebox").TLiteral<"CategoricalParameter">]>;
6363
+ min: import("@feathersjs/typebox").TInteger;
6364
+ max: import("@feathersjs/typebox").TInteger;
6365
+ default: import("@feathersjs/typebox").TInteger;
6366
+ }>>>;
5356
6367
  }>>>;
5357
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
5358
6368
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
5359
6369
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
5360
6370
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -5548,10 +6558,96 @@ export declare const tradersPodsApiQueryProperties: import("@feathersjs/typebox"
5548
6558
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
5549
6559
  name: import("@feathersjs/typebox").TString<string>;
5550
6560
  type: import("@feathersjs/typebox").TString<string>;
6561
+ revision: import("@feathersjs/typebox").TNumber;
5551
6562
  description: import("@feathersjs/typebox").TString<string>;
5552
6563
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
5553
6564
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
5554
- values: import("@feathersjs/typebox").TAny;
6565
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
6566
+ values: import("@feathersjs/typebox").TObject<{
6567
+ interval: import("@feathersjs/typebox").TString<string>;
6568
+ stoploss: import("@feathersjs/typebox").TNumber;
6569
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
6570
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
6571
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6572
+ _id: import("@feathersjs/typebox").TString<string>;
6573
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
6574
+ name: import("@feathersjs/typebox").TString<string>;
6575
+ group: import("@feathersjs/typebox").TString<string>;
6576
+ description: import("@feathersjs/typebox").TString<string>;
6577
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6578
+ name: import("@feathersjs/typebox").TString<string>;
6579
+ displayName: import("@feathersjs/typebox").TString<string>;
6580
+ defaultValue: import("@feathersjs/typebox").TAny;
6581
+ hint: import("@feathersjs/typebox").TString<string>;
6582
+ type: import("@feathersjs/typebox").TString<string>;
6583
+ normName: import("@feathersjs/typebox").TString<string>;
6584
+ }>>;
6585
+ }>>>;
6586
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6587
+ minutes: import("@feathersjs/typebox").TNumber;
6588
+ profit: import("@feathersjs/typebox").TNumber;
6589
+ }>>;
6590
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6591
+ enabled: import("@feathersjs/typebox").TBoolean;
6592
+ type: import("@feathersjs/typebox").TString<string>;
6593
+ method: import("@feathersjs/typebox").TString<string>;
6594
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
6595
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
6596
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
6597
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
6598
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
6599
+ }>>;
6600
+ order_types: import("@feathersjs/typebox").TObject<{
6601
+ entry: import("@feathersjs/typebox").TString<string>;
6602
+ exit: import("@feathersjs/typebox").TString<string>;
6603
+ emergencysell: import("@feathersjs/typebox").TString<string>;
6604
+ forcebuy: import("@feathersjs/typebox").TString<string>;
6605
+ forcesell: import("@feathersjs/typebox").TString<string>;
6606
+ stoploss: import("@feathersjs/typebox").TString<string>;
6607
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
6608
+ }>;
6609
+ sellwhen: import("@feathersjs/typebox").TObject<{
6610
+ logic: import("@feathersjs/typebox").TString<string>;
6611
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6612
+ indicator: import("@feathersjs/typebox").TString<string>;
6613
+ condition: import("@feathersjs/typebox").TString<string>;
6614
+ compare_to: import("@feathersjs/typebox").TObject<{
6615
+ type: import("@feathersjs/typebox").TString<string>;
6616
+ value: import("@feathersjs/typebox").TAny;
6617
+ }>;
6618
+ }>>;
6619
+ }>;
6620
+ buywhen: import("@feathersjs/typebox").TObject<{
6621
+ logic: import("@feathersjs/typebox").TString<string>;
6622
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6623
+ indicator: import("@feathersjs/typebox").TString<string>;
6624
+ condition: import("@feathersjs/typebox").TString<string>;
6625
+ compare_to: import("@feathersjs/typebox").TObject<{
6626
+ type: import("@feathersjs/typebox").TString<string>;
6627
+ value: import("@feathersjs/typebox").TAny;
6628
+ }>;
6629
+ }>>;
6630
+ }>;
6631
+ }>;
6632
+ timeinforce: import("@feathersjs/typebox").TString<string>;
6633
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
6634
+ enabled: import("@feathersjs/typebox").TBoolean;
6635
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
6636
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
6637
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
6638
+ }>>;
6639
+ if: import("@feathersjs/typebox").TObject<{
6640
+ hyperopt: import("@feathersjs/typebox").TObject<{
6641
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
6642
+ field: import("@feathersjs/typebox").TString<string>;
6643
+ operator: import("@feathersjs/typebox").TString<string>;
6644
+ compare: import("@feathersjs/typebox").TAny;
6645
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
6646
+ }>>;
6647
+ }>;
6648
+ }>;
6649
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
6650
+ }>>;
5555
6651
  }>>>;
5556
6652
  'strategies/indicators': import("@feathersjs/typebox").TAny;
5557
6653
  }>>>;