From 75cdbebf08abda460b2172e85b54efc63d107dba Mon Sep 17 00:00:00 2001 From: Mike Bryant Date: Tue, 31 Mar 2020 18:49:20 +0100 Subject: [PATCH] Fix calculation bug where we weren't lenient enough and predicted slightly too high minimum prices --- js/scripts.js | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/js/scripts.js b/js/scripts.js index 2976321..555b6e7 100644 --- a/js/scripts.js +++ b/js/scripts.js @@ -1,3 +1,11 @@ +function minimum_rate_from_given_and_base(given_price, buy_price) { + return (given_price - 0.5) / buy_price; +} + +function maximum_rate_from_given_and_base(given_price, buy_price) { + return (given_price + 0.5) / buy_price; +} + function* generate_pattern_0_with_lengths(given_prices, high_phase_1_len, dec_phase_1_len, high_phase_2_len, dec_phase_2_len, high_phase_3_len) { /* // PATTERN 0: high, decreasing, high, decreasing, high @@ -87,8 +95,8 @@ function* generate_pattern_0_with_lengths(given_prices, high_phase_1_len, dec_ph } min_pred = given_prices[i]; max_pred = given_prices[i]; - min_rate = given_prices[i] / buy_price; - max_rate = given_prices[i] / buy_price; + min_rate = minimum_rate_from_given_and_base(given_prices[i], buy_price); + max_rate = maximum_rate_from_given_and_base(given_prices[i], buy_price); } predicted_prices.push({ @@ -134,8 +142,8 @@ function* generate_pattern_0_with_lengths(given_prices, high_phase_1_len, dec_ph } min_pred = given_prices[i]; max_pred = given_prices[i]; - min_rate = given_prices[i] / buy_price; - max_rate = given_prices[i] / buy_price; + min_rate = minimum_rate_from_given_and_base(given_prices[i], buy_price); + max_rate = maximum_rate_from_given_and_base(given_prices[i], buy_price); } predicted_prices.push({ @@ -238,8 +246,8 @@ function* generate_pattern_1_with_peak(given_prices, peak_start) { } min_pred = given_prices[i]; max_pred = given_prices[i]; - min_rate = given_prices[i] / buy_price; - max_rate = given_prices[i] / buy_price; + min_rate = minimum_rate_from_given_and_base(given_prices[i], buy_price); + max_rate = maximum_rate_from_given_and_base(given_prices[i], buy_price); } predicted_prices.push({ @@ -322,8 +330,8 @@ function* generate_pattern_2(given_prices) { } min_pred = given_prices[i]; max_pred = given_prices[i]; - min_rate = given_prices[i] / buy_price; - max_rate = given_prices[i] / buy_price; + min_rate = minimum_rate_from_given_and_base(given_prices[i], buy_price); + max_rate = maximum_rate_from_given_and_base(given_prices[i], buy_price); } predicted_prices.push({ @@ -399,8 +407,8 @@ function* generate_pattern_3_with_peak(given_prices, peak_start) { } min_pred = given_prices[i]; max_pred = given_prices[i]; - min_rate = given_prices[i] / buy_price; - max_rate = given_prices[i] / buy_price; + min_rate = minimum_rate_from_given_and_base(given_prices[i], buy_price); + max_rate = maximum_rate_from_given_and_base(given_prices[i], buy_price); } predicted_prices.push({ @@ -467,8 +475,8 @@ function* generate_pattern_3_with_peak(given_prices, peak_start) { } min_pred = given_prices[i]; max_pred = given_prices[i]; - min_rate = given_prices[i] / buy_price; - max_rate = given_prices[i] / buy_price; + min_rate = minimum_rate_from_given_and_base(given_prices[i], buy_price); + max_rate = maximum_rate_from_given_and_base(given_prices[i], buy_price); } predicted_prices.push({