File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -418,4 +418,42 @@ def create_portfolio_tables():
418418 logger .error (f"Errore nella creazione indici portfolio: { e } " )
419419 raise
420420
421- logger .info ("Setup completo tabelle portfolio completato con successo" )
421+ logger .info ("Setup completo tabelle portfolio completato con successo" )
422+
423+
424+ def reset_entire_db (confirm : bool = False ):
425+ """
426+ Elimina TUTTE le tabelle gestite dal modulo, inclusa universe.
427+ ATTENZIONE: cancella tutti i dati!
428+
429+ Parameters
430+ ----------
431+ confirm : bool
432+ Deve essere True per eseguire realmente la cancellazione.
433+ """
434+ if not confirm :
435+ logger .warning ("Reset DB non eseguito. Imposta confirm=True per confermare." )
436+ return
437+
438+ tables = [
439+ "portfolio_trades" ,
440+ "portfolio_positions" ,
441+ "portfolio_snapshots" ,
442+ "portfolio_trades_backtest" ,
443+ "portfolio_positions_backtest" ,
444+ "portfolio_snapshots_backtest" ,
445+ #"universe"
446+ ]
447+
448+ with _get_connection_context () as conn :
449+ with conn .cursor () as cursor :
450+ for table in tables :
451+ try :
452+ cursor .execute (f"DROP TABLE IF EXISTS { table } CASCADE;" )
453+ logger .info (f"Tabella { table } eliminata con successo" )
454+ except Exception as e :
455+ logger .error (f"Errore eliminando tabella { table } : { e } " )
456+ raise
457+ conn .commit ()
458+
459+ logger .info ("Reset completo del database (tabelle universe e portfolio/backtest eliminate)" )
Original file line number Diff line number Diff line change 33from datetime import datetime
44from scripts .risk_manager import get_signals
55from scripts .strategies import rsi_strategy , moving_average_crossover , breakout_strategy
6+ from scripts .database import *
7+ from scripts .portfolio import Portfolio
68
79logging .basicConfig (level = logging .INFO , format = "%(asctime)s [%(levelname)s] %(message)s" )
810
911start_date = "2025-09-01"
1012
1113def main ():
14+
15+ reset_entire_db (True )
16+ create_portfolio_tables ()
17+ p = Portfolio .create ("demo" , start_date )
18+
1219 dict_result = get_signals (rsi_strategy , datetime .strptime (start_date , '%Y-%m-%d' ), "demo" )
1320 print ("\n === Signals Result ===" )
1421 print (json .dumps (dict_result , indent = 4 , sort_keys = False , default = str ))
You can’t perform that action at this time.
0 commit comments