Goboolean / fetch-system.IaC

0 stars 0 forks source link

Feat: implement FetchLimitedTradeAfter query #64

Closed lsjtop10 closed 2 weeks ago

lsjtop10 commented 2 weeks ago

수정 배경

Cursor를 구현하는 과정에서 시간을 기준으로 범위를 선택하면 제한된 거래 시간 때문에 문제가 발생한다는 사실을 알게 되었습니다. 이런 경우에 Cursor는 쿼리의 결과가 비어있을 때 더 이상 가져올 데이터가 없다고 판단할 수밖에 없습니다. 그런데 이 시점이 가장 최근에 생성된 데이터를 가져온 경우일 수도 있지만, 그 날의 거래가 종료된 경우일 수도 있습니다.

수정 내용

특정 시각 이후 생성된 특정 개수의 데이터를 가져오는 쿼리를 구현했습니다.

mulmuri commented 2 weeks ago

어떤 경우에 문제가 되는지 조금 더 자세히 설명해주실 수 있나요? 특정 시점으로부터 데이터를 쿼리할때 데이터가 들어오지 않는 경우는 날짜랑 상관없이 최신 데이터인 경우인데, 이때 데이터가 들어오지 않는건 아무런 문제가 없는 것 같아서요!

lsjtop10 commented 2 weeks ago

특정 시점으로부터 데이터를 쿼리할때 데이터가 들어오지 않는 경우는 날짜랑 상관없이 최신 데이터인 경우인데

맞습니다. 특정 시점으로부터 일정한 개수의 데이터를 가져올 때는 날짜와 상관없이 최신 데이터입니다. 하지만 지금 쿼리는 데이터의 시간을 기준으로 가져오고 있기 때문에 문제가 발생합니다. 만약 사용자가 7월 1일부터 7월 30일까지의 데이터로 백테스팅을 요청했다고 가정해보겠습니다. 그러면 influxDB에는 매일 09시부터 매일 15시 30붙까지 데이터가 저장돼 있을 것입니다. 이때 백테스팅 중 7월 1일 15시 29붙~7월 1일 15시 30분 까지의 데이터를 요청한 다음에는 15시 30분부터 15시 31분까지 데이터를 요청할 것입니다. 이때 15시 30분에 정규장이 끝나기 때문에 이후 데이터는 없으며 빈 데이터를 반환하게 됩니다. 그러면 다음날 데이터가 있음에도 데이터가 없다고 판단할 수 있습니다.