From e41bc1750a5beba2fea2298476f4f2a894356e7e Mon Sep 17 00:00:00 2001
From: ivelin <ivelin117@gmail.com>
Date: Sat, 20 Jul 2024 15:14:43 -0500
Subject: [PATCH] fix: sql bug - ensure scan does not pick up outdated
 forecasts

Signed-off-by: ivelin <ivelin117@gmail.com>
---
 example.env                       | 6 +++---
 forecast.sh                       | 4 +++-
 setup.cfg                         | 4 ++--
 src/canswim/dashboard/__init__.py | 7 ++++++-
 src/canswim/dashboard/advanced.py | 2 +-
 src/canswim/dashboard/scans.py    | 2 +-
 6 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/example.env b/example.env
index e9c71de..c98430c 100644
--- a/example.env
+++ b/example.env
@@ -42,8 +42,8 @@ data_3rd_party="data-3rd-party"
 # forecast data storage
 forecast_data_file="forecast_data.parquet"
 
+# path to duckdb file
+db_file="canswim_local.duckdb"
+
 # Keep changes local or sync with remote HF Hub repo
 hfhub_sync=False
-
-# path to duckdb file
-db_file="canswim_local.duckdb"
\ No newline at end of file
diff --git a/forecast.sh b/forecast.sh
index d979b39..1e661ba 100755
--- a/forecast.sh
+++ b/forecast.sh
@@ -29,4 +29,6 @@ set -exv
 #./canswim.sh forecast --forecast_start_date "2024-06-17"
 #./canswim.sh forecast --forecast_start_date "2024-06-24"
 #./canswim.sh forecast --forecast_start_date "2024-07-01"
-./canswim.sh forecast --forecast_start_date "2024-07-08"
+#./canswim.sh forecast --forecast_start_date "2024-07-08"
+#./canswim.sh forecast --forecast_start_date "2024-07-15"
+./canswim.sh forecast --forecast_start_date "2024-07-22"
diff --git a/setup.cfg b/setup.cfg
index 55e77a9..07231e2 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = canswim
-version = 0.0.10
+version = 0.0.12
 author = Ivelin Ivanov
 author_email = ivelin117@gmail.com
 description = "Developer toolkit for IBD CANSLIM practitioners"
@@ -22,7 +22,7 @@ package_dir=
 packages = find:
 python_requires = >=3.10
 install_requires =
-    darts
+    darts~=0.27
     yfinance
     fmpsdk
     optuna==3.4.0
diff --git a/src/canswim/dashboard/__init__.py b/src/canswim/dashboard/__init__.py
index 81473a9..0c190e0 100644
--- a/src/canswim/dashboard/__init__.py
+++ b/src/canswim/dashboard/__init__.py
@@ -82,7 +82,12 @@ def initdb(self):
                     CREATE UNIQUE INDEX stock_tickers_sym_idx ON stock_tickers (symbol)
                     """
                 )
-                logger.info("Creating forecast table")
+                logger.info(
+                    """
+                    Creating forecast tables optimized for search. May take a few minutes.\n
+                    Use --help to see dashboard launch options.
+                    """
+                )
                 db_con.sql(
                     f"""--sql
                     CREATE OR REPLACE TABLE forecast 
diff --git a/src/canswim/dashboard/advanced.py b/src/canswim/dashboard/advanced.py
index 88443f7..42651e6 100644
--- a/src/canswim/dashboard/advanced.py
+++ b/src/canswim/dashboard/advanced.py
@@ -42,7 +42,7 @@ def __init__(self, canswim_model: CanswimModel = None, db_path=None):
                 HAVING forecast_close_high > prior_close_price AND
                     f.start_date = lf.date AND
                     reward_risk> 3 AND reward_percent >= 20
-                    and forecast_start_date = max(lf.date)
+                    AND forecast_start_date = (select max(date) from latest_forecast)
             """
             )
 
diff --git a/src/canswim/dashboard/scans.py b/src/canswim/dashboard/scans.py
index 79551aa..20fbf2a 100644
--- a/src/canswim/dashboard/scans.py
+++ b/src/canswim/dashboard/scans.py
@@ -67,7 +67,7 @@ def scan_forecasts(self, lowq, reward, rr):
                 HAVING forecast_close_high > prior_close_price AND
                     f.start_date = lf.date AND
                     reward_risk> $rr AND reward_percent >= $reward
-                    and forecast_start_date = max(lf.date)
+                    AND forecast_start_date = (select max(date) from latest_forecast)
                 """,
                 params={
                     "rr": rr,