From 28eb26d68f7a2a4e6b316c3ea9f511aa143db66e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Sep 2024 16:57:18 +0800
Subject: [PATCH] 55测试环境
---
src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java | 32 +++++++++++++++++++++++++++++---
1 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java b/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java
index 9d4215c..f52b1ba 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java
+++ b/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java
@@ -6,10 +6,12 @@
import com.huobi.client.SubscriptionOptions;
import com.huobi.client.model.Candlestick;
import com.huobi.client.model.enums.CandlestickInterval;
+import com.xcong.excoin.common.contants.AppContants;
import com.xcong.excoin.modules.coin.dao.OrderCoinDealDao;
import com.xcong.excoin.modules.coin.dao.OrderCoinsDao;
import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity;
import com.xcong.excoin.modules.coin.service.OrderCoinService;
+import com.xcong.excoin.modules.symbols.constants.SymbolsConstats;
import com.xcong.excoin.modules.symbols.service.SymbolsService;
import com.xcong.excoin.processor.CoinProcessor;
import com.xcong.excoin.processor.CoinProcessorFactory;
@@ -32,6 +34,7 @@
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,7 +46,7 @@
**/
@Slf4j
@Component
-//@ConditionalOnProperty(prefix = "app", name = "trade", havingValue = "true")
+@ConditionalOnProperty(prefix = "app", name = "exchange-trade", havingValue = "true")
public class CoinTradeInitJob {
@Resource
@@ -69,7 +72,7 @@
@PostConstruct
public void initCoinTrade() {
log.info("#=======撮合交易器开启=======#");
- String symbol = "NEKK";
+ String symbol = SymbolsConstats.ROC;
CoinTrader newTrader = new CoinTrader(symbol);
newTrader.setExchangeProducer(exchangeProducer);
//newTrader.setKafkaTemplate(kafkaTemplate);
@@ -86,6 +89,12 @@
List<OrderCoinsEntity> tradingOrders = new ArrayList<>();
List<OrderCoinsEntity> completedOrders = new ArrayList<>();
orders.forEach(order -> {
+ if(order.getDealCnt()==null){
+ order.setDealCnt(BigDecimal.ZERO);
+ }
+ if(order.getDealAmount()==null){
+ order.setDealAmount(BigDecimal.ZERO);
+ }
tradingOrders.add(order);
});
try {
@@ -100,11 +109,12 @@
// 创建K线生成器
CoinProcessor processor = new DefaultCoinProcessor(symbol, "USDT");
processor.setMarketService(marketService);
+ processor.setRedisUtils(redisUtils);
//processor.setExchangeRate(exchangeRate);
processor.initializeThumb();
//processor.initializeUsdRate();
processor.setIsHalt(false);
- List<ExchangeTrade> nekk = orderCoinDealDao.selectOrderCoinDealByTime("NEKK", null, null);
+ List<ExchangeTrade> nekk = orderCoinDealDao.selectOrderCoinDealByTime(SymbolsConstats.ROC, null, null);
processor.process(nekk);
String symbolUsdt = symbol;
if(!symbol.contains("USDT")){
@@ -116,6 +126,22 @@
if(o!=null){
Map<String, Candlestick> currentKlineMap = (Map<String, Candlestick> )o;
((DefaultCoinProcessor) processor).setCurrentKlineMap(currentKlineMap);
+ }else{
+ // 当最新K线不存在时 需要初始化
+ // 1min 5min 15min 30min 1hour 4hour 1day 1week
+ String[] rang = {"1min","5min","15min","30min","1hour","4hour","1day","1week"};
+ Map<String, Candlestick> currentKlineMap = new HashMap<>();
+ long currentTimeMillis = System.currentTimeMillis();
+ for (String s : rang) {
+ Candlestick candlestick = new Candlestick();
+ candlestick.setClose(AppContants.DEFAULT_PRICE);
+ candlestick.setHigh(AppContants.DEFAULT_PRICE);
+ candlestick.setLow(AppContants.DEFAULT_PRICE);
+ candlestick.setOpen(AppContants.DEFAULT_PRICE);
+ candlestick.setTimestamp(currentTimeMillis);
+ currentKlineMap.put(s,candlestick);
+ }
+ redisUtils.set(key,currentKlineMap);
}
processorFactory.addProcessor(symbol, processor);
--
Gitblit v1.9.1