From 27628c93a0d07c71f831724f74b226c39f2ca3a4 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sat, 3 Mar 2018 18:29:39 +0100 Subject: [PATCH] Calculating after cursor fully loaded --- .vs/Plotters-Candles-Volumes/v15/.suo | Bin 20480 -> 22528 bytes Candles.js | 83 ++++++++++---------------- Volumes.js | 75 +++++++++-------------- 3 files changed, 58 insertions(+), 100 deletions(-) diff --git a/.vs/Plotters-Candles-Volumes/v15/.suo b/.vs/Plotters-Candles-Volumes/v15/.suo index 252ef6abba5d28bd285760bab4858430b271b1dc..fbe04c8380a0d85aee4adf1aeeae56bd84f79f37 100644 GIT binary patch delta 260 zcmZozz}T>Xae{#Y0}Kc-FmM6cj6nSF|Ns9WVGw&`;CjZ%{~2@H3Jzxd6yChKi0KzI z+XQK@FCaGCJ*&y`Zd{WmJ8MjCa%`I%;Ak}2%4rHrY?Jd^M&SsMNnoILAQr-y%;?+! sRiin%+V!L0Zm0?nbrFbFHrKjcW`P-l&FDqG%#&Q!l5Kc1^CCYc0IG^b)c^nh delta 191 zcmZqJz}T>Wae{#Y69W_oFfgzHnT$aE@Bjb*AW>!@-Wa%^aq@r0T($$%*V-O$+FZo+ zi?LF&LRAX{j2t=nZ5m=V~FUF6FQ0EJIGA^-pY diff --git a/Candles.js b/Candles.js index d7b437bf3..67896ffa2 100644 --- a/Candles.js +++ b/Candles.js @@ -11,6 +11,10 @@ setDatetime: setDatetime, draw: draw, + /* Events declared outside the plotter. */ + + onDailyFileLoaded: onDailyFileLoaded, + // Secondary functions and properties. currentCandle: undefined, @@ -95,64 +99,37 @@ function setTimePeriod(pTimePeriod) { - timePeriod = pTimePeriod; + if (timePeriod !== pTimePeriod) { - if (timePeriod >= _1_HOUR_IN_MILISECONDS) { + timePeriod = pTimePeriod; - let newMarketFile = fileCache.getFile(pTimePeriod); + if (timePeriod >= _1_HOUR_IN_MILISECONDS) { - if (newMarketFile !== undefined) { + let newMarketFile = fileCache.getFile(pTimePeriod); - marketFile = newMarketFile; + if (newMarketFile !== undefined) { - recalculate(); + marketFile = newMarketFile; + recalculate(); + } - } + } else { - } else { + let newFileCursor = fileCursorCache.getFileCursor(pTimePeriod); - fileCursorCache.setTimePeriod(pTimePeriod); - - fileCursorCache.setDatetime(datetime); - - let newFileCursor = fileCursorCache.getFileCursor(pTimePeriod); - - if (newFileCursor !== undefined) { - - fileCursor = newFileCursor; - - recalculate(); + if (newFileCursor !== undefined) { + fileCursor = newFileCursor; + recalculate(); + } } } - - if (timePeriod === _1_HOUR_IN_MILISECONDS) { - - fileCursorCache.setTimePeriod(pTimePeriod); - - fileCursorCache.setDatetime(datetime); - - } - } - function setDatetime(newDatetime) { + function setDatetime(pDatetime) { - /* If there is a change in the day, then we take some actions, otherwise, we dont. */ + datetime = pDatetime; - let currentDate = Math.trunc(datetime.valueOf() / ONE_DAY_IN_MILISECONDS); - let newDate = Math.trunc(newDatetime.valueOf() / ONE_DAY_IN_MILISECONDS); - - datetime = newDatetime; - - if (currentDate !== newDate) { - - if (timePeriod <= _1_HOUR_IN_MILISECONDS) { - - fileCursorCache.setDatetime(newDatetime); - - } - } } function positionAtDatetime(newDatetime) { @@ -217,19 +194,21 @@ } } + function onDailyFileLoaded(event) { + + if (event.currentValue === event.totalValue) { + + /* This happens only when all of the files in the cursor have been loaded. */ + + recalculate() + + } + } + function draw() { this.container.frame.draw(); - if (timePeriod < _1_HOUR_IN_MILISECONDS) { - - if (Math.random() * 1000 > 995) { - - recalculate(); - - } - } - plotChart(); } diff --git a/Volumes.js b/Volumes.js index 776cb6147..555dd9549 100644 --- a/Volumes.js +++ b/Volumes.js @@ -2,6 +2,10 @@ let thisObject = { + /* Events declared outside the plotter. */ + + onDailyFileLoaded: onDailyFileLoaded, + // Main functions and properties. initialize: initialize, @@ -93,63 +97,49 @@ function setTimePeriod(pTimePeriod) { - timePeriod = pTimePeriod; + if (timePeriod !== pTimePeriod) { - if (timePeriod >= _1_HOUR_IN_MILISECONDS) { + timePeriod = pTimePeriod; - let newMarketFile = fileCache.getFile(pTimePeriod); + if (timePeriod >= _1_HOUR_IN_MILISECONDS) { - if (newMarketFile !== undefined) { + let newMarketFile = fileCache.getFile(pTimePeriod); - marketFile = newMarketFile; + if (newMarketFile !== undefined) { - recalculate(); + marketFile = newMarketFile; + recalculate(); + } - } + } else { - } else { + let newFileCursor = fileCursorCache.getFileCursor(pTimePeriod); - fileCursorCache.setTimePeriod(pTimePeriod); - - fileCursorCache.setDatetime(datetime); - - let newFileCursor = fileCursorCache.getFileCursor(pTimePeriod); - - if (newFileCursor !== undefined) { - - fileCursor = newFileCursor; - - recalculate(); + if (newFileCursor !== undefined) { + fileCursor = newFileCursor; + recalculate(); + } } } + } - if (timePeriod === _1_HOUR_IN_MILISECONDS) { + function setDatetime(pDatetime) { - fileCursorCache.setTimePeriod(pTimePeriod); - - fileCursorCache.setDatetime(datetime); - - } + datetime = pDatetime; } - function setDatetime(newDatetime) { + function onDailyFileLoaded(event) { - /* If there is a change in the day, then we take some actions, otherwise, we dont. */ + if (event.currentValue === event.totalValue) { - let currentDate = Math.trunc(datetime.valueOf() / ONE_DAY_IN_MILISECONDS); - let newDate = Math.trunc(newDatetime.valueOf() / ONE_DAY_IN_MILISECONDS); + /* This happens only when all of the files in the cursor have been loaded. */ - datetime = newDatetime; + recalculateScaleX(); + recalculate(); + recalculateScaleY(); - if (currentDate !== newDate) { - - if (timePeriod <= _1_HOUR_IN_MILISECONDS) { - - fileCursorCache.setDatetime(newDatetime); - - } } } @@ -157,17 +147,6 @@ this.container.frame.draw(); - if (timePeriod < _1_HOUR_IN_MILISECONDS) { - - if (Math.random() * 1000 > 995) { - - recalculateScaleX(); - recalculate(); - recalculateScaleY(); - - } - } - plotChart(); }