package com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList;
|
|
import lombok.Getter;
|
|
import java.math.BigDecimal;
|
|
/**
|
* @author Administrator
|
* 网格数据枚举 数据
|
* todo 后期考虑优化为可配置项
|
*/
|
@Getter
|
public enum WangGeListEnum {
|
UP("上层做空", "2", "2950", "2980", "4", "short", "2980"),
|
CENTER("中间指定一个方向", "2", "2950", "2920", "4", "long", "2920"),
|
DOWN("下层做多", "2", "2920", "2890", "4", "long", "2890");
|
|
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;
|
}
|
|
}
|