@cryptorobot.ai/client 0.0.38 → 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 (99) hide show
  1. package/lib/src/client.js +33 -3
  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/balance/balance.schema.d.ts +16 -16
  38. package/lib/src/services/exchanges/download/download.schema.d.ts +58 -17
  39. package/lib/src/services/exchanges/download/download.shared.d.ts +1 -1
  40. package/lib/src/services/exchanges/download/download.shared.js +1 -1
  41. package/lib/src/services/exchanges/download/webhooks/webhooks.schema.d.ts +4 -4
  42. package/lib/src/services/exchanges/exchanges.schema.d.ts +100 -100
  43. package/lib/src/services/exchanges/ohlcv/ohlcv.class.d.ts +19 -0
  44. package/lib/src/services/exchanges/ohlcv/ohlcv.d.ts +11 -0
  45. package/lib/src/services/exchanges/ohlcv/ohlcv.schema.d.ts +507 -0
  46. package/lib/src/services/exchanges/ohlcv/ohlcv.shared.d.ts +13 -0
  47. package/lib/src/services/exchanges/ohlcv/ohlcv.shared.js +13 -0
  48. package/lib/src/services/exchanges/ticker/ticker.schema.d.ts +68 -68
  49. package/lib/src/services/extensions/extensions.class.d.ts +11 -0
  50. package/lib/src/services/extensions/extensions.d.ts +11 -0
  51. package/lib/src/services/extensions/extensions.schema.d.ts +1275 -0
  52. package/lib/src/services/extensions/extensions.shared.d.ts +13 -0
  53. package/lib/src/services/extensions/extensions.shared.js +13 -0
  54. package/lib/src/services/keys/KeysService.d.ts +13 -0
  55. package/lib/src/services/keys/keys.class.d.ts +11 -0
  56. package/lib/src/services/keys/keys.d.ts +11 -0
  57. package/lib/src/services/keys/keys.schema.d.ts +719 -0
  58. package/lib/src/services/keys/keys.shared.d.ts +14 -0
  59. package/lib/src/services/keys/keys.shared.js +13 -0
  60. package/lib/src/services/messages/messages.schema.d.ts +64 -32
  61. package/lib/src/services/restricted/restricted.class.d.ts +26 -0
  62. package/lib/src/services/restricted/restricted.d.ts +21 -0
  63. package/lib/src/services/restricted/restricted.shared.d.ts +13 -0
  64. package/lib/src/services/restricted/restricted.shared.js +13 -0
  65. package/lib/src/services/strategies/backtest/backtest.schema.d.ts +127 -60
  66. package/lib/src/services/strategies/backtest/results/results.schema.d.ts +36 -36
  67. package/lib/src/services/strategies/generate/generate.class.d.ts +11 -0
  68. package/lib/src/services/strategies/generate/generate.d.ts +11 -0
  69. package/lib/src/services/strategies/generate/generate.schema.d.ts +429 -0
  70. package/lib/src/services/strategies/generate/generate.shared.d.ts +13 -0
  71. package/lib/src/services/strategies/generate/generate.shared.js +13 -0
  72. package/lib/src/services/strategies/hyperopt/hyperopt.schema.d.ts +16 -8
  73. package/lib/src/services/strategies/indicators/indicators.schema.d.ts +177 -97
  74. package/lib/src/services/strategies/indicators/talib/talib.class.d.ts +11 -0
  75. package/lib/src/services/strategies/indicators/talib/talib.d.ts +11 -0
  76. package/lib/src/services/strategies/indicators/talib/talib.schema.d.ts +443 -0
  77. package/lib/src/services/strategies/indicators/talib/talib.shared.d.ts +13 -0
  78. package/lib/src/services/strategies/indicators/talib/talib.shared.js +13 -0
  79. package/lib/src/services/strategies/strategies.schema.d.ts +2732 -327
  80. package/lib/src/services/strategies/templates/templates.schema.d.ts +2146 -16
  81. package/lib/src/services/tools/openapi/openapi.class.d.ts +34 -0
  82. package/lib/src/services/tools/openapi/openapi.d.ts +10 -0
  83. package/lib/src/services/tools/openapi/openapi.shared.d.ts +13 -0
  84. package/lib/src/services/tools/openapi/openapi.shared.js +13 -0
  85. package/lib/src/services/tools/tools.class.d.ts +11 -0
  86. package/lib/src/services/tools/tools.d.ts +11 -0
  87. package/lib/src/services/tools/tools.schema.d.ts +269 -0
  88. package/lib/src/services/tools/tools.shared.d.ts +13 -0
  89. package/lib/src/services/tools/tools.shared.js +13 -0
  90. package/lib/src/services/traders/pods/api/api.schema.d.ts +1650 -464
  91. package/lib/src/services/traders/pods/events/events.schema.d.ts +4 -4
  92. package/lib/src/services/traders/pods/pods.schema.d.ts +1539 -443
  93. package/lib/src/services/traders/traders.schema.d.ts +142 -142
  94. package/lib/src/services/users/users.class.d.ts +178 -3
  95. package/lib/src/services/users/users.schema.d.ts +123 -85
  96. package/lib/src/services/users/users.shared.d.ts +4 -3
  97. package/lib/src/services/users/users.shared.js +1 -1
  98. package/package.json +2 -3
  99. package/readme.md +1 -2
@@ -243,17 +243,24 @@ export declare const tradersPodsSchema: import("@feathersjs/typebox").TObject<{
243
243
  exchangeId: import("@feathersjs/typebox").TString<string>;
244
244
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
245
245
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
246
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
247
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
246
+ _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>]>>;
247
+ 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>]>>;
248
248
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
249
249
  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>]>>;
250
250
  name: import("@feathersjs/typebox").TAny;
251
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
251
252
  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">]>>;
252
253
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
253
254
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
254
255
  minutes: import("@feathersjs/typebox").TNumber;
255
256
  profit: import("@feathersjs/typebox").TNumber;
256
257
  }>>>;
258
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
259
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
260
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
261
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
262
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
263
+ }>>;
257
264
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
258
265
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
259
266
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -281,21 +288,65 @@ export declare const tradersPodsSchema: import("@feathersjs/typebox").TObject<{
281
288
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
282
289
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
283
290
  }>>>;
284
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
291
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
292
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
293
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
294
+ indicator: import("@feathersjs/typebox").TString<string>;
295
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
296
+ compare_to: import("@feathersjs/typebox").TObject<{
297
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
298
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
299
+ }>;
300
+ }>]>>;
301
+ }>>, import("@feathersjs/typebox").TObject<{
285
302
  indicator: import("@feathersjs/typebox").TString<string>;
286
303
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
287
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
288
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
289
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
290
- }>>>;
291
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
304
+ compare_to: import("@feathersjs/typebox").TObject<{
305
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
306
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
307
+ }>;
308
+ }>]>>;
309
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
310
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
311
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
312
+ indicator: import("@feathersjs/typebox").TString<string>;
313
+ 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">]>;
314
+ compare_to: import("@feathersjs/typebox").TObject<{
315
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
316
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
317
+ }>;
318
+ }>]>>;
319
+ }>>, import("@feathersjs/typebox").TObject<{
292
320
  indicator: import("@feathersjs/typebox").TString<string>;
293
321
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
294
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
295
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
296
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
322
+ compare_to: import("@feathersjs/typebox").TObject<{
323
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
324
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
325
+ }>;
326
+ }>]>>;
327
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
328
+ _id: import("@feathersjs/typebox").TString<string>;
329
+ alias: import("@feathersjs/typebox").TString<string>;
330
+ name: import("@feathersjs/typebox").TString<string>;
331
+ group: import("@feathersjs/typebox").TString<string>;
332
+ description: import("@feathersjs/typebox").TString<string>;
333
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
334
+ name: import("@feathersjs/typebox").TString<string>;
335
+ displayName: import("@feathersjs/typebox").TString<string>;
336
+ defaultValue: import("@feathersjs/typebox").TNumber;
337
+ hint: import("@feathersjs/typebox").TString<string>;
338
+ type: import("@feathersjs/typebox").TString<string>;
339
+ normName: import("@feathersjs/typebox").TString<string>;
340
+ }>>;
341
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
342
+ field: import("@feathersjs/typebox").TString<string>;
343
+ space: import("@feathersjs/typebox").TString<string>;
344
+ 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">]>;
345
+ min: import("@feathersjs/typebox").TInteger;
346
+ max: import("@feathersjs/typebox").TInteger;
347
+ default: import("@feathersjs/typebox").TInteger;
348
+ }>>>;
297
349
  }>>>;
298
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
299
350
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
300
351
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
301
352
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -489,10 +540,96 @@ export declare const tradersPodsSchema: import("@feathersjs/typebox").TObject<{
489
540
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
490
541
  name: import("@feathersjs/typebox").TString<string>;
491
542
  type: import("@feathersjs/typebox").TString<string>;
543
+ revision: import("@feathersjs/typebox").TNumber;
492
544
  description: import("@feathersjs/typebox").TString<string>;
493
545
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
494
546
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
495
- values: import("@feathersjs/typebox").TAny;
547
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
548
+ values: import("@feathersjs/typebox").TObject<{
549
+ interval: import("@feathersjs/typebox").TString<string>;
550
+ stoploss: import("@feathersjs/typebox").TNumber;
551
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
552
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
553
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
554
+ _id: import("@feathersjs/typebox").TString<string>;
555
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
556
+ name: import("@feathersjs/typebox").TString<string>;
557
+ group: import("@feathersjs/typebox").TString<string>;
558
+ description: import("@feathersjs/typebox").TString<string>;
559
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
560
+ name: import("@feathersjs/typebox").TString<string>;
561
+ displayName: import("@feathersjs/typebox").TString<string>;
562
+ defaultValue: import("@feathersjs/typebox").TAny;
563
+ hint: import("@feathersjs/typebox").TString<string>;
564
+ type: import("@feathersjs/typebox").TString<string>;
565
+ normName: import("@feathersjs/typebox").TString<string>;
566
+ }>>;
567
+ }>>>;
568
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
569
+ minutes: import("@feathersjs/typebox").TNumber;
570
+ profit: import("@feathersjs/typebox").TNumber;
571
+ }>>;
572
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
573
+ enabled: import("@feathersjs/typebox").TBoolean;
574
+ type: import("@feathersjs/typebox").TString<string>;
575
+ method: import("@feathersjs/typebox").TString<string>;
576
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
577
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
578
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
579
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
580
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
581
+ }>>;
582
+ order_types: import("@feathersjs/typebox").TObject<{
583
+ entry: import("@feathersjs/typebox").TString<string>;
584
+ exit: import("@feathersjs/typebox").TString<string>;
585
+ emergencysell: import("@feathersjs/typebox").TString<string>;
586
+ forcebuy: import("@feathersjs/typebox").TString<string>;
587
+ forcesell: import("@feathersjs/typebox").TString<string>;
588
+ stoploss: import("@feathersjs/typebox").TString<string>;
589
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
590
+ }>;
591
+ sellwhen: import("@feathersjs/typebox").TObject<{
592
+ logic: import("@feathersjs/typebox").TString<string>;
593
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
594
+ indicator: import("@feathersjs/typebox").TString<string>;
595
+ condition: import("@feathersjs/typebox").TString<string>;
596
+ compare_to: import("@feathersjs/typebox").TObject<{
597
+ type: import("@feathersjs/typebox").TString<string>;
598
+ value: import("@feathersjs/typebox").TAny;
599
+ }>;
600
+ }>>;
601
+ }>;
602
+ buywhen: import("@feathersjs/typebox").TObject<{
603
+ logic: import("@feathersjs/typebox").TString<string>;
604
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
605
+ indicator: import("@feathersjs/typebox").TString<string>;
606
+ condition: import("@feathersjs/typebox").TString<string>;
607
+ compare_to: import("@feathersjs/typebox").TObject<{
608
+ type: import("@feathersjs/typebox").TString<string>;
609
+ value: import("@feathersjs/typebox").TAny;
610
+ }>;
611
+ }>>;
612
+ }>;
613
+ }>;
614
+ timeinforce: import("@feathersjs/typebox").TString<string>;
615
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
616
+ enabled: import("@feathersjs/typebox").TBoolean;
617
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
618
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
619
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
620
+ }>>;
621
+ if: import("@feathersjs/typebox").TObject<{
622
+ hyperopt: import("@feathersjs/typebox").TObject<{
623
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
624
+ field: import("@feathersjs/typebox").TString<string>;
625
+ operator: import("@feathersjs/typebox").TString<string>;
626
+ compare: import("@feathersjs/typebox").TAny;
627
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
628
+ }>>;
629
+ }>;
630
+ }>;
631
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
632
+ }>>;
496
633
  }>>>;
