From 19f06601d913552709f1f9fc69ccde1e2aa7ff6f Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Tue, 11 Feb 2025 17:58:13 -0800 Subject: [PATCH] refactor: Simplify trading plans table structure with MergeTree engine and default values --- src/trading/trading_plan.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/trading/trading_plan.py b/src/trading/trading_plan.py index 9ff2372..3de0e81 100644 --- a/src/trading/trading_plan.py +++ b/src/trading/trading_plan.py @@ -77,6 +77,13 @@ class TradingPlan: def create_trading_plan_table(): """Create the trading plans table if it doesn't exist""" with create_client() as client: + # First, try to drop the table if it exists + try: + client.execute("DROP TABLE IF EXISTS trading_plans") + except Exception as e: + print(f"Error dropping table: {e}") + + # Create new table with simpler structure query = """ CREATE TABLE IF NOT EXISTS trading_plans ( @@ -104,21 +111,22 @@ def create_trading_plan_table(): max_portfolio_risk Float64, adjustments_for_drawdown String, risk_controls String, - win_rate Nullable(Float64), - average_return_per_trade Nullable(Float64), - profit_factor Nullable(Float64), - historical_backtest_results Nullable(String), - real_trade_performance Nullable(String), - improvements_needed Nullable(String), + win_rate Float64 DEFAULT 0, + average_return_per_trade Float64 DEFAULT 0, + profit_factor Float64 DEFAULT 0, + historical_backtest_results String, + real_trade_performance String, + improvements_needed String, strategy_version UInt32, plan_author String, - trade_review_notes Nullable(String), - future_testing_ideas Nullable(String), - sector_focus Nullable(String), - fundamental_criteria Nullable(String), - options_strategy_details Nullable(String) + trade_review_notes String, + future_testing_ideas String, + sector_focus String, + fundamental_criteria String, + options_strategy_details String ) - ENGINE = Log + ENGINE = MergeTree + PRIMARY KEY (id) """ client.execute(query)