shufflecom-calculations 6.12.0 → 6.13.0

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.
@@ -1,11 +1,8 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  export declare const STONKS_MIN_TAKE_PROFIT_MULTIPLIER: BigNumber;
3
- export declare const STONKS_TP_MIN_PROXIMITY_TO_ENTRY: BigNumber;
4
- export declare const STONKS_TP_MIN_PROXIMITY_TO_BUST: BigNumber;
5
3
  export declare const STONKS_INTERNAL_PRICE_DECIMAL_PLACES = 10;
6
4
  export declare const STONKS_MIN_LEVERAGE: BigNumber;
7
5
  export declare const STONKS_MAX_LEVERAGE: BigNumber;
8
- export declare const STONKS_MAX_ACTIVE_BETS_PER_ACCOUNT = 20;
9
6
  export declare const STONKS_START_PRICE: BigNumber;
10
7
  export declare const STONKS_VOLATILITY = 0.001;
11
8
  export declare const STONKS_PRICE_DECIMAL_PLACES = 10;
@@ -17,5 +14,4 @@ export declare const STONKS_ROUND_TICK_COUNT: number;
17
14
  export declare const STONKS_MAX_TICK_HISTORY_MS: number;
18
15
  export declare const STONKS_CHECKPOINT_INTERVAL_TICKS = 500;
19
16
  export declare const STONKS_PRICE_BAR_INTERVAL_TICKS: number;
20
- export declare const STONKS_PROFIT_FEE_RATE: BigNumber;
21
- export declare const STONKS_CONTRACT_SCALE: BigNumber;
17
+ export declare const STONKS_PAYOUT_FEE_RATE: BigNumber;
@@ -3,15 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.STONKS_CONTRACT_SCALE = exports.STONKS_PROFIT_FEE_RATE = exports.STONKS_PRICE_BAR_INTERVAL_TICKS = exports.STONKS_CHECKPOINT_INTERVAL_TICKS = exports.STONKS_MAX_TICK_HISTORY_MS = exports.STONKS_ROUND_TICK_COUNT = exports.STONKS_ROUND_DURATION_MS = exports.STONKS_MAX_STALE_CLIENT_TICKS = exports.STONKS_SET_TICK_RETRY_DELAY_MS = exports.STONKS_TICK_DURATION_MS = exports.STONKS_PRICE_DECIMAL_PLACES = exports.STONKS_VOLATILITY = exports.STONKS_START_PRICE = exports.STONKS_MAX_ACTIVE_BETS_PER_ACCOUNT = exports.STONKS_MAX_LEVERAGE = exports.STONKS_MIN_LEVERAGE = exports.STONKS_INTERNAL_PRICE_DECIMAL_PLACES = exports.STONKS_TP_MIN_PROXIMITY_TO_BUST = exports.STONKS_TP_MIN_PROXIMITY_TO_ENTRY = exports.STONKS_MIN_TAKE_PROFIT_MULTIPLIER = void 0;
6
+ exports.STONKS_PAYOUT_FEE_RATE = exports.STONKS_PRICE_BAR_INTERVAL_TICKS = exports.STONKS_CHECKPOINT_INTERVAL_TICKS = exports.STONKS_MAX_TICK_HISTORY_MS = exports.STONKS_ROUND_TICK_COUNT = exports.STONKS_ROUND_DURATION_MS = exports.STONKS_MAX_STALE_CLIENT_TICKS = exports.STONKS_SET_TICK_RETRY_DELAY_MS = exports.STONKS_TICK_DURATION_MS = exports.STONKS_PRICE_DECIMAL_PLACES = exports.STONKS_VOLATILITY = exports.STONKS_START_PRICE = exports.STONKS_MAX_LEVERAGE = exports.STONKS_MIN_LEVERAGE = exports.STONKS_INTERNAL_PRICE_DECIMAL_PLACES = exports.STONKS_MIN_TAKE_PROFIT_MULTIPLIER = void 0;
7
7
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
8
  exports.STONKS_MIN_TAKE_PROFIT_MULTIPLIER = (0, bignumber_js_1.default)(1.05);
