feat: add Portfolio Value, Option Value, and Contracts columns to daily results
- Add option_contracts field to BacktestDailyPoint (number of contracts held) - Update engine to calculate total option contracts from positions - Update job serialization to include underlying_value, option_market_value, net_portfolio_value, option_contracts - Update both render_result and render_job_result tables to show: - Low, High, Close (from previous commit) - Portfolio value (net_portfolio_value) - Option value (option_market_value) - Contracts (option_contracts) - LTV hedged - Margin call status
This commit is contained in:
@@ -87,6 +87,9 @@ class SyntheticBacktestEngine:
|
||||
ltv_unhedged_worst = scenario.initial_portfolio.loan_amount / underlying_value_worst
|
||||
ltv_hedged_worst = scenario.initial_portfolio.loan_amount / net_portfolio_value_worst
|
||||
|
||||
# Total option contracts held
|
||||
option_contracts = sum(p.quantity for p in open_positions)
|
||||
|
||||
daily_points.append(
|
||||
BacktestDailyPoint(
|
||||
date=day.date,
|
||||
@@ -103,6 +106,7 @@ class SyntheticBacktestEngine:
|
||||
ltv_hedged=ltv_hedged,
|
||||
margin_call_unhedged=ltv_unhedged_worst >= scenario.initial_portfolio.margin_call_ltv,
|
||||
margin_call_hedged=ltv_hedged_worst >= scenario.initial_portfolio.margin_call_ltv,
|
||||
option_contracts=option_contracts,
|
||||
active_position_ids=tuple(active_position_ids),
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user