refactor: enhance Optuna backtesting framework, optimize orderbook filtering, and update database management utilities.

This commit is contained in:
Your Name
2026-08-12 10:19:19 +09:00
parent cb7e5037a0
commit c6bd62a25f
218 changed files with 31613 additions and 759 deletions

View File

@@ -0,0 +1,22 @@
from database import TradeDB
import json
db = TradeDB()
try:
for strat in ['MOMENTUM', 'BREAKOUT', 'SCALP', 'TAIL']:
row = db.conn.execute("SELECT id, out_data FROM optuna_jobs WHERE strategy=%s ORDER BY id DESC LIMIT 1", (strat,)).fetchone()
if not row: continue
job_id = row['id']
out_data = json.loads(row['out_data'] or '{}')
# Get latest whipsaw result
# Actually I can just run attach_whipsaw_recommend on this out_data
from kis_trader.backtest.optuna_whipsaw_recommend import attach_whipsaw_recommend
out_data = attach_whipsaw_recommend(out_data)
db.conn.execute("UPDATE optuna_jobs SET out_data=%s WHERE id=%s", (json.dumps(out_data, ensure_ascii=False), job_id))
db.conn.commit()
print(f"Updated job {job_id} for {strat}")
finally:
db.close()