9
- exports.STONKS_TP_MIN_PROXIMITY_TO_ENTRY = (0, bignumber_js_1.default)(0.001);
10
- exports.STONKS_TP_MIN_PROXIMITY_TO_BUST = (0, bignumber_js_1.default)(0.001);
11
9
  exports.STONKS_INTERNAL_PRICE_DECIMAL_PLACES = 10;
12
10
  exports.STONKS_MIN_LEVERAGE = (0, bignumber_js_1.default)(1);
13
11
  exports.STONKS_MAX_LEVERAGE = (0, bignumber_js_1.default)(1000);
14
- exports.STONKS_MAX_ACTIVE_BETS_PER_ACCOUNT = 20;
15
12
  exports.STONKS_START_PRICE = (0, bignumber_js_1.default)(1000);
16
13
  exports.STONKS_VOLATILITY = 0.001;
17
14
  exports.STONKS_PRICE_DECIMAL_PLACES = 10;
@@ -23,6 +20,5 @@ exports.STONKS_ROUND_TICK_COUNT = exports.STONKS_ROUND_DURATION_MS / exports.STO
23
20
  exports.STONKS_MAX_TICK_HISTORY_MS = 48 * 60 * 60 * 1000;
24
21
  exports.STONKS_CHECKPOINT_INTERVAL_TICKS = 500;
25
22
  exports.STONKS_PRICE_BAR_INTERVAL_TICKS = 5000 / exports.STONKS_TICK_DURATION_MS;
26
- exports.STONKS_PROFIT_FEE_RATE = (0, bignumber_js_1.default)(0.05);
27
- exports.STONKS_CONTRACT_SCALE = (0, bignumber_js_1.default)(10).pow(6);
23
+ exports.STONKS_PAYOUT_FEE_RATE = (0, bignumber_js_1.default)(0.02);
28
24
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/games/stonks/constants.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAExB,QAAA,iCAAiC,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AAEpD,QAAA,gCAAgC,GAAG,IAAA,sBAAS,EAAC,KAAK,CAAC,CAAC;AACpD,QAAA,+BAA+B,GAAG,IAAA,sBAAS,EAAC,KAAK,CAAC,CAAC;AAInD,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAG1C,QAAA,mBAAmB,GAAG,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC;AACnC,QAAA,mBAAmB,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AAEtC,QAAA,kCAAkC,GAAG,EAAE,CAAC;AAExC,QAAA,kBAAkB,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AACrC,QAAA,iBAAiB,GAAG,KAAK,CAAC;AAE1B,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAEjC,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE9B,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAErC,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEnC,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAK,CAAC;AAChD,QAAA,uBAAuB,GAAG,gCAAwB,GAAG,+BAAuB,CAAC;AAI7E,QAAA,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAK,CAAC;AAGlD,QAAA,gCAAgC,GAAG,GAAG,CAAC;AAEvC,QAAA,+BAA+B,GAAG,IAAK,GAAG,+BAAuB,CAAC;AAElE,QAAA,sBAAsB,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AAGzC,QAAA,qBAAqB,GAAG,IAAA,sBAAS,EAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/games/stonks/constants.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAExB,QAAA,iCAAiC,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AAIpD,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAG1C,QAAA,mBAAmB,GAAG,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC;AACnC,QAAA,mBAAmB,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AAEtC,QAAA,kBAAkB,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;AACrC,QAAA,iBAAiB,GAAG,KAAK,CAAC;AAE1B,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAEjC,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE9B,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAErC,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEnC,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAK,CAAC;AAChD,QAAA,uBAAuB,GAAG,gCAAwB,GAAG,+BAAuB,CAAC;AAI7E,QAAA,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAK,CAAC;AAGlD,QAAA,gCAAgC,GAAG,GAAG,CAAC;AAEvC,QAAA,+BAA+B,GAAG,IAAK,GAAG,+BAAuB,CAAC;AAElE,QAAA,sBAAsB,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC"}
@@ -24,7 +24,6 @@ export interface StonksTerminalBetState extends StonksOpenBetState {
24
24
  readonly terminalTick: number;
25
25
  readonly terminalPrice: BigNumber;
26
26
  readonly multiplier: BigNumber;
27
- readonly grossPayout: BigNumber;
28
27
  readonly netPayout: BigNumber;
29
28
  }
