| 1234567891011121314151617181920212223242526272829303132333435 |
- from __future__ import annotations
- import pandas as pd
- START_DATE = "2016-01-01"
- END_DATE = "2025-12-31"
- def evaluation_years(start_date: str = START_DATE, end_date: str = END_DATE) -> float:
- return (pd.Timestamp(end_date) - pd.Timestamp(start_date)).days / 365.25
- def profit_factor(series: pd.Series) -> float:
- gross_profit = series[series > 0].sum()
- gross_loss = -series[series < 0].sum()
- if gross_loss == 0:
- return float("inf") if gross_profit > 0 else 0.0
- return float(gross_profit / gross_loss)
- def format_pct(value: float) -> str:
- if pd.isna(value):
- return "NA"
- if value == float("inf"):
- return "inf"
- return f"{value:.2%}"
- def format_num(value: float, digits: int = 2) -> str:
- if pd.isna(value):
- return "NA"
- if value == float("inf"):
- return "inf"
- return f"{value:.{digits}f}"
|