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.