From 124f6a71d4325ccd764650c9c20e36d159eaad41 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 6 Jul 2020 13:58:10 +0200 Subject: [PATCH] Ready First Half of Beta 6 --- LowFrequencyTrading/TradingEngine.js | 1 + LowFrequencyTrading/TradingPosition.js | 7 +++++++ LowFrequencyTrading/TradingStrategy.js | 7 +++++++ LowFrequencyTrading/TradingSystem.js | 5 +---- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/LowFrequencyTrading/TradingEngine.js b/LowFrequencyTrading/TradingEngine.js index 62f0889b5..7a549481d 100644 --- a/LowFrequencyTrading/TradingEngine.js +++ b/LowFrequencyTrading/TradingEngine.js @@ -5,6 +5,7 @@ exports.newTradingEngine = function newTradingEngine(bot, logger) { */ const MODULE_NAME = 'Trading Engine' let thisObject = { + cloneValues: cloneValues, setCurrentCandle: setCurrentCandle, updateEpisodeCountersAndStatistics: updateEpisodeCountersAndStatistics, updateDistanceToEventsCounters: updateDistanceToEventsCounters, diff --git a/LowFrequencyTrading/TradingPosition.js b/LowFrequencyTrading/TradingPosition.js index 51389abc8..ad7bc42fc 100644 --- a/LowFrequencyTrading/TradingPosition.js +++ b/LowFrequencyTrading/TradingPosition.js @@ -57,6 +57,13 @@ exports.newTradingPosition = function newTradingPosition(bot, logger) { tradingEngine.current.position.status.value = 'Closed' tradingEngine.current.position.end.value = tradingEngine.current.candle.end.value tradingEngine.current.position.exitType.value = exitType + /* + Now that the position is closed, it is the right time to move this position from current to last at the Trading Engine data structure. + */ + const TRADING_ENGINE_MODULE = require('./TradingEngine.js') + let tradingEngineModule = TRADING_ENGINE_MODULE.newTradingEngine(bot, logger) + + tradingEngineModule.cloneValues(tradingEngine.current.position, tradingEngine.last.position) } function resetPosition() { diff --git a/LowFrequencyTrading/TradingStrategy.js b/LowFrequencyTrading/TradingStrategy.js index 0cd221649..a07627cd1 100644 --- a/LowFrequencyTrading/TradingStrategy.js +++ b/LowFrequencyTrading/TradingStrategy.js @@ -45,6 +45,13 @@ exports.newTradingStrategy = function newTradingStrategy(bot, logger) { tradingEngine.current.strategy.exitType.value = exitType tradingEngine.current.strategy.end.value = tradingEngine.current.candle.end.value tradingEngine.current.strategy.endRate.value = tradingEngine.current.candle.min.value + /* + Now that the strategy is closed, it is the right time to move this strategy from current to last at the Trading Engine data structure. + */ + const TRADING_ENGINE_MODULE = require('./TradingEngine.js') + let tradingEngineModule = TRADING_ENGINE_MODULE.newTradingEngine(bot, logger) + + tradingEngineModule.cloneValues(tradingEngine.current.strategy, tradingEngine.last.strategy) } function resetStrategy() { diff --git a/LowFrequencyTrading/TradingSystem.js b/LowFrequencyTrading/TradingSystem.js index c027c2612..0aaa58865 100644 --- a/LowFrequencyTrading/TradingSystem.js +++ b/LowFrequencyTrading/TradingSystem.js @@ -832,9 +832,6 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { tradingEngine.previous.balance.baseAsset.value = tradingEngine.current.balance.baseAsset.value tradingEngine.previous.balance.quotedAsset.value = tradingEngine.current.balance.quotedAsset.value - tradingEngine.last.position.positionStatistics.profitLoss.value = 0 - tradingEngine.last.position.positionStatistics.ROI.value = 0 - let feePaid = 0 if (bot.sessionAndMarketBaseAssetsAreEqual) { @@ -874,7 +871,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { tradingPositionModule.updateStatistics() /* Recalculating Episode Counters */ - if (tradingEngine.last.position.positionStatistics.profitLoss.value > 0) { + if (tradingEngine.current.position.positionStatistics.profitLoss.value > 0) { tradingEngine.episode.episodeCounters.hits.value++ } else { tradingEngine.episode.episodeCounters.fails.value++