#![allow(unused_crate_dependencies)] //! PPO Position Sizing Integration Demo //! //! This example demonstrates how to use the PPO (Proximal Policy Optimization) //! position sizer integrated into the adaptive-strategy crate for continuous, //! risk-aware position optimization. use adaptive_strategy::config::RiskConfig; use adaptive_strategy::risk::{PPOPositionSizerConfig, RiskManager}; #[tokio::main] async fn main() -> Result<(), Box> { println!("šŸš€ PPO Position Sizing Integration Demo"); println!("========================================"); // 1. Configure PPO Position Sizer let _ppo_config = PPOPositionSizerConfig::default(); // 2. Configure Risk Management with PPO let mut risk_config = RiskConfig::default(); risk_config.max_portfolio_var = 0.02; risk_config.max_drawdown_threshold = 0.05; risk_config.kelly_fraction = 0.25; risk_config.max_leverage = 2.0; // Save config values for display before moving let max_var = risk_config.max_portfolio_var; let max_drawdown = risk_config.max_drawdown_threshold; let kelly = risk_config.kelly_fraction; let leverage = risk_config.max_leverage; // 3. Initialize Risk Manager with PPO let _risk_manager = RiskManager::new(risk_config)?; println!("āœ… PPO Position Sizer initialized with configuration:"); println!(" - Max Portfolio VaR: {:.2}%", max_var * 100.0); println!(" - Max Drawdown: {:.2}%", max_drawdown * 100.0); println!(" - Kelly Fraction: {:.2}", kelly); println!(" - Max Leverage: {:.1}x", leverage); println!("\n🧠 PPO Position Sizing Demo Complete!"); println!(" - PPO configuration loaded successfully"); println!(" - Risk manager initialized with PPO settings"); println!(" - Ready for real-time position optimization"); Ok(()) }