497
634
  'strategies/indicators': import("@feathersjs/typebox").TAny;
498
635
  }>>>;
@@ -508,61 +645,8 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
508
645
  stop?: boolean | undefined;
509
646
  provider: "docker";
510
647
  _id: string | {};
511
- options: any;
512
- exchange: Partial<{
513
- password?: string | undefined;
514
- name?: any;
515
- apiKey?: string | null | undefined;
516
- token?: string | undefined;
517
- secret?: string | null | undefined;
518
- _id?: string | {} | undefined;
519
- avatar?: any;
520
- createdAt?: any;
521
- updatedAt?: any;
522
- error?: any;
523
- login?: string | undefined;
524
- userId?: string | {} | undefined;
525
- connected?: boolean | undefined;
526
- downloaded?: {
527
- updatedAt: any;
528
- size: string;
529
- pairs: {};
530
- sizes: any[];
531
- } | undefined;
532
- ccxt_config?: any;
533
- balances?: {
534
- total?: any;
535
- errors?: any;
536
- updatedAt: any;
537
- items: {
538
- total?: number | undefined;
539
- symbol: string;
540
- fiat: number;
541
- }[];
542
- sum: any;
543
- quotation: any;
544
- } | undefined;
545
- tags?: any;
546
- background?: any;
547
- blacklist?: {
548
- left: string;
549
- right: string;
550
- }[] | undefined;
551
- whitelist?: any[] | undefined;
552
- ccxt_async_config?: any;
553
- which?: string | undefined;
554
- stakeCurrencies?: any[] | undefined;
555
- popularStakeCurrency?: string | null | undefined;
556
- notifyAboutWhitelistByEmail?: boolean | undefined;
557
- requiredCredentials?: any;
558
- uid?: string | undefined;
559
- twofa?: string | undefined;
560
- privateKey?: string | undefined;
561
- walletAddress?: string | undefined;
562
- __v?: any;
563
- }>;
564
- exchangeId: string;
565
648
  strategy: Partial<{
649
+ public?: boolean | undefined;
566
650
  traders?: {
567
651
  telegram?: {
568
652
  access_hash?: string | null | undefined;
@@ -600,7 +684,6 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
600
684
  balance_dust_level: number;
601
685
  } | undefined;
602
686
  _id?: string | {} | undefined;
603
- running?: boolean | undefined;
604
687
  plugins?: {
605
688
  number_assets?: number | undefined;
606
689
  refresh_period?: number | undefined;
@@ -617,6 +700,7 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
617
700
  exit: number;
618
701
  } | undefined;
619
702
  cancel_open_orders_on_exit?: boolean | undefined;
703
+ running?: boolean | undefined;
620
704
  tradable_balance_ratio?: number | undefined;
621
705
  webhook?: {
622
706
  url: string;
@@ -701,15 +785,16 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
701
785
  host: string;
702
786
  name: any;
703
787
  provider: "docker";
704
- strategies: string[];
705
788
  secret: string;
706
789
  key: string;
707
790
  createdAt: any;
708
791
  updatedAt: any;
709
- "traders/pods": any;
710
- userId: any;
711
792
  connected: boolean;
712
793
  which: string;
794
+ userId: any;
795
+ strategy: any;
796
+ strategies: string[];
797
+ "traders/pods": any;
713
798
  exchange: any;
714
799
  exchangeId: any;
715
800
  stake_currency: string;
@@ -718,7 +803,6 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
718
803
  handling: string;
719
804
  initial_state: string;
720
805
  pairlists: any;
721
- strategy: any;
722
806
  strategyId: string | {};
723
807
  entry_pricing: {
724
808
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -750,28 +834,145 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
750
834
  _id?: string | {} | undefined;
751
835
  createdAt?: any;
752
836
  updatedAt?: any;
837
+ userId?: string | {} | undefined;
753
838
  'strategies/templates'?: {
839
+ public?: boolean | undefined;
754
840
  _id?: string | {} | undefined;
755
841
  createdAt?: any;
756
842
  updatedAt?: any;
757
- values: any;
843
+ optimize?: {
844
+ best?: {
845
+ by: "total_profit" | "sharpe";
846
+ direction: "max" | "min";
847
+ } | undefined;
848
+ enabled: boolean;
849
+ then: {}[];
850
+ if: {
851
+ hyperopt: {
852
+ results: {
853
+ type?: string | undefined;
854
+ field: string;
855
+ operator: string;
856
+ compare: any;
857
+ }[];
858
+ };
859
+ };
860
+ } | undefined;
861
+ values: {
862
+ indicators?: {
863
+ alias?: string | undefined;
864
+ name: string;
865
+ _id: string;
866
+ description: string;
867
+ group: string;
868
+ optInputs: {
869
+ name: string;
870
+ type: string;
871
+ displayName: string;
872
+ defaultValue: any;
873
+ hint: string;
874
+ normName: string;
875
+ }[];
876
+ }[] | undefined;
877
+ interval: string;
878
+ stoploss: number;
879
+ exit_profit_only: boolean;
880
+ exit_profit_offset: number;
881
+ minimal_roi: {
882
+ minutes: number;
883
+ profit: number;
884
+ }[];
885
+ protections: {
886
+ stop_duration_candles?: number | undefined;
887
+ lookback_period_candles?: number | undefined;
888
+ trade_limit?: number | undefined;
889
+ max_allowed_drawdown?: number | undefined;
890
+ only_per_pair?: boolean | undefined;
891
+ enabled: boolean;
892
+ type: string;
893
+ method: string;
894
+ }[];
895
+ order_types: {
896
+ stoploss: string;
897
+ entry: string;
898
+ exit: string;
899
+ emergencysell: string;
900
+ forcebuy: string;
901
+ forcesell: string;
902
+ stoploss_on_exchange: boolean;
903
+ };
904
+ sellwhen: {
905
+ logic: string;
906
+ conditions: {
907
+ indicator: string;
908
+ condition: string;
909
+ compare_to: {
910
+ type: string;
911
+ value: any;
912
+ };
913
+ }[];
914
+ };
915
+ buywhen: {
916
+ logic: string;
917
+ conditions: {
918
+ indicator: string;
919
+ condition: string;
920
+ compare_to: {
921
+ type: string;
922
+ value: any;
923
+ };
924
+ }[];
925
+ };
926
+ };
758
927
  name: string;
759
- description: string;
760
928
  type: string;
929
+ revision: number;
930
+ description: string;
931
+ timeinforce: string;
761
932
  } | undefined;
762
- userId?: string | {} | undefined;
763
- file?: any;
764
- templateId?: string | {} | undefined;
765
933
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
766
934
  stoploss?: number | undefined;
935
+ exit_profit_only?: boolean | undefined;
936
+ exit_profit_offset?: number | undefined;
937
+ indicators?: {
938
+ hyperopt?: {
939
+ default: number;
940
+ max: number;
941
+ min: number;
942
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
943
+ field: string;
944
+ space: string;
945
+ }[] | undefined;
946
+ name: string;
947
+ _id: string;
948
+ description: string;
949
+ alias: string;
950
+ group: string;
951
+ optInputs: {
952
+ name: string;
953
+ type: string;
954
+ displayName: string;
955
+ defaultValue: number;
956
+ hint: string;
957
+ normName: string;
958
+ }[];
959
+ }[] | undefined;
767
960
  minimal_roi?: {
768
961
  minutes: number;
769
962
  profit: number;
770
963
  }[] | undefined;
771
- exit_sell_signal?: boolean | undefined;
772
- exit_profit_only?: boolean | undefined;
773
- exit_profit_offset?: number | undefined;
774
- timeinforce?: unknown;
964
+ protections?: {
965
+ stop_duration_candles?: number | undefined;
966
+ lookback_period_candles?: unknown;
967
+ trade_limit?: unknown;
968
+ max_allowed_drawdown?: unknown;
969
+ only_per_pair?: unknown;
970
+ stop_duration_in_seconds?: unknown;
971
+ required_profit?: unknown;
972
+ enabled: boolean;
973
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
974
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
975
+ }[] | undefined;
775
976
  order_types?: {
776
977
  stoploss?: string | undefined;
777
978
  entry?: "Limit" | "Market" | undefined;
@@ -783,39 +984,112 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
783
984
  stoploss_on_exchange_interval?: number | undefined;
784
985
  stoploss_on_exchange_limit_ratio?: number | undefined;
785
986
  } | undefined;
786
- protections?: {
787
- stop_duration_candles?: number | undefined;
788
- stop_duration_in_seconds?: unknown;
789
- lookback_period_candles?: unknown;
790
- trade_limit?: unknown;
791
- required_profit?: unknown;
792
- max_allowed_drawdown?: unknown;
793
- only_per_pair?: unknown;
794
- enabled: boolean;
795
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
796
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
797
- }[] | undefined;
798
- buywhen?: {
799
- value?: number | undefined;
800
- indicator2?: string | undefined;
801
- type: "number" | "indicator";
987
+ sellwhen?: {
988
+ logic: "AND" | "OR";
989
+ conditions: (/*elided*/ any | {
990
+ indicator: string;
991
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
992
+ compare_to: {
993
+ type: "number" | "indicator";
994
+ value: string | number;
995
+ };
996
+ })[];
997
+ } | {
802
998
  indicator: string;
803
999
  condition: ">" | "<" | "==";
804
- }[] | undefined;
805
- sellwhen?: {
806
- value?: number | undefined;
807
- indicator2?: string | undefined;
808
- type: "number" | "indicator";
1000
+ compare_to: {
1001
+ type: "number" | "indicator";
1002
+ value: string | number;
1003
+ };
1004
+ } | undefined;
1005
+ buywhen?: {
1006
+ logic: "AND" | "OR";
1007
+ conditions: (/*elided*/ any | {
1008
+ indicator: string;
1009
+ condition: ">" | "<" | "==";
1010
+ compare_to: {
1011
+ type: "number" | "indicator";
1012
+ value: string | number;
1013
+ };
1014
+ })[];
1015
+ } | {
809
1016
  indicator: string;
810
1017
  condition: ">" | "<" | "==";
811
- }[] | undefined;
812
- indicators?: unknown[] | undefined;
813
- code?: unknown;
1018
+ compare_to: {
1019
+ type: "number" | "indicator";
1020
+ value: string | number;
1021
+ };
1022
+ } | undefined;
1023
+ timeinforce?: unknown;
814
1024
  results?: unknown;
1025
+ file?: any;
1026
+ templateId?: string | {} | undefined;
1027
+ trailing?: {
1028
+ trailing_stop?: boolean | undefined;
1029
+ trailing_stop_positive?: number | undefined;
1030
+ trailing_stop_positive_offset?: number | undefined;
1031
+ trailing_only_offset_is_reached?: boolean | undefined;
1032
+ } | undefined;
1033
+ exit_sell_signal?: boolean | undefined;
1034
+ code?: unknown;
815
1035
  configured?: boolean | undefined;
816
1036
  name: any;
817
1037
  'strategies/indicators': any;
818
1038
  }>;
1039
+ options: any;
1040
+ exchange: Partial<{
1041
+ password?: string | undefined;
1042
+ name?: any;
1043
+ apiKey?: string | null | undefined;
1044
+ token?: string | undefined;
1045
+ secret?: string | null | undefined;
1046
+ error?: any;
1047
+ _id?: string | {} | undefined;
1048
+ createdAt?: any;
1049
+ updatedAt?: any;
1050
+ connected?: boolean | undefined;
1051
+ downloaded?: {
1052
+ updatedAt: any;
1053
+ size: string;
1054
+ pairs: {};
1055
+ sizes: any[];
1056
+ } | undefined;
1057
+ ccxt_config?: any;
1058
+ balances?: {
1059
+ total?: any;
1060
+ errors?: any;
1061
+ updatedAt: any;
1062
+ items: {
1063
+ total?: number | undefined;
1064
+ symbol: string;
1065
+ fiat: number;
1066
+ }[];
1067
+ sum: any;
1068
+ quotation: any;
1069
+ } | undefined;
1070
+ tags?: any;
1071
+ background?: any;
1072
+ avatar?: any;
1073
+ blacklist?: {
1074
+ left: string;
1075
+ right: string;
1076
+ }[] | undefined;
1077
+ whitelist?: any[] | undefined;
1078
+ ccxt_async_config?: any;
1079
+ which?: string | undefined;
1080
+ stakeCurrencies?: any[] | undefined;
1081
+ popularStakeCurrency?: string | null | undefined;
1082
+ notifyAboutWhitelistByEmail?: boolean | undefined;
1083
+ requiredCredentials?: any;
1084
+ uid?: string | undefined;
1085
+ login?: string | undefined;
1086
+ twofa?: string | undefined;
1087
+ privateKey?: string | undefined;
1088
+ walletAddress?: string | undefined;
1089
+ userId?: string | {} | undefined;
1090
+ __v?: any;
1091
+ }>;
1092
+ exchangeId: string;
819
1093
  strategyId: string | {};
820
1094
  pod: any;
821
1095
  trader: Partial<{
@@ -855,7 +1129,6 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
855
1129
  balance_dust_level: number;
856
1130
  } | undefined;
857
1131
  _id?: string | {} | undefined;
858
- running?: boolean | undefined;
859
1132
  plugins?: {
860
1133
  number_assets?: number | undefined;
861
1134
  refresh_period?: number | undefined;
@@ -872,6 +1145,7 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
872
1145
  exit: number;
873
1146
  } | undefined;
874
1147
  cancel_open_orders_on_exit?: boolean | undefined;
1148
+ running?: boolean | undefined;
875
1149
  tradable_balance_ratio?: number | undefined;
876
1150
  webhook?: {
877
1151
  url: string;
@@ -956,15 +1230,16 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
956
1230
  host: string;
957
1231
  name: any;
958
1232
  provider: "docker";
959
- strategies: string[];
960
1233
  secret: string;
961
1234
  key: string;
962
1235
  createdAt: any;
963
1236
  updatedAt: any;
964
- "traders/pods": any;
965
- userId: any;
966
1237
  connected: boolean;
967
1238
  which: string;
1239
+ userId: any;
1240
+ strategy: any;
1241
+ strategies: string[];
1242
+ "traders/pods": any;
968
1243
  exchange: any;
969
1244
  exchangeId: any;
970
1245
  stake_currency: string;
@@ -973,7 +1248,6 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
973
1248
  handling: string;
974
1249
  initial_state: string;
975
1250
  pairlists: any;
976
- strategy: any;
977
1251
  strategyId: string | {};
978
1252
  entry_pricing: {
979
1253
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -1008,61 +1282,8 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1008
1282
  stop?: boolean | undefined;
1009
1283
  provider: "docker";
1010
1284
  _id: string | {};
1011
- options: any;
1012
- exchange: Partial<{
1013
- password?: string | undefined;
1014
- name?: any;
1015
- apiKey?: string | null | undefined;
1016
- token?: string | undefined;
1017
- secret?: string | null | undefined;
1018
- _id?: string | {} | undefined;
1019
- avatar?: any;
1020
- createdAt?: any;
1021
- updatedAt?: any;
1022
- error?: any;
1023
- login?: string | undefined;
1024
- userId?: string | {} | undefined;
1025
- connected?: boolean | undefined;
1026
- downloaded?: {
1027
- updatedAt: any;
1028
- size: string;
1029
- pairs: {};
1030
- sizes: any[];
1031
- } | undefined;
1032
- ccxt_config?: any;
1033
- balances?: {
1034
- total?: any;
1035
- errors?: any;
1036
- updatedAt: any;
1037
- items: {
1038
- total?: number | undefined;
1039
- symbol: string;
1040
- fiat: number;
1041
- }[];
1042
- sum: any;
1043
- quotation: any;
1044
- } | undefined;
1045
- tags?: any;
1046
- background?: any;
1047
- blacklist?: {
1048
- left: string;
1049
- right: string;
1050
- }[] | undefined;
1051
- whitelist?: any[] | undefined;
1052
- ccxt_async_config?: any;
1053
- which?: string | undefined;
1054
- stakeCurrencies?: any[] | undefined;
1055
- popularStakeCurrency?: string | null | undefined;
1056
- notifyAboutWhitelistByEmail?: boolean | undefined;
1057
- requiredCredentials?: any;
1058
- uid?: string | undefined;
1059
- twofa?: string | undefined;
1060
- privateKey?: string | undefined;
1061
- walletAddress?: string | undefined;
1062
- __v?: any;
1063
- }>;
1064
- exchangeId: string;
1065
1285
  strategy: Partial<{
1286
+ public?: boolean | undefined;
1066
1287
  traders?: {
1067
1288
  telegram?: {
1068
1289
  access_hash?: string | null | undefined;
@@ -1100,7 +1321,6 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1100
1321
  balance_dust_level: number;
1101
1322
  } | undefined;
1102
1323
  _id?: string | {} | undefined;
1103
- running?: boolean | undefined;
1104
1324
  plugins?: {
1105
1325
  number_assets?: number | undefined;
1106
1326
  refresh_period?: number | undefined;
@@ -1117,6 +1337,7 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1117
1337
  exit: number;
1118
1338
  } | undefined;
1119
1339
  cancel_open_orders_on_exit?: boolean | undefined;
1340
+ running?: boolean | undefined;
1120
1341
  tradable_balance_ratio?: number | undefined;
1121
1342
  webhook?: {
1122
1343
  url: string;
@@ -1201,15 +1422,16 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1201
1422
  host: string;
1202
1423
  name: any;
1203
1424
  provider: "docker";
1204
- strategies: string[];
1205
1425
  secret: string;
1206
1426
  key: string;
1207
1427
  createdAt: any;
1208
1428
  updatedAt: any;
1209
- "traders/pods": any;
1210
- userId: any;
1211
1429
  connected: boolean;
1212
1430
  which: string;
1431
+ userId: any;
1432
+ strategy: any;
1433
+ strategies: string[];
1434
+ "traders/pods": any;
1213
1435
  exchange: any;
1214
1436
  exchangeId: any;
1215
1437
  stake_currency: string;
@@ -1218,7 +1440,6 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1218
1440
  handling: string;
1219
1441
  initial_state: string;
1220
1442
  pairlists: any;
1221
- strategy: any;
1222
1443
  strategyId: string | {};
1223
1444
  entry_pricing: {
1224
1445
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -1250,28 +1471,145 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1250
1471
  _id?: string | {} | undefined;
1251
1472
  createdAt?: any;
1252
1473
  updatedAt?: any;
1474
+ userId?: string | {} | undefined;
1253
1475
  'strategies/templates'?: {
1476
+ public?: boolean | undefined;
1254
1477
  _id?: string | {} | undefined;
1255
1478
  createdAt?: any;
1256
1479
  updatedAt?: any;
1257
- values: any;
1480
+ optimize?: {
1481
+ best?: {
1482
+ by: "total_profit" | "sharpe";
1483
+ direction: "max" | "min";
1484
+ } | undefined;
1485
+ enabled: boolean;
1486
+ then: {}[];
1487
+ if: {
1488
+ hyperopt: {
1489
+ results: {
1490
+ type?: string | undefined;
1491
+ field: string;
1492
+ operator: string;
1493
+ compare: any;
1494
+ }[];
1495
+ };
1496
+ };
1497
+ } | undefined;
1498
+ values: {
1499
+ indicators?: {
1500
+ alias?: string | undefined;
1501
+ name: string;
1502
+ _id: string;
1503
+ description: string;
1504
+ group: string;
1505
+ optInputs: {
1506
+ name: string;
1507
+ type: string;
1508
+ displayName: string;
1509
+ defaultValue: any;
1510
+ hint: string;
1511
+ normName: string;
1512
+ }[];
1513
+ }[] | undefined;
1514
+ interval: string;
1515
+ stoploss: number;
1516
+ exit_profit_only: boolean;
1517
+ exit_profit_offset: number;
1518
+ minimal_roi: {
1519
+ minutes: number;
1520
+ profit: number;
1521
+ }[];
1522
+ protections: {
1523
+ stop_duration_candles?: number | undefined;
1524
+ lookback_period_candles?: number | undefined;
1525
+ trade_limit?: number | undefined;
1526
+ max_allowed_drawdown?: number | undefined;
1527
+ only_per_pair?: boolean | undefined;
1528
+ enabled: boolean;
1529
+ type: string;
1530
+ method: string;
1531
+ }[];
1532
+ order_types: {
1533
+ stoploss: string;
1534
+ entry: string;
1535
+ exit: string;
1536
+ emergencysell: string;
1537
+ forcebuy: string;
1538
+ forcesell: string;
1539
+ stoploss_on_exchange: boolean;
1540
+ };
1541
+ sellwhen: {
1542
+ logic: string;
1543
+ conditions: {
1544
+ indicator: string;
1545
+ condition: string;
1546
+ compare_to: {
1547
+ type: string;
1548
+ value: any;
1549
+ };
1550
+ }[];
1551
+ };
1552
+ buywhen: {
1553
+ logic: string;
1554
+ conditions: {
1555
+ indicator: string;
1556
+ condition: string;
1557
+ compare_to: {
1558
+ type: string;
1559
+ value: any;
1560
+ };
1561
+ }[];
1562
+ };
1563
+ };
1258
1564
  name: string;
1259
- description: string;
1260
1565
  type: string;
1566
+ revision: number;
1567
+ description: string;
1568
+ timeinforce: string;
1261
1569
  } | undefined;
1262
- userId?: string | {} | undefined;
1263
- file?: any;
1264
- templateId?: string | {} | undefined;
1265
1570
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
1266
1571
  stoploss?: number | undefined;
1572
+ exit_profit_only?: boolean | undefined;
1573
+ exit_profit_offset?: number | undefined;
1574
+ indicators?: {
1575
+ hyperopt?: {
1576
+ default: number;
1577
+ max: number;
1578
+ min: number;
1579
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
1580
+ field: string;
1581
+ space: string;
1582
+ }[] | undefined;
1583
+ name: string;
1584
+ _id: string;
1585
+ description: string;
1586
+ alias: string;
1587
+ group: string;
1588
+ optInputs: {
1589
+ name: string;
1590
+ type: string;
1591
+ displayName: string;
1592
+ defaultValue: number;
1593
+ hint: string;
1594
+ normName: string;
1595
+ }[];
1596
+ }[] | undefined;
1267
1597
  minimal_roi?: {
1268
1598
  minutes: number;
1269
1599
  profit: number;
1270
1600
  }[] | undefined;
1271
- exit_sell_signal?: boolean | undefined;
1272
- exit_profit_only?: boolean | undefined;
1273
- exit_profit_offset?: number | undefined;
1274
- timeinforce?: unknown;
1601
+ protections?: {
1602
+ stop_duration_candles?: number | undefined;
1603
+ lookback_period_candles?: unknown;
1604
+ trade_limit?: unknown;
1605
+ max_allowed_drawdown?: unknown;
1606
+ only_per_pair?: unknown;
1607
+ stop_duration_in_seconds?: unknown;
1608
+ required_profit?: unknown;
1609
+ enabled: boolean;
1610
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
1611
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
1612
+ }[] | undefined;
1275
1613
  order_types?: {
1276
1614
  stoploss?: string | undefined;
1277
1615
  entry?: "Limit" | "Market" | undefined;
@@ -1283,39 +1621,112 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1283
1621
  stoploss_on_exchange_interval?: number | undefined;
1284
1622
  stoploss_on_exchange_limit_ratio?: number | undefined;
1285
1623
  } | undefined;
1286
- protections?: {
1287
- stop_duration_candles?: number | undefined;
1288
- stop_duration_in_seconds?: unknown;
1289
- lookback_period_candles?: unknown;
1290
- trade_limit?: unknown;
1291
- required_profit?: unknown;
1292
- max_allowed_drawdown?: unknown;
1293
- only_per_pair?: unknown;
1294
- enabled: boolean;
1295
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
1296
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
1297
- }[] | undefined;
1298
- buywhen?: {
1299
- value?: number | undefined;
1300
- indicator2?: string | undefined;
1301
- type: "number" | "indicator";
1624
+ sellwhen?: {
1625
+ logic: "AND" | "OR";
1626
+ conditions: (/*elided*/ any | {
1627
+ indicator: string;
1628
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
1629
+ compare_to: {
1630
+ type: "number" | "indicator";
1631
+ value: string | number;
1632
+ };
1633
+ })[];
1634
+ } | {
1302
1635
  indicator: string;
1303
1636
  condition: ">" | "<" | "==";
1304
- }[] | undefined;
1305
- sellwhen?: {
1306
- value?: number | undefined;
1307
- indicator2?: string | undefined;
1308
- type: "number" | "indicator";
1637
+ compare_to: {
1638
+ type: "number" | "indicator";
1639
+ value: string | number;
1640
+ };
1641
+ } | undefined;
1642
+ buywhen?: {
1643
+ logic: "AND" | "OR";
1644
+ conditions: (/*elided*/ any | {
1645
+ indicator: string;
1646
+ condition: ">" | "<" | "==";
1647
+ compare_to: {
1648
+ type: "number" | "indicator";
1649
+ value: string | number;
1650
+ };
1651
+ })[];
1652
+ } | {
1309
1653
  indicator: string;
1310
1654
  condition: ">" | "<" | "==";
1655
+ compare_to: {
1656
+ type: "number" | "indicator";
1657
+ value: string | number;
1658
+ };
1659
+ } | undefined;
1660
+ timeinforce?: unknown;
1661
+ results?: unknown;
1662
+ file?: any;
1663
+ templateId?: string | {} | undefined;
1664
+ trailing?: {
1665
+ trailing_stop?: boolean | undefined;
1666
+ trailing_stop_positive?: number | undefined;
1667
+ trailing_stop_positive_offset?: number | undefined;
1668
+ trailing_only_offset_is_reached?: boolean | undefined;
1669
+ } | undefined;
1670
+ exit_sell_signal?: boolean | undefined;
1671
+ code?: unknown;
1672
+ configured?: boolean | undefined;
1673
+ name: any;
1674
+ 'strategies/indicators': any;
1675
+ }>;
1676
+ options: any;
1677
+ exchange: Partial<{
1678
+ password?: string | undefined;
1679
+ name?: any;
1680
+ apiKey?: string | null | undefined;
1681
+ token?: string | undefined;
1682
+ secret?: string | null | undefined;
1683
+ error?: any;
1684
+ _id?: string | {} | undefined;
1685
+ createdAt?: any;
1686
+ updatedAt?: any;
1687
+ connected?: boolean | undefined;
1688
+ downloaded?: {
1689
+ updatedAt: any;
1690
+ size: string;
1691
+ pairs: {};
1692
+ sizes: any[];
1693
+ } | undefined;
1694
+ ccxt_config?: any;
1695
+ balances?: {
1696
+ total?: any;
1697
+ errors?: any;
1698
+ updatedAt: any;
1699
+ items: {
1700
+ total?: number | undefined;
1701
+ symbol: string;
1702
+ fiat: number;
1703
+ }[];
1704
+ sum: any;
1705
+ quotation: any;
1706
+ } | undefined;
1707
+ tags?: any;
1708
+ background?: any;
1709
+ avatar?: any;
1710
+ blacklist?: {
1711
+ left: string;
1712
+ right: string;
1311
1713
  }[] | undefined;
1312
- indicators?: unknown[] | undefined;
1313
- code?: unknown;
1314
- results?: unknown;
1315
- configured?: boolean | undefined;
1316
- name: any;
1317
- 'strategies/indicators': any;
1714
+ whitelist?: any[] | undefined;
1715
+ ccxt_async_config?: any;
1716
+ which?: string | undefined;
1717
+ stakeCurrencies?: any[] | undefined;
1718
+ popularStakeCurrency?: string | null | undefined;
1719
+ notifyAboutWhitelistByEmail?: boolean | undefined;
1720
+ requiredCredentials?: any;
1721
+ uid?: string | undefined;
1722
+ login?: string | undefined;
1723
+ twofa?: string | undefined;
1724
+ privateKey?: string | undefined;
1725
+ walletAddress?: string | undefined;
1726
+ userId?: string | {} | undefined;
1727
+ __v?: any;
1318
1728
  }>;
1729
+ exchangeId: string;
1319
1730
  strategyId: string | {};
1320
1731
  pod: any;
1321
1732
  trader: Partial<{
@@ -1355,7 +1766,6 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1355
1766
  balance_dust_level: number;
1356
1767
  } | undefined;
1357
1768
  _id?: string | {} | undefined;
1358
- running?: boolean | undefined;
1359
1769
  plugins?: {
1360
1770
  number_assets?: number | undefined;
1361
1771
  refresh_period?: number | undefined;
@@ -1372,6 +1782,7 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1372
1782
  exit: number;
1373
1783
  } | undefined;
1374
1784
  cancel_open_orders_on_exit?: boolean | undefined;
1785
+ running?: boolean | undefined;
1375
1786
  tradable_balance_ratio?: number | undefined;
1376
1787
  webhook?: {
1377
1788
  url: string;
@@ -1456,15 +1867,16 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1456
1867
  host: string;
1457
1868
  name: any;
1458
1869
  provider: "docker";
1459
- strategies: string[];
1460
1870
  secret: string;
1461
1871
  key: string;
1462
1872
  createdAt: any;
1463
1873
  updatedAt: any;
1464
- "traders/pods": any;
1465
- userId: any;
1466
1874
  connected: boolean;
1467
1875
  which: string;
1876
+ userId: any;
1877
+ strategy: any;
1878
+ strategies: string[];
1879
+ "traders/pods": any;
1468
1880
  exchange: any;
1469
1881
  exchangeId: any;
1470
1882
  stake_currency: string;
@@ -1473,7 +1885,6 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1473
1885
  handling: string;
1474
1886
  initial_state: string;
1475
1887
  pairlists: any;
1476
- strategy: any;
1477
1888
  strategyId: string | {};
1478
1889
  entry_pricing: {
1479
1890
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -1745,17 +2156,24 @@ export declare const tradersPodsDataSchema: import("@feathersjs/typebox").TPick<
1745
2156
  exchangeId: import("@feathersjs/typebox").TString<string>;
1746
2157
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
1747
2158
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
1748
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
1749
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2159
+ _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>]>>;
2160
+ 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>]>>;
1750
2161
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
1751
2162
  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>]>>;
1752
2163
  name: import("@feathersjs/typebox").TAny;
2164
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
1753
2165
  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">]>>;
1754
2166
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
1755
2167
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
1756
2168
  minutes: import("@feathersjs/typebox").TNumber;
1757
2169
  profit: import("@feathersjs/typebox").TNumber;
1758
2170
  }>>>;
2171
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2172
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2173
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2174
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2175
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2176
+ }>>;
1759
2177
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
1760
2178
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
1761
2179
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -1783,21 +2201,65 @@ export declare const tradersPodsDataSchema: import("@feathersjs/typebox").TPick<
1783
2201
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
1784
2202
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
1785
2203
  }>>>;
1786
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2204
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
2205
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
2206
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
2207
+ indicator: import("@feathersjs/typebox").TString<string>;
2208
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
2209
+ compare_to: import("@feathersjs/typebox").TObject<{
2210
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2211
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
2212
+ }>;
2213
+ }>]>>;
2214
+ }>>, import("@feathersjs/typebox").TObject<{
1787
2215
  indicator: import("@feathersjs/typebox").TString<string>;
1788
2216
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
1789
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
1790
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
1791
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
1792
- }>>>;
1793
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2217
+ compare_to: import("@feathersjs/typebox").TObject<{
2218
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2219
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
2220
+ }>;
2221
+ }>]>>;
2222
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
2223
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
2224
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
2225
+ indicator: import("@feathersjs/typebox").TString<string>;
2226
+ 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">]>;
2227
+ compare_to: import("@feathersjs/typebox").TObject<{
2228
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2229
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
2230
+ }>;
2231
+ }>]>>;
2232
+ }>>, import("@feathersjs/typebox").TObject<{
1794
2233
  indicator: import("@feathersjs/typebox").TString<string>;
1795
2234
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
1796
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
1797
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
1798
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
2235
+ compare_to: import("@feathersjs/typebox").TObject<{
2236
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2237
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
2238
+ }>;
2239
+ }>]>>;
2240
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2241
+ _id: import("@feathersjs/typebox").TString<string>;
2242
+ alias: import("@feathersjs/typebox").TString<string>;
2243
+ name: import("@feathersjs/typebox").TString<string>;
2244
+ group: import("@feathersjs/typebox").TString<string>;
2245
+ description: import("@feathersjs/typebox").TString<string>;
2246
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2247
+ name: import("@feathersjs/typebox").TString<string>;
2248
+ displayName: import("@feathersjs/typebox").TString<string>;
2249
+ defaultValue: import("@feathersjs/typebox").TNumber;
2250
+ hint: import("@feathersjs/typebox").TString<string>;
2251
+ type: import("@feathersjs/typebox").TString<string>;
2252
+ normName: import("@feathersjs/typebox").TString<string>;
2253
+ }>>;
2254
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2255
+ field: import("@feathersjs/typebox").TString<string>;
2256
+ space: import("@feathersjs/typebox").TString<string>;
2257
+ 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">]>;
2258
+ min: import("@feathersjs/typebox").TInteger;
2259
+ max: import("@feathersjs/typebox").TInteger;
2260
+ default: import("@feathersjs/typebox").TInteger;
2261
+ }>>>;
1799
2262
  }>>>;
