feat: 1분봉 수집 지원 및 10년 기본 수집 기간 확장
1분봉 건너뛰기를 제거하고 예상 API 요청·진행률 로그를 추가한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -18,7 +18,7 @@ from dataclasses import replace
|
||||
from deepcoin.config import load_settings
|
||||
from deepcoin.data.candle_store import CandleStore
|
||||
from deepcoin.data.downloader import CandleDownloader
|
||||
from deepcoin.data.intervals import interval_label
|
||||
from deepcoin.data.intervals import INTERVAL_1MIN, estimate_download_requests, interval_label
|
||||
|
||||
|
||||
def _configure_logging(verbose: bool) -> None:
|
||||
@@ -44,7 +44,12 @@ def main() -> int:
|
||||
"--intervals",
|
||||
type=str,
|
||||
default=None,
|
||||
help="쉼표 구분 인터벌. 분봉=분, 일=1440, 주=10080, 월=43200",
|
||||
help="쉼표 구분 인터벌. 분봉=분(1=1분), 일=1440, 주=10080, 월=43200",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--include-1min",
|
||||
action="store_true",
|
||||
help="1분봉(1)을 기존 DOWNLOAD_INTERVALS에 추가하여 수집",
|
||||
)
|
||||
parser.add_argument("-v", "--verbose", action="store_true", help="디버그 로그")
|
||||
args = parser.parse_args()
|
||||
@@ -59,15 +64,29 @@ def main() -> int:
|
||||
int(x.strip()) for x in args.intervals.split(",") if x.strip()
|
||||
],
|
||||
)
|
||||
elif args.include_1min and INTERVAL_1MIN not in settings.download_intervals:
|
||||
settings = replace(
|
||||
settings,
|
||||
download_intervals=sorted({*settings.download_intervals, INTERVAL_1MIN}),
|
||||
)
|
||||
|
||||
days = args.days or settings.download_days
|
||||
logging.getLogger(__name__).info(
|
||||
log = logging.getLogger(__name__)
|
||||
log.info(
|
||||
"대상=%s DB=%s days=%s intervals=%s",
|
||||
settings.market,
|
||||
settings.db_path,
|
||||
days,
|
||||
settings.download_intervals,
|
||||
)
|
||||
for interval in settings.download_intervals:
|
||||
est = estimate_download_requests(interval, days, batch_size=settings.candle_count)
|
||||
log.info(
|
||||
"예상 API 요청: %s ≈ %s회 (sleep %.2fs)",
|
||||
interval_label(interval),
|
||||
est,
|
||||
settings.request_sleep_sec,
|
||||
)
|
||||
|
||||
store = CandleStore(settings.db_path)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user