전략조건 상세설명 기능 추가
This commit is contained in:
@@ -1,13 +1,11 @@
|
||||
package com.goldenchart.config;
|
||||
|
||||
import com.goldenchart.entity.GcAppSettings;
|
||||
import com.goldenchart.entity.GcLiveStrategySettings;
|
||||
import com.goldenchart.entity.GcWatchlist;
|
||||
import com.goldenchart.repository.GcLiveStrategySettingsRepository;
|
||||
import com.goldenchart.repository.GcWatchlistRepository;
|
||||
import com.goldenchart.service.AppSettingsService;
|
||||
import com.goldenchart.service.LiveStrategyEvaluator;
|
||||
import com.goldenchart.service.LiveStrategyTimeframeService;
|
||||
import com.goldenchart.service.StrategyConditionTimeframeService;
|
||||
import com.goldenchart.websocket.DynamicSubscriptionManager;
|
||||
import com.goldenchart.websocket.UpbitWebSocketClient;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -27,9 +25,9 @@ public class LiveStrategyStartupRunner implements ApplicationRunner {
|
||||
|
||||
private final AppSettingsService appSettingsService;
|
||||
private final GcWatchlistRepository watchlistRepo;
|
||||
private final GcLiveStrategySettingsRepository liveSettingsRepo;
|
||||
private final DynamicSubscriptionManager subscriptionManager;
|
||||
private final LiveStrategyEvaluator liveStrategyEvaluator;
|
||||
private final StrategyConditionTimeframeService conditionTimeframes;
|
||||
private final UpbitWebSocketClient upbitWebSocketClient;
|
||||
|
||||
@Override
|
||||
@@ -44,11 +42,7 @@ public class LiveStrategyStartupRunner implements ApplicationRunner {
|
||||
if (!Boolean.TRUE.equals(app.getLiveStrategyCheck()) || app.getLiveStrategyId() == null) {
|
||||
continue;
|
||||
}
|
||||
String ct = resolvePinnedCandleType(w);
|
||||
subscriptionManager.ensureMarketPinned(w.getSymbol(), "1m");
|
||||
if (!"1m".equals(ct)) {
|
||||
subscriptionManager.ensureMarketPinned(w.getSymbol(), ct);
|
||||
}
|
||||
pinStrategyTimeframes(w.getSymbol(), app.getLiveStrategyId());
|
||||
liveStrategyEvaluator.invalidateCache(w.getSymbol());
|
||||
pinned++;
|
||||
}
|
||||
@@ -59,19 +53,12 @@ public class LiveStrategyStartupRunner implements ApplicationRunner {
|
||||
upbitWebSocketClient.resubscribeAll();
|
||||
}
|
||||
|
||||
private String resolvePinnedCandleType(GcWatchlist w) {
|
||||
if (w.getUserId() != null) {
|
||||
return liveSettingsRepo.findByUserIdAndMarket(w.getUserId(), w.getSymbol())
|
||||
.map(GcLiveStrategySettings::getCandleType)
|
||||
.map(LiveStrategyTimeframeService::normalize)
|
||||
.orElse("1m");
|
||||
private void pinStrategyTimeframes(String market, Long strategyId) {
|
||||
subscriptionManager.ensureMarketPinned(market, "1m");
|
||||
for (String ct : conditionTimeframes.collectForStrategy(strategyId)) {
|
||||
if (!"1m".equals(ct)) {
|
||||
subscriptionManager.ensureMarketPinned(market, ct);
|
||||
}
|
||||
}
|
||||
if (w.getDeviceId() != null) {
|
||||
return liveSettingsRepo.findByDeviceIdAndMarket(w.getDeviceId(), w.getSymbol())
|
||||
.map(GcLiveStrategySettings::getCandleType)
|
||||
.map(LiveStrategyTimeframeService::normalize)
|
||||
.orElse("1m");
|
||||
}
|
||||
return "1m";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user