feat(rsi_dca): 7종 RSI 정액 매수 라이브 전략·모니터 고도화·수집 안정화
RSI DCA 전략 (신규) - rsi_dca_engine/runner/control: 1분봉 RSI(14) 종목별 기준선 상향 돌파 시 정액 매수, 일 상한, 신호 45분 유효, 킬스위치, 인터벌 변경 시 커서 재초기화, 체결가 거래소 보정 - scripts: 3_run_rsi_dca(.py/_cron.sh), 백테스트·인터벌 비교, go-live 스위치 - 설정: RSI_DCA_* (모드·종목·기준선·종목별 오버라이드·일 상한 등) 모니터 (vol_live_monitor / vol_monitor_chart) - 분봉 탭(/api/candles), RSI(14) 패널·종목별 기준선, 3패널 시간축 정렬, KST 표기 - 자동매수 ON/OFF 패널(/api/rsi/status·toggle), 빌드 해시 기반 자동 새로고침, 지연 경고 - 요약표: 거래소 평균매입가 기준 보유원금·수익률, 총평가 손익, 수익률순 동적 정렬 - 잔고 스냅샷을 계좌 전체 조회 1회로 통합, 실시간 시세 반영 데이터·수집 - candle_store/loader: SQL 범위·LIMIT 조회로 대형 테이블 전량 스캔 제거 - 절전·재부팅 후 공백 자동 백필(gap_backfill, 00_backfill_gaps) 및 cron 연동 - 수집 cron 분할(매분 핵심 분봉·5분 전체), 프로젝트 한정 lock 패턴, exec 제거로 lock 정리 복구 - 모니터 종목(VOL_MONITOR_SYMBOLS)·수집 종목 7종 분리, 한글 코인명 추가 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
26
README.md
26
README.md
@@ -302,6 +302,7 @@ crontab -l # 확인
|
||||
| 모니터 JSON | 5분 | `3_run_vol_monitor_cron.sh` | `data/spot/operations/vol_monitor_cron.log` |
|
||||
|
||||
- hung 프로세스: 다운로드 20분·vol tick 10분 초과 시 자동 종료 후 lock 정리 (`scripts/_cron_env.sh`)
|
||||
- **공백 자동 백필**: 절전·재부팅 복귀 시 `00_run_download_cron.sh`가 `00_backfill_gaps.py`로 증분 범위(200봉)를 넘는 (심볼, 분봉)만 감지해 `--full --days N`으로 채운 뒤 증분 수집을 진행 (`--dry-run --assume-now`로 계획 확인)
|
||||
- Python: `coin` / `ncue` conda 우선. 다른 환경이면 `.env` 또는 crontab에 `BITHUMB_PYTHON=...` 설정
|
||||
- 모니터 UI (8766):
|
||||
```bash
|
||||
@@ -325,6 +326,30 @@ bash scripts/00_run_download_cron.sh # 수동 1회
|
||||
bash scripts/3_run_vol_breakout_cron.sh
|
||||
```
|
||||
|
||||
### RSI DCA 정액 매수 (15m RSI 30/35 상향 돌파 · 매도 없음)
|
||||
|
||||
7종(XRP, TRX, WLD, SOL, ETH, ADA, SUI) 15분봉 RSI(14)가 **종가 확정 기준**으로 기준선을 상향 돌파하면 정액 매수한다. 자동 매도는 없다(보유분 수동 관리).
|
||||
|
||||
| 규칙 | 값 | 설정 |
|
||||
|------|----|------|
|
||||
| 30 상향 돌파 | 20,000원 매수 | `RSI_DCA_LEVELS=30:20000,35:10000` |
|
||||
| 35 상향 돌파 | 10,000원 매수 (30 돌파와 독립, 둘 다 발생 가능) | 〃 |
|
||||
| 일(KST) 매수 상한 | 60,000원 — 초과 주문은 스킵 | `RSI_DCA_DAILY_MAX_KRW` |
|
||||
| 신호 유효 시간 | 봉 마감 후 45분 (장애 복구 시 몰아 매수 방지) | `RSI_DCA_MAX_SIGNAL_AGE_MIN` |
|
||||
| 모드 | `RSI_DCA_MODE=paper` 기본. **live는 OPS_MODE와 별개**로 명시 전환 | `RSI_DCA_MODE` |
|
||||
| 킬스위치 | `data/spot/operations/rsi.kill` 존재 시 신규 매수 차단 | `RSI_DCA_KILL_SWITCH_PATH` |
|
||||
|
||||
```bash
|
||||
python scripts/3_run_rsi_dca_backtest.py --days 90 # 신호·투입·평가 (docs/spot/3_operations/rsi_dca_backtest.json)
|
||||
python scripts/3_run_rsi_dca.py # paper 1회 tick (첫 실행은 커서 초기화만, 매수 없음)
|
||||
python scripts/3_run_rsi_dca.py --status # 상태 확인
|
||||
touch data/spot/operations/rsi.kill # 긴급 차단
|
||||
```
|
||||
|
||||
cron(1분): `scripts/crontab.bithumb.example`의 `3_run_rsi_dca_cron.sh` 줄 주석 해제 후 `bash scripts/install_crontab.sh --apply`.
|
||||
live 전환은 `.env`에서 `RSI_DCA_MODE=live` 로 바꾼 뒤 cron 또는 `python scripts/3_run_rsi_dca.py --mode live` 를 **사용자가 직접** 실행한다.
|
||||
체결·상태: `data/spot/operations/rsi_dca_state.json`, `docs/spot/3_operations/rsi_dca_report.json`, 텔레그램 알림. 모니터 차트(8766)에 매수 마커 표시.
|
||||
|
||||
### fractal watch 점검
|
||||
|
||||
```bash
|
||||
@@ -502,6 +527,7 @@ OPS_DAILY_MAX_TRADES=20
|
||||
|
||||
## 변경 이력
|
||||
|
||||
- **2026-09-07:** 수집 대상 7종(XRP,TRX,WLD,SOL,ETH,ADA,SUI)·`VOL_MONITOR_SYMBOLS` 분리, 모니터 분봉 탭(`/api/candles`)·RSI(14) 패널, RSI DCA 정액 매수 전략(`rsi_dca_engine/runner`, 백테스트, cron 래퍼) 추가
|
||||
- **2026-06-14:** ledger pending, exchange reconcile, max_age backlog, watch 5분 감시·조치, ops.tick.lock, README 전면 갱신
|
||||
- **2026-06-13:** fractal_swing live — 슬리피지·sync·tail·텔레그램; ops_default sim **+1,873,140%**
|
||||
- **2026-06-13:** 프로젝트명 Bithumb, 선물 파이프라인 제거
|
||||
|
||||
Reference in New Issue
Block a user