@gbozee/ultimate 0.0.2-190 → 0.0.2-192

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.
@@ -642,6 +642,7 @@ export declare function determineOptimumReward(payload: {
642
642
  high_range?: number;
643
643
  target_loss?: number;
644
644
  distribution?: GetEntriesParams["distribution"];
645
+ max_size?: number;
645
646
  }): number | {
646
647
  result: any[];
647
648
  value: number;
@@ -649,6 +650,7 @@ export declare function determineOptimumReward(payload: {
649
650
  risk_per_trade: number;
650
651
  max: number;
651
652
  min: number;
653
+ avg_size: any;
652
654
  neg_pnl: any;
653
655
  entry: any;
654
656
  };
@@ -681,6 +683,7 @@ export declare function computeRiskReward(payload: {
681
683
  risk_per_trade: number;
682
684
  target_loss?: number;
683
685
  distribution?: GetEntriesParams["distribution"];
686
+ max_size?: number;
684
687
  }): number | {
685
688
  result: any[];
686
689
  value: number;
@@ -688,6 +691,7 @@ export declare function computeRiskReward(payload: {
688
691
  risk_per_trade: number;
689
692
  max: number;
690
693
  min: number;
694
+ avg_size: any;
691
695
  neg_pnl: any;
692
696
  entry: any;
693
697
  };
@@ -698,6 +702,7 @@ export declare function getRiskReward(payload: {
698
702
  global_config: GlobalConfig;
699
703
  force_exact_risk?: boolean;
700
704
  target_loss?: number;
705
+ max_size?: number;
701
706
  distribution?: GetEntriesParams["distribution"];
702
707
  }): any;
703
708
  export declare function computeProfitDetail(payload: {
@@ -913,6 +918,7 @@ export declare function generateOppositeTradeConfig(payload: {
913
918
  risk_per_trade: number;
914
919
  max: number;
915
920
  min: number;
921
+ avg_size: any;
916
922
  neg_pnl: any;
917
923
  entry: any;
918
924
  };
@@ -980,6 +986,7 @@ export declare function generateDangerousConfig(payload: {
980
986
  risk_per_trade: number;
981
987
  max: number;
982
988
  min: number;
989
+ avg_size: any;
983
990
  neg_pnl: any;
984
991
  entry: any;
985
992
  };
@@ -2110,7 +2110,8 @@ function determineOptimumReward(payload) {
2110
2110
  low_range = 1,
2111
2111
  high_range = 199,
2112
2112
  target_loss,
2113
- distribution
2113
+ distribution,
2114
+ max_size
2114
2115
  } = payload;
2115
2116
  const criterion = app_config.strategy || "quantity";
2116
2117
  const risk_rewards = createArray(low_range, high_range, 1);
@@ -2132,6 +2133,7 @@ function determineOptimumReward(payload) {
2132
2133
  let min = Infinity;
2133
2134
  let neg_pnl = trades[0]?.neg_pnl || 0;
2134
2135
  let entry = trades.at(-1)?.entry;
2136
+ let avg_size = trades[0]?.avg_size || 0;
2135
2137
  if (!entry) {
2136
2138
  return null;
2137
2139
  }
@@ -2148,11 +2150,15 @@ function determineOptimumReward(payload) {
2148
2150
  risk_per_trade: app_config.risk_per_trade,
2149
2151
  max,
2150
2152
  min,
2153
+ avg_size,
2151
2154
  neg_pnl,
2152
2155
  entry
2153
2156
  };
2154
2157
  });
2155
2158
  func = func.filter((r) => Boolean(r));
2159
+ if (max_size !== undefined && max_size > 0) {
2160
+ func = func.filter((r) => r.avg_size <= max_size);
2161
+ }
2156
2162
  if (target_loss === undefined) {
2157
2163
  func = func.filter((r) => {
2158
2164
  let foundIndex = r?.result.findIndex((e) => e.quantity === r.max);
@@ -2290,7 +2296,15 @@ function determineOptimumRisk(config, payload, params) {
2290
2296
  };
2291
2297
  }
2292
2298
  function computeRiskReward(payload) {
2293
- const { app_config, entry, stop, risk_per_trade, target_loss, distribution } = payload;
2299
+ const {
2300
+ app_config,
2301
+ entry,
2302
+ stop,
2303
+ risk_per_trade,
2304
+ target_loss,
2305
+ distribution,
2306
+ max_size
2307
+ } = payload;
2294
2308
  const kind = entry > stop ? "long" : "short";
2295
2309
  app_config.kind = kind;
2296
2310
  app_config.entry = entry;
@@ -2299,12 +2313,14 @@ function computeRiskReward(payload) {
2299
2313
  const result = determineOptimumReward({
2300
2314
  app_config,
2301
2315
  target_loss,
2302
- distribution
2316
+ distribution,
2317
+ max_size
2303
2318
  });
2304
2319
  return result;
2305
2320
  }
2306
2321
  function getRiskReward(payload) {
2307
2322
  const {
2323
+ max_size,
2308
2324
  entry,
2309
2325
  stop,
2310
2326
  risk,
@@ -2327,7 +2343,8 @@ function getRiskReward(payload) {
2327
2343
  stop,
2328
2344
  risk_per_trade: risk,
2329
2345
  target_loss,
2330
- distribution
2346
+ distribution,
2347
+ max_size
2331
2348
  });
2332
2349
  if (force_exact_risk) {
2333
2350
  const new_risk_per_trade = determineOptimumRisk(global_config, {
package/dist/index.cjs CHANGED
@@ -54960,7 +54960,10 @@ class AppDatabase {
54960
54960
  const existing_stop_orders = await this.pb.collection("orders").getFullList({
54961
54961
  filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
54962
54962
  });
54963
- const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
54963
+ const stop_limit_orders = await this.pb.collection("orders").getFullList({
54964
+ filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop > 0`
54965
+ });
54966
+ const exchange_order_ids = orders.concat(existing_stop_orders).concat(stop_limit_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
54964
54967
  if (raw) {
54965
54968
  return exchange_order_ids;
54966
54969
  }
@@ -57486,7 +57489,8 @@ function determineOptimumReward(payload) {
57486
57489
  low_range = 1,
57487
57490
  high_range = 199,
57488
57491
  target_loss,
57489
- distribution
57492
+ distribution,
57493
+ max_size
57490
57494
  } = payload;
57491
57495
  const criterion = app_config.strategy || "quantity";
57492
57496
  const risk_rewards = createArray(low_range, high_range, 1);
@@ -57508,6 +57512,7 @@ function determineOptimumReward(payload) {
57508
57512
  let min = Infinity;
57509
57513
  let neg_pnl = trades[0]?.neg_pnl || 0;
57510
57514
  let entry = trades.at(-1)?.entry;
57515
+ let avg_size = trades[0]?.avg_size || 0;
57511
57516
  if (!entry) {
57512
57517
  return null;
57513
57518
  }
@@ -57524,11 +57529,15 @@ function determineOptimumReward(payload) {
57524
57529
  risk_per_trade: app_config.risk_per_trade,
57525
57530
  max,
57526
57531
  min,
57532
+ avg_size,
57527
57533
  neg_pnl,
57528
57534
  entry
57529
57535
  };
57530
57536
  });
57531
57537
  func = func.filter((r2) => Boolean(r2));
57538
+ if (max_size !== undefined && max_size > 0) {
57539
+ func = func.filter((r2) => r2.avg_size <= max_size);
57540
+ }
57532
57541
  if (target_loss === undefined) {
57533
57542
  func = func.filter((r2) => {
57534
57543
  let foundIndex = r2?.result.findIndex((e2) => e2.quantity === r2.max);
@@ -57666,7 +57675,15 @@ function determineOptimumRisk(config2, payload, params) {
57666
57675
  };
57667
57676
  }
57668
57677
  function computeRiskReward(payload) {
57669
- const { app_config, entry, stop, risk_per_trade, target_loss, distribution } = payload;
57678
+ const {
57679
+ app_config,
57680
+ entry,
57681
+ stop,
57682
+ risk_per_trade,
57683
+ target_loss,
57684
+ distribution,
57685
+ max_size
57686
+ } = payload;
57670
57687
  const kind = entry > stop ? "long" : "short";
57671
57688
  app_config.kind = kind;
57672
57689
  app_config.entry = entry;
@@ -57675,12 +57692,14 @@ function computeRiskReward(payload) {
57675
57692
  const result = determineOptimumReward({
57676
57693
  app_config,
57677
57694
  target_loss,
57678
- distribution
57695
+ distribution,
57696
+ max_size
57679
57697
  });
57680
57698
  return result;
57681
57699
  }
57682
57700
  function getRiskReward(payload) {
57683
57701
  const {
57702
+ max_size,
57684
57703
  entry,
57685
57704
  stop,
57686
57705
  risk,
@@ -57703,7 +57722,8 @@ function getRiskReward(payload) {
57703
57722
  stop,
57704
57723
  risk_per_trade: risk,
57705
57724
  target_loss,
57706
- distribution
57725
+ distribution,
57726
+ max_size
57707
57727
  });
57708
57728
  if (force_exact_risk) {
57709
57729
  const new_risk_per_trade = determineOptimumRisk(global_config, {
package/dist/index.d.ts CHANGED
@@ -1549,6 +1549,7 @@ export declare function determineOptimumReward(payload: {
1549
1549
  high_range?: number;
1550
1550
  target_loss?: number;
1551
1551
  distribution?: GetEntriesParams["distribution"];
1552
+ max_size?: number;
1552
1553
  }): number | {
1553
1554
  result: any[];
1554
1555
  value: number;
@@ -1556,6 +1557,7 @@ export declare function determineOptimumReward(payload: {
1556
1557
  risk_per_trade: number;
1557
1558
  max: number;
1558
1559
  min: number;
1560
+ avg_size: any;
1559
1561
  neg_pnl: any;
1560
1562
  entry: any;
1561
1563
  };
@@ -1588,6 +1590,7 @@ export declare function computeRiskReward(payload: {
1588
1590
  risk_per_trade: number;
1589
1591
  target_loss?: number;
1590
1592
  distribution?: GetEntriesParams["distribution"];
1593
+ max_size?: number;
1591
1594
  }): number | {
1592
1595
  result: any[];
1593
1596
  value: number;
@@ -1595,6 +1598,7 @@ export declare function computeRiskReward(payload: {
1595
1598
  risk_per_trade: number;
1596
1599
  max: number;
1597
1600
  min: number;
1601
+ avg_size: any;
1598
1602
  neg_pnl: any;
1599
1603
  entry: any;
1600
1604
  };
@@ -1605,6 +1609,7 @@ export declare function getRiskReward(payload: {
1605
1609
  global_config: GlobalConfig;
1606
1610
  force_exact_risk?: boolean;
1607
1611
  target_loss?: number;
1612
+ max_size?: number;
1608
1613
  distribution?: GetEntriesParams["distribution"];
1609
1614
  }): any;
1610
1615
  export declare function computeProfitDetail(payload: {
@@ -1820,6 +1825,7 @@ export declare function generateOppositeTradeConfig(payload: {
1820
1825
  risk_per_trade: number;
1821
1826
  max: number;
1822
1827
  min: number;
1828
+ avg_size: any;
1823
1829
  neg_pnl: any;
1824
1830
  entry: any;
1825
1831
  };
@@ -1887,6 +1893,7 @@ export declare function generateDangerousConfig(payload: {
1887
1893
  risk_per_trade: number;
1888
1894
  max: number;
1889
1895
  min: number;
1896
+ avg_size: any;
1890
1897
  neg_pnl: any;
1891
1898
  entry: any;
1892
1899
  };
@@ -2238,6 +2245,7 @@ export declare class ExchangePosition {
2238
2245
  risk_per_trade: number;
2239
2246
  max: number;
2240
2247
  min: number;
2248
+ avg_size: any;
2241
2249
  neg_pnl: any;
2242
2250
  entry: any;
2243
2251
  };
@@ -2249,6 +2257,7 @@ export declare class ExchangePosition {
2249
2257
  risk_per_trade: number;
2250
2258
  max: number;
2251
2259
  min: number;
2260
+ avg_size: any;
2252
2261
  neg_pnl: any;
2253
2262
  entry: any;
2254
2263
  }>;
@@ -2326,6 +2335,7 @@ export declare class ExchangePosition {
2326
2335
  risk_per_trade: number;
2327
2336
  max: number;
2328
2337
  min: number;
2338
+ avg_size: any;
2329
2339
  neg_pnl: any;
2330
2340
  entry: any;
2331
2341
  };
@@ -2902,6 +2912,7 @@ declare class ExchangeAccount$1 {
2902
2912
  risk_per_trade: number;
2903
2913
  max: number;
2904
2914
  min: number;
2915
+ avg_size: any;
2905
2916
  neg_pnl: any;
2906
2917
  entry: any;
2907
2918
  };
package/dist/index.js CHANGED
@@ -54898,7 +54898,10 @@ class AppDatabase {
54898
54898
  const existing_stop_orders = await this.pb.collection("orders").getFullList({
54899
54899
  filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
54900
54900
  });
54901
- const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
54901
+ const stop_limit_orders = await this.pb.collection("orders").getFullList({
54902
+ filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop > 0`
54903
+ });
54904
+ const exchange_order_ids = orders.concat(existing_stop_orders).concat(stop_limit_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
54902
54905
  if (raw) {
54903
54906
  return exchange_order_ids;
54904
54907
  }
@@ -57424,7 +57427,8 @@ function determineOptimumReward(payload) {
57424
57427
  low_range = 1,
57425
57428
  high_range = 199,
57426
57429
  target_loss,
57427
- distribution
57430
+ distribution,
57431
+ max_size
57428
57432
  } = payload;
57429
57433
  const criterion = app_config.strategy || "quantity";
57430
57434
  const risk_rewards = createArray(low_range, high_range, 1);
@@ -57446,6 +57450,7 @@ function determineOptimumReward(payload) {
57446
57450
  let min = Infinity;
57447
57451
  let neg_pnl = trades[0]?.neg_pnl || 0;
57448
57452
  let entry = trades.at(-1)?.entry;
57453
+ let avg_size = trades[0]?.avg_size || 0;
57449
57454
  if (!entry) {
57450
57455
  return null;
57451
57456
  }
@@ -57462,11 +57467,15 @@ function determineOptimumReward(payload) {
57462
57467
  risk_per_trade: app_config.risk_per_trade,
57463
57468
  max,
57464
57469
  min,
57470
+ avg_size,
57465
57471
  neg_pnl,
57466
57472
  entry
57467
57473
  };
57468
57474
  });
57469
57475
  func = func.filter((r2) => Boolean(r2));
57476
+ if (max_size !== undefined && max_size > 0) {
57477
+ func = func.filter((r2) => r2.avg_size <= max_size);
57478
+ }
57470
57479
  if (target_loss === undefined) {
57471
57480
  func = func.filter((r2) => {
57472
57481
  let foundIndex = r2?.result.findIndex((e2) => e2.quantity === r2.max);
@@ -57604,7 +57613,15 @@ function determineOptimumRisk(config2, payload, params) {
57604
57613
  };
57605
57614
  }
57606
57615
  function computeRiskReward(payload) {
57607
- const { app_config, entry, stop, risk_per_trade, target_loss, distribution } = payload;
57616
+ const {
57617
+ app_config,
57618
+ entry,
57619
+ stop,
57620
+ risk_per_trade,
57621
+ target_loss,
57622
+ distribution,
57623
+ max_size
57624
+ } = payload;
57608
57625
  const kind = entry > stop ? "long" : "short";
57609
57626
  app_config.kind = kind;
57610
57627
  app_config.entry = entry;
@@ -57613,12 +57630,14 @@ function computeRiskReward(payload) {
57613
57630
  const result = determineOptimumReward({
57614
57631
  app_config,
57615
57632
  target_loss,
57616
- distribution
57633
+ distribution,
57634
+ max_size
57617
57635
  });
57618
57636
  return result;
57619
57637
  }
57620
57638
  function getRiskReward(payload) {
57621
57639
  const {
57640
+ max_size,
57622
57641
  entry,
57623
57642
  stop,
57624
57643
  risk,
@@ -57641,7 +57660,8 @@ function getRiskReward(payload) {
57641
57660
  stop,
57642
57661
  risk_per_trade: risk,
57643
57662
  target_loss,
57644
- distribution
57663
+ distribution,
57664
+ max_size
57645
57665
  });
57646
57666
  if (force_exact_risk) {
57647
57667
  const new_risk_per_trade = determineOptimumRisk(global_config, {
@@ -61654,7 +61654,10 @@ class AppDatabase {
61654
61654
  const existing_stop_orders = await this.pb.collection("orders").getFullList({
61655
61655
  filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
61656
61656
  });
61657
- const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
61657
+ const stop_limit_orders = await this.pb.collection("orders").getFullList({
61658
+ filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop > 0`
61659
+ });
61660
+ const exchange_order_ids = orders.concat(existing_stop_orders).concat(stop_limit_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
61658
61661
  if (raw) {
61659
61662
  return exchange_order_ids;
61660
61663
  }
@@ -64160,7 +64163,8 @@ function determineOptimumReward(payload) {
64160
64163
  low_range = 1,
64161
64164
  high_range = 199,
64162
64165
  target_loss,
64163
- distribution
64166
+ distribution,
64167
+ max_size
64164
64168
  } = payload;
64165
64169
  const criterion = app_config.strategy || "quantity";
64166
64170
  const risk_rewards = createArray(low_range, high_range, 1);
@@ -64182,6 +64186,7 @@ function determineOptimumReward(payload) {
64182
64186
  let min = Infinity;
64183
64187
  let neg_pnl = trades[0]?.neg_pnl || 0;
64184
64188
  let entry = trades.at(-1)?.entry;
64189
+ let avg_size = trades[0]?.avg_size || 0;
64185
64190
  if (!entry) {
64186
64191
  return null;
64187
64192
  }
@@ -64198,11 +64203,15 @@ function determineOptimumReward(payload) {
64198
64203
  risk_per_trade: app_config.risk_per_trade,
64199
64204
  max,
64200
64205
  min,
64206
+ avg_size,
64201
64207
  neg_pnl,
64202
64208
  entry
64203
64209
  };
64204
64210
  });
64205
64211
  func = func.filter((r2) => Boolean(r2));
64212
+ if (max_size !== undefined && max_size > 0) {
64213
+ func = func.filter((r2) => r2.avg_size <= max_size);
64214
+ }
64206
64215
  if (target_loss === undefined) {
64207
64216
  func = func.filter((r2) => {
64208
64217
  let foundIndex = r2?.result.findIndex((e2) => e2.quantity === r2.max);
@@ -64340,7 +64349,15 @@ function determineOptimumRisk(config2, payload, params) {
64340
64349
  };
64341
64350
  }
64342
64351
  function computeRiskReward(payload) {
64343
- const { app_config, entry, stop, risk_per_trade, target_loss, distribution } = payload;
64352
+ const {
64353
+ app_config,
64354
+ entry,
64355
+ stop,
64356
+ risk_per_trade,
64357
+ target_loss,
64358
+ distribution,
64359
+ max_size
64360
+ } = payload;
64344
64361
  const kind = entry > stop ? "long" : "short";
64345
64362
  app_config.kind = kind;
64346
64363
  app_config.entry = entry;
@@ -64349,12 +64366,14 @@ function computeRiskReward(payload) {
64349
64366
  const result = determineOptimumReward({
64350
64367
  app_config,
64351
64368
  target_loss,
64352
- distribution
64369
+ distribution,
64370
+ max_size
64353
64371
  });
64354
64372
  return result;
64355
64373
  }
64356
64374
  function getRiskReward(payload) {
64357
64375
  const {
64376
+ max_size,
64358
64377
  entry,
64359
64378
  stop,
64360
64379
  risk,
@@ -64377,7 +64396,8 @@ function getRiskReward(payload) {
64377
64396
  stop,
64378
64397
  risk_per_trade: risk,
64379
64398
  target_loss,
64380
- distribution
64399
+ distribution,
64400
+ max_size
64381
64401
  });
64382
64402
  if (force_exact_risk) {
64383
64403
  const new_risk_per_trade = determineOptimumRisk(global_config, {
@@ -61627,7 +61627,10 @@ class AppDatabase {
61627
61627
  const existing_stop_orders = await this.pb.collection("orders").getFullList({
61628
61628
  filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
61629
61629
  });
61630
- const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
61630
+ const stop_limit_orders = await this.pb.collection("orders").getFullList({
61631
+ filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop > 0`
61632
+ });
61633
+ const exchange_order_ids = orders.concat(existing_stop_orders).concat(stop_limit_orders).map((o) => account.exchange === "bybit" ? o.order_id : account.exchange === "binance" && o.client_order_id ? o.client_order_id : parseInt(o.order_id, 10));
61631
61634
  if (raw) {
61632
61635
  return exchange_order_ids;
61633
61636
  }
@@ -64133,7 +64136,8 @@ function determineOptimumReward(payload) {
64133
64136
  low_range = 1,
64134
64137
  high_range = 199,
64135
64138
  target_loss,
64136
- distribution
64139
+ distribution,
64140
+ max_size
64137
64141
  } = payload;
64138
64142
  const criterion = app_config.strategy || "quantity";
64139
64143
  const risk_rewards = createArray(low_range, high_range, 1);
@@ -64155,6 +64159,7 @@ function determineOptimumReward(payload) {
64155
64159
  let min = Infinity;
64156
64160
  let neg_pnl = trades[0]?.neg_pnl || 0;
64157
64161
  let entry = trades.at(-1)?.entry;
64162
+ let avg_size = trades[0]?.avg_size || 0;
64158
64163
  if (!entry) {
64159
64164
  return null;
64160
64165
  }
@@ -64171,11 +64176,15 @@ function determineOptimumReward(payload) {
64171
64176
  risk_per_trade: app_config.risk_per_trade,
64172
64177
  max,
64173
64178
  min,
64179
+ avg_size,
64174
64180
  neg_pnl,
64175
64181
  entry
64176
64182
  };
64177
64183
  });
64178
64184
  func = func.filter((r2) => Boolean(r2));
64185
+ if (max_size !== undefined && max_size > 0) {
64186
+ func = func.filter((r2) => r2.avg_size <= max_size);
64187
+ }
64179
64188
  if (target_loss === undefined) {
64180
64189
  func = func.filter((r2) => {
64181
64190
  let foundIndex = r2?.result.findIndex((e2) => e2.quantity === r2.max);
@@ -64313,7 +64322,15 @@ function determineOptimumRisk(config2, payload, params) {
64313
64322
  };
64314
64323
  }
64315
64324
  function computeRiskReward(payload) {
64316
- const { app_config, entry, stop, risk_per_trade, target_loss, distribution } = payload;
64325
+ const {
64326
+ app_config,
64327
+ entry,
64328
+ stop,
64329
+ risk_per_trade,
64330
+ target_loss,
64331
+ distribution,
64332
+ max_size
64333
+ } = payload;
64317
64334
  const kind = entry > stop ? "long" : "short";
64318
64335
  app_config.kind = kind;
64319
64336
  app_config.entry = entry;
@@ -64322,12 +64339,14 @@ function computeRiskReward(payload) {
64322
64339
  const result = determineOptimumReward({
64323
64340
  app_config,
64324
64341
  target_loss,
64325
- distribution
64342
+ distribution,
64343
+ max_size
64326
64344
  });
64327
64345
  return result;
64328
64346
  }
64329
64347
  function getRiskReward(payload) {
64330
64348
  const {
64349
+ max_size,
64331
64350
  entry,
64332
64351
  stop,
64333
64352
  risk,
@@ -64350,7 +64369,8 @@ function getRiskReward(payload) {
64350
64369
  stop,
64351
64370
  risk_per_trade: risk,
64352
64371
  target_loss,
64353
- distribution
64372
+ distribution,
64373
+ max_size
64354
64374
  });
64355
64375
  if (force_exact_risk) {
64356
64376
  const new_risk_per_trade = determineOptimumRisk(global_config, {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gbozee/ultimate",
3
3
  "type": "module",
4
- "version": "0.0.2-190",
4
+ "version": "0.0.2-192",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",