feat: Position __repr__ and DataFrame column validation

This commit is contained in:
KhizarImran
2026-07-05 14:58:58 +01:00
parent c22153f02f
commit cefa7c8ee1
2 changed files with 18 additions and 0 deletions
+5
View File
@@ -91,6 +91,11 @@ class Backtest:
self._quote_to_account = quote_to_account
def _to_bars(self):
required = {"open", "high", "low", "close"}
missing = required - set(self._df.columns.str.lower())
if missing:
raise ValueError(f"DataFrame missing required columns: {sorted(missing)}")
bars = []
for idx, row in self._df.iterrows():
if isinstance(idx, pd.Timestamp):
+13
View File
@@ -53,6 +53,19 @@ pub struct Position {
pub take_profit: Option<f64>,
}
#[pymethods]
impl Position {
fn __repr__(&self) -> String {
format!(
"Position(id={}, {} {:.2} lots @ {:.5})",
self.id,
if self.is_long { "LONG" } else { "SHORT" },
self.lot_size,
self.entry_price,
)
}
}
#[derive(Debug, Clone)]
pub struct Trade {
// the actual trade