@cryptorobot.ai/client 0.0.39 → 0.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/lib/src/client.js +29 -2
  2. package/lib/src/services/agents/agents.class.d.ts +11 -0
  3. package/lib/src/services/agents/agents.d.ts +11 -0
  4. package/lib/src/services/agents/agents.schema.d.ts +2371 -0
  5. package/lib/src/services/agents/agents.shared.d.ts +13 -0
  6. package/lib/src/services/agents/agents.shared.js +13 -0
  7. package/lib/src/services/agents/prepare/prepare.class.d.ts +18 -0
  8. package/lib/src/services/agents/prepare/prepare.d.ts +11 -0
  9. package/lib/src/services/agents/prepare/prepare.schema.d.ts +285 -0
  10. package/lib/src/services/agents/prepare/prepare.shared.d.ts +13 -0
  11. package/lib/src/services/agents/prepare/prepare.shared.js +13 -0
  12. package/lib/src/services/agents/sessions/conversations/conversations.class.d.ts +11 -0
  13. package/lib/src/services/agents/sessions/conversations/conversations.d.ts +11 -0
  14. package/lib/src/services/agents/sessions/conversations/conversations.schema.d.ts +2561 -0
  15. package/lib/src/services/agents/sessions/conversations/conversations.shared.d.ts +13 -0
  16. package/lib/src/services/agents/sessions/conversations/conversations.shared.js +13 -0
  17. package/lib/src/services/agents/sessions/sessions.class.d.ts +11 -0
  18. package/lib/src/services/agents/sessions/sessions.d.ts +11 -0
  19. package/lib/src/services/agents/sessions/sessions.schema.d.ts +803 -0
  20. package/lib/src/services/agents/sessions/sessions.shared.d.ts +13 -0
  21. package/lib/src/services/agents/sessions/sessions.shared.js +13 -0
  22. package/lib/src/services/events/events.class.d.ts +11 -0
  23. package/lib/src/services/events/events.d.ts +11 -0
  24. package/lib/src/services/events/events.schema.d.ts +786 -0
  25. package/lib/src/services/events/events.shared.d.ts +13 -0
  26. package/lib/src/services/events/events.shared.js +13 -0
  27. package/lib/src/services/events/triggers/triggers.class.d.ts +11 -0
  28. package/lib/src/services/events/triggers/triggers.d.ts +11 -0
  29. package/lib/src/services/events/triggers/triggers.schema.d.ts +1582 -0
  30. package/lib/src/services/events/triggers/triggers.shared.d.ts +13 -0
  31. package/lib/src/services/events/triggers/triggers.shared.js +13 -0
  32. package/lib/src/services/events/types/types.class.d.ts +11 -0
  33. package/lib/src/services/events/types/types.d.ts +11 -0
  34. package/lib/src/services/events/types/types.schema.d.ts +688 -0
  35. package/lib/src/services/events/types/types.shared.d.ts +13 -0
  36. package/lib/src/services/events/types/types.shared.js +13 -0
  37. package/lib/src/services/exchanges/download/download.shared.d.ts +1 -1
  38. package/lib/src/services/exchanges/download/download.shared.js +1 -1
  39. package/lib/src/services/extensions/extensions.class.d.ts +11 -0
  40. package/lib/src/services/extensions/extensions.d.ts +11 -0
  41. package/lib/src/services/extensions/extensions.schema.d.ts +1275 -0
  42. package/lib/src/services/extensions/extensions.shared.d.ts +13 -0
  43. package/lib/src/services/extensions/extensions.shared.js +13 -0
  44. package/lib/src/services/keys/KeysService.d.ts +13 -0
  45. package/lib/src/services/keys/keys.class.d.ts +11 -0
  46. package/lib/src/services/keys/keys.d.ts +11 -0
  47. package/lib/src/services/keys/keys.schema.d.ts +719 -0
  48. package/lib/src/services/keys/keys.shared.d.ts +14 -0
  49. package/lib/src/services/keys/keys.shared.js +13 -0
  50. package/lib/src/services/messages/messages.schema.d.ts +4 -4
  51. package/lib/src/services/restricted/restricted.class.d.ts +26 -0
  52. package/lib/src/services/restricted/restricted.d.ts +21 -0
  53. package/lib/src/services/restricted/restricted.shared.d.ts +13 -0
  54. package/lib/src/services/restricted/restricted.shared.js +13 -0
  55. package/lib/src/services/strategies/backtest/results/results.schema.d.ts +28 -28
  56. package/lib/src/services/strategies/generate/generate.class.d.ts +11 -0
  57. package/lib/src/services/strategies/generate/generate.d.ts +11 -0
  58. package/lib/src/services/strategies/generate/generate.schema.d.ts +429 -0
  59. package/lib/src/services/strategies/generate/generate.shared.d.ts +13 -0
  60. package/lib/src/services/strategies/generate/generate.shared.js +13 -0
  61. package/lib/src/services/strategies/hyperopt/hyperopt.schema.d.ts +12 -4
  62. package/lib/src/services/strategies/indicators/indicators.schema.d.ts +177 -97
  63. package/lib/src/services/strategies/indicators/talib/talib.schema.d.ts +4 -4
  64. package/lib/src/services/strategies/strategies.schema.d.ts +2708 -303
  65. package/lib/src/services/strategies/templates/templates.schema.d.ts +2142 -12
  66. package/lib/src/services/tools/openapi/openapi.class.d.ts +34 -0
  67. package/lib/src/services/tools/openapi/openapi.d.ts +10 -0
  68. package/lib/src/services/tools/openapi/openapi.shared.d.ts +13 -0
  69. package/lib/src/services/tools/openapi/openapi.shared.js +13 -0
  70. package/lib/src/services/tools/tools.class.d.ts +11 -0
  71. package/lib/src/services/tools/tools.d.ts +11 -0
  72. package/lib/src/services/tools/tools.schema.d.ts +269 -0
  73. package/lib/src/services/tools/tools.shared.d.ts +13 -0
  74. package/lib/src/services/tools/tools.shared.js +13 -0
  75. package/lib/src/services/traders/pods/api/api.schema.d.ts +1284 -188
  76. package/lib/src/services/traders/pods/events/events.schema.d.ts +4 -4
  77. package/lib/src/services/traders/pods/pods.schema.d.ts +1280 -184
  78. package/lib/src/services/traders/traders.schema.d.ts +4 -4
  79. package/lib/src/services/users/users.class.d.ts +2 -2
  80. package/lib/src/services/users/users.schema.d.ts +4 -4
  81. package/package.json +1 -1