1800
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
1801
2263
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
1802
2264
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
1803
2265
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -1991,10 +2453,96 @@ export declare const tradersPodsDataSchema: import("@feathersjs/typebox").TPick<
1991
2453
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
1992
2454
  name: import("@feathersjs/typebox").TString<string>;
1993
2455
  type: import("@feathersjs/typebox").TString<string>;
2456
+ revision: import("@feathersjs/typebox").TNumber;
1994
2457
  description: import("@feathersjs/typebox").TString<string>;
1995
2458
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
1996
2459
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
1997
- values: import("@feathersjs/typebox").TAny;
2460
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2461
+ values: import("@feathersjs/typebox").TObject<{
2462
+ interval: import("@feathersjs/typebox").TString<string>;
2463
+ stoploss: import("@feathersjs/typebox").TNumber;
2464
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
2465
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
2466
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2467
+ _id: import("@feathersjs/typebox").TString<string>;
2468
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
2469
+ name: import("@feathersjs/typebox").TString<string>;
2470
+ group: import("@feathersjs/typebox").TString<string>;
2471
+ description: import("@feathersjs/typebox").TString<string>;
2472
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2473
+ name: import("@feathersjs/typebox").TString<string>;
2474
+ displayName: import("@feathersjs/typebox").TString<string>;
2475
+ defaultValue: import("@feathersjs/typebox").TAny;
2476
+ hint: import("@feathersjs/typebox").TString<string>;
2477
+ type: import("@feathersjs/typebox").TString<string>;
2478
+ normName: import("@feathersjs/typebox").TString<string>;
2479
+ }>>;
2480
+ }>>>;
2481
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2482
+ minutes: import("@feathersjs/typebox").TNumber;
2483
+ profit: import("@feathersjs/typebox").TNumber;
2484
+ }>>;
2485
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2486
+ enabled: import("@feathersjs/typebox").TBoolean;
2487
+ type: import("@feathersjs/typebox").TString<string>;
2488
+ method: import("@feathersjs/typebox").TString<string>;
2489
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2490
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2491
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2492
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2493
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2494
+ }>>;
2495
+ order_types: import("@feathersjs/typebox").TObject<{
2496
+ entry: import("@feathersjs/typebox").TString<string>;
2497
+ exit: import("@feathersjs/typebox").TString<string>;
2498
+ emergencysell: import("@feathersjs/typebox").TString<string>;
2499
+ forcebuy: import("@feathersjs/typebox").TString<string>;
2500
+ forcesell: import("@feathersjs/typebox").TString<string>;
2501
+ stoploss: import("@feathersjs/typebox").TString<string>;
2502
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
2503
+ }>;
2504
+ sellwhen: import("@feathersjs/typebox").TObject<{
2505
+ logic: import("@feathersjs/typebox").TString<string>;
2506
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2507
+ indicator: import("@feathersjs/typebox").TString<string>;
2508
+ condition: import("@feathersjs/typebox").TString<string>;
2509
+ compare_to: import("@feathersjs/typebox").TObject<{
2510
+ type: import("@feathersjs/typebox").TString<string>;
2511
+ value: import("@feathersjs/typebox").TAny;
2512
+ }>;
2513
+ }>>;
2514
+ }>;
2515
+ buywhen: import("@feathersjs/typebox").TObject<{
2516
+ logic: import("@feathersjs/typebox").TString<string>;
2517
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2518
+ indicator: import("@feathersjs/typebox").TString<string>;
2519
+ condition: import("@feathersjs/typebox").TString<string>;
2520
+ compare_to: import("@feathersjs/typebox").TObject<{
2521
+ type: import("@feathersjs/typebox").TString<string>;
2522
+ value: import("@feathersjs/typebox").TAny;
2523
+ }>;
2524
+ }>>;
2525
+ }>;
2526
+ }>;
2527
+ timeinforce: import("@feathersjs/typebox").TString<string>;
2528
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2529
+ enabled: import("@feathersjs/typebox").TBoolean;
2530
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
2531
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
2532
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
2533
+ }>>;
2534
+ if: import("@feathersjs/typebox").TObject<{
2535
+ hyperopt: import("@feathersjs/typebox").TObject<{
2536
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2537
+ field: import("@feathersjs/typebox").TString<string>;
2538
+ operator: import("@feathersjs/typebox").TString<string>;
2539
+ compare: import("@feathersjs/typebox").TAny;
2540
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
2541
+ }>>;
2542
+ }>;
2543
+ }>;
2544
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
2545
+ }>>;
1998
2546
  }>>>;
