Adjustments to doble the value

This commit is contained in:
Luis Fernando Molina committed 2019-05-03 10:19:30 +02:00
1 parent f712282529
commit 5fff4f93f9
2 files changed
+96 -113

No files matched your search

+14 -61
View File
@@ -324,33 +324,7 @@
for (let i = 0; i < dailyFile.length; i++) {
let record = {
begin: undefined,
end: undefined,
type: undefined,
rate: undefined,
amount: undefined,
balanceA: undefined,
balanceB: undefined,
profit: undefined,
lastProfit: undefined,
stopLoss: undefined,
roundtrips: undefined,
hits: undefined,
fails: undefined,
hitRatio: undefined,
ROI: undefined,
periods: undefined,
days: undefined,
anualizedRateOfReturn: undefined,
sellRate: undefined,
lastProfitPercent: undefined,
strategy: undefined,
strategyPhase: undefined,
buyOrder: undefined,
stopLossPhase: undefined,
buyOrderPhase: undefined
};
let record = {};
record.begin = dailyFile[i][0];
record.end = dailyFile[i][1];
@@ -377,6 +351,7 @@
record.buyOrder = dailyFile[i][22];
record.stopLossPhase = dailyFile[i][23];
record.buyOrderPhase = dailyFile[i][24];
record.sellAmount = dailyFile[i][26]; // 25 is the message for the executor
if (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) {
@@ -439,33 +414,7 @@
for (let i = 0; i < marketFile.length; i++) {
let record = {
begin: undefined,
end: undefined,
type: undefined,
rate: undefined,
amount: undefined,
balanceA: undefined,
balanceB: undefined,
profit: undefined,
lastProfit: undefined,
stopLoss: undefined,
roundtrips: undefined,
hits: undefined,
fails: undefined,
hitRatio: undefined,
ROI: undefined,
periods: undefined,
days: undefined,
anualizedRateOfReturn: undefined,
sellRate: undefined,
lastProfitPercent: undefined,
strategy: undefined,
strategyPhase: undefined,
buyOrder: undefined,
stopLossPhase: undefined,
buyOrderPhase: undefined
};
let record = {};
record.begin = marketFile[i][0];
record.end = marketFile[i][1];
@@ -492,6 +441,7 @@
record.buyOrder = marketFile[i][22];
record.stopLossPhase = marketFile[i][23];
record.buyOrderPhase = marketFile[i][24];
record.sellAmount = marketFile[i][26]; // 25 is the message for the executor
if (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) {
@@ -554,7 +504,7 @@
/* Now we calculate and plot the records */
for (let i = 1; i < records.length; i++) { // We do not start in 0 so as to be able to read the previous record i - 1
for (let i = 0; i < records.length; i++) { // We do not start in 0 so as to be able to read the previous record i - 1
record = records[i];
@@ -567,16 +517,18 @@
};
thisObject.container.eventHandler.raiseEvent("Current Record Changed", currentRecord);
}
let stopLossPhase = 0;
let buyOrderPhase = 0;
if (record.stopLossPhase !== records[i - 1].stopLossPhase) {
stopLossPhase = record.stopLossPhase;
}
if (i > 0) {
if (record.stopLossPhase !== records[i - 1].stopLossPhase) {
stopLossPhase = record.stopLossPhase;
}
if (record.buyOrderPhase !== records[i - 1].buyOrderPhase) {
buyOrderPhase = record.buyOrderPhase;
if (record.buyOrderPhase !== records[i - 1].buyOrderPhase) {
buyOrderPhase = record.buyOrderPhase;
}
}
let recordPoint4 = {
@@ -811,5 +763,6 @@
+82 -52
View File
@@ -6,7 +6,8 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
container: undefined,
draw: draw,
getContainer: getContainer,
initialize: initialize
initialize: initialize,
finalize: finalize
};
let container = newContainer();
@@ -39,6 +40,13 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
}
function finalize() {
canvas.bottomSpace.destroyControl(controlHandler)
controlHandler = undefined
}
function getContainer(point) {
var container;
@@ -202,8 +210,9 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
params = {}
params.VALUE = currentRecord.innerRecord.balanceA;
params.INIT_VALUE = 1
params.MIN_VALUE = 0.5
params.MAX_VALUE = 1
params.MAX_VALUE = 2
params.ASSET_LABEL = 'Asset A'
params.ASSET_NAME = DEFAULT_MARKET.assetB + ' '
params.LEFT_OFFSET = 100
@@ -213,7 +222,8 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
params = {}
params.VALUE = currentRecord.innerRecord.balanceB;
params.MIN_VALUE = 0
params.MAX_VALUE = 6000
params.INIT_VALUE = currentRecord.innerRecord.rate * currentRecord.innerRecord.sellAmount;
params.MAX_VALUE = params.INIT_VALUE * 2;
params.ASSET_LABEL = 'Asset B'
params.ASSET_NAME = DEFAULT_MARKET.assetA + ' '
params.LEFT_OFFSET = 220
@@ -241,7 +251,7 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
fontSize = 15;
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.WHITE + ' Saira';
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.PRIMARY
label = 'ASSET BALANCES'
@@ -290,34 +300,58 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
const DEFAULT_THICKNESS = 2;
const VALUE_THICKNESS = 4;
const VALUE_BG_THICKNESS = 1;
const BAR_RADIOUS = RADIOUS * 0.9;
const BAR_START_ANGLE = 0.9 * Math.PI;
const BAR_END_ANGLE = 2.1 * Math.PI;
const CURRENT_VALUE_ANGLE = params.VALUE * (BAR_END_ANGLE - BAR_START_ANGLE) / params.MAX_VALUE + BAR_START_ANGLE
const MIN_VALUE_ANGLE = params.MIN_VALUE * (BAR_END_ANGLE - BAR_START_ANGLE) / params.MAX_VALUE + BAR_START_ANGLE
let PROFIT_VALUE_ANGLE = (params.VALUE - params.MAX_VALUE) * (BAR_END_ANGLE - BAR_START_ANGLE) / params.MAX_VALUE + BAR_START_ANGLE
if (PROFIT_VALUE_ANGLE > BAR_END_ANGLE) { PROFIT_VALUE_ANGLE = BAR_END_ANGLE }
let BAR_START_ANGLE = 0.9 * Math.PI;
let BAR_END_ANGLE = 2.1 * Math.PI;
let CURRENT_VALUE_ANGLE = params.VALUE * (BAR_END_ANGLE - BAR_START_ANGLE) / params.MAX_VALUE + BAR_START_ANGLE
let MIN_VALUE_ANGLE = params.MIN_VALUE * (BAR_END_ANGLE - BAR_START_ANGLE) / params.MAX_VALUE + BAR_START_ANGLE
let INIT_VALUE_ANGLE = params.INIT_VALUE * (BAR_END_ANGLE - BAR_START_ANGLE) / params.MAX_VALUE + BAR_START_ANGLE
let PROFIT_VALUE_ANGLE = CURRENT_VALUE_ANGLE
browserCanvasContext.setLineDash([0, 0])
if (CURRENT_VALUE_ANGLE > INIT_VALUE_ANGLE) { CURRENT_VALUE_ANGLE = INIT_VALUE_ANGLE }
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, BAR_START_ANGLE, MIN_VALUE_ANGLE)
if (params.VALUE > 0) {
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = DEFAULT_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
browserCanvasContext.setLineDash([0, 0])
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, MIN_VALUE_ANGLE, BAR_END_ANGLE)
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, BAR_START_ANGLE, MIN_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = DEFAULT_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = VALUE_BG_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
if (params.VALUE > 0 && params.VALUE <= params.MAX_VALUE) {
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, MIN_VALUE_ANGLE, CURRENT_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = VALUE_BG_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, CURRENT_VALUE_ANGLE, INIT_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = VALUE_BG_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
if (PROFIT_VALUE_ANGLE > INIT_VALUE_ANGLE) {
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, INIT_VALUE_ANGLE, PROFIT_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = VALUE_BG_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
}
browserCanvasContext.setLineDash([2, 3])
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, BAR_START_ANGLE, MIN_VALUE_ANGLE)
@@ -336,33 +370,23 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
browserCanvasContext.closePath();
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, CURRENT_VALUE_ANGLE, BAR_END_ANGLE)
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, CURRENT_VALUE_ANGLE, INIT_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = DEFAULT_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
}
if (params.VALUE > params.MAX_VALUE) {
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, BAR_START_ANGLE, BAR_END_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = DEFAULT_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, BAR_START_ANGLE, PROFIT_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = VALUE_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
if (PROFIT_VALUE_ANGLE > INIT_VALUE_ANGLE) {
browserCanvasContext.beginPath();
browserCanvasContext.arc(centerPoint.x, centerPoint.y, BAR_RADIOUS, INIT_VALUE_ANGLE, PROFIT_VALUE_ANGLE)
browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + OPACITY + ')'
browserCanvasContext.lineWidth = VALUE_THICKNESS
browserCanvasContext.stroke()
browserCanvasContext.closePath();
}
}
/* Common Variables */
@@ -376,18 +400,18 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
fontSize = 25;
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.WHITE + ' Saira';
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.PRIMARY
label = params.VALUE;
if (isNaN(label) === false) {
label = Number(label);
label = label.toLocaleString();
if (label === 0) { label = label.toFixed(2) } else { label = label.toLocaleString() }
}
label = label.substring(0, 5);
xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO;
xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO + 10;
labelPoint = {
x: centerPoint.x - xOffset,
@@ -401,11 +425,11 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
fontSize = 15;
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.WHITE + ' Saira';
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.PRIMARY
label = params.ASSET_LABEL;
xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO;
xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO + 7;
yOffset = 22
labelPoint = {
@@ -420,11 +444,11 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
fontSize = 15;
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.WHITE + ' Saira';
browserCanvasContext.font = "bold " + fontSize + 'px ' + UI_FONT.PRIMARY
label = params.ASSET_NAME;
xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO;
xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO + 5;
yOffset = - 15
labelPoint = {
@@ -447,3 +471,9 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation