跳转至

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, stock_code=None, trading_date=None) -> None

按完整身份更新委托;身份不唯一时拒绝猜测。

get_grid_order

get_grid_order(order_id: str, stock_code=None, trading_date=None)

读取唯一匹配;调用方可提供证券代码与交易日限制范围。

grid_trade_exists

grid_trade_exists(trade_id: str, stock_code=None, trading_date=None) -> bool

成交去重同时限定股票和交易日,防止短委托号跨日复用。

record_grid_order_event

record_grid_order_event(order_id, detail)

在同一数据库记录原始冲突证据,避免清理当前错误后失去审计线索。

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()

关闭数据库连接