From 74a275cb88dfb60eb5f14b16bf4dced3753619ed Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 18 May 2026 17:31:26 +0800
Subject: [PATCH] 第二个版本
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
index f85a5f6..4b4e83c 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -740,7 +740,7 @@
*/
private void generateShortQueue() {
shortPriceQueue.clear();
- int prec = config.getPricePrecision();
+ int prec = config.getPriceScale();
BigDecimal step = shortBaseEntryPrice.multiply(config.getGridRate()).setScale(prec, RoundingMode.HALF_UP);
config.setStep(step);
BigDecimal elem = shortBaseEntryPrice.subtract(step).setScale(prec, RoundingMode.HALF_UP);
@@ -762,7 +762,7 @@
*/
private void generateLongQueue() {
longPriceQueue.clear();
- int prec = config.getPricePrecision();
+ int prec = config.getPriceScale();
BigDecimal step = config.getStep();
BigDecimal elem = shortBaseEntryPrice.add(step).setScale(prec, RoundingMode.HALF_UP);
for (int i = 0; i < config.getGridQueueSize(); i++) {
@@ -791,9 +791,11 @@
List<GridElement> elements = new ArrayList<>();
int shortSize = shortPriceQueue.size();
int longSize = longPriceQueue.size();
- BigDecimal step = config.getStep().subtract(config.getContractMultiplier());
+ //根据精度转换成小数
+ int prec = config.getPriceScale();
+ BigDecimal minTick = BigDecimal.ONE.scaleByPowerOfTen(-prec);
+ BigDecimal step = config.getStep().subtract(minTick);
String qty = config.getQuantity();
- int prec = config.getPricePrecision();
// 空仓队列:id 从 -1 自减, shortPriceQueue[i] → id=-(i+1)
for (int i = 0; i < shortSize; i++) {
@@ -905,7 +907,7 @@
* @param currentPrice 当前 K 线收盘价(最新成交价)
*/
private void processShortGrid(BigDecimal currentPrice) {
- int prec = config.getPricePrecision();
+ int prec = config.getPriceScale();
List<BigDecimal> matched = new ArrayList<>();
synchronized (shortPriceQueue) {
for (BigDecimal p : shortPriceQueue) {
@@ -1062,7 +1064,7 @@
* @param currentPrice 当前 K 线收盘价(最新成交价)
*/
private void processLongGrid(BigDecimal currentPrice) {
- int prec = config.getPricePrecision();
+ int prec = config.getPriceScale();
List<BigDecimal> matched = new ArrayList<>();
synchronized (longPriceQueue) {
for (BigDecimal p : longPriceQueue) {
--
Gitblit v1.9.1