1999
2547
  'strategies/indicators': import("@feathersjs/typebox").TAny;
2000
2548
  }>>>;
@@ -2010,61 +2558,8 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2010
2558
  stop?: boolean | undefined;
2011
2559
  provider: "docker";
2012
2560
  _id: string | {};
2013
- options: any;
2014
- exchange: Partial<{
2015
- password?: string | undefined;
2016
- name?: any;
2017
- apiKey?: string | null | undefined;
2018
- token?: string | undefined;
2019
- secret?: string | null | undefined;
2020
- _id?: string | {} | undefined;
2021
- avatar?: any;
2022
- createdAt?: any;
2023
- updatedAt?: any;
2024
- error?: any;
2025
- login?: string | undefined;
2026
- userId?: string | {} | undefined;
2027
- connected?: boolean | undefined;
2028
- downloaded?: {
2029
- updatedAt: any;
2030
- size: string;
2031
- pairs: {};
2032
- sizes: any[];
2033
- } | undefined;
2034
- ccxt_config?: any;
2035
- balances?: {
2036
- total?: any;
2037
- errors?: any;
2038
- updatedAt: any;
2039
- items: {
2040
- total?: number | undefined;
2041
- symbol: string;
2042
- fiat: number;
2043
- }[];
2044
- sum: any;
2045
- quotation: any;
2046
- } | undefined;
2047
- tags?: any;
2048
- background?: any;
2049
- blacklist?: {
2050
- left: string;
2051
- right: string;
2052
- }[] | undefined;
2053
- whitelist?: any[] | undefined;
2054
- ccxt_async_config?: any;
2055
- which?: string | undefined;
2056
- stakeCurrencies?: any[] | undefined;
2057
- popularStakeCurrency?: string | null | undefined;
2058
- notifyAboutWhitelistByEmail?: boolean | undefined;
2059
- requiredCredentials?: any;
2060
- uid?: string | undefined;
2061
- twofa?: string | undefined;
2062
- privateKey?: string | undefined;
2063
- walletAddress?: string | undefined;
2064
- __v?: any;
2065
- }>;
2066
- exchangeId: string;
2067
2561
  strategy: Partial<{
2562
+ public?: boolean | undefined;
2068
2563
  traders?: {
2069
2564
  telegram?: {
2070
2565
  access_hash?: string | null | undefined;
@@ -2102,7 +2597,6 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2102
2597
  balance_dust_level: number;
2103
2598
  } | undefined;
2104
2599
  _id?: string | {} | undefined;
2105
- running?: boolean | undefined;
2106
2600
  plugins?: {
2107
2601
  number_assets?: number | undefined;
2108
2602
  refresh_period?: number | undefined;
@@ -2119,6 +2613,7 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2119
2613
  exit: number;
2120
2614
  } | undefined;
2121
2615
  cancel_open_orders_on_exit?: boolean | undefined;
2616
+ running?: boolean | undefined;
2122
2617
  tradable_balance_ratio?: number | undefined;
2123
2618
  webhook?: {
2124
2619
  url: string;
@@ -2203,15 +2698,16 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2203
2698
  host: string;
2204
2699
  name: any;
2205
2700
  provider: "docker";
2206
- strategies: string[];
2207
2701
  secret: string;
2208
2702
  key: string;
2209
2703
  createdAt: any;
2210
2704
  updatedAt: any;
2211
- "traders/pods": any;
2212
- userId: any;
2213
2705
  connected: boolean;
2214
2706
  which: string;
2707
+ userId: any;
2708
+ strategy: any;
2709
+ strategies: string[];
2710
+ "traders/pods": any;
2215
2711
  exchange: any;
2216
2712
  exchangeId: any;
2217
2713
  stake_currency: string;
@@ -2220,7 +2716,6 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2220
2716
  handling: string;
2221
2717
  initial_state: string;
2222
2718
  pairlists: any;
2223
- strategy: any;
2224
2719
  strategyId: string | {};
2225
2720
  entry_pricing: {
2226
2721
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -2252,28 +2747,145 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2252
2747
  _id?: string | {} | undefined;
2253
2748
  createdAt?: any;
2254
2749
  updatedAt?: any;
2750
+ userId?: string | {} | undefined;
2255
2751
  'strategies/templates'?: {
2752
+ public?: boolean | undefined;
2256
2753
  _id?: string | {} | undefined;
2257
2754
  createdAt?: any;
2258
2755
  updatedAt?: any;
2259
- values: any;
2756
+ optimize?: {
2757
+ best?: {
2758
+ by: "total_profit" | "sharpe";
2759
+ direction: "max" | "min";
2760
+ } | undefined;
2761
+ enabled: boolean;
2762
+ then: {}[];
2763
+ if: {
2764
+ hyperopt: {
2765
+ results: {
2766
+ type?: string | undefined;
2767
+ field: string;
2768
+ operator: string;
2769
+ compare: any;
2770
+ }[];
2771
+ };
2772
+ };
2773
+ } | undefined;
2774
+ values: {
2775
+ indicators?: {
2776
+ alias?: string | undefined;
2777
+ name: string;
2778
+ _id: string;
2779
+ description: string;
2780
+ group: string;
2781
+ optInputs: {
2782
+ name: string;
2783
+ type: string;
2784
+ displayName: string;
2785
+ defaultValue: any;
2786
+ hint: string;
2787
+ normName: string;
2788
+ }[];
2789
+ }[] | undefined;
2790
+ interval: string;
2791
+ stoploss: number;
2792
+ exit_profit_only: boolean;
2793
+ exit_profit_offset: number;
2794
+ minimal_roi: {
2795
+ minutes: number;
2796
+ profit: number;
2797
+ }[];
2798
+ protections: {
2799
+ stop_duration_candles?: number | undefined;
2800
+ lookback_period_candles?: number | undefined;
2801
+ trade_limit?: number | undefined;
2802
+ max_allowed_drawdown?: number | undefined;
2803
+ only_per_pair?: boolean | undefined;
2804
+ enabled: boolean;
2805
+ type: string;
2806
+ method: string;
2807
+ }[];
2808
+ order_types: {
2809
+ stoploss: string;
2810
+ entry: string;
2811
+ exit: string;
2812
+ emergencysell: string;
2813
+ forcebuy: string;
2814
+ forcesell: string;
2815
+ stoploss_on_exchange: boolean;
2816
+ };
2817
+ sellwhen: {
2818
+ logic: string;
2819
+ conditions: {
2820
+ indicator: string;
2821
+ condition: string;
2822
+ compare_to: {
2823
+ type: string;
2824
+ value: any;
2825
+ };
2826
+ }[];
2827
+ };
2828
+ buywhen: {
2829
+ logic: string;
2830
+ conditions: {
2831
+ indicator: string;
2832
+ condition: string;
2833
+ compare_to: {
2834
+ type: string;
2835
+ value: any;
2836
+ };
2837
+ }[];
2838
+ };
2839
+ };
2260
2840
  name: string;
2261
- description: string;
2262
2841
  type: string;
2842
+ revision: number;
2843
+ description: string;
2844
+ timeinforce: string;
2263
2845
  } | undefined;
2264
- userId?: string | {} | undefined;
2265
- file?: any;
2266
- templateId?: string | {} | undefined;
2267
2846
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
2268
2847
  stoploss?: number | undefined;
2848
+ exit_profit_only?: boolean | undefined;
2849
+ exit_profit_offset?: number | undefined;
2850
+ indicators?: {
2851
+ hyperopt?: {
2852
+ default: number;
2853
+ max: number;
2854
+ min: number;
2855
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
2856
+ field: string;
2857
+ space: string;
2858
+ }[] | undefined;
2859
+ name: string;
2860
+ _id: string;
2861
+ description: string;
2862
+ alias: string;
2863
+ group: string;
2864
+ optInputs: {
2865
+ name: string;
2866
+ type: string;
2867
+ displayName: string;
2868
+ defaultValue: number;
2869
+ hint: string;
2870
+ normName: string;
2871
+ }[];
2872
+ }[] | undefined;
2269
2873
  minimal_roi?: {
2270
2874
  minutes: number;
2271
2875
  profit: number;
2272
2876
  }[] | undefined;
2273
- exit_sell_signal?: boolean | undefined;
2274
- exit_profit_only?: boolean | undefined;
2275
- exit_profit_offset?: number | undefined;
2276
- timeinforce?: unknown;
2877
+ protections?: {
2878
+ stop_duration_candles?: number | undefined;
2879
+ lookback_period_candles?: unknown;
2880
+ trade_limit?: unknown;
2881
+ max_allowed_drawdown?: unknown;
2882
+ only_per_pair?: unknown;
2883
+ stop_duration_in_seconds?: unknown;
2884
+ required_profit?: unknown;
2885
+ enabled: boolean;
2886
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
2887
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
2888
+ }[] | undefined;
2277
2889
  order_types?: {
2278
2890
  stoploss?: string | undefined;
2279
2891
  entry?: "Limit" | "Market" | undefined;
@@ -2285,39 +2897,112 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2285
2897
  stoploss_on_exchange_interval?: number | undefined;
2286
2898
  stoploss_on_exchange_limit_ratio?: number | undefined;
2287
2899
  } | undefined;
2288
- protections?: {
2289
- stop_duration_candles?: number | undefined;
2290
- stop_duration_in_seconds?: unknown;
2291
- lookback_period_candles?: unknown;
2292
- trade_limit?: unknown;
2293
- required_profit?: unknown;
2294
- max_allowed_drawdown?: unknown;
2295
- only_per_pair?: unknown;
2296
- enabled: boolean;
2297
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
2298
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
2299
- }[] | undefined;
2300
- buywhen?: {
2301
- value?: number | undefined;
2302
- indicator2?: string | undefined;
2303
- type: "number" | "indicator";
2900
+ sellwhen?: {
2901
+ logic: "AND" | "OR";
2902
+ conditions: (/*elided*/ any | {
2903
+ indicator: string;
2904
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
2905
+ compare_to: {
2906
+ type: "number" | "indicator";
2907
+ value: string | number;
2908
+ };
2909
+ })[];
2910
+ } | {
2304
2911
  indicator: string;
2305
2912
  condition: ">" | "<" | "==";
2306
- }[] | undefined;
2307
- sellwhen?: {
2308
- value?: number | undefined;
2309
- indicator2?: string | undefined;
2310
- type: "number" | "indicator";
2913
+ compare_to: {
2914
+ type: "number" | "indicator";
2915
+ value: string | number;
2916
+ };
2917
+ } | undefined;
2918
+ buywhen?: {
2919
+ logic: "AND" | "OR";
2920
+ conditions: (/*elided*/ any | {
2921
+ indicator: string;
2922
+ condition: ">" | "<" | "==";
2923
+ compare_to: {
2924
+ type: "number" | "indicator";
2925
+ value: string | number;
2926
+ };
2927
+ })[];
2928
+ } | {
2311
2929
  indicator: string;
2312
2930
  condition: ">" | "<" | "==";
2313
- }[] | undefined;
2314
- indicators?: unknown[] | undefined;
2315
- code?: unknown;
2931
+ compare_to: {
2932
+ type: "number" | "indicator";
2933
+ value: string | number;
2934
+ };
2935
+ } | undefined;
2936
+ timeinforce?: unknown;
2316
2937
  results?: unknown;
2938
+ file?: any;
2939
+ templateId?: string | {} | undefined;
2940
+ trailing?: {
2941
+ trailing_stop?: boolean | undefined;
2942
+ trailing_stop_positive?: number | undefined;
2943
+ trailing_stop_positive_offset?: number | undefined;
2944
+ trailing_only_offset_is_reached?: boolean | undefined;
2945
+ } | undefined;
2946
+ exit_sell_signal?: boolean | undefined;
2947
+ code?: unknown;
2317
2948
  configured?: boolean | undefined;
2318
2949
  name: any;
2319
2950
  'strategies/indicators': any;
2320
2951
  }>;
2952
+ options: any;
2953
+ exchange: Partial<{
2954
+ password?: string | undefined;
2955
+ name?: any;
2956
+ apiKey?: string | null | undefined;
2957
+ token?: string | undefined;
2958
+ secret?: string | null | undefined;
2959
+ error?: any;
2960
+ _id?: string | {} | undefined;
2961
+ createdAt?: any;
2962
+ updatedAt?: any;
2963
+ connected?: boolean | undefined;
2964
+ downloaded?: {
2965
+ updatedAt: any;
2966
+ size: string;
2967
+ pairs: {};
2968
+ sizes: any[];
2969
+ } | undefined;
2970
+ ccxt_config?: any;
2971
+ balances?: {
2972
+ total?: any;
2973
+ errors?: any;
2974
+ updatedAt: any;
2975
+ items: {
2976
+ total?: number | undefined;
2977
+ symbol: string;
2978
+ fiat: number;
2979
+ }[];
2980
+ sum: any;
2981
+ quotation: any;
2982
+ } | undefined;
2983
+ tags?: any;
2984
+ background?: any;
2985
+ avatar?: any;
2986
+ blacklist?: {
2987
+ left: string;
2988
+ right: string;
2989
+ }[] | undefined;
2990
+ whitelist?: any[] | undefined;
2991
+ ccxt_async_config?: any;
2992
+ which?: string | undefined;
2993
+ stakeCurrencies?: any[] | undefined;
2994
+ popularStakeCurrency?: string | null | undefined;
2995
+ notifyAboutWhitelistByEmail?: boolean | undefined;
2996
+ requiredCredentials?: any;
2997
+ uid?: string | undefined;
2998
+ login?: string | undefined;
2999
+ twofa?: string | undefined;
3000
+ privateKey?: string | undefined;
3001
+ walletAddress?: string | undefined;
3002
+ userId?: string | {} | undefined;
3003
+ __v?: any;
3004
+ }>;
3005
+ exchangeId: string;
2321
3006
  strategyId: string | {};
2322
3007
  pod: any;
2323
3008
  trader: Partial<{
@@ -2357,7 +3042,6 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2357
3042
  balance_dust_level: number;
2358
3043
  } | undefined;
2359
3044
  _id?: string | {} | undefined;
2360
- running?: boolean | undefined;
2361
3045
  plugins?: {
2362
3046
  number_assets?: number | undefined;
2363
3047
  refresh_period?: number | undefined;
@@ -2374,6 +3058,7 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2374
3058
  exit: number;
2375
3059
  } | undefined;
2376
3060
  cancel_open_orders_on_exit?: boolean | undefined;
3061
+ running?: boolean | undefined;
2377
3062
  tradable_balance_ratio?: number | undefined;
2378
3063
  webhook?: {
2379
3064
  url: string;
@@ -2458,15 +3143,16 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2458
3143
  host: string;
2459
3144
  name: any;
2460
3145
  provider: "docker";
2461
- strategies: string[];
2462
3146
  secret: string;
2463
3147
  key: string;
2464
3148
  createdAt: any;
2465
3149
  updatedAt: any;
2466
- "traders/pods": any;
2467
- userId: any;
2468
3150
  connected: boolean;
2469
3151
  which: string;
3152
+ userId: any;
3153
+ strategy: any;
3154
+ strategies: string[];
3155
+ "traders/pods": any;
2470
3156
  exchange: any;
2471
3157
  exchangeId: any;
2472
3158
  stake_currency: string;
@@ -2475,7 +3161,6 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2475
3161
  handling: string;
2476
3162
  initial_state: string;
2477
3163
  pairlists: any;
2478
- strategy: any;
2479
3164
  strategyId: string | {};
2480
3165
  entry_pricing: {
2481
3166
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -2747,17 +3432,24 @@ export declare const tradersPodsPatchSchema: import("@feathersjs/typebox").TPart
2747
3432
  exchangeId: import("@feathersjs/typebox").TString<string>;
2748
3433
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
2749
3434
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
2750
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2751
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
3435
+ _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>]>>;
3436
+ 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>]>>;
2752
3437
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2753
3438
  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>]>>;
2754
3439
  name: import("@feathersjs/typebox").TAny;
3440
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2755
3441
  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">]>>;
2756
3442
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2757
3443
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
2758
3444
  minutes: import("@feathersjs/typebox").TNumber;
2759
3445
  profit: import("@feathersjs/typebox").TNumber;
2760
3446
  }>>>;
3447
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3448
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3449
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3450
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3451
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3452
+ }>>;
2761
3453
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2762
3454
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
2763
3455
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -2785,21 +3477,65 @@ export declare const tradersPodsPatchSchema: import("@feathersjs/typebox").TPart
2785
3477
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
2786
3478
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
2787
3479
  }>>>;
