1. Fetch Data
No data fetched yet.
2. Parameter Sweep Ranges
Set min/max for each parameter. Every value in the range is tested. Narrow ranges for faster results.
Top 20 Results
Equity Curve
| # | Net Profit | Trades | Win % | PF | Sharpe | Max DD | Avg/Trade | Parameters |
Equity curve for the selected parameter set. Click a row in the table to view.
Fetch data from Yahoo Finance and run the optimization to see results here.
// --- CSV Upload Handler ---
document.getElementById('parseCsvBtn').addEventListener('click', async () => {
const file = document.getElementById('csvUpload').files[0];
if (!file) {
document.getElementById('csvStatus').textContent = 'Please select a CSV file';
document.getElementById('csvStatus').className = 'yahoo-status error';
return;
}
const reader = new FileReader();
reader.onload = async (e) => {
const csvText = e.target.result;
document.getElementById('csvStatus').className = 'yahoo-status loading';
document.getElementById('csvStatus').textContent = 'Parsing CSV...';
try {
const resp = await fetch('/api/csv?csv=' + encodeURIComponent(csvText) + '&symbol=NIFTY');
const data = await resp.json();
if (data.error) {
document.getElementById('csvStatus').textContent = data.error;
document.getElementById('csvStatus').className = 'yahoo-status error';
} else {
// Store data and proceed to optimization
window.csvData = data.candles;
document.getElementById('csvStatus').textContent = `Successfully parsed ${data.candles.length} candles`;
document.getElementById('csvStatus').className = 'yahoo-status success';
// Trigger optimization with the CSV data
if (typeof optimizeWithData === 'function') {
optimizeWithData(data.candles);
} else {
// Fallback: just show the data
console.log('CSV Candles:', data.candles);
}
}
} catch (err) {
document.getElementById('csvStatus').textContent = 'Error: ' + err.message;
document.getElementById('csvStatus').className = 'yahoo-status error';
}
};
reader.readAsText(file);
});
// Also make extractFrontMonthCsv available globally if needed
window.extractFrontMonthCsv = extractFrontMonthCsv;