UNPKG

back-mark-plotter

Version:

Equity Curve plotting lib for Back Mark trades

50 lines 1.66 kB
import * as fs from 'fs'; import * as path from 'path'; export class TradePlotter { constructor(trades) { this.trades = trades; } plot(outputFilePath = 'trades_plot.html') { const timestamps = this.trades.map((trade) => trade.createdAt.toISOString()); const balances = this.trades.map((trade) => trade.balanceAfterTrade || 0); const trace = { x: timestamps, y: balances, mode: 'lines+markers', name: 'Equity Curve', line: { color: 'blue' }, marker: { size: 6, color: 'red' }, }; const layout = { title: 'Equity Curve', xaxis: { title: 'Timestamp', showgrid: true, zeroline: false, }, yaxis: { title: 'Balance', showline: false, }, }; const data = [trace]; const plotHtml = ` <html> <head> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> </head> <body> <div id="plot"></div> <script> const data = ${JSON.stringify(data)}; const layout = ${JSON.stringify(layout)}; Plotly.newPlot('plot', data, layout); </script> </body> </html> `; fs.writeFileSync(path.resolve(outputFilePath), plotHtml); console.log(`Plot saved to ${outputFilePath}`); } } //# sourceMappingURL=TradePlotter.js.map