Administrator
2025-12-19 dc6db188d22e5c12aa3969563ffd7a4473b8bc63
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList;
 
import lombok.Getter;
 
import java.math.BigDecimal;
 
/**
 * @author Administrator
 * 网格数据枚举 数据
 * todo 后期考虑优化为可配置项
 */
@Getter
public enum WangGeListEnum {
    UP("上层做空", "2", "3100", "3000", "10", "short", "3100"),
    CENTER("中间做空", "2", "3000", "2700", "10", "short", "2700"),
    DOWN("下层做多", "2", "2700", "2500", "10", "long", "2500"),
    DOWN_ONE("下层做空", "2", "2500", "2200", "10", "short", "2500");
 
    private String name;
    private String xiaoshu_weishu;
    private String jiage_shangxian;
    private String jiage_xiaxian;
    private String jian_ju;
    private String fang_xiang;
    private String zhi_sun_dian;
 
    WangGeListEnum(String name, String xiaoshu_weishu, String jiage_shangxian, String jiage_xiaxian, String jian_ju, String fang_xiang, String zhi_sun_dian) {
        this.name = name;
        this.xiaoshu_weishu = xiaoshu_weishu;
        this.jiage_shangxian = jiage_shangxian;
        this.jiage_xiaxian = jiage_xiaxian;
        this.jian_ju = jian_ju;
        this.fang_xiang = fang_xiang;
        this.zhi_sun_dian = zhi_sun_dian;
    }
 
    /**
     * 根据价格获取匹配的网格信息
     * @param price 待比较的价格
     * @return 匹配的网格枚举信息,如果没有匹配项则返回null
     */
    public static WangGeListEnum getGridByPrice(BigDecimal price) {
        for (WangGeListEnum grid : WangGeListEnum.values()) {
            BigDecimal upperLimit = new BigDecimal(grid.jiage_shangxian);
            BigDecimal lowerLimit = new BigDecimal(grid.jiage_xiaxian);
 
            // 确保上限大于下限
            if (upperLimit.compareTo(lowerLimit) > 0) {
                // 检查价格是否在区间内
                if (price.compareTo(lowerLimit) > 0 && price.compareTo(upperLimit) <= 0) {
                    return grid;
                }
            }
        }
        return null;
    }
 
    /**
     * 根据枚举名称获取枚举
     */
    public static WangGeListEnum getByName(String name) {
        for (WangGeListEnum grid : WangGeListEnum.values()) {
            if (grid.name.equals(name)) {
                return grid;
            }
        }
        return null;
    }
 
}