Administrator
4 days ago 291462a4291671eb5f33843b42ab3da45763e3b7
src/main/java/com/xcong/excoin/modules/gateApi/TraderParam.java
@@ -3,38 +3,27 @@
import java.math.BigDecimal;
/**
 * 网格交易单参数,封装单笔条件开仓单及其止盈单的完整状态。
 * 单笔挂单的完整参数,封装条件开仓单及止盈单的状态。
 *
 * <p>每笔挂单对应的参数独立存储为一个 TraderParam 实例,
 * 用于追踪条件开仓单和止盈条件单的挂单状态、价格位置及订单 ID。
 * <h3>定位</h3>
 * 每个 GridElement 内嵌两个 TraderParam(longTraderParam / shortTraderParam),
 * 分别记录该价格层级上多仓和空仓的挂单参数。所有字段通过 getter/setter
 * 在挂单/成交/止盈各阶段逐步填充。
 *
 * <h3>关键字段</h3>
 * <ul>
 *   <li><b>方向</b>:多 / 空,决定挂单和止盈的触发方向</li>
 *   <li><b>价格</b>:挂单价(条件开仓触发价)、止盈价(止盈触发价)</li>
 *   <li><b>挂单状态</b>:挂单价是否挂成功、止盈价是否挂成功</li>
 *   <li><b>网格位置</b>:挂单价网格位置、止盈价网格位置(用于定位在价格队列中的索引)</li>
 *   <li><b>订单ID</b>:挂单订单 ID、止盈订单 ID(用于取消和匹配)</li>
 * </ul>
 * <h3>字段分组</h3>
 * <table>
 *   <tr><th>类别</th><th>字段</th><th>生命周期</th></tr>
 *   <tr><td>开仓准备</td><td>direction, entryPrice, quantity</td><td>updateGridElements() 预填充</td></tr>
 *   <tr><td>止盈预定</td><td>takeProfitPrice</td><td>updateGridElements() 预填充(entryPrice ± (step - minTick))</td></tr>
 *   <tr><td>挂单确认</td><td>entryOrderPlaced, entryOrderId</td><td>条件单挂成功后由 longEntryTraderIdParam 等写入</td></tr>
 *   <tr><td>止盈确认</td><td>takeProfitPlaced, takeProfitOrderId</td><td>止盈单挂成功后由 longTakeProfitTraderIdParam 等写入</td></tr>
 *   <tr><td>定位</td><td>entryGridPosition, takeProfitGridPosition</td><td>当前策略中由 upId/downId 替代</td></tr>
 * </table>
 *
 * <h3>使用示例</h3>
 * <h3>盈利公式(正向合约)</h3>
 * <pre>
 *   TraderParam param = TraderParam.builder()
 *       .direction(Direction.LONG)
 *       .entryPrice(new BigDecimal("2293.7"))
 *       .takeProfitPrice(new BigDecimal("2301.6"))
 *       .quantity("1")
 *       .entryGridPosition(3)
 *       .takeProfitGridPosition(4)
 *       .build();
 *
 *   // 挂单成功后更新
 *   param.setEntryOrderPlaced(true);
 *   param.setEntryOrderId("12345");
 *
 *   // 止盈单挂成功后更新
 *   param.setTakeProfitPlaced(true);
 *   param.setTakeProfitOrderId("12346");
 *   多仓止盈盈利 = takeProfitPrice - entryPrice = (entryPrice + step - minTick) - entryPrice = step - minTick
 *   空仓止盈盈利 = entryPrice - takeProfitPrice = entryPrice - (entryPrice - step + minTick) = step - minTick
 * </pre>
 *
 * @author Administrator