2Branches0Tags
GL
glucryptoSync production with master template updates
dc969c112 days ago54Commits
typescript
import type { DeltaNeutralConfig } from "../config"; import type { DeltaNeutralMetrics } from "./types"; export function buildDeltaNeutralMetrics(params: { config: DeltaNeutralConfig; spotPrice: number; perpPrice: number; fundingRateBps: number | null; spotBalance: number; spotEntryNtl: number | null; perpSize: number; perpUnrealizedPnl: number | null; }): DeltaNeutralMetrics { const spotValueUsd = params.spotBalance * params.spotPrice; const perpNotionalUsd = params.perpSize * params.perpPrice; const deltaUsd = spotValueUsd + perpNotionalUsd; const deltaPct = params.config.targetNotionalUsd > 0 ? (Math.abs(deltaUsd) / params.config.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, }; }