Perps equity

This commit is contained in:
2026-08-01 22:23:31 +02:00
parent 08b80d04de
commit 8f4c984486
5 changed files with 13 additions and 13 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ pub struct Position {
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct EngineStatus {
pub equity: Decimal,
pub perps_equity: Decimal,
pub strategy_mode: Mode,
pub strategy_state: ItemState,
}
+1 -1
View File
@@ -66,7 +66,7 @@ impl Engine {
// live data / status
status: Arc::new(Mutex::new(EngineStatus {
equity: 0.into(),
perps_equity: 0.into(),
strategy_mode: Mode::Auto,
strategy_state: ItemState::Stopped,
})),
+2 -7
View File
@@ -68,14 +68,9 @@ impl RiskEngine {
let mut state = self.state.lock().await;
if let Some(acc) = engine.accounts.lock().await.get_active() {
self.state.lock().await.starting_equity = client
.user_vault_equities(acc.address)
.await?
.into_iter()
.map(|v| v.equity)
.sum();
let clearing_house = client.clearinghouse_state(acc.address, None).await?;
engine.status.lock().await.equity = state.starting_equity;
state.starting_equity = clearing_house.margin_summary.account_value;
}
state.pnl = 0.into();
+5
View File
@@ -227,6 +227,11 @@ impl TerminalServer {
if let Some(acc) = engine.accounts.lock().await.get_active() {
match client.clearinghouse_state(acc.address, None).await {
Ok(state) => {
engine.status.lock().await.perps_equity =
state.margin_summary.account_value;
engine.update_status().await?;
self.broadcast(TerminalServerMessage::PositionsUpdated(
state
.asset_positions
+4 -4
View File
@@ -199,12 +199,12 @@ impl Formatted for EngineStatus {
fn get_formatted(&self) -> Vec<String> {
vec![
Triple(
"\x1b[2mTrading Equity\x1b[0m",
"\x1b[2mState\x1b[0m",
"\x1b[2mMode\x1b[0m",
"\x1b[2mPerps Equity\x1b[0m",
"\x1b[2mStrategy State\x1b[0m",
"\x1b[2mStrategy Mode\x1b[0m",
),
Triple(
&format_usd(self.equity.as_f64()),
&format_usd(self.perps_equity.as_f64()),
&self.strategy_state.to_string(),
&self.strategy_mode.to_string(),
),