| | |
| | | BigDecimal triggerPrice = newEntryGrid.getGridPrice(); |
| | | longEntryQty++; |
| | | int entryQty = longEntryQty; |
| | | |
| | | // 最大持仓限制:已持仓+本次挂单 ≤ maxPositionSize |
| | | int maxPos = config.getMaxPositionSize(); |
| | | if (maxPos > 0) { |
| | | int currentPos = longPositionSize.intValue(); |
| | | int maxAllowed = maxPos - currentPos; |
| | | if (maxAllowed <= 0) { |
| | | log.warn("[Gate] 多仓止损触发 gridId:{}, 已达最大持仓{},跳过挂单", gridId, maxPos); |
| | | longEntryQty = 1; |
| | | return; |
| | | } |
| | | if (entryQty > maxAllowed) { |
| | | log.info("[Gate] 多仓止损触发 gridId:{}, 挂单{}张超限, 截断为{}张", gridId, entryQty, maxAllowed); |
| | | entryQty = maxAllowed; |
| | | longEntryQty = 1; |
| | | } |
| | | } |
| | | |
| | | String size = new BigDecimal(String.valueOf(entryQty)).multiply(new BigDecimal(config.getQuantity())).toString(); |
| | | log.info("[Gate] 多仓止损触发 gridId:{}, 在gridId:{}挂{}基础张多单(计数器:{}, size:{})", |
| | | gridId, newEntryGridId, entryQty, longEntryQty, size); |
| | |
| | | BigDecimal triggerPrice = newEntryGrid.getGridPrice(); |
| | | shortEntryQty++; |
| | | int entryQty = shortEntryQty; |
| | | |
| | | // 最大持仓限制:已持仓+本次挂单 ≤ maxPositionSize |
| | | int maxPos = config.getMaxPositionSize(); |
| | | if (maxPos > 0) { |
| | | int currentPos = shortPositionSize.intValue(); |
| | | int maxAllowed = maxPos - currentPos; |
| | | if (maxAllowed <= 0) { |
| | | log.warn("[Gate] 空仓止损触发 gridId:{}, 已达最大持仓{},跳过挂单", gridId, maxPos); |
| | | shortEntryQty = 1; |
| | | return; |
| | | } |
| | | if (entryQty > maxAllowed) { |
| | | log.info("[Gate] 空仓止损触发 gridId:{}, 挂单{}张超限, 截断为{}张", gridId, entryQty, maxAllowed); |
| | | entryQty = maxAllowed; |
| | | shortEntryQty = 1; |
| | | } |
| | | } |
| | | |
| | | String size = new BigDecimal(String.valueOf(entryQty)).multiply(new BigDecimal(config.getQuantity())).toString(); |
| | | log.info("[Gate] 空仓止损触发 gridId:{}, 在gridId:{}挂{}基础张空单(计数器:{}, size:{})", |
| | | gridId, newEntryGridId, entryQty, shortEntryQty, size); |