30
29
  export type StonksSettlementReason = {
@@ -51,8 +50,6 @@ export declare class StonksRules {
51
50
  static position(amount: BigNumber, leverage: BigNumber, direction: StonksDirection): BigNumber;
52
51
  static impliedPriceForMultiplier(bet: Pick<StonksOpenBetState, 'leverage' | 'entryPrice' | 'direction'>, targetMultiplier: BigNumber): BigNumber;
53
52
  static isValidTakeProfitMultiplier(takeProfitMultiplier: BigNumber): boolean;
54
- static isTakeProfitFarEnoughFromEntry(entryPrice: BigNumber, takeProfitImpliedPrice: BigNumber): boolean;
55
- static isTakeProfitFarEnoughFromBust(entryPrice: BigNumber, bustPrice: BigNumber, takeProfitImpliedPrice: BigNumber): boolean;
56
53
  static isBustPriceDistinctFromEntry(entryPrice: BigNumber, bustPrice: BigNumber): boolean;
57
54
  static isFinalTick(activeTick: number): boolean;
58
55
  static isClientTickWithinMaxLag(activeTick: number, lastSeenTick: number): boolean;
@@ -61,12 +58,14 @@ export declare class StonksRules {
61
58
  static tickAtOrAfter(startedAtMs: number, atMs: number): number;
62
59
  static tickBefore(startedAtMs: number, atMs: number): number;
63
60
  static tickStartTime(startedAtMs: number, tick: number): Date;
64
- static hasReachedTargetPrice(direction: StonksDirection, currentPrice: BigNumber, targetPrice: BigNumber): boolean;
61
+ static hasReachedTakeProfit(bet: Pick<StonksOpenBetState, 'leverage' | 'entryPrice' | 'direction'>, price: BigNumber, takeProfitMultiplier: BigNumber): boolean;
65
62
  static hasReachedBust(direction: StonksDirection, price: BigNumber, bustPrice: BigNumber): boolean;
66
63
  static evaluateTriggers(bet: StonksOpenBetState, tickPrice: BigNumber, liveMaxPayoutCap: BigNumber): StonksTriggerOutcome;
67
- static multiplierAtPrice(bet: StonksOpenBetState, price: BigNumber): BigNumber;
64
+ static multiplierAtPrice(bet: Pick<StonksOpenBetState, 'leverage' | 'entryPrice' | 'direction'>, price: BigNumber): BigNumber;
68
65
  static grossPayoutAtPrice(bet: StonksOpenBetState, price: BigNumber): BigNumber;
69
- static grossPayoutForReason(bet: StonksOpenBetState, reason: StonksSettlementReason, price: BigNumber): BigNumber;
66
+ static netPayoutAtPrice(bet: StonksOpenBetState, price: BigNumber): BigNumber;
67
+ static netPayoutForReason(bet: StonksOpenBetState, reason: StonksSettlementReason, price: BigNumber): BigNumber;
70
68
  static multiplierForReason(bet: StonksOpenBetState, reason: StonksSettlementReason, price: BigNumber): BigNumber;
71
- static netPayout(grossPayout: BigNumber, amount: BigNumber): BigNumber;
69
+ static netOfFee(gross: BigNumber): BigNumber;
70
+ static grossOfFee(net: BigNumber): BigNumber;
72
71
  }
@@ -31,18 +31,12 @@ class StonksRules {
31
31
  }
32
32
  static impliedPriceForMultiplier(bet, targetMultiplier) {
33
33
  const directionSign = bet.direction === StonksDirection.UP ? 1 : -1;
34
- const multiplierDelta = targetMultiplier.minus(1);
34
+ const multiplierDelta = StonksRules.grossOfFee(targetMultiplier).minus(1);
35
35
  const priceChange = (0, bignumber_js_1.default)(directionSign).multipliedBy(multiplierDelta).dividedBy(bet.leverage);
36
36
  return bet.entryPrice.multipliedBy((0, bignumber_js_1.default)(1).plus(priceChange));
37
37
  }
38
38
  static isValidTakeProfitMultiplier(takeProfitMultiplier) {
39
- return takeProfitMultiplier.isGreaterThan(constants_1.STONKS_MIN_TAKE_PROFIT_MULTIPLIER);
40
- }
41
- static isTakeProfitFarEnoughFromEntry(entryPrice, takeProfitImpliedPrice) {
42
- return takeProfitImpliedPrice.minus(entryPrice).abs().dividedBy(entryPrice).isGreaterThanOrEqualTo(constants_1.STONKS_TP_MIN_PROXIMITY_TO_ENTRY);
43
- }
44
- static isTakeProfitFarEnoughFromBust(entryPrice, bustPrice, takeProfitImpliedPrice) {
45
- return takeProfitImpliedPrice.minus(bustPrice).abs().dividedBy(entryPrice).isGreaterThanOrEqualTo(constants_1.STONKS_TP_MIN_PROXIMITY_TO_BUST);
39
+ return takeProfitMultiplier.isGreaterThanOrEqualTo(constants_1.STONKS_MIN_TAKE_PROFIT_MULTIPLIER);
46
40
  }
47
41
  static isBustPriceDistinctFromEntry(entryPrice, bustPrice) {
48
42
  return !entryPrice
@@ -70,8 +64,8 @@ class StonksRules {
70
64
  static tickStartTime(startedAtMs, tick) {
71
65
  return new Date(startedAtMs + tick * constants_1.STONKS_TICK_DURATION_MS);
72
66
  }
73
- static hasReachedTargetPrice(direction, currentPrice, targetPrice) {
74
- return direction === StonksDirection.UP ? currentPrice.isGreaterThanOrEqualTo(targetPrice) : currentPrice.isLessThanOrEqualTo(targetPrice);
67
+ static hasReachedTakeProfit(bet, price, takeProfitMultiplier) {
68
+ return StonksRules.multiplierAtPrice(bet, price).isGreaterThanOrEqualTo(takeProfitMultiplier);
75
69
  }
76
70
  static hasReachedBust(direction, price, bustPrice) {
77
71
  return direction === StonksDirection.UP ? price.isLessThanOrEqualTo(bustPrice) : price.isGreaterThanOrEqualTo(bustPrice);
@@ -80,13 +74,13 @@ class StonksRules {
80
74
  const hitBust = StonksRules.hasReachedBust(bet.direction, tickPrice, bet.bustPrice);
81
75
  if (bet.takeProfitMultiplier != null) {
82
76
  const takeProfitMultiplier = bet.takeProfitMultiplier;
83
- const hitTakeProfit = StonksRules.hasReachedTargetPrice(bet.direction, tickPrice, StonksRules.impliedPriceForMultiplier(bet, takeProfitMultiplier));
77
+ const hitTakeProfit = StonksRules.hasReachedTakeProfit(bet, tickPrice, takeProfitMultiplier);
84
78
  if (hitTakeProfit && hitBust) {
85
79
  throw new Error('StonksRules.evaluateTriggers: take profit and liquidation both fired');
86
80
  }
87
81
  if (hitTakeProfit) {
88
82
  const reason = { kind: StonksBetTerminalReason.TAKE_PROFIT, takeProfitMultiplier };
89
- if (StonksRules.grossPayoutForReason(bet, reason, tickPrice).isGreaterThan(liveMaxPayoutCap)) {
83
+ if (StonksRules.netPayoutForReason(bet, reason, tickPrice).isGreaterThan(liveMaxPayoutCap)) {
90
84
  return { fired: true, reason: { kind: StonksBetTerminalReason.MAX_PAYOUT, appliedCap: liveMaxPayoutCap } };
91
85
  }
92
86
  return { fired: true, reason };
@@ -95,7 +89,7 @@ class StonksRules {
95
89
  if (hitBust) {
96
90
  return { fired: true, reason: { kind: StonksBetTerminalReason.LIQUIDATION } };
97
91
  }
98
- if (StonksRules.grossPayoutAtPrice(bet, tickPrice).isGreaterThanOrEqualTo(liveMaxPayoutCap)) {
92
+ if (StonksRules.netPayoutAtPrice(bet, tickPrice).isGreaterThanOrEqualTo(liveMaxPayoutCap)) {
99
93
  return { fired: true, reason: { kind: StonksBetTerminalReason.MAX_PAYOUT, appliedCap: liveMaxPayoutCap } };
100
94
  }
101
95
  return { fired: false };
@@ -104,15 +98,18 @@ class StonksRules {
104
98
  const directionSign = bet.direction === StonksDirection.UP ? 1 : -1;
105
99
  const percentagePriceChange = price.minus(bet.entryPrice).dividedBy(bet.entryPrice);
106
100
  const leveragedPriceChange = (0, bignumber_js_1.default)(directionSign).multipliedBy(bet.leverage).multipliedBy(percentagePriceChange);
107
- const multiplier = (0, bignumber_js_1.default)(1).plus(leveragedPriceChange);
108
- return bignumber_js_1.default.maximum(0, multiplier);
101
+ const grossMultiplier = (0, bignumber_js_1.default)(1).plus(leveragedPriceChange);
102
+ return StonksRules.netOfFee(bignumber_js_1.default.maximum(0, grossMultiplier));
109
103
  }
110
104
  static grossPayoutAtPrice(bet, price) {
111
105
  const position = StonksRules.position(bet.amount, bet.leverage, bet.direction);
112
106
  const pnl = position.multipliedBy(price.minus(bet.entryPrice)).dividedBy(bet.entryPrice);
113
107
  return bignumber_js_1.default.maximum(0, bet.amount.plus(pnl));
114
108
  }
115
- static grossPayoutForReason(bet, reason, price) {
109
+ static netPayoutAtPrice(bet, price) {
110
+ return StonksRules.netOfFee(StonksRules.grossPayoutAtPrice(bet, price));
111
+ }
112
+ static netPayoutForReason(bet, reason, price) {
116
113
  switch (reason.kind) {
117
114
  case StonksBetTerminalReason.TAKE_PROFIT:
118
115
  return (0, calculate_payout_1.calculatePayoutBN)(bet.amount, reason.takeProfitMultiplier);
@@ -122,10 +119,10 @@ class StonksRules {
122
119
  return reason.appliedCap;
123
120
  case StonksBetTerminalReason.CASHOUT:
124
121
  case StonksBetTerminalReason.ROUND_END:
125
- return StonksRules.grossPayoutAtPrice(bet, price);
122
+ return StonksRules.netPayoutAtPrice(bet, price);
126
123
  default:
127
124
  reason;
128
- throw new Error(`StonksRules.grossPayoutForReason: unhandled reason`);
125
+ throw new Error(`StonksRules.netPayoutForReason: unhandled reason`);
129
126
  }
130
127
  }
131
128
  static multiplierForReason(bet, reason, price) {
@@ -134,12 +131,11 @@ class StonksRules {
134
131
  }
135
132
  return StonksRules.multiplierAtPrice(bet, price);
136
133
  }
137
- static netPayout(grossPayout, amount) {
138
- if (grossPayout.lte(amount)) {
139
- return grossPayout;
140
- }
141
- const profit = grossPayout.minus(amount);
142
- return amount.plus(profit.multipliedBy((0, bignumber_js_1.default)(1).minus(constants_1.STONKS_PROFIT_FEE_RATE)));
134
+ static netOfFee(gross) {
135
+ return gross.multipliedBy((0, bignumber_js_1.default)(1).minus(constants_1.STONKS_PAYOUT_FEE_RATE));
136
+ }
137
+ static grossOfFee(net) {
138
+ return net.dividedBy((0, bignumber_js_1.default)(1).minus(constants_1.STONKS_PAYOUT_FEE_RATE));
143
139
  }
144
140
  }
145
141
  exports.StonksRules = StonksRules;
@@ -1 +1 @@
1
- {"version":3,"file":"stonks-rules.js","sourceRoot":"","sources":["../../../src/games/stonks/stonks-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stonks-rules.js","sourceRoot":"","sources":["../../../src/games/stonks/stonks-rules.ts"],"names":[],"mappings":"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"}