Consider: Adding Math Utilities for Leverage/Protection calculations

An alternative to util functions might be a Contract class (I wish TS Classes could inherit interfaces, but I don't think it can).

Anyway, here are some Math Utils for consideration:

export const calculateLeverageMultiplierFromLowLiquidationPriceMultiplier = function(lowLiquidationPriceMultiplier: number): number
{
	const leverageMultiplier = (-1 / (lowLiquidationPriceMultiplier - 1));


	return leverageMultiplier;
};

export const calculateProtectionFromLiquidationPriceMultiplier = function(lowLiquidationPriceMultiplier: number): number
{
        const protectionPercent = ((1 / (-1 / (lowLiquidationPriceMultiplier - 1))) * 100);

	return protectionPercent;
};

export const calculateLiquidationPriceMultiplierFromLeverage = function(leverage: number): number
{
  const liquidationPriceMultiplier = (1 - (1 / leverage));

  return liquidationPriceMultiplier;
};

export const calculateLiquidationPriceMultiplierFromProtection = function(protectionPercent: number): number
{
  const liquidationPriceMultiplier = (1 - (protectionPercent / 100));

  return liquidationPriceMultiplier;
};

export const calculateLongUnitsFromLiquidationPriceMultiplier = function(hedgeUnits: number, liquidationPriceMultiplier: number): number
{
  const longUnits = hedgeUnits / ((-1 / (liquidationPriceMultiplier - 1)) - 1);

  return longUnits;
};

export const calculateHedgeUnitsFromLiquidationPriceMultiplier = function(longUnits: number, liquidationPriceMultiplier: number): number
{
  const hedgeUnits = longUnits * (-1 / (liquidationPriceMultiplier - 1) - 1);

  return hedgeUnits;
};

@emergent-reasons I'm pretty sure the results of these marry up with Simulator - but it might be nice if we could simplify some of the Math.

Assignee Loading
Time tracking Loading