跳转至

grid_database

数据库管理模块

提供统一的数据库操作接口: - 持仓数据持久化 - 网格交易会话管理 - 交易记录管理

DatabaseManager

DatabaseManager(db_path: str = None)

数据库管理器

初始化数据库管理器

参数:

名称 类型 描述 默认
db_path str

数据库文件路径,默认使用config.DB_PATH

None

init_grid_tables

init_grid_tables()

初始化网格交易表

create_grid_session

create_grid_session(session_data: dict) -> int

创建网格会话

优化: 确保一个股票只有一个active session 1. 在创建前检查是否已存在active session 2. 如果存在,先停止旧session 3. 创建新session

update_grid_session

update_grid_session(session_id: int, updates: dict)

更新网格会话

stop_grid_session

stop_grid_session(session_id: int, reason: str)

停止网格会话

get_all_grid_sessions

get_all_grid_sessions() -> list

获取所有网格会话(包括stopped状态)

返回

所有会话的列表,按创建时间倒序排列

get_active_grid_sessions

get_active_grid_sessions() -> list

获取所有活跃的网格会话

get_grid_session_by_stock

get_grid_session_by_stock(stock_code: str)

获取指定股票的活跃网格会话

record_grid_trade

record_grid_trade(trade_data: dict) -> int

记录网格交易

create_grid_order

create_grid_order(order_data: dict) -> None

持久化网格委托,用于重启恢复和撤废单处理

update_grid_order

update_grid_order(order_id: str, updates: dict) -> None

更新网格委托状态

get_grid_order

get_grid_order(order_id: str)

获取网格委托

grid_trade_exists

grid_trade_exists(trade_id: str) -> bool

检查成交回报是否已经落账,用于重启后的幂等保护

get_open_grid_orders

get_open_grid_orders() -> list

获取尚未终结的网格委托

get_unmatched_grid_sell_volume

get_unmatched_grid_sell_volume(session_id: int) -> int

获取尚未被买回动作回补的先卖出数量。

record_grid_trade_and_update_session

record_grid_trade_and_update_session(trade_data: dict, session_updates: dict, order_id: str = None, order_updates: dict = None) -> int

在一个事务中写入成交明细、更新会话汇总、委托状态和真实网格账本。

get_grid_lots

get_grid_lots(session_id: int, open_only: bool = False) -> list

获取网格库存批次。

get_grid_lot_matches

get_grid_lot_matches(session_id: int) -> list

获取网格批次匹配明细。

get_grid_ledger_summary

get_grid_ledger_summary(session_id: int, current_price: float = None) -> dict

汇总真实网格账本盈亏。

rebuild_grid_ledger_for_session

rebuild_grid_ledger_for_session(session_id: int) -> dict

按成交明细重建单个会话账本,用于修复历史先卖后买未配对数据。

rebuild_grid_ledger

rebuild_grid_ledger() -> list

按成交明细幂等重建所有网格会话账本。

get_grid_trades

get_grid_trades(session_id: int, limit=50, offset=0) -> list

获取网格交易历史

get_grid_session

get_grid_session(session_id: int)

获取指定网格会话

get_grid_trade_count

get_grid_trade_count(session_id: int) -> int

获取网格交易总数

save_grid_template

save_grid_template(template_data: dict) -> int

保存网格配置模板

get_grid_template

get_grid_template(template_name: str)

获取指定网格配置模板

get_all_grid_templates

get_all_grid_templates() -> list

获取所有网格配置模板

get_default_grid_template

get_default_grid_template()

获取默认网格配置模板

delete_grid_template

delete_grid_template(template_name: str)

删除网格配置模板

引用保护: 拒绝删除正在被活跃网格会话引用的模板,防止悬空引用。

increment_template_usage

increment_template_usage(template_name: str)

增加模板使用次数

init_risk_level_templates

init_risk_level_templates()

初始化三档风险等级预设模板

⚠️ 重要: 止损比例已调整 - 激进型: -15% (容忍大回撤) - 稳健型: -10% (平衡) - 保守型: -8% (快速止损)

close

close()

关闭数据库连接