-- 分步止盈状态细分:添加新的exit_reason值支持 -- 执行时间:2026-01-27 -- 1. 更新exit_reason字段注释,说明新的状态值 ALTER TABLE `trades` MODIFY COLUMN `exit_reason` VARCHAR(50) COMMENT '平仓原因: manual(手动), stop_loss(止损), take_profit(单次止盈), trailing_stop(移动止损), sync(同步), take_profit_partial_then_take_profit(第一目标止盈后第二目标止盈), take_profit_partial_then_stop(第一目标止盈后剩余仓位止损), take_profit_partial_then_trailing_stop(第一目标止盈后剩余仓位移动止损)'; -- 2. 验证字段长度是否足够(VARCHAR(50)应该足够) SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'trades' AND COLUMN_NAME = 'exit_reason'; -- 3. 查看当前exit_reason的分布情况(用于验证) SELECT exit_reason, COUNT(*) as count, ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM trades WHERE status = 'closed'), 2) as percentage FROM trades WHERE status = 'closed' GROUP BY exit_reason ORDER BY count DESC; -- 说明: -- 新的状态值: -- - take_profit_partial_then_take_profit: 第一目标止盈(50%仓位)后,剩余仓位第二目标止盈 -- - take_profit_partial_then_stop: 第一目标止盈(50%仓位)后,剩余仓位止损(保本) -- - take_profit_partial_then_trailing_stop: 第一目标止盈(50%仓位)后,剩余仓位移动止损 -- -- 这些状态用于更准确地统计胜率和盈亏比: -- - 第一目标止盈后剩余仓位止损,应该算作"部分成功"(第一目标已达成) -- - 第一目标止盈后剩余仓位第二目标止盈,应该算作"完整成功"