Carry Trade Profitability Calculator

Trade Setup
Market Conditions & Holding Period

Entry Exchange Rate: ${entryRateInput.value}

Expected Exit Exchange Rate: ${exitRateInput.value}

Holding Period: ${holdingPeriodValueInput.value} ${holdingPeriodUnitSelect.value}


Conversion Rates Used (to ${accountCcy}):

${pair.substring(0,3)}/${accountCcy}: ${baseToAcctRateGroup.style.display !== 'none' && !isNaN(parseFloat(baseToAcctRateInput.value)) ? parseFloat(baseToAcctRateInput.value).toFixed(5) : (pair.substring(0,3) === accountCcy ? '1.00000 (N/A)' : 'Error/Not Set')}

${pair.substring(4,7)}/${accountCcy}: ${quoteToAcctRateGroup.style.display !== 'none' && !isNaN(parseFloat(quoteToAcctRateInput.value)) ? parseFloat(quoteToAcctRateInput.value).toFixed(5) : (pair.substring(4,7) === accountCcy ? '1.00000 (N/A)' : 'Error/Not Set')}


Profitability Breakdown (${accountCcy}):

Interest Rate Differential P/L: ${interestPlEl.textContent}

Exchange Rate Fluctuation P/L: ${exchangeRatePlEl.textContent}

Total Estimated P/L: ${totalPlEl.textContent}

${resultDetailsEl.innerHTML}
`; // Style profit/loss in PDF pdfContainer.querySelectorAll('.ctpc-profit').forEach(el => el.style.color = '#27ae60'); pdfContainer.querySelectorAll('.ctpc-loss').forEach(el => el.style.color = '#c0392b'); const opt = { margin: 15, filename: `CarryTrade_Report_${pair.replace('/', '-')}.pdf`, image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true, letterRendering: true }, jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' } }; if (typeof html2pdf !== 'undefined') { html2pdf().from(pdfContainer).set(opt).save(); } else { alert('Error: PDF generation library (html2pdf.js) is not loaded.'); } }); });
Scroll to Top