Spaces:
Sleeping
Sleeping
| package com.rods.backtestingstrategies.entity; | |
| import jakarta.persistence.*; | |
| import lombok.*; | |
| import java.time.LocalDate; | |
| // JPA requirement | |
| // force factory usage | |
| public class Transaction { | |
| private Long id; | |
| // Execution date | |
| private LocalDate date; | |
| private SignalType type; // BUY or SELL | |
| // Execution price | |
| private double price; | |
| // Number of shares traded | |
| private long shares; | |
| // Cash remaining after execution | |
| private double cashAfter; | |
| // Total equity after execution | |
| private double equityAfter; | |
| /* ========================== | |
| Factory Methods | |
| ========================== */ | |
| public static Transaction buy( | |
| Candle candle, | |
| double price, | |
| long shares, | |
| double cashAfter, | |
| double equityAfter | |
| ) { | |
| return new Transaction( | |
| null, | |
| candle.getDate(), | |
| SignalType.BUY, | |
| price, | |
| shares, | |
| cashAfter, | |
| equityAfter | |
| ); | |
| } | |
| public static Transaction sell( | |
| Candle candle, | |
| double price, | |
| long shares, | |
| double cashAfter, | |
| double equityAfter | |
| ) { | |
| return new Transaction( | |
| null, | |
| candle.getDate(), | |
| SignalType.SELL, | |
| price, | |
| shares, | |
| cashAfter, | |
| equityAfter | |
| ); | |
| } | |
| } | |