Skip to content

Commit 40e5691

Browse files
committed
portfoli position table creation
1 parent 955319a commit 40e5691

1 file changed

Lines changed: 24 additions & 18 deletions

File tree

test.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,38 @@
99
print("🧪 CREATE PORTFOLIO TABLES ")
1010
print("=" * 60)
1111
query = f"""
12-
CREATE TABLE portfolio_snapshots (
13-
date DATE PRIMARY KEY,
12+
CREATE TABLE portfolio_positions (
13+
date DATE NOT NULL,
14+
ticker VARCHAR(10) NOT NULL,
1415
15-
-- Valori base portafoglio
16-
total_value DECIMAL(12,2) NOT NULL, -- valore totale portafoglio (posizioni + cash)
17-
cash_balance DECIMAL(12,2) NOT NULL, -- cash disponibile
18-
positions_count INTEGER DEFAULT 0, -- numero posizioni aperte
16+
-- Dati posizione base
17+
shares INTEGER NOT NULL, -- numero azioni possedute
18+
avg_cost DECIMAL(10,4) NOT NULL, -- costo medio di acquisto
19+
current_price DECIMAL(10,4) NOT NULL, -- prezzo corrente
20+
current_value DECIMAL(12,2) NOT NULL, -- valore corrente (shares * current_price)
1921
20-
-- Metriche di performance
21-
daily_return_pct DECIMAL(8,4), -- rendimento giornaliero %
22-
portfolio_volatility DECIMAL(8,4), -- volatilità rolling 30 giorni
23-
portfolio_sharpe DECIMAL(8,4), -- sharpe ratio rolling 30 giorni
22+
-- Metriche posizione
23+
position_weight_pct DECIMAL(8,4), -- peso % nel portafoglio totale
24+
position_pnl_pct DECIMAL(8,4), -- P&L % dalla media acquisti
25+
position_volatility DECIMAL(8,4), -- volatilità rolling 30 giorni della posizione
26+
position_sharpe DECIMAL(8,4), -- sharpe ratio rolling 30 giorni della posizione
2427
25-
-- Metriche di rischio
26-
max_drawdown_pct DECIMAL(8,4), -- max drawdown storico %
27-
current_drawdown_pct DECIMAL(8,4), -- drawdown corrente da picco %
28-
peak_value DECIMAL(12,2), -- valore picco storico
29-
consecutive_loss_days INTEGER DEFAULT 0, -- giorni perdita consecutiva
28+
-- Metriche di rischio posizione
29+
position_var_95 DECIMAL(12,2), -- Value at Risk 95% (1 giorno)
30+
beta_vs_portfolio DECIMAL(6,4), -- beta rispetto al portafoglio
3031
3132
-- Metadata
3233
created_at TIMESTAMP DEFAULT NOW(),
33-
updated_at TIMESTAMP DEFAULT NOW()
34+
35+
-- Chiavi
36+
PRIMARY KEY (date, ticker),
37+
FOREIGN KEY (date) REFERENCES portfolio_snapshots(date) ON DELETE CASCADE
3438
);
3539
36-
-- Indici per performance
37-
CREATE INDEX idx_portfolio_snapshots_date ON portfolio_snapshots(date);
40+
-- Indici per performance
41+
CREATE INDEX idx_portfolio_positions_date ON portfolio_positions(date);
42+
CREATE INDEX idx_portfolio_positions_ticker ON portfolio_positions(ticker);
43+
CREATE INDEX idx_portfolio_positions_weight ON portfolio_positions(position_weight_pct DESC);
3844
3945
"""
4046
db.execute_query(query, fetch=False)

0 commit comments

Comments
 (0)