전략평가 로직 개선

This commit is contained in:
Macbook
2026-06-05 10:59:23 +09:00
parent 5278177bbb
commit 0aaf4ac19c
14 changed files with 441 additions and 60 deletions
@@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface GcTradeSignalRepository extends JpaRepository<GcTradeSignal, Long> {
@@ -15,6 +16,13 @@ public interface GcTradeSignalRepository extends JpaRepository<GcTradeSignal, Lo
List<GcTradeSignal> findByDeviceIdAndMarketOrderByCreatedAtDesc(String deviceId, String market);
List<GcTradeSignal> findByUserIdAndMarketOrderByCreatedAtDesc(Long userId, String market);
/**
* [항목3] LONG_ONLY 포지션 상태 복원 — 서버 재시작 후 in-memory 캐시가 비어 있을 때
* 해당 마켓×전략의 가장 최근 시그널을 조회하여 BUY 여부로 포지션 오픈 상태를 판단한다.
*/
Optional<GcTradeSignal> findFirstByMarketAndStrategyIdOrderByCreatedAtDesc(
String market, Long strategyId);
@Modifying
@Query("DELETE FROM GcTradeSignal e WHERE e.userId = :userId")
void deleteByUserId(@Param("userId") Long userId);