feat: 自我进化模块——health_monitor+lesson_extractor+evolution_api+Dashboard+auto_iterator
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
"""
|
||||
evolution/__init__.py — 自我进化模块
|
||||
Loop Engineering: 策略健康度监控 + 教训提取 + 自动迭代
|
||||
"""
|
||||
import sqlite3, os
|
||||
|
||||
DB = os.environ.get('MOFIN_DB', '/home/hmo/MoFin/data/mofin.db')
|
||||
|
||||
def init_evolution_tables(conn=None):
|
||||
"""初始化进化模块数据表"""
|
||||
close_conn = False
|
||||
if conn is None:
|
||||
conn = sqlite3.connect(DB)
|
||||
close_conn = True
|
||||
|
||||
# 策略健康度每日快照
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS strategy_health (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
strategy_version TEXT NOT NULL,
|
||||
date TEXT NOT NULL,
|
||||
live_trades INTEGER DEFAULT 0,
|
||||
live_wins INTEGER DEFAULT 0,
|
||||
live_return_pct REAL DEFAULT 0,
|
||||
backtest_wr REAL DEFAULT 0,
|
||||
backtest_avg_ret REAL DEFAULT 0,
|
||||
deviation REAL DEFAULT 0,
|
||||
health_score REAL DEFAULT 0,
|
||||
created_at TEXT DEFAULT (datetime('now','localtime')),
|
||||
UNIQUE(strategy_version, date)
|
||||
)
|
||||
""")
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_health_version_date ON strategy_health(strategy_version, date)")
|
||||
|
||||
# 教训库
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS strategy_lessons (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
strategy_version TEXT NOT NULL,
|
||||
trade_id INTEGER,
|
||||
lesson_type TEXT NOT NULL,
|
||||
lesson_text TEXT NOT NULL,
|
||||
confidence REAL DEFAULT 0.5,
|
||||
applied INTEGER DEFAULT 0,
|
||||
created_at TEXT DEFAULT (datetime('now','localtime'))
|
||||
)
|
||||
""")
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_lessons_version ON strategy_lessons(strategy_version, applied)")
|
||||
|
||||
# 策略迭代历史
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS strategy_evolution (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
parent_version TEXT NOT NULL,
|
||||
child_version TEXT NOT NULL,
|
||||
change_description TEXT,
|
||||
backtest_result TEXT,
|
||||
promoted INTEGER DEFAULT 0,
|
||||
created_at TEXT DEFAULT (datetime('now','localtime'))
|
||||
)
|
||||
""")
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_evolution_parent ON strategy_evolution(parent_version, promoted)")
|
||||
|
||||
conn.commit()
|
||||
if close_conn:
|
||||
conn.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
init_evolution_tables()
|
||||
print("进化模块数据表初始化完成")
|
||||
Reference in New Issue
Block a user