2788
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3480
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
3481
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
3482
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
3483
+ indicator: import("@feathersjs/typebox").TString<string>;
3484
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
3485
+ compare_to: import("@feathersjs/typebox").TObject<{
3486
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3487
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
3488
+ }>;
3489
+ }>]>>;
3490
+ }>>, import("@feathersjs/typebox").TObject<{
2789
3491
  indicator: import("@feathersjs/typebox").TString<string>;
2790
3492
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
2791
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2792
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2793
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
2794
- }>>>;
2795
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3493
+ compare_to: import("@feathersjs/typebox").TObject<{
3494
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3495
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
3496
+ }>;
3497
+ }>]>>;
3498
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
3499
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
3500
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
3501
+ indicator: import("@feathersjs/typebox").TString<string>;
3502
+ 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">]>;
3503
+ compare_to: import("@feathersjs/typebox").TObject<{
3504
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3505
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
3506
+ }>;
3507
+ }>]>>;
3508
+ }>>, import("@feathersjs/typebox").TObject<{
2796
3509
  indicator: import("@feathersjs/typebox").TString<string>;
2797
3510
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
2798
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
2799
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
2800
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3511
+ compare_to: import("@feathersjs/typebox").TObject<{
3512
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3513
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
3514
+ }>;
3515
+ }>]>>;
3516
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3517
+ _id: import("@feathersjs/typebox").TString<string>;
3518
+ alias: import("@feathersjs/typebox").TString<string>;
3519
+ name: import("@feathersjs/typebox").TString<string>;
3520
+ group: import("@feathersjs/typebox").TString<string>;
3521
+ description: import("@feathersjs/typebox").TString<string>;
3522
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3523
+ name: import("@feathersjs/typebox").TString<string>;
3524
+ displayName: import("@feathersjs/typebox").TString<string>;
3525
+ defaultValue: import("@feathersjs/typebox").TNumber;
3526
+ hint: import("@feathersjs/typebox").TString<string>;
3527
+ type: import("@feathersjs/typebox").TString<string>;
3528
+ normName: import("@feathersjs/typebox").TString<string>;
3529
+ }>>;
3530
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3531
+ field: import("@feathersjs/typebox").TString<string>;
3532
+ space: import("@feathersjs/typebox").TString<string>;
3533
+ 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">]>;
3534
+ min: import("@feathersjs/typebox").TInteger;
3535
+ max: import("@feathersjs/typebox").TInteger;
3536
+ default: import("@feathersjs/typebox").TInteger;
3537
+ }>>>;
2801
3538
  }>>>;
