From ce71e3332a36960bcbbc12d0634eec8cee830724 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Thu, 18 Jun 2020 17:02:47 +0200 Subject: [PATCH] Simulation Runing Again --- LowFrequencyTrading/Snapshots.js | 4 ++-- LowFrequencyTrading/TradingSystem.js | 27 +++++++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/LowFrequencyTrading/Snapshots.js b/LowFrequencyTrading/Snapshots.js index 64a77e85c..6904dc2e4 100644 --- a/LowFrequencyTrading/Snapshots.js +++ b/LowFrequencyTrading/Snapshots.js @@ -66,12 +66,12 @@ exports.newSnapshots = function newSnapshots(bot, logger) { tradingEngine.current.strategy.situationName.value, // Trigger On Situation tradingEngine.current.position.situationName.value, // Take Position Situation hitOrFial(), // Result - tradingEngine.last.position.ROI.value, // ROI + tradingEngine.last.position.positionStatistics.ROI.value, // ROI exitType() // Exit Type ] function hitOrFial() { - if (tradingEngine.last.position.ROI.value > 0) { return 'HIT' } else { return 'FAIL' } + if (tradingEngine.last.position.positionStatistics.ROI.value > 0) { return 'HIT' } else { return 'FAIL' } } function exitType() { diff --git a/LowFrequencyTrading/TradingSystem.js b/LowFrequencyTrading/TradingSystem.js index 0d2f92d4f..aa50c7ad5 100644 --- a/LowFrequencyTrading/TradingSystem.js +++ b/LowFrequencyTrading/TradingSystem.js @@ -27,6 +27,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { let tradingSystem let tradingEngine + let sessionParameters let conditions = new Map() let formulas = new Map() @@ -36,6 +37,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { function initialize() { tradingSystem = bot.simulationState.tradingSystem tradingEngine = bot.simulationState.tradingEngine + sessionParameters = bot.SESSION.parameters } function finalize() { @@ -53,6 +55,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { tradingSystem = undefined tradingEngine = undefined + sessionParameters = undefined } function reset(pChart) { @@ -724,7 +727,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { /* Stop Loss condition: Here we verify if the Stop Loss was hitted or not. */ if ( (bot.sessionAndMarketBaseAssetsAreEqual && tradingEngine.current.candle.max.value >= tradingEngine.current.position.stopLoss.value) || - (sessionParameters.sessionBaseAsset.name !== bot.market.baseAsset && tradingEngine.current.candle.min.value <= tradingEngine.current.position.stopLoss.value) + (!bot.sessionAndMarketBaseAssetsAreEqual && tradingEngine.current.candle.min.value <= tradingEngine.current.position.stopLoss.value) ) { logger.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Stop Loss was hit.') /* @@ -771,7 +774,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { /* Take Profit condition: Here we verify if the Take Profit was hit or not. */ if ( (bot.sessionAndMarketBaseAssetsAreEqual && tradingEngine.current.candle.min.value <= tradingEngine.current.position.takeProfit.value) || - (sessionParameters.sessionBaseAsset.name !== bot.market.baseAsset && tradingEngine.current.candle.max.value >= tradingEngine.current.position.takeProfit.value) + (!bot.sessionAndMarketBaseAssetsAreEqual && tradingEngine.current.candle.max.value >= tradingEngine.current.position.takeProfit.value) ) { logger.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Take Profit was hit.') /* @@ -849,8 +852,8 @@ 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.profitLoss.value = 0 - tradingEngine.last.position.ROI.value = 0 + tradingEngine.last.position.positionStatistics.profitLoss.value = 0 + tradingEngine.last.position.positionStatistics.ROI.value = 0 let feePaid = 0 @@ -895,20 +898,20 @@ exports.newTradingSystem = function newTradingSystem(bot, logger) { } if (bot.sessionAndMarketBaseAssetsAreEqual) { - tradingEngine.last.position.profitLoss.value = tradingEngine.current.balance.baseAsset.value - tradingEngine.previous.balance.baseAsset.value - tradingEngine.last.position.ROI.value = tradingEngine.last.position.profitLoss.value * 100 / tradingEngine.current.position.size.value - if (isNaN(tradingEngine.last.position.ROI.value)) { tradingEngine.last.position.ROI.value = 0 } + tradingEngine.last.position.positionStatistics.profitLoss.value = tradingEngine.current.balance.baseAsset.value - tradingEngine.previous.balance.baseAsset.value + tradingEngine.last.position.positionStatistics.ROI.value = tradingEngine.last.position.positionStatistics.profitLoss.value * 100 / tradingEngine.current.position.size.value + if (isNaN(tradingEngine.last.position.positionStatistics.ROI.value)) { tradingEngine.last.position.positionStatistics.ROI.value = 0 } tradingEngine.episode.episodeStatistics.profitLoss.value = tradingEngine.current.balance.baseAsset.value - sessionParameters.sessionBaseAsset.config.initialBalance } else { - tradingEngine.last.position.profitLoss.value = tradingEngine.current.balance.quotedAsset.value - tradingEngine.previous.balance.quotedAsset.value - tradingEngine.last.position.ROI.value = tradingEngine.last.position.profitLoss.value * 100 / tradingEngine.current.position.size.value - if (isNaN(tradingEngine.last.position.ROI.value)) { tradingEngine.last.position.ROI.value = 0 } + tradingEngine.last.position.positionStatistics.profitLoss.value = tradingEngine.current.balance.quotedAsset.value - tradingEngine.previous.balance.quotedAsset.value + tradingEngine.last.position.positionStatistics.ROI.value = tradingEngine.last.position.positionStatistics.profitLoss.value * 100 / tradingEngine.current.position.size.value + if (isNaN(tradingEngine.last.position.positionStatistics.ROI.value)) { tradingEngine.last.position.positionStatistics.ROI.value = 0 } tradingEngine.episode.episodeStatistics.profitLoss.value = tradingEngine.current.balance.quotedAsset.value - sessionParameters.sessionQuotedAsset.config.initialBalance } - tradingEngine.current.position.positionStatistics.ROI.value = tradingEngine.last.position.ROI.value + tradingEngine.current.position.positionStatistics.ROI.value = tradingEngine.last.position.positionStatistics.ROI.value - if (tradingEngine.last.position.profitLoss.value > 0) { + if (tradingEngine.last.position.positionStatistics.profitLoss.value > 0) { tradingEngine.episode.episodeCounters.hits.value++ } else { tradingEngine.episode.episodeCounters.fails.value++