[2026-05-27] 포맷 후 복구 설치 스크립트 추가

This commit is contained in:
2026-05-27 16:53:52 +09:00
parent 04577c63f1
commit 29db1bfcab
135 changed files with 2909 additions and 251 deletions
+72
View File
@@ -7,6 +7,12 @@ import os
DB_PATH = os.getenv("DB_PATH", "data/stockbot.db")
def _ensure_columns(cursor, table: str, columns: dict[str, str]):
existing = {row[1] for row in cursor.execute(f"PRAGMA table_info({table})").fetchall()}
for name, ddl in columns.items():
if name not in existing:
cursor.execute(f"ALTER TABLE {table} ADD COLUMN {name} {ddl}")
def init_db():
os.makedirs(os.path.dirname(DB_PATH), exist_ok=True)
conn = sqlite3.connect(DB_PATH)
@@ -80,6 +86,72 @@ def init_db():
api_call_success INTEGER DEFAULT 1
)""")
c.execute("""
CREATE TABLE IF NOT EXISTS entry_snapshots (
id INTEGER PRIMARY KEY AUTOINCREMENT,
trade_id INTEGER,
date TEXT NOT NULL,
ticker TEXT NOT NULL,
name TEXT,
entry_time TEXT NOT NULL,
current_price REAL,
entry_price REAL,
target_price REAL,
stop_price REAL,
today_open REAL,
prev_high REAL,
prev_low REAL,
prev_amount REAL,
volume REAL,
change_pct REAL,
market_sentiment TEXT,
sentiment_score INTEGER,
risk_level TEXT,
trade_allowed INTEGER,
hot_sectors TEXT,
avoid_sectors TEXT,
boosted_tickers TEXT,
blacklist_tickers TEXT,
ai_boosted INTEGER DEFAULT 0,
ai_win_score REAL,
ai_stop_loss_score REAL,
ai_model_version TEXT,
position_size_multiplier REAL,
combined_multiplier REAL,
entry_reason TEXT,
strategy TEXT DEFAULT 'VB',
created_at TEXT NOT NULL
)""")
c.execute("CREATE INDEX IF NOT EXISTS idx_entry_snapshots_trade_id ON entry_snapshots(trade_id)")
c.execute("CREATE INDEX IF NOT EXISTS idx_entry_snapshots_date_ticker ON entry_snapshots(date, ticker)")
_ensure_columns(c, "entry_snapshots", {
"ai_win_score": "REAL",
"ai_stop_loss_score": "REAL",
"ai_model_version": "TEXT",
})
c.execute("""
CREATE TABLE IF NOT EXISTS post_entry_snapshots (
id INTEGER PRIMARY KEY AUTOINCREMENT,
trade_id INTEGER,
date TEXT NOT NULL,
ticker TEXT NOT NULL,
sample_time TEXT NOT NULL,
elapsed_sec INTEGER NOT NULL,
entry_price REAL,
current_price REAL,
return_pct REAL,
mfe_pct REAL,
mae_pct REAL,
volume REAL,
change_pct REAL,
position_open INTEGER DEFAULT 1,
created_at TEXT NOT NULL,
UNIQUE(trade_id, elapsed_sec)
)""")
c.execute("CREATE INDEX IF NOT EXISTS idx_post_entry_snapshots_trade_id ON post_entry_snapshots(trade_id)")
c.execute("CREATE INDEX IF NOT EXISTS idx_post_entry_snapshots_date_ticker ON post_entry_snapshots(date, ticker)")
conn.commit()
conn.close()
print(f"DB 초기화 완료: {DB_PATH}")