goldenChat base source add
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package com.goldenchart.dto;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 백테스팅 결과 응답 DTO.
|
||||
*
|
||||
* <pre>
|
||||
* {
|
||||
* "signals": [
|
||||
* { "time": 1700000000, "type": "BUY", "price": 42000 },
|
||||
* { "time": 1700200000, "type": "SELL", "price": 45000 }
|
||||
* ],
|
||||
* "stats": { "totalTrades": 8, "winRate": 0.625, ... }
|
||||
* }
|
||||
* </pre>
|
||||
*/
|
||||
@Data @Builder @NoArgsConstructor @AllArgsConstructor
|
||||
public class BacktestResponse {
|
||||
|
||||
private List<Signal> signals;
|
||||
private Stats stats;
|
||||
/** Ta4j AnalysisCriterion 전체 결과 */
|
||||
private BacktestAnalysisDto analysis;
|
||||
/** DB 저장 후 부여된 결과 ID */
|
||||
private Long resultId;
|
||||
|
||||
@Data @Builder @NoArgsConstructor @AllArgsConstructor
|
||||
public static class Signal {
|
||||
/** Unix timestamp (초) */
|
||||
private long time;
|
||||
/** BUY | SELL */
|
||||
private String type;
|
||||
/** 해당 봉 종가 */
|
||||
private double price;
|
||||
/** 진입/청산 인덱스 (0-based) */
|
||||
private int barIndex;
|
||||
}
|
||||
|
||||
@Data @Builder @NoArgsConstructor @AllArgsConstructor
|
||||
public static class Stats {
|
||||
private int totalSignals;
|
||||
private int buySignals;
|
||||
private int sellSignals;
|
||||
/** 거래 쌍(매수→매도) 수 */
|
||||
private int totalTrades;
|
||||
/** 수익 거래 수 */
|
||||
private int winTrades;
|
||||
/** 승률 0~1 */
|
||||
private double winRate;
|
||||
/** 총 수익률 (소수, e.g. 0.15 = +15%) */
|
||||
private double totalReturn;
|
||||
/** 최대 낙폭 (소수, 음수, e.g. -0.12 = -12%) */
|
||||
private double maxDrawdown;
|
||||
/** 평균 수익률 per trade */
|
||||
private double avgReturn;
|
||||
/** 최종 자산 (초기 자본 × 복리 수익) */
|
||||
private double finalEquity;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user