diff --git a/Commons.js b/Commons.js index 7fe3be8a8..4dac7e25a 100644 --- a/Commons.js +++ b/Commons.js @@ -566,44 +566,39 @@ exports.newCommons = function newCommons(bot, logger, UTILITIES) { */ - checkTriggerOn(); + for (let j = 0; j < tradingSystem.strategies.length; j++) { - function checkTriggerOn() { + let strategy = tradingSystem.strategies[j]; - for (let j = 0; j < tradingSystem.strategies.length; j++) { + let triggerStage = strategy.triggerStage - let strategy = tradingSystem.strategies[j]; + if (triggerStage !== undefined) { - let triggerStage = strategy.triggerStage + if (triggerStage.triggerOn !== undefined) { - if (triggerStage !== undefined) { + for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) { - if (triggerStage.triggerOn !== undefined) { + let situation = triggerStage.triggerOn.situations[k]; + let passed = true; - for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) { + for (let m = 0; m < situation.conditions.length; m++) { - let situation = triggerStage.triggerOn.situations[k]; - let passed = true; + let condition = situation.conditions[m]; + let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m; - for (let m = 0; m < situation.conditions.length; m++) { + let value = conditions.get(key).value; - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m; + if (value === false) { passed = false; } + } - let value = conditions.get(key).value; + if (passed) { - if (value === false) { passed = false; } - } - - if (passed) { - - strategyStage = 'Trigger Stage'; - currentStrategyIndex = j; - currentStrategy.begin = candle.begin; - currentStrategy.beginRate = candle.min; - currentStrategy.endRate = candle.min; // In case the strategy does not get exited - return; - } + strategyStage = 'Trigger Stage'; + currentStrategyIndex = j; + currentStrategy.begin = candle.begin; + currentStrategy.beginRate = candle.min; + currentStrategy.endRate = candle.min; // In case the strategy does not get exited + break; } } } @@ -615,44 +610,38 @@ exports.newCommons = function newCommons(bot, logger, UTILITIES) { if (strategyStage === 'Trigger Stage') { - checkTriggerOff(); + let strategy = tradingSystem.strategies[currentStrategyIndex]; - function checkTriggerOff() { + let triggerStage = strategy.triggerStage - let strategy = tradingSystem.strategies[currentStrategyIndex]; + if (triggerStage !== undefined) { - let triggerStage = strategy.triggerStage + if (triggerStage.triggerOff !== undefined) { - if (triggerStage !== undefined) { + for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) { - if (triggerStage.triggerOff !== undefined) { + let situation = triggerStage.triggerOff.situations[k]; + let passed = true; - for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) { + for (let m = 0; m < situation.conditions.length; m++) { - let situation = triggerStage.triggerOff.situations[k]; - let passed = true; + let condition = situation.conditions[m]; + let key = j + '-' + 'triggerStage' + '-' + 'triggerOff' + '-' + k + '-' + m; - for (let m = 0; m < situation.conditions.length; m++) { + let value = conditions.get(key).value; - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'triggerOff' + '-' + k + '-' + m; + if (value === false) { passed = false; } + } - let value = conditions.get(key).value; + if (passed) { - if (value === false) { passed = false; } - } - - if (passed) { - - currentStrategy.number = currentStrategyIndex - currentStrategy.end = candle.end; - currentStrategy.endRate = candle.min; - currentStrategy.status = 1; - strategyStage = 'No Stage'; - currentStrategyIndex = 0; - - return; - } + currentStrategy.number = currentStrategyIndex + currentStrategy.end = candle.end; + currentStrategy.endRate = candle.min; + currentStrategy.status = 1; + strategyStage = 'No Stage'; + currentStrategyIndex = 0; + break; } } } @@ -663,47 +652,42 @@ exports.newCommons = function newCommons(bot, logger, UTILITIES) { if (strategyStage === 'Trigger Stage') { - checkTakePosition(); + let strategy = tradingSystem.strategies[currentStrategyIndex]; - function checkTakePosition() { + let triggerStage = strategy.triggerStage - let strategy = tradingSystem.strategies[currentStrategyIndex]; + if (triggerStage !== undefined) { - let triggerStage = strategy.triggerStage + if (triggerStage.takePosition !== undefined) { - if (triggerStage !== undefined) { + for (let k = 0; k < triggerStage.takePosition.situations.length; k++) { - if (triggerStage.takePosition !== undefined) { + let situation = triggerStage.takePosition.situations[k]; + let passed = true; - for (let k = 0; k < triggerStage.takePosition.situations.length; k++) { + for (let m = 0; m < situation.conditions.length; m++) { - let situation = triggerStage.takePosition.situations[k]; - let passed = true; + let condition = situation.conditions[m]; + let key = j + '-' + 'triggerStage' + '-' + 'takePosition' + '-' + k + '-' + m; - for (let m = 0; m < situation.conditions.length; m++) { + let value = conditions.get(key).value; - let condition = situation.conditions[m]; - let key = j + '-' + 'triggerStage' + '-' + 'takePosition' + '-' + k + '-' + m; + if (value === false) { passed = false; } + } - let value = conditions.get(key).value; + if (passed) { - if (value === false) { passed = false; } - } + type = '"Sell"'; - if (passed) { - - type = '"Sell"'; - - strategyStage = 'Open Stage'; - stopLossStage = 'Open Stage'; - takeProfitStage = 'Open Stage'; - stopLossPhase = 1; - takeProfitPhase = 1; - currentTrade.begin = candle.begin; - currentTrade.beginRate = candle.close; - takePositionNow = true - return; - } + strategyStage = 'Open Stage'; + stopLossStage = 'Open Stage'; + takeProfitStage = 'Open Stage'; + stopLossPhase = 1; + takeProfitPhase = 1; + currentTrade.begin = candle.begin; + currentTrade.beginRate = candle.close; + takePositionNow = true + break; } } }