Elliott Wave Helper (Fibonacci Calculator)

This tool assists with Elliott Wave analysis by calculating common Fibonacci Retracement and Extension levels based on your input price points.

Fibonacci Retracement Calculation

Enter the significant High and Low points of a price swing to calculate potential retracement levels.

Fibonacci Extension Calculation

Enter three key price points (start of swing, end of swing, end of retracement) to project potential extension targets.

Fibonacci Calculation Results

Retracement Levels

Level (%) Price ($)

Extension Levels

Level (%) Price ($)

Swing Low Price: ${formatCurrency(parseFloat(retracementSwingLowInput.value))}

Swing Direction: ${retracementDirectionInput.value === 'up' ? 'Uptrend' : 'Downtrend'}

Fibonacci Extension Inputs

Point 1 (Start of Swing): ${formatCurrency(parseFloat(extensionPoint1Input.value))}

Point 2 (End of Swing): ${formatCurrency(parseFloat(extensionPoint2Input.value))}

Point 3 (End of Retracement): ${formatCurrency(parseFloat(extensionPoint3Input.value))}

Swing Direction: ${extensionDirectionInput.value === 'up' ? 'Impulse Up / Retracement Down' : 'Impulse Down / Retracement Up'}

Calculated Fibonacci Levels

Retracement Levels

${retracementResultsTbody.innerHTML}
Level (%) Price ($)

Extension Levels

${extensionResultsTbody.innerHTML}
Level (%) Price ($)
`; element.innerHTML = pdfContent; html2pdf().from(element).set({ margin: [10, 10, 10, 10], filename: 'Elliott_Wave_Helper_Report.pdf', image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, logging: true, dpi: 192, letterRendering: true }, jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' } }).save(); } // Event Listeners for Tabs tabButtons.forEach((button, index) => { button.addEventListener('click', function() { // Prevent direct tab switching to 'Results' if (index === 2) { alert('Please calculate Retracement or Extension first to view results.'); return; } switchTab(index); }); }); // Calculation Buttons if (calculateRetracementButton) { calculateRetracementButton.addEventListener('click', calculateRetracement); } else { console.error("Calculate Retracement button not found."); } if (calculateExtensionButton) { calculateExtensionButton.addEventListener('click', calculateExtension); } else { console.error("Calculate Extension button not found."); } // Navigation Buttons for Results tab if (prevTab3Button) { prevTab3Button.addEventListener('click', function() { // Determine which calculation was last performed or which tab was active before results // For simplicity, let's go back to the retracement tab by default, or the last active input tab let lastActiveInputTab = 0; // Default to retracement if (tabContents[1].classList.contains('active')) { // Check if extension tab was active lastActiveInputTab = 1; } switchTab(lastActiveInputTab); }); } else { console.error("Previous tab 3 button not found."); } if (downloadPdfButton) { downloadPdfButton.addEventListener('click', downloadPDF); } else { console.error("Download PDF button not found."); } });
Scroll to Top