Spaces:
Runtime error
Runtime error
import * as chart from './chart.js'; | |
import { calculatePV } from './indicators/pv.js'; | |
import { calculateMFI } from './indicators/mfi.js'; | |
import { analyzeVSA } from './indicators/vsa.js'; | |
let stockData = []; | |
let entryPoint = 0; | |
let stopLoss = 0; | |
let takeProfit = 0; | |
document.getElementById('analyze-button').addEventListener('click', () => { | |
const stockSymbol = document.getElementById('stock-symbol').value; | |
fetchStockData(stockSymbol); | |
}); | |
document.getElementById('set-points-button').addEventListener('click', () => { | |
entryPoint = parseFloat(document.getElementById('entry-point').value); | |
stopLoss = parseFloat(document.getElementById('stop-loss').value); | |
takeProfit = parseFloat(document.getElementById('take-profit').value); | |
updateTradePoints(); | |
}); | |
async function fetchStockData(symbol) { | |
try { | |
const response = await fetch(`http://localhost:5000/api/stock_data?symbol=${symbol}`); | |
const data = await response.json(); | |
if (!Array.isArray(data) || data.length === 0) { | |
alert('Không có dữ liệu cho mã cổ phiếu này!'); | |
return; | |
} | |
processStockData(data); | |
} catch (error) { | |
alert('Lỗi khi lấy dữ liệu từ server: ' + error); | |
} | |
} | |
function processStockData(data) { | |
// Chuẩn hóa dữ liệu cho các hàm chỉ báo | |
const priceArr = data.map(d => d.price); | |
const volumeArr = data.map(d => d.volume); | |
const pv = calculatePV(priceArr, volumeArr); | |
const mfi = calculateMFI(data, volumeArr); | |
const vsaAnalysis = analyzeVSA(priceArr, volumeArr); | |
// Vẽ biểu đồ | |
chart.renderPriceVolumeChart({labels: priceArr.map((_,i)=>i+1), values: priceArr}, {labels: volumeArr.map((_,i)=>i+1), values: volumeArr}); | |
chart.renderPVChart({labels: pv.map((_,i)=>i+1), values: pv}); | |
chart.renderMFIChart({labels: mfi.map((_,i)=>i+1), values: mfi}); | |
displayAnalysisResults(vsaAnalysis); | |
} | |
function updateTradePoints() { | |
document.getElementById('trade-points').innerText = `Điểm vào: ${entryPoint}, Dừng lỗ: ${stopLoss}, Chốt lời: ${takeProfit}`; | |
} | |
function displayAnalysisResults(analysis) { | |
document.getElementById('analysis-results').innerText = JSON.stringify(analysis, null, 2); | |
} |