/** * Trading Utilities for autonoma Agent Core * * Common utility functions for trading calculations and operations. */ import { Order, Position, Portfolio, OrderSide, YieldOpportunity, TimeFrame, PriceRange, OHLCV } from './types.js'; /** * Calculate percentage change between two prices */ export declare function calculatePriceChange(oldPrice: number, newPrice: number): number; /** * Calculate simple moving average */ export declare function calculateSMA(prices: number[], period: number): number; /** * Calculate exponential moving average */ export declare function calculateEMA(prices: number[], period: number): number; /** * Calculate volatility (standard deviation) of price returns */ export declare function calculateVolatility(prices: number[]): number; /** * Calculate support and resistance levels */ export declare function findSupportResistance(ohlcv: OHLCV[], lookback?: number): { support: number; resistance: number; }; /** * Calculate portfolio total value */ export declare function calculatePortfolioValue(portfolio: Portfolio): number; /** * Calculate position size as percentage of portfolio */ export declare function calculatePositionWeight(position: Position, portfolioValue: number): number; /** * Calculate unrealized P&L for a position */ export declare function calculateUnrealizedPnL(position: Position, currentPrice: number): number; /** * Calculate Sharpe ratio */ export declare function calculateSharpeRatio(returns: number[], riskFreeRate?: number): number; /** * Calculate maximum drawdown */ export declare function calculateMaxDrawdown(portfolioValues: number[]): number; /** * Calculate Value at Risk (VaR) using historical simulation */ export declare function calculateVaR(returns: number[], confidence?: number): number; /** * Calculate order fill ratio */ export declare function calculateFillRatio(order: Order): number; /** * Calculate slippage */ export declare function calculateSlippage(expectedPrice: number, executedPrice: number, side: OrderSide): number; /** * Calculate optimal order size based on market impact */ export declare function calculateOptimalOrderSize(availableLiquidity: number, targetSize: number, maxMarketImpact?: number): number; /** * Calculate APY from APR */ export declare function aprToApy(apr: number, compoundingPeriods?: number): number; /** * Calculate yield farming returns */ export declare function calculateYieldFarmingReturns(principal: number, apy: number, days: number, compounding?: boolean): { totalReturn: number; profit: number; }; /** * Calculate impermanent loss for liquidity provision */ export declare function calculateImpermanentLoss(initialPrice1: number, initialPrice2: number, currentPrice1: number, currentPrice2: number): number; /** * Compare yield opportunities */ export declare function rankYieldOpportunities(opportunities: YieldOpportunity[]): YieldOpportunity[]; /** * Convert timeframe to milliseconds */ export declare function timeFrameToMs(timeFrame: TimeFrame): number; /** * Format currency with appropriate decimal places */ export declare function formatCurrency(amount: number, decimals?: number): string; /** * Format percentage with sign */ export declare function formatPercentage(value: number, decimals?: number): string; /** * Check if price is within range */ export declare function isPriceInRange(price: number, range: PriceRange): boolean; /** * Calculate distance from price to range bounds */ export declare function distanceToRange(price: number, range: PriceRange): { toMin: number; toMax: number; }; /** * Generate trading session ID */ export declare function generateSessionId(): string; /** * Validate trading symbol format */ export declare function isValidSymbol(symbol: string): boolean; /** * Normalize symbol format */ export declare function normalizeSymbol(symbol: string): string; //# sourceMappingURL=utils.d.ts.map