@@ -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
  }>>>;
@@ -509,6 +646,7 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
509
646
  provider: "docker";
510
647
  _id: string | {};
511
648
  strategy: Partial<{
649
+ public?: boolean | undefined;
512
650
  traders?: {
513
651
  telegram?: {
514
652
  access_hash?: string | null | undefined;
@@ -647,7 +785,6 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
647
785
  host: string;
648
786
  name: any;
649
787
  provider: "docker";
650
- strategies: string[];
651
788
  secret: string;
652
789
  key: string;
653
790
  createdAt: any;
@@ -656,6 +793,7 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
656
793
  which: string;
657
794
  userId: any;
658
795
  strategy: any;
796
+ strategies: string[];
659
797
  "traders/pods": any;
660
798
  exchange: any;
661
799
  exchangeId: any;
@@ -698,26 +836,143 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
698
836
  updatedAt?: any;
699
837
  userId?: string | {} | undefined;
700
838
  'strategies/templates'?: {
839
+ public?: boolean | undefined;
701
840
  _id?: string | {} | undefined;
702
841
  createdAt?: any;
703
842
  updatedAt?: any;
704
- 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
+ };
705
927
  name: string;
706
928
  type: string;
929
+ revision: number;
707
930
  description: string;
931
+ timeinforce: string;
708
932
  } | undefined;
709
- file?: any;
710
- templateId?: string | {} | undefined;
711
933
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
712
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;
713
960
  minimal_roi?: {
714
961
  minutes: number;
715
962
  profit: number;
716
963
  }[] | undefined;
717
- exit_sell_signal?: boolean | undefined;
718
- exit_profit_only?: boolean | undefined;
719
- exit_profit_offset?: number | undefined;
720
- 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;
721
976
  order_types?: {
722
977
  stoploss?: string | undefined;
723
978
  entry?: "Limit" | "Market" | undefined;
@@ -729,35 +984,54 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
729
984
  stoploss_on_exchange_interval?: number | undefined;
730
985
  stoploss_on_exchange_limit_ratio?: number | undefined;
731
986
  } | undefined;
732
- protections?: {
733
- stop_duration_candles?: number | undefined;
734
- stop_duration_in_seconds?: unknown;
735
- lookback_period_candles?: unknown;
736
- trade_limit?: unknown;
737
- required_profit?: unknown;
738
- max_allowed_drawdown?: unknown;
739
- only_per_pair?: unknown;
740
- enabled: boolean;
741
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
742
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
743
- }[] | undefined;
744
- buywhen?: {
745
- value?: number | undefined;
746
- indicator2?: string | undefined;
747
- 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
+ } | {
748
998
  indicator: string;
749
999
  condition: ">" | "<" | "==";
750
- }[] | undefined;
751
- sellwhen?: {
752
- value?: number | undefined;
753
- indicator2?: string | undefined;
754
- 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
+ } | {
755
1016
  indicator: string;
756
1017
  condition: ">" | "<" | "==";
757
- }[] | undefined;
758
- indicators?: unknown[] | undefined;
759
- code?: unknown;
1018
+ compare_to: {
1019
+ type: "number" | "indicator";
1020
+ value: string | number;
1021
+ };
1022
+ } | undefined;
1023
+ timeinforce?: unknown;
760
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;
761
1035
  configured?: boolean | undefined;
762
1036
  name: any;
763
1037
  'strategies/indicators': any;
@@ -956,7 +1230,6 @@ 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;
@@ -965,6 +1238,7 @@ export declare const tradersPodsResolver: import("@feathersjs/schema").Resolver<
965
1238
  which: string;
966
1239
  userId: any;
967
1240
  strategy: any;
1241
+ strategies: string[];
968
1242
  "traders/pods": any;
969
1243
  exchange: any;
970
1244
  exchangeId: any;
@@ -1009,6 +1283,7 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1009
1283
  provider: "docker";
1010
1284
  _id: string | {};
1011
1285
  strategy: Partial<{
1286
+ public?: boolean | undefined;
1012
1287
  traders?: {
1013
1288
  telegram?: {
1014
1289
  access_hash?: string | null | undefined;
@@ -1147,7 +1422,6 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1147
1422
  host: string;
1148
1423
  name: any;
1149
1424
  provider: "docker";
1150
- strategies: string[];
1151
1425
  secret: string;
1152
1426
  key: string;
1153
1427
  createdAt: any;
@@ -1156,6 +1430,7 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1156
1430
  which: string;
1157
1431
  userId: any;
1158
1432
  strategy: any;
1433
+ strategies: string[];
1159
1434
  "traders/pods": any;
1160
1435
  exchange: any;
1161
1436
  exchangeId: any;
@@ -1198,26 +1473,143 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1198
1473
  updatedAt?: any;
1199
1474
  userId?: string | {} | undefined;
1200
1475
  'strategies/templates'?: {
1476
+ public?: boolean | undefined;
1201
1477
  _id?: string | {} | undefined;
1202
1478
  createdAt?: any;
1203
1479
  updatedAt?: any;
1204
- 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
+ };
1205
1564
  name: string;
1206
1565
  type: string;
1566
+ revision: number;
1207
1567
  description: string;
1568
+ timeinforce: string;
1208
1569
  } | undefined;
1209
- file?: any;
1210
- templateId?: string | {} | undefined;
1211
1570
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
1212
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;
1213
1597
  minimal_roi?: {
1214
1598
  minutes: number;
1215
1599
  profit: number;
1216
1600
  }[] | undefined;
1217
- exit_sell_signal?: boolean | undefined;
1218
- exit_profit_only?: boolean | undefined;
1219
- exit_profit_offset?: number | undefined;
1220
- 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;
1221
1613
  order_types?: {
1222
1614
  stoploss?: string | undefined;
1223
1615
  entry?: "Limit" | "Market" | undefined;
@@ -1229,35 +1621,54 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1229
1621
  stoploss_on_exchange_interval?: number | undefined;
1230
1622
  stoploss_on_exchange_limit_ratio?: number | undefined;
1231
1623
  } | undefined;
1232
- protections?: {
1233
- stop_duration_candles?: number | undefined;
1234
- stop_duration_in_seconds?: unknown;
1235
- lookback_period_candles?: unknown;
1236
- trade_limit?: unknown;
1237
- required_profit?: unknown;
1238
- max_allowed_drawdown?: unknown;
1239
- only_per_pair?: unknown;
1240
- enabled: boolean;
1241
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
1242
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
1243
- }[] | undefined;
1244
- buywhen?: {
1245
- value?: number | undefined;
1246
- indicator2?: string | undefined;
1247
- 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
+ } | {
1248
1635
  indicator: string;
1249
1636
  condition: ">" | "<" | "==";
1250
- }[] | undefined;
1251
- sellwhen?: {
1252
- value?: number | undefined;
1253
- indicator2?: string | undefined;
1254
- 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
+ } | {
1255
1653
  indicator: string;
1256
1654
  condition: ">" | "<" | "==";
1257
- }[] | undefined;
1258
- indicators?: unknown[] | undefined;
1259
- code?: unknown;
1655
+ compare_to: {
1656
+ type: "number" | "indicator";
1657
+ value: string | number;
1658
+ };
1659
+ } | undefined;
1660
+ timeinforce?: unknown;
1260
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;
1261
1672
  configured?: boolean | undefined;
1262
1673
  name: any;
1263
1674
  'strategies/indicators': any;
@@ -1456,7 +1867,6 @@ 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;
@@ -1465,6 +1875,7 @@ export declare const tradersPodsExternalResolver: import("@feathersjs/schema").R
1465
1875
  which: string;
1466
1876
  userId: any;
1467
1877
  strategy: any;
1878
+ strategies: string[];
1468
1879
  "traders/pods": any;
1469
1880
  exchange: any;
1470
1881
  exchangeId: any;
@@ -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
  }>>>;
@@ -2011,6 +2559,7 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2011
2559
  provider: "docker";
2012
2560
  _id: string | {};
2013
2561
  strategy: Partial<{
2562
+ public?: boolean | undefined;
2014
2563
  traders?: {
2015
2564
  telegram?: {
2016
2565
  access_hash?: string | null | undefined;
@@ -2149,7 +2698,6 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2149
2698
  host: string;
2150
2699
  name: any;
2151
2700
  provider: "docker";
2152
- strategies: string[];
2153
2701
  secret: string;
2154
2702
  key: string;
2155
2703
  createdAt: any;
@@ -2158,6 +2706,7 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2158
2706
  which: string;
2159
2707
  userId: any;
2160
2708
  strategy: any;
2709
+ strategies: string[];
2161
2710
  "traders/pods": any;
2162
2711
  exchange: any;
2163
2712
  exchangeId: any;
@@ -2200,26 +2749,143 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2200
2749
  updatedAt?: any;
2201
2750
  userId?: string | {} | undefined;
2202
2751
  'strategies/templates'?: {
2752
+ public?: boolean | undefined;
2203
2753
  _id?: string | {} | undefined;
2204
2754
  createdAt?: any;
2205
2755
  updatedAt?: any;
2206
- 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
+ };
2207
2840
  name: string;
2208
2841
  type: string;
2842
+ revision: number;
2209
2843
  description: string;
2844
+ timeinforce: string;
2210
2845
  } | undefined;
2211
- file?: any;
2212
- templateId?: string | {} | undefined;
2213
2846
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
2214
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;
2215
2873
  minimal_roi?: {
2216
2874
  minutes: number;
2217
2875
  profit: number;
2218
2876
  }[] | undefined;
2219
- exit_sell_signal?: boolean | undefined;
2220
- exit_profit_only?: boolean | undefined;
2221
- exit_profit_offset?: number | undefined;
2222
- 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;
2223
2889
  order_types?: {
2224
2890
  stoploss?: string | undefined;
2225
2891
  entry?: "Limit" | "Market" | undefined;
@@ -2231,35 +2897,54 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2231
2897
  stoploss_on_exchange_interval?: number | undefined;
2232
2898
  stoploss_on_exchange_limit_ratio?: number | undefined;
2233
2899
  } | undefined;
2234
- protections?: {
2235
- stop_duration_candles?: number | undefined;
2236
- stop_duration_in_seconds?: unknown;
2237
- lookback_period_candles?: unknown;
2238
- trade_limit?: unknown;
2239
- required_profit?: unknown;
2240
- max_allowed_drawdown?: unknown;
2241
- only_per_pair?: unknown;
2242
- enabled: boolean;
2243
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
2244
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
2245
- }[] | undefined;
2246
- buywhen?: {
2247
- value?: number | undefined;
2248
- indicator2?: string | undefined;
2249
- 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
+ } | {
2250
2911
  indicator: string;
2251
2912
  condition: ">" | "<" | "==";
2252
- }[] | undefined;
2253
- sellwhen?: {
2254
- value?: number | undefined;
2255
- indicator2?: string | undefined;
2256
- 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
+ } | {
2257
2929
  indicator: string;
2258
2930
  condition: ">" | "<" | "==";
2259
- }[] | undefined;
2260
- indicators?: unknown[] | undefined;
2261
- code?: unknown;
2931
+ compare_to: {
2932
+ type: "number" | "indicator";
2933
+ value: string | number;
2934
+ };
2935
+ } | undefined;
2936
+ timeinforce?: unknown;
2262
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;
2263
2948
  configured?: boolean | undefined;
2264
2949
  name: any;
2265
2950
  'strategies/indicators': any;
@@ -2458,7 +3143,6 @@ 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;
@@ -2467,6 +3151,7 @@ export declare const tradersPodsDataResolver: import("@feathersjs/schema").Resol
2467
3151
  which: string;
2468
3152
  userId: any;
2469
3153
  strategy: any;
3154
+ strategies: string[];
2470
3155
  "traders/pods": any;
2471
3156
  exchange: any;
2472
3157
  exchangeId: any;
@@ -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
  }>>>;
@@ -3013,6 +3835,7 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3013
3835
  provider: "docker";
3014
3836
  _id: string | {};
3015
3837
  strategy: Partial<{
3838
+ public?: boolean | undefined;
3016
3839
  traders?: {
3017
3840
  telegram?: {
3018
3841
  access_hash?: string | null | undefined;
@@ -3151,7 +3974,6 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3151
3974
  host: string;
3152
3975
  name: any;
3153
3976
  provider: "docker";
3154
- strategies: string[];
3155
3977
  secret: string;
3156
3978
  key: string;
3157
3979
  createdAt: any;
@@ -3160,6 +3982,7 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3160
3982
  which: string;
3161
3983
  userId: any;
3162
3984
  strategy: any;
3985
+ strategies: string[];
3163
3986
  "traders/pods": any;
3164
3987
  exchange: any;
3165
3988
  exchangeId: any;
@@ -3202,26 +4025,143 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3202
4025
  updatedAt?: any;
3203
4026
  userId?: string | {} | undefined;
3204
4027
  'strategies/templates'?: {
4028
+ public?: boolean | undefined;
3205
4029
  _id?: string | {} | undefined;
3206
4030
  createdAt?: any;
3207
4031
  updatedAt?: any;
3208
- 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
+ };
3209
4116
  name: string;
3210
4117
  type: string;
4118
+ revision: number;
3211
4119
  description: string;
4120
+ timeinforce: string;
3212
4121
  } | undefined;
3213
- file?: any;
3214
- templateId?: string | {} | undefined;
3215
4122
  interval?: "1m" | "5m" | "30m" | "2h" | "6h" | "12h" | "1d" | "1w" | undefined;
3216
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;
3217
4149
  minimal_roi?: {
3218
4150
  minutes: number;
3219
4151
  profit: number;
3220
4152
  }[] | undefined;
3221
- exit_sell_signal?: boolean | undefined;
3222
- exit_profit_only?: boolean | undefined;
3223
- exit_profit_offset?: number | undefined;
3224
- 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;
3225
4165
  order_types?: {
3226
4166
  stoploss?: string | undefined;
3227
4167
  entry?: "Limit" | "Market" | undefined;
@@ -3233,35 +4173,54 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3233
4173
  stoploss_on_exchange_interval?: number | undefined;
3234
4174
  stoploss_on_exchange_limit_ratio?: number | undefined;
3235
4175
  } | undefined;
3236
- protections?: {
3237
- stop_duration_candles?: number | undefined;
3238
- stop_duration_in_seconds?: unknown;
3239
- lookback_period_candles?: unknown;
3240
- trade_limit?: unknown;
3241
- required_profit?: unknown;
3242
- max_allowed_drawdown?: unknown;
3243
- only_per_pair?: unknown;
3244
- enabled: boolean;
3245
- type: "coolDownPeriod" | "lowProfitPairs" | "stoplossGuard" | "maxDrawdown";
3246
- method: "CooldownPeriod" | "LowProfitPairs" | "StoplossGuard" | "MaxDrawdown";
3247
- }[] | undefined;
3248
- buywhen?: {
3249
- value?: number | undefined;
3250
- indicator2?: string | undefined;
3251
- 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
+ } | {
3252
4187
  indicator: string;
3253
4188
  condition: ">" | "<" | "==";
3254
- }[] | undefined;
3255
- sellwhen?: {
3256
- value?: number | undefined;
3257
- indicator2?: string | undefined;
3258
- 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
+ } | {
3259
4205
  indicator: string;
3260
4206
  condition: ">" | "<" | "==";
3261
- }[] | undefined;
3262
- indicators?: unknown[] | undefined;
3263
- code?: unknown;
4207
+ compare_to: {
4208
+ type: "number" | "indicator";
4209
+ value: string | number;
4210
+ };
4211
+ } | undefined;
4212
+ timeinforce?: unknown;
3264
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;
3265
4224
  configured?: boolean | undefined;
3266
4225
  name: any;
3267
4226
  'strategies/indicators': any;
@@ -3460,7 +4419,6 @@ 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;
@@ -3469,6 +4427,7 @@ export declare const tradersPodsPatchResolver: import("@feathersjs/schema").Reso
3469
4427
  which: string;
3470
4428
  userId: any;
3471
4429
  strategy: any;
4430
+ strategies: string[];
3472
4431
  "traders/pods": any;
3473
4432
  exchange: any;
3474
4433
  exchangeId: any;
@@ -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
  }>>>;