trade
Version:
A JavaScript backtesting library to validate trading strategies for stocks, futures, crypto currencies etc. based on historical data.
25 lines (22 loc) • 821 B
JavaScript
import cagr from './cagr.mjs';
import maxDrawdown from './maxDrawdown.mjs';
/**
* Adds all performance indicators to the result of a trade (see trade)
* @param {object[]} result Result as returned by trade function
*/
export default (result) => {
const adjustedData = result.map((item) => {
const positions = item.positionsOnClose.reduce((prev, { value }) => prev + value, 0);
return {
cash: item.cash,
positions,
total: item.cash + positions,
date: item.date,
};
});
return {
cagr: cagr(adjustedData.map(item => [item.date, item.total])),
maxAbsoluteDrawdown: maxDrawdown(adjustedData.map(({ total }) => total)),
maxRelativeDrawdown: maxDrawdown(adjustedData.map(({ total }) => total), true),
};
};