Added more formatting options
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
general::{Allocation, EngineStatus, EventLog, Position, Signal},
|
general::{EngineStatus, EventLog, Position, Signal},
|
||||||
strategy::StrategyManifest,
|
strategy::StrategyManifest,
|
||||||
};
|
};
|
||||||
use hypersdk::Decimal;
|
use hypersdk::Decimal;
|
||||||
@@ -65,8 +65,9 @@ pub enum InspectItem {
|
|||||||
pub struct EngineConfig {
|
pub struct EngineConfig {
|
||||||
pub preset: String,
|
pub preset: String,
|
||||||
pub strategy: StrategyManifest,
|
pub strategy: StrategyManifest,
|
||||||
|
pub description: Option<String>,
|
||||||
|
|
||||||
pub risk_per_trade: Allocation,
|
pub risk_per_trade: String,
|
||||||
pub max_open_positions: u32,
|
pub max_open_positions: u32,
|
||||||
pub max_daily_loss: Allocation,
|
pub max_daily_loss: String,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,9 +109,10 @@ impl Engine {
|
|||||||
Ok(EngineConfig {
|
Ok(EngineConfig {
|
||||||
preset: manager.preset.clone(),
|
preset: manager.preset.clone(),
|
||||||
strategy: self.strategy_engine.strategy.lock().await.manifest.clone(),
|
strategy: self.strategy_engine.strategy.lock().await.manifest.clone(),
|
||||||
|
description: config.description.clone(),
|
||||||
|
|
||||||
risk_per_trade: config.risk.risk_per_trade,
|
risk_per_trade: config.risk.risk_per_trade.to_string(),
|
||||||
max_daily_loss: config.risk.max_daily_loss,
|
max_daily_loss: config.risk.max_daily_loss.to_string(),
|
||||||
max_open_positions: config.risk.max_open_positions,
|
max_open_positions: config.risk.max_open_positions,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,12 +219,26 @@ impl Formatted for EngineConfig {
|
|||||||
Triple(
|
Triple(
|
||||||
"\x1b[2mPreset\x1b[0m",
|
"\x1b[2mPreset\x1b[0m",
|
||||||
"\x1b[2mStrategy\x1b[0m",
|
"\x1b[2mStrategy\x1b[0m",
|
||||||
"\x1b[2mRisk\x1b[0m",
|
"\x1b[2mDescription\x1b[0m",
|
||||||
),
|
),
|
||||||
Triple(
|
Triple(
|
||||||
&self.preset,
|
&self.preset,
|
||||||
&self.strategy.name,
|
&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()
|
.get_formatted()
|
||||||
|
|||||||
@@ -66,7 +66,27 @@ impl TerminalClient {
|
|||||||
)
|
)
|
||||||
.await
|
.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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user