| | |
| | | private List<String> longTakeProfitOrderIds = new ArrayList<>(); |
| | | /** 空仓止盈订单 ID 列表(支持一网格多笔止盈单:基础止盈 + 超额止盈并行挂单) */ |
| | | private List<String> shortTakeProfitOrderIds = new ArrayList<>(); |
| | | /** 多仓止盈订单 ID → 张数(仓位止盈补仓时取本次止盈单张数) */ |
| | | private final Map<String, Integer> longTakeProfitOrderSizes = new ConcurrentHashMap<>(); |
| | | /** 空仓止盈订单 ID → 张数 */ |
| | | private final Map<String, Integer> shortTakeProfitOrderSizes = new ConcurrentHashMap<>(); |
| | | /** 多仓止损订单 ID 列表(支持一个网格多个止损单) */ |
| | | private List<String> longStopLossOrderIds = new ArrayList<>(); |
| | | /** 空仓止损订单 ID 列表(支持一个网格多个止损单) */ |
| | |
| | | |
| | | /** @return 多仓止盈订单 ID 列表 */ |
| | | public List<String> getLongTakeProfitOrderIds() { return longTakeProfitOrderIds; } |
| | | /** 添加多仓止盈订单 ID */ |
| | | public void addLongTakeProfitOrderId(String orderId) { if (orderId != null) longTakeProfitOrderIds.add(orderId); } |
| | | /** 移除多仓止盈订单 ID */ |
| | | public boolean removeLongTakeProfitOrderId(String orderId) { return longTakeProfitOrderIds.remove(orderId); } |
| | | /** 清空多仓止盈订单 ID */ |
| | | public void clearLongTakeProfitOrderIds() { longTakeProfitOrderIds.clear(); } |
| | | /** 添加多仓止盈订单 ID(不记录张数,仅兼容旧调用方) */ |
| | | public void addLongTakeProfitOrderId(String orderId) { addLongTakeProfitOrderId(orderId, 0); } |
| | | /** 添加多仓止盈订单 ID 并记录该单张数 */ |
| | | public void addLongTakeProfitOrderId(String orderId, int size) { |
| | | if (orderId == null) { |
| | | return; |
| | | } |
| | | longTakeProfitOrderIds.add(orderId); |
| | | longTakeProfitOrderSizes.put(orderId, size); |
| | | } |
| | | /** 移除多仓止盈订单 ID(同步清理张数记录) */ |
| | | public boolean removeLongTakeProfitOrderId(String orderId) { |
| | | longTakeProfitOrderSizes.remove(orderId); |
| | | return longTakeProfitOrderIds.remove(orderId); |
| | | } |
| | | /** 清空多仓止盈订单 ID(同步清理张数记录) */ |
| | | public void clearLongTakeProfitOrderIds() { |
| | | longTakeProfitOrderIds.clear(); |
| | | longTakeProfitOrderSizes.clear(); |
| | | } |
| | | /** @return 是否有止盈单 */ |
| | | public boolean hasLongTakeProfitOrders() { return !longTakeProfitOrderIds.isEmpty(); } |
| | | /** @return 指定多仓止盈单的张数,未记录返回 null */ |
| | | public Integer getLongTakeProfitOrderSize(String orderId) { return longTakeProfitOrderSizes.get(orderId); } |
| | | /** @deprecated 返回最后一个止盈订单ID,用于单订单场景的兼容 */ |
| | | @Deprecated |
| | | public String getLongTakeProfitOrderId() { return longTakeProfitOrderIds.isEmpty() ? null : longTakeProfitOrderIds.get(longTakeProfitOrderIds.size() - 1); } |
| | |
| | | |
| | | /** @return 空仓止盈订单 ID 列表 */ |
| | | public List<String> getShortTakeProfitOrderIds() { return shortTakeProfitOrderIds; } |
| | | /** 添加空仓止盈订单 ID */ |
| | | public void addShortTakeProfitOrderId(String orderId) { if (orderId != null) shortTakeProfitOrderIds.add(orderId); } |
| | | /** 移除空仓止盈订单 ID */ |
| | | public boolean removeShortTakeProfitOrderId(String orderId) { return shortTakeProfitOrderIds.remove(orderId); } |
| | | /** 清空空仓止盈订单 ID */ |
| | | public void clearShortTakeProfitOrderIds() { shortTakeProfitOrderIds.clear(); } |
| | | /** 添加空仓止盈订单 ID(不记录张数,仅兼容旧调用方) */ |
| | | public void addShortTakeProfitOrderId(String orderId) { addShortTakeProfitOrderId(orderId, 0); } |
| | | /** 添加空仓止盈订单 ID 并记录该单张数 */ |
| | | public void addShortTakeProfitOrderId(String orderId, int size) { |
| | | if (orderId == null) { |
| | | return; |
| | | } |
| | | shortTakeProfitOrderIds.add(orderId); |
| | | shortTakeProfitOrderSizes.put(orderId, size); |
| | | } |
| | | /** 移除空仓止盈订单 ID(同步清理张数记录) */ |
| | | public boolean removeShortTakeProfitOrderId(String orderId) { |
| | | shortTakeProfitOrderSizes.remove(orderId); |
| | | return shortTakeProfitOrderIds.remove(orderId); |
| | | } |
| | | /** 清空空仓止盈订单 ID(同步清理张数记录) */ |
| | | public void clearShortTakeProfitOrderIds() { |
| | | shortTakeProfitOrderIds.clear(); |
| | | shortTakeProfitOrderSizes.clear(); |
| | | } |
| | | /** @return 是否有止盈单 */ |
| | | public boolean hasShortTakeProfitOrders() { return !shortTakeProfitOrderIds.isEmpty(); } |
| | | /** @return 指定空仓止盈单的张数,未记录返回 null */ |
| | | public Integer getShortTakeProfitOrderSize(String orderId) { return shortTakeProfitOrderSizes.get(orderId); } |
| | | /** @deprecated 返回最后一个止盈订单ID,用于单订单场景的兼容 */ |
| | | @Deprecated |
| | | public String getShortTakeProfitOrderId() { return shortTakeProfitOrderIds.isEmpty() ? null : shortTakeProfitOrderIds.get(shortTakeProfitOrderIds.size() - 1); } |