diff --git a/pulse-sdk/src/terminal.rs b/pulse-sdk/src/terminal.rs index d985d49..db231be 100644 --- a/pulse-sdk/src/terminal.rs +++ b/pulse-sdk/src/terminal.rs @@ -1,5 +1,5 @@ use crate::{ - general::{Allocation, EngineStatus, EventLog, Position, Signal}, + general::{EngineStatus, EventLog, Position, Signal}, strategy::StrategyManifest, }; use hypersdk::Decimal; @@ -65,8 +65,9 @@ pub enum InspectItem { pub struct EngineConfig { pub preset: String, pub strategy: StrategyManifest, + pub description: Option, - pub risk_per_trade: Allocation, + pub risk_per_trade: String, pub max_open_positions: u32, - pub max_daily_loss: Allocation, + pub max_daily_loss: String, } diff --git a/src/engine/engine/mod.rs b/src/engine/engine/mod.rs index 7e62fd7..b65245f 100644 --- a/src/engine/engine/mod.rs +++ b/src/engine/engine/mod.rs @@ -109,9 +109,10 @@ impl Engine { Ok(EngineConfig { preset: manager.preset.clone(), strategy: self.strategy_engine.strategy.lock().await.manifest.clone(), + description: config.description.clone(), - risk_per_trade: config.risk.risk_per_trade, - max_daily_loss: config.risk.max_daily_loss, + risk_per_trade: config.risk.risk_per_trade.to_string(), + max_daily_loss: config.risk.max_daily_loss.to_string(), max_open_positions: config.risk.max_open_positions, }) } diff --git a/src/terminal/formatting.rs b/src/terminal/formatting.rs index 33c02c1..623e386 100644 --- a/src/terminal/formatting.rs +++ b/src/terminal/formatting.rs @@ -219,12 +219,26 @@ impl Formatted for EngineConfig { Triple( "\x1b[2mPreset\x1b[0m", "\x1b[2mStrategy\x1b[0m", - "\x1b[2mRisk\x1b[0m", + "\x1b[2mDescription\x1b[0m", ), Triple( &self.preset, &self.strategy.name, - &self.risk_per_trade.to_string(), + self.description + .as_ref() + .map(String::as_str) + .unwrap_or("none"), + ), + Triple("", "", ""), + Triple( + "\x1b[2mRisk/Trade\x1b[0m", + "\x1b[2mMax Positions\x1b[0m", + "\x1b[2mMax daily loss\x1b[0m", + ), + Triple( + &self.risk_per_trade, + &self.max_open_positions.to_string(), + &self.max_daily_loss, ), ] .get_formatted() diff --git a/src/terminal/terminal.rs b/src/terminal/terminal.rs index 9acf585..fe8aea3 100644 --- a/src/terminal/terminal.rs +++ b/src/terminal/terminal.rs @@ -66,7 +66,27 @@ impl TerminalClient { ) .await { - panic!("{v}") + crossterm::terminal::disable_raw_mode().unwrap(); + + crossterm::execute!(std::io::stdout(), crossterm::cursor::Show).unwrap(); + + crossterm::execute!( + std::io::stdout(), + crossterm::terminal::Clear(crossterm::terminal::ClearType::Purge) + ) + .unwrap(); + + crossterm::execute!( + std::io::stdout(), + crossterm::terminal::Clear(crossterm::terminal::ClearType::All) + ) + .unwrap(); + + crossterm::execute!(std::io::stdout(), crossterm::cursor::MoveTo(0, 0)).unwrap(); + + println!("Error using app: {v}"); + + std::process::exit(1); } });