From 5960a9fc5a59a562b3a43104f442c75b681ea644 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sat, 24 Aug 2019 14:54:07 +0200 Subject: [PATCH] Parameters Splitted in 4 --- Commons.js | 64 ++++++++++++++++++++++-------------------------- Run.js | 70 ++++++++++++++++++++++++++++------------------------- User.Bot.js | 3 +-- 3 files changed, 67 insertions(+), 70 deletions(-) diff --git a/Commons.js b/Commons.js index bc88fe4cb..2e6c26b92 100644 --- a/Commons.js +++ b/Commons.js @@ -171,25 +171,23 @@ exports.newCommons = function newCommons(bot, logger, UTILITIES) { } if (definition.tradingSystem !== undefined) { if (definition.tradingSystem.parameters !== undefined) { - if (definition.tradingSystem.parameters.baseAsset !== undefined) { - if (definition.tradingSystem.parameters.baseAsset.formula !== undefined) { - if (definition.tradingSystem.parameters.baseAsset.formula.code !== undefined) { - try { - let code = JSON.parse(definition.tradingSystem.parameters.baseAsset.formula.code) - if (code.slippage !== undefined) { - if (code.slippage.positionRate !== undefined) { - slippage.positionRate = code.slippage.positionRate - } - if (code.slippage.stopLoss !== undefined) { - slippage.stopLoss = code.slippage.stopLoss - } - if (code.slippage.takeProfit !== undefined) { - slippage.takeProfit = code.slippage.takeProfit - } - } - } catch (err) { - tradingSystem.parameters.baseAsset.formula.error = "Slippage Error: " + err.message + if (definition.tradingSystem.parameters.slippage !== undefined) { + if (definition.tradingSystem.parameters.slippage.code !== undefined) { + try { + let code = JSON.parse(definition.tradingSystem.parameters.slippage.code) + + if (code.positionRate !== undefined) { + slippage.positionRate = code.positionRate } + if (code.stopLoss !== undefined) { + slippage.stopLoss = code.stopLoss + } + if (code.takeProfit !== undefined) { + slippage.takeProfit = code.takeProfit + } + + } catch (err) { + tradingSystem.parameters.slippage.error = err.message } } } @@ -204,22 +202,20 @@ exports.newCommons = function newCommons(bot, logger, UTILITIES) { if (definition.tradingSystem !== undefined) { if (definition.tradingSystem.parameters !== undefined) { - if (definition.tradingSystem.parameters.baseAsset !== undefined) { - if (definition.tradingSystem.parameters.baseAsset.formula !== undefined) { - if (definition.tradingSystem.parameters.baseAsset.formula.code !== undefined) { - try { - let code = JSON.parse(definition.tradingSystem.parameters.baseAsset.formula.code) - if (code.feeStructure !== undefined) { - if (code.feeStructure.maker !== undefined) { - feeStructure.maker = code.feeStructure.maker - } - if (code.feeStructure.taker !== undefined) { - feeStructure.taker = code.feeStructure.taker - } - } - } catch (err) { - tradingSystem.parameters.baseAsset.formula.error = "Fee Structure Error: " + err.message + if (definition.tradingSystem.parameters.feeStructure !== undefined) { + if (definition.tradingSystem.parameters.feeStructure.code !== undefined) { + try { + let code = JSON.parse(definition.tradingSystem.parameters.feeStructure.code) + + if (code.maker !== undefined) { + feeStructure.maker = code.maker } + if (code.taker !== undefined) { + feeStructure.taker = code.taker + } + + } catch (err) { + tradingSystem.parameters.feeStructure.error = err.message } } } @@ -2251,12 +2247,10 @@ exports.newCommons = function newCommons(bot, logger, UTILITIES) { } currentTrade.lastTradeROI = lastTradeROI; - currentTrade.stopRate = stopLoss; if (processingDailyFiles) { if (positionedAtYesterday) { yesterday.currentTrade.lastTradeROI = currentTrade.lastTradeROI; - yesterday.currentTrade.stopRate = currentTrade.stopRate; } } diff --git a/Run.js b/Run.js index 54bc7ec74..befb62319 100644 --- a/Run.js +++ b/Run.js @@ -27,9 +27,6 @@ process.on('exit', function (code) { console.log('[INFO] Run -> process.on.exit -> About to exit -> code = ' + code) }) -const definitionPath = path.resolve(process.env.INTER_PROCESS_FILES_PATH + '/definition.json'); -const definition = require(definitionPath); - let sequenceList = require('./sequence'); let isRunSequence = false; let sequenceStep = 0; @@ -53,7 +50,8 @@ if (isRunSequence) { readExecutionConfiguration() } -function sequenceExecution(currentStep) { +async function sequenceExecution(currentStep) { + let execution = sequenceList[currentStep]; process.env.STOP_GRACEFULLY = true; @@ -77,6 +75,9 @@ function sequenceExecution(currentStep) { execution.exchangeName ? global.EXCHANGE_NAME = execution.exchangeName : undefined; + + const definition = await strategy.getStrategy(); + if (definition) { if (definition.personalData) { if (definition.personalData.exchangeAccounts) { @@ -174,16 +175,18 @@ async function readExecutionConfiguration(execution) { } if (definition.tradingSystem !== undefined) { if (definition.tradingSystem.parameters !== undefined) { - if (definition.tradingSystem.parameters.baseAsset !== undefined) { - if (definition.tradingSystem.parameters.baseAsset.formula !== undefined) { - if (definition.tradingSystem.parameters.baseAsset.formula.code !== undefined) { - let code = JSON.parse(definition.tradingSystem.parameters.baseAsset.formula.code) + if (definition.tradingSystem.parameters.timeRange !== undefined) { + if (definition.tradingSystem.parameters.timeRange.code !== undefined) { + try { + let code = JSON.parse(definition.tradingSystem.parameters.timeRange.code) if (code.initialDatetime !== undefined) { initialDatetime = code.initialDatetime /* The second override occurs here, with the date explicitelly defined by the user */ } if (code.finalDatetime !== undefined) { finalDatetime = code.finalDatetime } + } catch (err) { + definition.tradingSystem.parameters.timeRange.error = err.message } } } @@ -195,34 +198,35 @@ async function readExecutionConfiguration(execution) { if (tradingSystem) { if (tradingSystem.parameters !== undefined) { if (tradingSystem.parameters.baseAsset !== undefined) { - if (tradingSystem.parameters.baseAsset.formula !== undefined) { - let receivedParameters - try { - receivedParameters = JSON.parse(tradingSystem.parameters.baseAsset.formula.code); + let code + try { + code = JSON.parse(tradingSystem.parameters.baseAsset.code); - if (receivedParameters.name !== undefined) { - baseAsset = receivedParameters.name; - if (baseAsset !== 'BTC' && baseAsset !== 'USDT') { - /* using BTC as default */ - baseAsset = 'BTC' - } + if (code.name !== undefined) { + baseAsset = code.name; + if (baseAsset !== 'BTC' && baseAsset !== 'USDT') { + /* using BTC as default */ + baseAsset = 'BTC' } - - if (baseAsset === 'BTC') { // NOTE: POLONIEX, the only exchange working so far, has Asset A and B inverted. We need to fix this. - if (receivedParameters.initialBalance !== undefined) { - process.env.INITIAL_BALANCE_ASSET_B = receivedParameters.initialBalance; - process.env.INITIAL_BALANCE_ASSET_A = 0 - } - } else { - if (receivedParameters.initialBalance !== undefined) { - process.env.INITIAL_BALANCE_ASSET_A = receivedParameters.initialBalance; - process.env.INITIAL_BALANCE_ASSET_B = 0 - } - } - } catch (err) { - process.env.INITIAL_BALANCE_ASSET_A = 0 // default - process.env.INITIAL_BALANCE_ASSET_B = 0.001 // default } + + if (baseAsset === 'BTC') { // NOTE: POLONIEX, the only exchange working so far, has Asset A and B inverted. We need to fix this. + if (code.initialBalance !== undefined) { + process.env.INITIAL_BALANCE_ASSET_B = code.initialBalance; + process.env.INITIAL_BALANCE_ASSET_A = 0 + } + } else { + if (code.initialBalance !== undefined) { + process.env.INITIAL_BALANCE_ASSET_A = code.initialBalance; + process.env.INITIAL_BALANCE_ASSET_B = 0 + } + } + } catch (err) { + definition.tradingSystem.parameters.baseAsset.error = err.message + + process.env.INITIAL_BALANCE_ASSET_A = 0 // default + process.env.INITIAL_BALANCE_ASSET_B = 0.001 // default + } } } diff --git a/User.Bot.js b/User.Bot.js index d646dd02a..88ddebd50 100644 --- a/User.Bot.js +++ b/User.Bot.js @@ -612,8 +612,7 @@ record.lastTradeROI + "," + record.beginRate + "," + record.endRate + "," + - record.exitType + "," + - record.stopRate + "]"; + record.exitType + "]"; if (separator === "") { separator = ","; }