UNPKG

@backtest/framework

Version:

Backtesting trading strategies in TypeScript / JavaScript

121 lines 5.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const main_1 = require("../main"); async function main() { (0, main_1.printInfo)(); const startDate = new Date('2024-01-01').getTime(); const endDate = new Date('2024-10-15').getTime(); const startTime = new Date('2024-03-01').getTime(); const endTime = new Date('2024-10-14').getTime(); const found = await (0, main_1.findHistoricalData)('BTCEUR-8h'); console.log('found:', found); if (found) { const deleted = await (0, main_1.deleteHistoricalData)('BTCEUR-8h'); console.log('deleted:', deleted); } const downloaded2 = await (0, main_1.downloadHistoricalData)('BTCEUR', { interval: '1d', startDate: startDate, endDate: endDate }); console.log('downloaded2:', downloaded2); const downloaded1 = await (0, main_1.downloadHistoricalData)('BTCEUR', { interval: '1h', startDate: startDate, endDate: endDate }); console.log('downloaded1:', downloaded1); const downloaded = await (0, main_1.downloadHistoricalData)('BTCEUR', { interval: '8h', startDate: startDate, endDate: endDate }); console.log('downloaded:', downloaded); const exported = await (0, main_1.exportFileCSV)('BTCEUR-8h'); console.log('exported:', exported); const allNames = await (0, main_1.findHistoricalDataNames)(); console.log('allNames:', allNames); const allSets = await (0, main_1.findHistoricalDataSets)(); console.log('allSets:', allSets.map(({ name }) => name).join(',')); const dataSet = await (0, main_1.findHistoricalData)('BTCEUR-8h'); console.log('dataSet:', dataSet); const dataSet1 = await (0, main_1.findHistoricalData)('BTCEUR-1h'); console.log('dataSet1:', dataSet1); const deleted = await (0, main_1.deleteHistoricalData)('BTCEUR-8h'); console.log('deleted:', deleted); const imported = await (0, main_1.importFileCSV)('BTC', 'EUR', '8h', './csv/BTCEUR-8h.csv'); console.log('imported:', imported); const dataSet2 = await (0, main_1.findHistoricalData)('BTCEUR-8h'); console.log('dataSet2:', dataSet2); const scan = await (0, main_1.scanStrategies)(); console.log('scan:', scan); const strategies = await (0, main_1.findStrategies)(); console.log('strategies:', strategies); const strategiesNames = await (0, main_1.findStrategyNames)(); console.log('strategiesNames:', strategiesNames); const runStrategyResult = await (0, main_1.runStrategy)({ strategyName: 'demo', historicalData: ['BTCEUR-1d'], params: { lowSMA: 10, highSMA: 50 }, startingAmount: 1000, startTime: startTime, endTime: endTime }); console.log('runStrategyResult:', runStrategyResult.name); const parsed = await (0, main_1.parseRunResultsStats)(runStrategyResult); console.log('parsed:', parsed === null || parsed === void 0 ? void 0 : parsed.totals[0], parsed === null || parsed === void 0 ? void 0 : parsed.totals[1]); const saved = await (0, main_1.saveResult)('demo-results', runStrategyResult, true); console.log('saved:', saved); const resultsNames = await (0, main_1.findResultNames)(); console.log('resultsNames:', resultsNames); const allResults = await (0, main_1.findResults)(); console.log('allResults:', allResults.length); const deletedResults = await (0, main_1.deleteResult)('demo-results'); console.log('deletedResults:', deletedResults); const runMultiStrategyResult = await (0, main_1.runStrategy)({ strategyName: 'demo', historicalData: ['BTCEUR-8h', 'BTCEUR-1h'], params: {}, startingAmount: 1000, startTime: startTime, endTime: endTime, percentFee: 0, percentSlippage: 0 }); console.log('runMultiStrategyResult:', runMultiStrategyResult.name); const parsedMulti = await (0, main_1.parseRunResultsStats)(runMultiStrategyResult); console.log('parsedMulti:', parsedMulti === null || parsedMulti === void 0 ? void 0 : parsedMulti.totals[0], parsedMulti === null || parsedMulti === void 0 ? void 0 : parsedMulti.totals[1]); const savedMulti = await (0, main_1.saveMultiResult)('demo-multi-results', runMultiStrategyResult); console.log('savedMulti:', savedMulti); const multiResultsNames = await (0, main_1.findMultiResultNames)(); console.log('multiResultsNames:', multiResultsNames); const allMultiResults = await (0, main_1.findMultiResults)(); console.log('allMultiResults:', allMultiResults.length); const deletedMultiResult = await (0, main_1.deleteMultiResult)('demo-multi-results'); console.log('deletedMultiResult:', deletedMultiResult); const multiResultsNames2 = await (0, main_1.findMultiResultNames)(); console.log('multiResultsNames2:', multiResultsNames2); const runAdvancedStrategyResult = await (0, main_1.runStrategy)({ strategyName: 'demo', historicalData: ['BTCEUR-1d', 'BTCEUR-8h'], supportHistoricalData: ['BTCEUR-1h', 'BTCEUR-8h'], startingAmount: 1000, startTime: startTime, endTime: endTime, params: { lowSMA: 10, highSMA: 50 }, percentFee: 0, percentSlippage: 0, rootPath: undefined }); console.log('runStrategyResult:', runStrategyResult.name); const parsedAdvanced = await (0, main_1.parseRunResultsStats)(runAdvancedStrategyResult); console.log('parsedAdvanced:', parsedAdvanced.totals[0], parsedAdvanced.totals[1]); } main(); //# sourceMappingURL=demo.js.map