diff --git a/TaskServer/LowFrequencyTrading/TradingPosition.js b/TaskServer/LowFrequencyTrading/TradingPosition.js index 9965b2250..d787bd07c 100644 --- a/TaskServer/LowFrequencyTrading/TradingPosition.js +++ b/TaskServer/LowFrequencyTrading/TradingPosition.js @@ -165,17 +165,27 @@ exports.newTradingPosition = function newTradingPosition(bot, logger, tradingEng } function setPositionRate() { - const DEFAULT_VALUE = tradingEngine.current.candle.close.value let strategy = tradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value] - if (strategy.openStage === undefined) return DEFAULT_VALUE - if (strategy.openStage.initialDefinition === undefined) return DEFAULT_VALUE - if (strategy.openStage.initialDefinition.positionRate === undefined) return DEFAULT_VALUE - if (strategy.openStage.initialDefinition.positionRate.formula === undefined) return DEFAULT_VALUE + if (strategy.openStage.initialDefinition.positionRate === undefined) { + const errorText = 'Position Rate Node not Found. Fix this please.' + tradingSystem.errors.push([strategy.openStage.initialDefinition.id, errorText]) + throw (errorText) + } + if (strategy.openStage.initialDefinition.positionRate.formula === undefined) { + const errorText = 'Formula of Position Rate Node not Found. Fix this please.' + tradingSystem.errors.push([strategy.openStage.initialDefinition.positionRate.id, errorText]) + throw (errorText) + } let value = tradingSystem.formulas.get(strategy.openStage.initialDefinition.positionRate.formula.id) - if (value === undefined) return DEFAULT_VALUE - return value + if (value === undefined) { + const errorText = 'Position Rate can not be undefined. Fix this please.' + tradingSystem.errors.push([strategy.openStage.initialDefinition.positionRate.formula.id, errorText]) + throw (errorText) + } + + tradingEngine.current.position.rate.value = value } } diff --git a/TaskServer/LowFrequencyTrading/TradingSystem.js b/TaskServer/LowFrequencyTrading/TradingSystem.js index 27aa04e69..7e8679141 100644 --- a/TaskServer/LowFrequencyTrading/TradingSystem.js +++ b/TaskServer/LowFrequencyTrading/TradingSystem.js @@ -686,7 +686,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger, tradingEngineM the Position Rate, and we assign the values Above or Below to it. */ if (tradingEngine.current.position.stopLoss.stopLossPosition.value === tradingEngine.current.position.stopLoss.stopLossPosition.config.initialValue) { - if (tradingEngine.current.position.stopLoss.value > tradingEngine.current.position.rate) { + if (tradingEngine.current.position.stopLoss.value > tradingEngine.current.position.rate.value) { tradingEngine.current.position.stopLoss.stopLossPosition.value = 'Above' } else { tradingEngine.current.position.stopLoss.stopLossPosition.value = 'Below' @@ -702,7 +702,7 @@ exports.newTradingSystem = function newTradingSystem(bot, logger, tradingEngineM the Position Rates, and we assign the values Above or Below to it. */ if (tradingEngine.current.position.takeProfit.takeProfitPosition.value === tradingEngine.current.position.takeProfit.takeProfitPosition.config.initialValue) { - if (tradingEngine.current.position.takeProfit.value > tradingEngine.current.position.rate) { + if (tradingEngine.current.position.takeProfit.value > tradingEngine.current.position.rate.value) { tradingEngine.current.position.takeProfit.takeProfitPosition.value = 'Above' } else { tradingEngine.current.position.takeProfit.takeProfitPosition.value = 'Below'