| | |
| | | |
| | | BigDecimal triggerPrice = newEntryGrid.getGridPrice(); |
| | | BigDecimal priceDiff = longEntryPrice.subtract(triggerPrice).abs(); |
| | | int count = priceDiff.divide(config.getStep(), 0, RoundingMode.DOWN).intValue(); |
| | | // 精度补偿:步长被setScale截断,priceDiff/step可能产生1.99998→Down截断为1的问题 |
| | | BigDecimal epsilon = new BigDecimal("0.00000001"); |
| | | int count = priceDiff.add(epsilon).divide(config.getStep(), 0, RoundingMode.DOWN).intValue(); |
| | | count = Math.max(1, count); |
| | | int entryQty = count * Integer.parseInt(config.getQuantity()); |
| | | String size = String.valueOf(entryQty); |
| | |
| | | |
| | | BigDecimal triggerPrice = newEntryGrid.getGridPrice(); |
| | | BigDecimal priceDiff = shortEntryPrice.subtract(triggerPrice).abs(); |
| | | int count = priceDiff.divide(config.getStep(), 0, RoundingMode.DOWN).intValue(); |
| | | // 精度补偿:步长被setScale截断,priceDiff/step可能产生1.99998→Down截断为1的问题 |
| | | BigDecimal epsilon = new BigDecimal("0.00000001"); |
| | | int count = priceDiff.add(epsilon).divide(config.getStep(), 0, RoundingMode.DOWN).intValue(); |
| | | count = Math.max(1, count); |
| | | int entryQty = count * Integer.parseInt(config.getQuantity()); |
| | | String size = String.valueOf(entryQty); |