Closed fivethreeo closed 7 months ago
<!doctype html> <html> <head> <script src="https://cdn.jsdelivr.net/pyodide/v0.23.2/full/pyodide.js"></script> </head> <body> Pyodide test page <br> Open your browser console to see Pyodide output <script type="text/javascript"> // Define box size and reversal amount const boxSize = 0.5; const reversalAmount = 3; // Fetch minute data from the Alpha Vantage API const apiKey = ''; const symbol = 'TSLA'; const apiUrl = `https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&outputsize=full&symbol=${symbol}&interval=1min&apikey=${apiKey}`; async function main() { let pyodide = await loadPyodide(); await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); await micropip.install('setuptools'); await micropip.install('pypnf'); fetch(apiUrl) .then(response => response.json()) .then(data => { const timeSeries = data['Time Series (1min)']; const minuteData = Object.entries(timeSeries).map(([date, values]) => ({ date: date, open: parseFloat(values['1. open']), high: parseFloat(values['2. high']), low: parseFloat(values['3. low']), close: parseFloat(values['4. close']), volume: parseFloat(values['5. volume']) })); console.log(pyodide.runPython(` from pypnf import PointFigureChart ts={k: [dic[k] for dic in minuteData] for k in minuteData[0]} pnf = PointFigureChart( ts=ts, method='cl', reversal=reversalAmount, boxsize=boxSize, scaling='abs', title=symbol ) pnf.get_trendlines(length=4, mode='strong') print(pnf.next_simple_signal()) print(pnf) `, { globals: pyodide.toPy({ minuteData: minuteData, boxSize: boxSize, reversalAmount: reversalAmount, symbol: symbol }) })); }).catch(error => console.log(error)); } main(); </script> </body> </html>