1Branch0Tags
GL
glucryptoFix Paragon perp market resolution
251fe3214 days ago5Commits
typescript
import type { PairTradeConfig } from "../config"; import type { PairTradeMetrics } from "./types"; export function buildPairTradeMetrics(params: { config: PairTradeConfig; spotPrice: number; perpPrice: number; fundingRateBps: number | null; spotBalance: number; spotEntryNtl: number | null; perpSize: number; perpUnrealizedPnl: number | null; }): PairTradeMetrics { const spotValueUsd = params.spotBalance * params.spotPrice; const perpNotionalUsd = params.perpSize * params.perpPrice; const deltaUsd = spotValueUsd + perpNotionalUsd; const targetNotionalUsd = Math.max( params.config.longTargetNotionalUsd, params.config.shortTargetNotionalUsd, params.config.targetNotionalUsd, ); const deltaPct = targetNotionalUsd > 0 ? (Math.abs(deltaUsd) / targetNotionalUsd) * 100 : null; const basisBps = params.spotPrice > 0 ? ((params.perpPrice - params.spotPrice) / params.spotPrice) * 10_000 : null; return { spotValueUsd, perpNotionalUsd, deltaUsd, deltaPct, basisBps, fundingRateBps: params.fundingRateBps, spotBalance: params.spotBalance, perpSize: params.perpSize, spotEntryNtl: params.spotEntryNtl, perpUnrealizedPnl: params.perpUnrealizedPnl, spotUnrealizedPnl: params.spotEntryNtl != null ? spotValueUsd - params.spotEntryNtl : null, }; }