From 8e16b32745709d0893a7c2fea43589698410eba8 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Wed, 9 May 2018 21:32:16 +0200 Subject: [PATCH] Profits Calculation Improved --- .vs/AACloud/v15/.suo | Bin 104960 -> 98816 bytes Assistant.js | 85 +++++++++++++++++++++++++------------------ this.config.json | 4 +- 3 files changed, 52 insertions(+), 37 deletions(-) diff --git a/.vs/AACloud/v15/.suo b/.vs/AACloud/v15/.suo index 46f8a3f42d63b8cf1fd105e8d4b7c66e6686fb6a..4c842122b7ad7d9a96c58db8f94130ed6623bf0a 100644 GIT binary patch delta 5851 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 delta 6353 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 validateExchangeSyncronicity -> onDone -> Execution finished well. :-)"); - callBackFunction(global.DEFAULT_OK_RESPONSE); + calculateProfits(); return; } break; @@ -292,6 +292,55 @@ } } + function calculateProfits() { + + try { + + if (FULL_LOG === true) { logger.write("[INFO] initialize -> calculateProfits -> Entering function."); } + + /* Calculate Profits */ + + if (context.executionContext.investment.assetA > 0) { + + context.executionContext.profits.assetA = (context.executionContext.balance.assetA - context.executionContext.investment.assetA) / context.executionContext.investment.assetA; + } + + if (context.executionContext.investment.assetB > 0) { + + context.executionContext.profits.assetB = (context.executionContext.balance.assetB - context.executionContext.investment.assetB) / context.executionContext.investment.assetB; + } + + context.newHistoryRecord.profitsAssetA = context.executionContext.profits.assetA; + context.newHistoryRecord.profitsAssetB = context.executionContext.profits.assetB; + + /* Calculate Combined Profits */ + + if (context.executionContext.investment.assetA > 0) { + + let convertedAssetsB = (context.executionContext.balance.assetB - context.executionContext.investment.assetB) * marketRate; + + context.executionContext.combinedProfits.assetA = (context.executionContext.balance.assetA + convertedAssetsB - context.executionContext.investment.assetA) / context.executionContext.investment.assetA; + } + + if (context.executionContext.investment.assetB > 0) { + + let convertedAssetsA = (context.executionContext.balance.assetA - context.executionContext.investment.assetA) / marketRate; + + context.executionContext.combinedProfits.assetB = (context.executionContext.balance.assetB + convertedAssetsA - context.executionContext.investment.assetB) / context.executionContext.investment.assetB; + } + + context.newHistoryRecord.combinedProfitsA = context.executionContext.combinedProfits.assetA; + context.newHistoryRecord.combinedProfitsB = context.executionContext.combinedProfits.assetB; + + callBackFunction(global.DEFAULT_OK_RESPONSE); + + } catch (err) { + logger.write("[ERROR] initialize -> calculateProfits -> err = " + err.message); + callBack(global.DEFAULT_FAIL_RESPONSE); + return; + } + } + } catch (err) { logger.write("[ERROR] initialize -> err = " + err.message); callBackFunction(global.DEFAULT_FAIL_RESPONSE); @@ -782,40 +831,6 @@ } } - /* Calculate Profits */ - - if (context.executionContext.investment.assetA > 0) { - - context.executionContext.profits.assetA = (context.executionContext.balance.assetA - context.executionContext.investment.assetA) / context.executionContext.investment.assetA; - } - - if (context.executionContext.investment.assetB > 0) { - - context.executionContext.profits.assetB = (context.executionContext.balance.assetB - context.executionContext.investment.assetB) / context.executionContext.investment.assetB; - } - - context.newHistoryRecord.profitsAssetA = context.executionContext.profits.assetA; - context.newHistoryRecord.profitsAssetB = context.executionContext.profits.assetB; - - /* Calculate Combined Profits */ - - if (context.executionContext.investment.assetA > 0) { - - let convertedAssetsB = (context.executionContext.balance.assetB - context.executionContext.investment.assetB) / marketRate; - - context.executionContext.combinedProfits.assetA = (context.executionContext.balance.assetA + convertedAssetsB - context.executionContext.investment.assetA) / context.executionContext.investment.assetA; - } - - if (context.executionContext.investment.assetB > 0) { - - let convertedAssetsA = (context.executionContext.balance.assetA - context.executionContext.investment.assetA) * marketRate; - - context.executionContext.combinedProfits.assetB = (context.executionContext.balance.assetB + convertedAssetsA - context.executionContext.investment.assetB) / context.executionContext.investment.assetB; - } - - context.newHistoryRecord.combinedProfitsA = context.executionContext.combinedProfits.assetA; - context.newHistoryRecord.combinedProfitsB = context.executionContext.combinedProfits.assetB; - } catch (err) { logger.write("[ERROR] ordersExecutionCheck -> loopBody -> applyTradesToContext -> err = " + err.message); callBack(global.DEFAULT_FAIL_RESPONSE); diff --git a/this.config.json b/this.config.json index d00fca406..e55753f2c 100644 --- a/this.config.json +++ b/this.config.json @@ -7,7 +7,7 @@ }, "executionList": [ { - "enabled": "true", + "enabled": "false", "botPath": "../Bots/AAMasters/AAMariam-Trading-Bot", "process": "Trading-Process" }, @@ -17,7 +17,7 @@ "process": "Multi-Period-Market" }, { - "enabled": "false", + "enabled": "true", "botPath": "../Bots/AAMasters/AAOlivia-Indicator-Bot", "process": "Multi-Period-Daily" },