UNPKG

stock-average-calculator

Version:

A comprehensive utility for calculating stock price averages and managing investment portfolios

196 lines (146 loc) 5.84 kB
# Stock Average Calculator A comprehensive Node.js utility for calculating stock price averages and managing investment portfolios. Powered by [StockAverageCalculator](https://stockaveragecalculator.org/), this package helps investors track their average purchase prices, analyze portfolio performance, and plan averaging strategies. ## Features - **Multiple Calculation Types**: - Basic average price calculations - Portfolio performance metrics with profit/loss analysis - Dollar cost averaging simulation - Target average strategy calculator - **Detailed Results**: - Average purchase price - Total shares and investment - Current portfolio value - Profit/loss analysis - Optimal purchase strategy recommendations - **Easy to Use**: - Simple API for developers - Interactive command-line interface - Comprehensive documentation with examples ## Installation ```bash npm install stock-average-calculator ``` ## Command Line Usage After installing globally with `npm install -g stock-average-calculator`, you can use the calculator directly from your terminal: ```bash stock-average ``` This will launch an interactive CLI that guides you through the calculation process. ## API Usage ```javascript const { calculateAveragePrice, calculatePortfolioMetrics, calculateDollarCostAveraging } = require('stock-average-calculator'); // Example 1: Calculate average price from multiple purchases const transactions = [ { shares: 10, price: 100 }, { shares: 15, price: 90 }, { shares: 5, price: 105 } ]; const avgResult = calculateAveragePrice(transactions); console.log(`Average Price: $${avgResult.averagePrice}`); // Output: Average Price: $96.67 // Example 2: Calculate portfolio performance with current market price const portfolioResult = calculatePortfolioMetrics(transactions, 110); console.log(`Profit/Loss: $${portfolioResult.profitLoss} (${portfolioResult.profitLossPercentage}%)`); // Output: Profit/Loss: $401.67 (13.79%) // Example 3: Calculate dollar cost averaging performance const dcaResult = calculateDollarCostAveraging( 1000, // Initial investment 500, // Periodic investment [100, 90, 110, 105, 120], // Stock prices over time 'monthly' // Frequency ); console.log(`Total Shares: ${dcaResult.totalShares}, Average Price: $${dcaResult.averagePrice}`); ``` ## API Reference ### calculateAveragePrice(transactions) Calculates the average purchase price from multiple transactions. **Parameters:** - `transactions`: Array of objects with `shares` and `price` properties **Returns:** - Object containing `totalShares`, `totalCost`, and `averagePrice` ### calculatePortfolioMetrics(transactions, currentPrice) Calculates portfolio performance metrics based on purchase history and current market price. **Parameters:** - `transactions`: Array of objects with `shares` and `price` properties - `currentPrice`: Current market price per share **Returns:** - Object containing average price, total shares, current value, profit/loss, etc. ### calculateDollarCostAveraging(initialInvestment, periodicInvestment, prices, frequency) Simulates a dollar cost averaging investment strategy. **Parameters:** - `initialInvestment`: Initial investment amount - `periodicInvestment`: Amount invested in each period - `prices`: Array of stock prices for each period - `frequency`: Investment frequency (e.g., 'monthly', 'weekly') **Returns:** - Object containing results of the DCA strategy ### calculateOptimalAveragingStrategy(currentTransactions, targetAveragePrice, currentMarketPrice) Calculates the optimal strategy to reach a target average price. **Parameters:** - `currentTransactions`: Current holdings as an array of transactions - `targetAveragePrice`: Desired average purchase price - `currentMarketPrice`: Current market price per share **Returns:** - Object containing the suggested action to reach the target average ### Other Utility Functions - `calculateBreakEvenPrice(transactions)` - `formatAveragePriceResult(result)` - `formatPortfolioMetricsResult(result)` - `formatDCAResult(result)` - `quickCalculateAverage(amounts, prices)` ## Examples ### Average Price Calculation ```javascript const result = calculateAveragePrice([ { shares: 5, price: 100 }, { shares: 8, price: 90 }, { shares: 12, price: 110 } ]); // Result: Average price $101.60 for 25 shares with total cost of $2,540 ``` ### Portfolio Performance Analysis ```javascript const transactions = [ { shares: 100, price: 50 }, { shares: 50, price: 45 } ]; const result = calculatePortfolioMetrics(transactions, 55); // Result: 150 shares at average $48.33, current value $8,250 // Profit: $1,000 (13.79%) ``` ### Dollar Cost Averaging ```javascript const result = calculateDollarCostAveraging( 5000, // $5,000 initial investment 1000, // $1,000 monthly investment [100, 90, 110, 105, 95, 115], // Stock prices over 6 months 'monthly' ); // Result shows performance of DCA strategy over the 6-month period ``` ### Target Averaging Strategy ```javascript const transactions = [ { shares: 100, price: 50 } ]; const result = calculateOptimalAveragingStrategy( transactions, 45, // Target average price of $45 40 // Current market price is $40 ); // Result shows how many shares to buy at $40 to reach an average of $45 ``` ## Use Cases - **Individual Investors**: Calculate and track average purchase prices - **Financial Advisors**: Demonstrate DCA strategies to clients - **Portfolio Managers**: Analyze portfolio performance and plan averaging strategies - **Investment Apps**: Integrate average price calculations into investment platforms - **Educational Tools**: Teach concepts of cost averaging and breakeven analysis ## License MIT --- Try our [advanced stock averaging calculator](https://discountcalculator.org/).