2802
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
2803
3539
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
2804
3540
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2805
3541
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -2993,10 +3729,96 @@ export declare const tradersPodsPatchSchema: import("@feathersjs/typebox").TPart
2993
3729
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
2994
3730
  name: import("@feathersjs/typebox").TString<string>;
2995
3731
  type: import("@feathersjs/typebox").TString<string>;
3732
+ revision: import("@feathersjs/typebox").TNumber;
2996
3733
  description: import("@feathersjs/typebox").TString<string>;
2997
3734
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2998
3735
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
2999
- values: import("@feathersjs/typebox").TAny;
3736
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3737
+ values: import("@feathersjs/typebox").TObject<{
3738
+ interval: import("@feathersjs/typebox").TString<string>;
3739
+ stoploss: import("@feathersjs/typebox").TNumber;
3740
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
3741
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
3742
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3743
+ _id: import("@feathersjs/typebox").TString<string>;
3744
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3745
+ name: import("@feathersjs/typebox").TString<string>;
3746
+ group: import("@feathersjs/typebox").TString<string>;
3747
+ description: import("@feathersjs/typebox").TString<string>;
3748
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3749
+ name: import("@feathersjs/typebox").TString<string>;
3750
+ displayName: import("@feathersjs/typebox").TString<string>;
3751
+ defaultValue: import("@feathersjs/typebox").TAny;
3752
+ hint: import("@feathersjs/typebox").TString<string>;
3753
+ type: import("@feathersjs/typebox").TString<string>;
3754
+ normName: import("@feathersjs/typebox").TString<string>;
3755
+ }>>;
3756
+ }>>>;
3757
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3758
+ minutes: import("@feathersjs/typebox").TNumber;
3759
+ profit: import("@feathersjs/typebox").TNumber;
3760
+ }>>;
3761
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3762
+ enabled: import("@feathersjs/typebox").TBoolean;
3763
+ type: import("@feathersjs/typebox").TString<string>;
3764
+ method: import("@feathersjs/typebox").TString<string>;
3765
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3766
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3767
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3768
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3769
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3770
+ }>>;
3771
+ order_types: import("@feathersjs/typebox").TObject<{
3772
+ entry: import("@feathersjs/typebox").TString<string>;
3773
+ exit: import("@feathersjs/typebox").TString<string>;
3774
+ emergencysell: import("@feathersjs/typebox").TString<string>;
3775
+ forcebuy: import("@feathersjs/typebox").TString<string>;
3776
+ forcesell: import("@feathersjs/typebox").TString<string>;
3777
+ stoploss: import("@feathersjs/typebox").TString<string>;
3778
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
3779
+ }>;
3780
+ sellwhen: import("@feathersjs/typebox").TObject<{
3781
+ logic: import("@feathersjs/typebox").TString<string>;
3782
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3783
+ indicator: import("@feathersjs/typebox").TString<string>;
3784
+ condition: import("@feathersjs/typebox").TString<string>;
3785
+ compare_to: import("@feathersjs/typebox").TObject<{
3786
+ type: import("@feathersjs/typebox").TString<string>;
3787
+ value: import("@feathersjs/typebox").TAny;
3788
+ }>;
3789
+ }>>;
3790
+ }>;
3791
+ buywhen: import("@feathersjs/typebox").TObject<{
3792
+ logic: import("@feathersjs/typebox").TString<string>;
3793
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3794
+ indicator: import("@feathersjs/typebox").TString<string>;
3795
+ condition: import("@feathersjs/typebox").TString<string>;
3796
+ compare_to: import("@feathersjs/typebox").TObject<{
3797
+ type: import("@feathersjs/typebox").TString<string>;
3798
+ value: import("@feathersjs/typebox").TAny;
3799
+ }>;
3800
+ }>>;
3801
+ }>;
3802
+ }>;
3803
+ timeinforce: import("@feathersjs/typebox").TString<string>;
3804
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3805
+ enabled: import("@feathersjs/typebox").TBoolean;
3806
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
3807
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
3808
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
3809
+ }>>;
3810
+ if: import("@feathersjs/typebox").TObject<{
3811
+ hyperopt: import("@feathersjs/typebox").TObject<{
3812
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3813
+ field: import("@feathersjs/typebox").TString<string>;
3814
+ operator: import("@feathersjs/typebox").TString<string>;
3815
+ compare: import("@feathersjs/typebox").TAny;
3816
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3817
+ }>>;
3818
+ }>;
3819
+ }>;
3820
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
3821
+ }>>;
3000
3822
  }>>>;
3001
3823
  'strategies/indicators': import("@feathersjs/typebox").TAny;
3002
3824
  }>>>;
@@ -3012,61 +3834,8 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3012
3834
  stop?: boolean | undefined;
3013
3835
  provider: "docker";
3014
3836
  _id: string | {};
