Skip to content

[기능추가][BE] 백테스팅 보조지표 추가 #181

@cksdid202

Description

@cksdid202

📝 현재 문제점

  • 현재 백테스팅 엔진은 SMA, EMA, RSI, MACD 등 기본적인 4가지 지표만 지원하고 있음.

  • 변동성 돌파 전략이나 모멘텀 기반의 복합 전략을 테스트하기에는 지원하는 지표가 부족하여 사용자 입장에서 다양한 매매 전략을 검증하는 데 한계가 있다.

  • 추후 진행할 대용량 데이터 조회 성능 최적화(인덱싱/캐싱)의 효과를 확실하게 측정하기 위해, 실제 서비스 수준의 연산 부하를 가진 로직이 선행.

🛠️ 해결 방안 / 제안 기능

  • Ta4j 라이브러리를 활용하여 트레이딩에서 가장 널리 사용되는 핵심 보조지표 5종을 추가 구현합니다.

  • 프론트엔드에서 JSON 파라미터로 요청 시 해당 지표를 동적으로 생성하여 전략에 반영하도록 Ta4jHelperService의 팩토리 메서드를 확장합니다.

[추가 대상 지표]

  1. Bollinger Bands (BB): 상단, 중단, 하단 밴드 (변동성 및 추세 반전 파악)

  2. Stochastic Oscillator: K선, D선 (과매수/과매도 구간 파악)

  3. ATR (Average True Range): 변동성의 크기 측정 (손절 라인 설정용)

  4. CCI (Commodity Channel Index): 평균 주가 대비 이격도 측정

  5. ADX (Average Directional Index): 추세의 강도 측정

⚙️ 작업 내용

  • DTO 및 파라미터 처리 로직 개선

     StrategyOperand 및 JSON 파라미터에서 각 지표별 필요 변수(length, k, d 등)를 파싱하는 로직 추가
    
  • Ta4jHelperService.java 기능 확장

     createIndicator 메서드 내 switch-case 분기 추가
    
     멀티 아웃풋 지표(BB, Stochastic)에 대한 output 파라미터 처리 (예: output: "upper", output: "k")
    
  • 단위 테스트 (Unit Test)

     추가된 지표들이 정상적으로 값을 산출하는지 검증
    
     기존 지표들과 결합(AND/OR) 시 정상 동작 확인
    

🙋‍♂️ 담당자

  • 백엔드: @cksdid202
  • 프론트엔드:
  • 디자인:
  • AI :

Metadata

Metadata

Assignees

No one assigned

    Labels

    BE백엔드 이슈

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions