diff --git a/LowFrequencyTrading/Snapshots.js b/LowFrequencyTrading/Snapshots.js index 89c10767b..49456433f 100644 --- a/LowFrequencyTrading/Snapshots.js +++ b/LowFrequencyTrading/Snapshots.js @@ -252,7 +252,7 @@ exports.newSnapshots = function newSnapshots(bot, logger) { function getResults(openDatetime, closeDatetime) { - let closeHeaders = ['Trade Number', 'Open Datetime', 'Close Datetime', 'Strategy Name', 'Trigger On Situation', 'Take Position Situation', 'Result', 'ROI', 'Exit Type'] + let closeHeaders = ['Trade Number', 'Open Datetime', 'Close Datetime', 'Strategy Name', 'Trigger On Situation', 'Take Position Situation', 'Result In Base Asset', 'Result In Quoted Asset', 'ROI in Base Asset', 'ROI in Quoted Asset', 'Exit Type'] closeValues = [ tradingEngine.episode.episodeCounters.positions.value, // Position Number (new Date(openDatetime)).toISOString(), // Open Datetime @@ -260,8 +260,10 @@ exports.newSnapshots = function newSnapshots(bot, logger) { tradingEngine.current.strategy.strategyName.value, // Strategy Name tradingEngine.current.strategy.situationName.value, // Trigger On Situation tradingEngine.current.position.situationName.value, // Take Position Situation - tradingEngine.current.position.positionStatistics.hitFail.value, // Result - tradingEngine.current.position.positionStatistics.ROI.value, // ROI + tradingEngine.current.position.positionBaseAsset.hitFail.value, // Result in Base Asset + tradingEngine.current.position.positionQuotedAsset.hitFail.value, // Result in Base Asset + tradingEngine.current.position.positionBaseAsset.ROI.value, // ROI in Base Asseet + tradingEngine.current.position.positionQuotedAsset.ROI.value, // ROI in Quoted Asset tradingEngine.current.position.exitType.value // Exit Type ] diff --git a/LowFrequencyTrading/TradingExecution.js b/LowFrequencyTrading/TradingExecution.js index 5a4687696..b9ae0bcb0 100644 --- a/LowFrequencyTrading/TradingExecution.js +++ b/LowFrequencyTrading/TradingExecution.js @@ -247,6 +247,7 @@ exports.newTradingExecution = function newTradingExecution(bot, logger, tradingE tradingEngineOrder.rate.value = tradingSystem.formulas.get(tradingSystemOrder.positionRate.formula.id) if (tradingEngineOrder.rate.value === undefined) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.rate.value === undefined', tradingEngineOrder) } + if (isNaN(tradingEngineOrder.rate.value) === true) { badDefinitionUnhandledException(undefined, 'isNaN(tradingEngineOrder.rate.value) === true', tradingEngineOrder) } if (tradingEngineOrder.rate.value <= 0) { badDefinitionUnhandledException(undefined, 'tradingEngineOrder.rate.value <= 0', tradingEngineOrder) } tradingEngineOrder.rate.value = global.PRECISE(tradingEngineOrder.rate.value, 10) @@ -276,6 +277,7 @@ exports.newTradingExecution = function newTradingExecution(bot, logger, tradingE /* Order Size Calculation */ let algorithmSize = tradingSystem.formulas.get(sizeFormula.id) if (algorithmSize === undefined) { badDefinitionUnhandledException(undefined, 'algorithmSize === undefined', sizeFormula) } + if (isNaN(algorithmSize) === true) { badDefinitionUnhandledException(undefined, 'isNaN(algorithmSize) === true', sizeFormula) } /* Validate that this config exists */ if (tradingSystemOrder.config.positionSizePercentage === undefined) { badDefinitionUnhandledException(undefined, 'tradingSystemOrder.config.positionSizePercentage === undefined', executionAlgorithm) } @@ -287,7 +289,7 @@ exports.newTradingExecution = function newTradingExecution(bot, logger, tradingE if ( tradingEngineStageAsset.size.value + traingEngineOrderAsset.size.value > stageSizeLimit.value) { /* We reduce the size to the remaining size of the position. */ - traingEngineOrderAsset.size.value = stageSizeLimit.value - tradingEngineStageAsset.value + traingEngineOrderAsset.size.value = stageSizeLimit.value - tradingEngineStageAsset.size.value traingEngineOrderAsset.size.value = global.PRECISE(traingEngineOrderAsset.size.value, 10) }