3015
- options: any;
3016
- exchange: Partial<{
3017
- password?: string | undefined;
3018
- name?: any;
3019
- apiKey?: string | null | undefined;
3020
- token?: string | undefined;
3021
- secret?: string | null | undefined;
3022
- _id?: string | {} | undefined;
3023
- avatar?: any;
3024
- createdAt?: any;
3025
- updatedAt?: any;
3026
- error?: any;
3027
- login?: string | undefined;
3028
- userId?: string | {} | undefined;
3029
- connected?: boolean | undefined;
3030
- downloaded?: {
3031
- updatedAt: any;
3032
- size: string;
3033
- pairs: {};
3034
- sizes: any[];
3035
- } | undefined;
3036
- ccxt_config?: any;
3037
- balances?: {
3038
- total?: any;
3039
- errors?: any;
3040
- updatedAt: any;
3041
- items: {
3042
- total?: number | undefined;
3043
- symbol: string;
3044
- fiat: number;
3045
- }[];
3046
- sum: any;
3047
- quotation: any;
3048
- } | undefined;
3049
- tags?: any;
3050
- background?: any;
3051
- blacklist?: {
3052
- left: string;
3053
- right: string;
3054
- }[] | undefined;
3055
- whitelist?: any[] | undefined;
3056
- ccxt_async_config?: any;
3057
- which?: string | undefined;
3058
- stakeCurrencies?: any[] | undefined;
3059
- popularStakeCurrency?: string | null | undefined;
3060
- notifyAboutWhitelistByEmail?: boolean | undefined;
3061
- requiredCredentials?: any;
3062
- uid?: string | undefined;
3063
- twofa?: string | undefined;
3064
- privateKey?: string | undefined;
3065
- walletAddress?: string | undefined;
3066
- __v?: any;
3067
- }>;
3068
- exchangeId: string;
3069
3837
  strategy: Partial<{
3838
+ public?: boolean | undefined;
3070
3839
  traders?: {
3071
3840
  telegram?: {
3072
3841
  access_hash?: string | null | undefined;
@@ -3104,7 +3873,6 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3104
3873
  balance_dust_level: number;
3105
3874
  } | undefined;
3106
3875
  _id?: string | {} | undefined;
3107
- running?: boolean | undefined;
3108
3876
  plugins?: {
3109
3877
  number_assets?: number | undefined;
3110
3878
  refresh_period?: number | undefined;
@@ -3121,6 +3889,7 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3121
3889
  exit: number;
3122
3890
  } | undefined;
3123
3891
  cancel_open_orders_on_exit?: boolean | undefined;
3892
+ running?: boolean | undefined;
3124
3893
  tradable_balance_ratio?: number | undefined;
3125
3894
  webhook?: {
3126
3895
  url: string;
@@ -3205,15 +3974,16 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3205
3974
  host: string;
3206
3975
  name: any;
3207
3976
  provider: "docker";
3208
- strategies: string[];
3209
3977
  secret: string;
3210
3978
  key: string;
3211
3979
  createdAt: any;
3212
3980
  updatedAt: any;
3213
- "traders/pods": any;
3214
- userId: any;
3215
3981
  connected: boolean;
3216
3982
  which: string;
3983
+ userId: any;
3984
+ strategy: any;
3985
+ strategies: string[];
3986
+ "traders/pods": any;
3217
3987
  exchange: any;
3218
3988
  exchangeId: any;
3219
3989
  stake_currency: string;
@@ -3222,7 +3992,6 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3222
3992
  handling: string;
3223
3993
  initial_state: string;
3224
3994
  pairlists: any;
3225
- strategy: any;
3226
3995
  strategyId: string | {};
3227
3996
  entry_pricing: {
3228
3997
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -3254,28 +4023,145 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3254
4023
  _id?: string | {} | undefined;
3255
4024
  createdAt?: any;
3256
4025
  updatedAt?: any;
4026
+ userId?: string | {} | undefined;
3257
4027
  'strategies/templates'?: {
4028
+ public?: boolean | undefined;
3258
4029
  _id?: string | {} | undefined;
3259
4030
  createdAt?: any;
3260
4031
  updatedAt?: any;
3261
- values: any;
4032
+ optimize?: {
4033
+ best?: {
4034
+ by: "total_profit" | "sharpe";
4035
+ direction: "max" | "min";
4036
+ } | undefined;
4037
+ enabled: boolean;
4038
+ then: {}[];
4039
+ if: {
4040
+ hyperopt: {
4041
+ results: {
4042
+ type?: string | undefined;
4043
+ field: string;
4044
+ operator: string;
4045
+ compare: any;
4046
+ }[];
4047
+ };
4048
+ };
4049
+ } | undefined;
4050
+ values: {
4051
+ indicators?: {
4052
+ alias?: string | undefined;
4053
+ name: string;
4054
+ _id: string;
4055
+ description: string;
4056
+ group: string;
4057
+ optInputs: {
4058
+ name: string;
4059
+ type: string;
4060
+ displayName: string;
4061
+ defaultValue: any;
4062
+ hint: string;
4063
+ normName: string;
4064
+ }[];
4065
+ }[] | undefined;
4066
+ interval: string;
4067
+ stoploss: number;
4068
+ exit_profit_only: boolean;
4069
+ exit_profit_offset: number;
4070
+ minimal_roi: {
4071
+ minutes: number;
4072
+ profit: number;
4073
+ }[];
4074
+ protections: {
4075
+ stop_duration_candles?: number | undefined;
4076
+ lookback_period_candles?: number | undefined;
4077
+ trade_limit?: number | undefined;
4078
+ max_allowed_drawdown?: number | undefined;
4079
+ only_per_pair?: boolean | undefined;
4080
+ enabled: boolean;
4081
+ type: string;
4082
+ method: string;
4083
+ }[];
4084
+ order_types: {
4085
+ stoploss: string;
4086
+ entry: string;
4087
+ exit: string;
4088
+ emergencysell: string;
4089
+ forcebuy: string;
4090
+ forcesell: string;
4091
+ stoploss_on_exchange: boolean;
4092
+ };
4093
+ sellwhen: {
4094
+ logic: string;
4095
+ conditions: {
4096
+ indicator: string;
4097
+ condition: string;
4098
+ compare_to: {
4099
+ type: string;
4100
+ value: any;
4101
+ };
4102
+ }[];
4103
+ };
4104
+ buywhen: {
4105
+ logic: string;
4106
+ conditions: {
4107
+ indicator: string;
4108
+ condition: string;
4109
+ compare_to: {
4110
+ type: string;
4111
+ value: any;
4112
+ };
4113
+ }[];
4114
+ };
4115
+ };
3262
4116
  name: string;
3263
- description: string;
3264
4117
  type: string;
4118
+ revision: number;
4119
+ description: string;
4120
+ timeinforce: string;
3265
4121
  } | undefined;
3266
- userId?: string | {} | undefined;
3267
- file?: any;
3268
- templateId?: string | {} | undefined;
3269
4122
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
3270
4123
  stoploss?: number | undefined;
4124
+ exit_profit_only?: boolean | undefined;
4125
+ exit_profit_offset?: number | undefined;
4126
+ indicators?: {
4127
+ hyperopt?: {
4128
+ default: number;
4129
+ max: number;
4130
+ min: number;
4131
+ type: "IntParameter" | "DecimalParameter" | "BooleanParameter" | "CategoricalParameter";
4132
+ field: string;
4133
+ space: string;
4134
+ }[] | undefined;
4135
+ name: string;
4136
+ _id: string;
4137
+ description: string;
4138
+ alias: string;
4139
+ group: string;
4140
+ optInputs: {
4141
+ name: string;
4142
+ type: string;
4143
+ displayName: string;
4144
+ defaultValue: number;
4145
+ hint: string;
4146
+ normName: string;
4147
+ }[];
4148
+ }[] | undefined;
3271
4149
  minimal_roi?: {
3272
4150
  minutes: number;
3273
4151
  profit: number;
3274
4152
  }[] | undefined;
3275
- exit_sell_signal?: boolean | undefined;
3276
- exit_profit_only?: boolean | undefined;
3277
- exit_profit_offset?: number | undefined;
3278
- timeinforce?: unknown;
4153
+ protections?: {
4154
+ stop_duration_candles?: number | undefined;
4155
+ lookback_period_candles?: unknown;
4156
+ trade_limit?: unknown;
4157
+ max_allowed_drawdown?: unknown;
4158
+ only_per_pair?: unknown;
4159
+ stop_duration_in_seconds?: unknown;
4160
+ required_profit?: unknown;
4161
+ enabled: boolean;
4162
+ type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
4163
+ method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
4164
+ }[] | undefined;
3279
4165
  order_types?: {
3280
4166
  stoploss?: string | undefined;
3281
4167
  entry?: "Limit" | "Market" | undefined;
@@ -3287,39 +4173,112 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3287
4173
  stoploss_on_exchange_interval?: number | undefined;
3288
4174
  stoploss_on_exchange_limit_ratio?: number | undefined;
3289
4175
  } | undefined;
3290
- protections?: {
3291
- stop_duration_candles?: number | undefined;
3292
- stop_duration_in_seconds?: unknown;
3293
- lookback_period_candles?: unknown;
3294
- trade_limit?: unknown;
3295
- required_profit?: unknown;
3296
- max_allowed_drawdown?: unknown;
3297
- only_per_pair?: unknown;
3298
- enabled: boolean;
3299
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
3300
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
3301
- }[] | undefined;
3302
- buywhen?: {
3303
- value?: number | undefined;
3304
- indicator2?: string | undefined;
3305
- type: "number" | "indicator";
4176
+ sellwhen?: {
4177
+ logic: "AND" | "OR";
4178
+ conditions: (/*elided*/ any | {
4179
+ indicator: string;
4180
+ condition: ">" | "<" | "==" | "crossed_above" | "crossed_below" | "crossed";
4181
+ compare_to: {
4182
+ type: "number" | "indicator";
4183
+ value: string | number;
4184
+ };
4185
+ })[];
4186
+ } | {
3306
4187
  indicator: string;
3307
4188
  condition: ">" | "<" | "==";
3308
- }[] | undefined;
3309
- sellwhen?: {
3310
- value?: number | undefined;
3311
- indicator2?: string | undefined;
3312
- type: "number" | "indicator";
4189
+ compare_to: {
4190
+ type: "number" | "indicator";
4191
+ value: string | number;
4192
+ };
4193
+ } | undefined;
4194
+ buywhen?: {
4195
+ logic: "AND" | "OR";
4196
+ conditions: (/*elided*/ any | {
4197
+ indicator: string;
4198
+ condition: ">" | "<" | "==";
4199
+ compare_to: {
4200
+ type: "number" | "indicator";
4201
+ value: string | number;
4202
+ };
4203
+ })[];
4204
+ } | {
3313
4205
  indicator: string;
3314
4206
  condition: ">" | "<" | "==";
3315
- }[] | undefined;
3316
- indicators?: unknown[] | undefined;
3317
- code?: unknown;
4207
+ compare_to: {
4208
+ type: "number" | "indicator";
4209
+ value: string | number;
4210
+ };
4211
+ } | undefined;
4212
+ timeinforce?: unknown;
3318
4213
  results?: unknown;
4214
+ file?: any;
4215
+ templateId?: string | {} | undefined;
4216
+ trailing?: {
4217
+ trailing_stop?: boolean | undefined;
4218
+ trailing_stop_positive?: number | undefined;
4219
+ trailing_stop_positive_offset?: number | undefined;
4220
+ trailing_only_offset_is_reached?: boolean | undefined;
4221
+ } | undefined;
4222
+ exit_sell_signal?: boolean | undefined;
4223
+ code?: unknown;
3319
4224
  configured?: boolean | undefined;
3320
4225
  name: any;
3321
4226
  'strategies/indicators': any;
3322
4227
  }>;
4228
+ options: any;
4229
+ exchange: Partial<{
4230
+ password?: string | undefined;
4231
+ name?: any;
4232
+ apiKey?: string | null | undefined;
4233
+ token?: string | undefined;
4234
+ secret?: string | null | undefined;
4235
+ error?: any;
4236
+ _id?: string | {} | undefined;
4237
+ createdAt?: any;
4238
+ updatedAt?: any;
4239
+ connected?: boolean | undefined;
4240
+ downloaded?: {
4241
+ updatedAt: any;
4242
+ size: string;
4243
+ pairs: {};
4244
+ sizes: any[];
4245
+ } | undefined;
4246
+ ccxt_config?: any;
4247
+ balances?: {
4248
+ total?: any;
4249
+ errors?: any;
4250
+ updatedAt: any;
4251
+ items: {
4252
+ total?: number | undefined;
4253
+ symbol: string;
4254
+ fiat: number;
4255
+ }[];
4256
+ sum: any;
4257
+ quotation: any;
4258
+ } | undefined;
4259
+ tags?: any;
4260
+ background?: any;
4261
+ avatar?: any;
4262
+ blacklist?: {
4263
+ left: string;
4264
+ right: string;
4265
+ }[] | undefined;
4266
+ whitelist?: any[] | undefined;
4267
+ ccxt_async_config?: any;
4268
+ which?: string | undefined;
4269
+ stakeCurrencies?: any[] | undefined;
4270
+ popularStakeCurrency?: string | null | undefined;
4271
+ notifyAboutWhitelistByEmail?: boolean | undefined;
4272
+ requiredCredentials?: any;
4273
+ uid?: string | undefined;
4274
+ login?: string | undefined;
4275
+ twofa?: string | undefined;
4276
+ privateKey?: string | undefined;
4277
+ walletAddress?: string | undefined;
4278
+ userId?: string | {} | undefined;
4279
+ __v?: any;
4280
+ }>;
4281
+ exchangeId: string;
3323
4282
  strategyId: string | {};
3324
4283
  pod: any;
3325
4284
  trader: Partial<{
@@ -3359,7 +4318,6 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3359
4318
  balance_dust_level: number;
3360
4319
  } | undefined;
3361
4320
  _id?: string | {} | undefined;
3362
- running?: boolean | undefined;
3363
4321
  plugins?: {
3364
4322
  number_assets?: number | undefined;
3365
4323
  refresh_period?: number | undefined;
@@ -3376,6 +4334,7 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3376
4334
  exit: number;
3377
4335
  } | undefined;
3378
4336
  cancel_open_orders_on_exit?: boolean | undefined;
4337
+ running?: boolean | undefined;
3379
4338
  tradable_balance_ratio?: number | undefined;
3380
4339
  webhook?: {
3381
4340
  url: string;
@@ -3460,15 +4419,16 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3460
4419
  host: string;
3461
4420
  name: any;
3462
4421
  provider: "docker";
3463
- strategies: string[];
3464
4422
  secret: string;
3465
4423
  key: string;
3466
4424
  createdAt: any;
3467
4425
  updatedAt: any;
3468
- "traders/pods": any;
3469
- userId: any;
3470
4426
  connected: boolean;
3471
4427
  which: string;
4428
+ userId: any;
4429
+ strategy: any;
4430
+ strategies: string[];
4431
+ "traders/pods": any;
3472
4432
  exchange: any;
3473
4433
  exchangeId: any;
3474
4434
  stake_currency: string;
@@ -3477,7 +4437,6 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3477
4437
  handling: string;
3478
4438
  initial_state: string;
3479
4439
  pairlists: any;
3480
- strategy: any;
3481
4440
  strategyId: string | {};
3482
4441
  entry_pricing: {
3483
4442
  price_side?: "ask" | "bid" | "same" | "other" | undefined;
@@ -3749,17 +4708,24 @@ export declare const tradersPodsQueryProperties: import("@feathersjs/typebox").T
3749
4708
  exchangeId: import("@feathersjs/typebox").TString<string>;
3750
4709
  strategyId: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>;
3751
4710
  strategy: import("@feathersjs/typebox").TRef<import("@feathersjs/typebox").TPartial<import("@feathersjs/typebox").TObject<{
3752
- _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
3753
- userId: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
4711
+ _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>]>>;
4712
+ 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>]>>;
3754
4713
  file: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
3755
4714
  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>]>>;
3756
4715
  name: import("@feathersjs/typebox").TAny;
4716
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3757
4717
  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">]>>;
3758
4718
  stoploss: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3759
4719
  minimal_roi: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
3760
4720
  minutes: import("@feathersjs/typebox").TNumber;
3761
4721
  profit: import("@feathersjs/typebox").TNumber;
3762
4722
  }>>>;
4723
+ trailing: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
4724
+ trailing_stop: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4725
+ trailing_stop_positive: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4726
+ trailing_stop_positive_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
4727
+ trailing_only_offset_is_reached: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
4728
+ }>>;
3763
4729
  exit_sell_signal: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3764
4730
  exit_profit_only: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
3765
4731
  exit_profit_offset: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
@@ -3787,21 +4753,65 @@ export declare const tradersPodsQueryProperties: import("@feathersjs/typebox").T
3787
4753
  max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
3788
4754
  only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
3789
4755
  }>>>;
3790
- buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4756
+ buywhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
4757
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
4758
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
4759
+ indicator: import("@feathersjs/typebox").TString<string>;
4760
+ condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
4761
+ compare_to: import("@feathersjs/typebox").TObject<{
4762
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4763
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4764
+ }>;
4765
+ }>]>>;
4766
+ }>>, import("@feathersjs/typebox").TObject<{
3791
4767
  indicator: import("@feathersjs/typebox").TString<string>;
3792
4768
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
3793
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3794
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3795
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
3796
- }>>>;
3797
- sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4769
+ compare_to: import("@feathersjs/typebox").TObject<{
4770
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4771
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4772
+ }>;
4773
+ }>]>>;
4774
+ sellwhen: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TRecursive<import("@feathersjs/typebox").TObject<{
4775
+ logic: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"AND">, import("@feathersjs/typebox").TLiteral<"OR">]>;
4776
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TSelf, import("@feathersjs/typebox").TObject<{
4777
+ indicator: import("@feathersjs/typebox").TString<string>;
4778
+ 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">]>;
4779
+ compare_to: import("@feathersjs/typebox").TObject<{
4780
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4781
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4782
+ }>;
4783
+ }>]>>;
4784
+ }>>, import("@feathersjs/typebox").TObject<{
3798
4785
  indicator: import("@feathersjs/typebox").TString<string>;
3799
4786
  condition: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<">">, import("@feathersjs/typebox").TLiteral<"<">, import("@feathersjs/typebox").TLiteral<"==">]>;
3800
- type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
3801
- value: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
3802
- indicator2: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
4787
+ compare_to: import("@feathersjs/typebox").TObject<{
4788
+ type: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"number">, import("@feathersjs/typebox").TLiteral<"indicator">]>;
4789
+ value: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TNumber, import("@feathersjs/typebox").TString<string>]>;
4790
+ }>;
4791
+ }>]>>;
4792
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4793
+ _id: import("@feathersjs/typebox").TString<string>;
4794
+ alias: import("@feathersjs/typebox").TString<string>;
4795
+ name: import("@feathersjs/typebox").TString<string>;
4796
+ group: import("@feathersjs/typebox").TString<string>;
4797
+ description: import("@feathersjs/typebox").TString<string>;
4798
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4799
+ name: import("@feathersjs/typebox").TString<string>;
4800
+ displayName: import("@feathersjs/typebox").TString<string>;
4801
+ defaultValue: import("@feathersjs/typebox").TNumber;
4802
+ hint: import("@feathersjs/typebox").TString<string>;
4803
+ type: import("@feathersjs/typebox").TString<string>;
4804
+ normName: import("@feathersjs/typebox").TString<string>;
4805
+ }>>;
4806
+ hyperopt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
4807
+ field: import("@feathersjs/typebox").TString<string>;
4808
+ space: import("@feathersjs/typebox").TString<string>;
4809
+ 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">]>;
4810
+ min: import("@feathersjs/typebox").TInteger;
4811
+ max: import("@feathersjs/typebox").TInteger;
4812
+ default: import("@feathersjs/typebox").TInteger;
4813
+ }>>>;
3803
4814
  }>>>;
3804
- indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TUnknown>>;
3805
4815
  code: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnknown>;
3806
4816
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
3807
4817
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
@@ -3995,10 +5005,96 @@ export declare const tradersPodsQueryProperties: import("@feathersjs/typebox").T
3995
5005
  _id: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TString<string>, import("@feathersjs/typebox").TObject<{}>]>>;
3996
5006
  name: import("@feathersjs/typebox").TString<string>;
3997
5007
  type: import("@feathersjs/typebox").TString<string>;
5008
+ revision: import("@feathersjs/typebox").TNumber;
3998
5009
  description: import("@feathersjs/typebox").TString<string>;
3999
5010
  createdAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
4000
5011
  updatedAt: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TAny>;
4001
- values: import("@feathersjs/typebox").TAny;
5012
+ public: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
5013
+ values: import("@feathersjs/typebox").TObject<{
5014
+ interval: import("@feathersjs/typebox").TString<string>;
5015
+ stoploss: import("@feathersjs/typebox").TNumber;
5016
+ exit_profit_only: import("@feathersjs/typebox").TBoolean;
5017
+ exit_profit_offset: import("@feathersjs/typebox").TNumber;
5018
+ indicators: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5019
+ _id: import("@feathersjs/typebox").TString<string>;
5020
+ alias: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
5021
+ name: import("@feathersjs/typebox").TString<string>;
5022
+ group: import("@feathersjs/typebox").TString<string>;
5023
+ description: import("@feathersjs/typebox").TString<string>;
5024
+ optInputs: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5025
+ name: import("@feathersjs/typebox").TString<string>;
5026
+ displayName: import("@feathersjs/typebox").TString<string>;
5027
+ defaultValue: import("@feathersjs/typebox").TAny;
5028
+ hint: import("@feathersjs/typebox").TString<string>;
5029
+ type: import("@feathersjs/typebox").TString<string>;
5030
+ normName: import("@feathersjs/typebox").TString<string>;
5031
+ }>>;
5032
+ }>>>;
5033
+ minimal_roi: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5034
+ minutes: import("@feathersjs/typebox").TNumber;
5035
+ profit: import("@feathersjs/typebox").TNumber;
5036
+ }>>;
5037
+ protections: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5038
+ enabled: import("@feathersjs/typebox").TBoolean;
5039
+ type: import("@feathersjs/typebox").TString<string>;
5040
+ method: import("@feathersjs/typebox").TString<string>;
5041
+ stop_duration_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5042
+ lookback_period_candles: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5043
+ trade_limit: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5044
+ max_allowed_drawdown: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TNumber>;
5045
+ only_per_pair: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TBoolean>;
5046
+ }>>;
5047
+ order_types: import("@feathersjs/typebox").TObject<{
5048
+ entry: import("@feathersjs/typebox").TString<string>;
5049
+ exit: import("@feathersjs/typebox").TString<string>;
5050
+ emergencysell: import("@feathersjs/typebox").TString<string>;
5051
+ forcebuy: import("@feathersjs/typebox").TString<string>;
5052
+ forcesell: import("@feathersjs/typebox").TString<string>;
5053
+ stoploss: import("@feathersjs/typebox").TString<string>;
5054
+ stoploss_on_exchange: import("@feathersjs/typebox").TBoolean;
5055
+ }>;
5056
+ sellwhen: import("@feathersjs/typebox").TObject<{
5057
+ logic: import("@feathersjs/typebox").TString<string>;
5058
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5059
+ indicator: import("@feathersjs/typebox").TString<string>;
5060
+ condition: import("@feathersjs/typebox").TString<string>;
5061
+ compare_to: import("@feathersjs/typebox").TObject<{
5062
+ type: import("@feathersjs/typebox").TString<string>;
5063
+ value: import("@feathersjs/typebox").TAny;
5064
+ }>;
5065
+ }>>;
5066
+ }>;
5067
+ buywhen: import("@feathersjs/typebox").TObject<{
5068
+ logic: import("@feathersjs/typebox").TString<string>;
5069
+ conditions: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5070
+ indicator: import("@feathersjs/typebox").TString<string>;
5071
+ condition: import("@feathersjs/typebox").TString<string>;
5072
+ compare_to: import("@feathersjs/typebox").TObject<{
5073
+ type: import("@feathersjs/typebox").TString<string>;
5074
+ value: import("@feathersjs/typebox").TAny;
5075
+ }>;
5076
+ }>>;
5077
+ }>;
5078
+ }>;
5079
+ timeinforce: import("@feathersjs/typebox").TString<string>;
5080
+ optimize: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
5081
+ enabled: import("@feathersjs/typebox").TBoolean;
5082
+ best: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TObject<{
5083
+ by: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"total_profit">, import("@feathersjs/typebox").TLiteral<"sharpe">]>;
5084
+ direction: import("@feathersjs/typebox").TUnion<[import("@feathersjs/typebox").TLiteral<"max">, import("@feathersjs/typebox").TLiteral<"min">]>;
5085
+ }>>;
5086
+ if: import("@feathersjs/typebox").TObject<{
5087
+ hyperopt: import("@feathersjs/typebox").TObject<{
5088
+ results: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{
5089
+ field: import("@feathersjs/typebox").TString<string>;
5090
+ operator: import("@feathersjs/typebox").TString<string>;
5091
+ compare: import("@feathersjs/typebox").TAny;
5092
+ type: import("@feathersjs/typebox").TOptional<import("@feathersjs/typebox").TString<string>>;
5093
+ }>>;
5094
+ }>;
5095
+ }>;
5096
+ then: import("@feathersjs/typebox").TArray<import("@feathersjs/typebox").TObject<{}>>;
5097
+ }>>;
4002
5098
  }>>>;
4003
5099
  'strategies/indicators': import("@feathersjs/typebox").TAny;
4004
5100
  }>>>;