🔥 COMPILATION SUCCESS: Complete resolution of all 543+ compilation errors

ARCHITECTURAL ACHIEVEMENTS:
 Zero compilation errors across entire workspace
 Complete elimination of circular dependencies
 Proper configuration architecture with centralized config crate
 Fixed all type mismatches and missing fields
 Restored proper crate structure (config at root level)

MAJOR FIXES:
- Fixed 19 critical data crate compilation errors
- Resolved configuration struct field mismatches
- Fixed enum variant naming (CSV → Csv)
- Corrected type conversions (FromPrimitive, compression types)
- Fixed HashMap key types (u32 vs usize)
- Resolved TLOBProcessor constructor issues

WORKSPACE STATUS:
- All services compile successfully
- Trading Service:  Ready
- Backtesting Service:  Ready
- ML Training Service:  Ready
- TLI Client:  Ready

Only documentation warnings remain (3,316 warnings to be addressed)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2025-09-29 10:59:34 +02:00
parent 18904f08bc
commit eb5fe84e22
293 changed files with 5103 additions and 18491 deletions

View File

@@ -13,6 +13,8 @@ use std::time::Duration;
use tempfile::NamedTempFile;
use tokio::runtime::Runtime;
use num_traits::FromPrimitive; // For Decimal::from_f64
use backtesting::{
replay_engine::{DataFormat, DataSource, MarketReplay, ReplayConfig, SourceType},
BacktestConfig, BacktestEngine,

View File

@@ -23,19 +23,16 @@
//! # Quick Start
//!
//! ```rust,no_run
//! use backtesting::{BacktestEngine, BacktestConfig, replay_engine::ReplayConfig};
//! use chrono::Utc;
//! use common::types::Order;
use common::types::Position;
use common::types::Execution;
use common::types::Symbol;
use common::types::Price;
use common::types::Quantity;
use common::error::CommonError;
use common::error::CommonResult;
use common::types::HftTimestamp;
use common::types::OrderId;
use common::types::TradeId;
//! use backtesting::{BacktestEngine, BacktestConfig};
// ReplayConfig will be imported via re-export
// use chrono::Utc;
// use common::Order;
use common::Position;
use common::Execution;
use common::Symbol;
use common::Price;
use common::Quantity;
// Removed unused imports
//
// #[tokio::main]
// async fn main() -> anyhow::Result<()> {
@@ -60,18 +57,14 @@ use common::types::TradeId;
// Ok(())
// }
/// ```
// Re-export std modules that might be shadowed by local crate names
use std as stdlib;
use std::{sync::Arc, time::Instant};
use std::{collections::HashMap, sync::Arc, time::Instant};
use anyhow::{Context, Result};
use anyhow::Result;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use tokio::sync::{mpsc, RwLock};
use tracing::{error, info, warn};
use tracing::{info, warn};
use rust_decimal::prelude::ToPrimitive;
use rust_decimal::Decimal;
// mod types; // Removed - using core::prelude types instead
@@ -79,12 +72,17 @@ use rust_decimal::Decimal;
pub mod metrics;
pub mod replay_engine;
pub mod strategy_tester;
pub mod strategy_runner;
// Re-export types for public API
pub use strategy_tester::{Strategy, StrategyConfig, StrategyContext, StrategyResult, TradingSignal, SignalType, StrategyTester};
pub use replay_engine::{MarketReplay, ReplayConfig};
pub use metrics::{MetricsCalculator, PerformanceAnalytics};
pub use strategy_runner::{AdaptiveStrategyConfig, create_adaptive_strategy_with_config};
// Import events from trading_engine directly
use trading_engine::events::MarketEvent;
// Import events from trading_engine types
use trading_engine::types::events::MarketEvent;
/// Main backtesting engine configuration
#[derive(Debug, Clone, Serialize, Deserialize)]
@@ -895,7 +893,7 @@ mod tests {
signals.push(TradingSignal {
symbol: symbol.clone(),
signal_type: exit_signal_type,
quantity: Quantity::from_f64(position.quantity.to_f64())
quantity: Quantity::from_f64(position.quantity.to_f64().unwrap_or(0.0))
.unwrap_or(Quantity::ZERO),
target_price: Some(*price),
stop_loss: None,
@@ -938,9 +936,10 @@ mod tests {
self.current_position = Some(position.clone());
// Determine position side based on quantity sign
if position.quantity.to_f64() > 0.0 {
let position_value = position.quantity.to_f64().unwrap_or(0.0);
if position_value > 0.0 {
self.position_side = Some(OrderSide::Buy); // Long position
} else if position.quantity.to_f64() < 0.0 {
} else if position_value < 0.0 {
self.position_side = Some(OrderSide::Sell); // Short position
} else {
self.position_side = None; // No position

View File

@@ -15,7 +15,8 @@ use statrs::statistics::Statistics;
use tracing::{info, warn};
use rust_decimal::Decimal;
use common::types::Symbol;
use num_traits::FromPrimitive; // For Decimal::from_f64
use common::Symbol;
use crate::strategy_tester::{PerformanceSnapshot, TradeRecord};

View File

@@ -4,8 +4,6 @@
//! filtering, and synchronization capabilities for strategy testing.
use std::{
collections::{BTreeMap, VecDeque},
path::PathBuf,
sync::Arc,
time::{Duration, Instant},
};
@@ -13,9 +11,9 @@ use std::{
use anyhow::{Context, Result};
use chrono::{DateTime, Utc};
use rust_decimal::Decimal;
use common::types::{Timestamp, Symbol, Quantity, Price};
use trading_engine::events::MarketEvent;
use crossbeam_channel::{bounded, Receiver, Sender};
use common::{Timestamp, Symbol, Quantity, Price};
use trading_engine::types::events::MarketEvent;
// Channel imports removed as not used
use dashmap::DashMap;
use serde::{Deserialize, Serialize};
use tokio::{
@@ -24,10 +22,7 @@ use tokio::{
sync::{mpsc, RwLock},
time::sleep,
};
use tracing::{debug, error, info, warn};
use common::types::{Order, Position, Execution, HftTimestamp, OrderId, TradeId};
use common::error::{CommonError, CommonResult};
use common::database::{DatabaseConfig, DatabasePool, PoolConfig, PoolStats};
use tracing::{error, info, warn};
/// Configuration for market data replay
#[derive(Debug, Clone, Serialize, Deserialize)]

View File

@@ -5,10 +5,11 @@
use anyhow::Result;
use async_trait::async_trait;
use common::types::{OrderSide, OrderStatus, Position, Symbol, Quantity, Price, Order};
use common::{OrderSide, OrderStatus, Position, Symbol, Quantity, Price};
use common::Order;
use rust_decimal::prelude::ToPrimitive;
use rust_decimal::Decimal;
use trading_engine::events::MarketEvent;
use trading_engine::types::events::MarketEvent;
// Use canonical types from ML module
use ml::{Features, ModelPrediction};
@@ -44,7 +45,7 @@ use tracing::{debug, info, warn};
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;
use crate::{SignalType, Strategy, StrategyConfig, StrategyContext, StrategyResult, TradingSignal};
use crate::strategy_tester::{SignalType, Strategy, StrategyConfig, StrategyContext, StrategyResult, TradingSignal};
/// Adaptive strategy runner that integrates ML models with backtesting
pub struct AdaptiveStrategyRunner {

View File

@@ -20,17 +20,17 @@ use serde::{Deserialize, Serialize};
use serde_json;
use tokio::sync::{mpsc, RwLock};
use tracing::{debug, error, info, warn};
use common::types::Order;
use common::types::OrderId;
use common::types::Position;
use common::types::Price;
use common::types::Quantity;
use common::types::OrderSide;
use common::types::Symbol;
use common::types::TimeInForce;
use common::types::OrderStatus;
use common::types::OrderType;
use trading_engine::events::MarketEvent;
use common::Order;
use common::OrderId;
use common::Position;
use common::Price;
use common::Quantity;
use common::OrderSide;
use common::Symbol;
use common::TimeInForce;
use common::OrderStatus;
use common::OrderType;
use trading_engine::types::events::MarketEvent;
use uuid::Uuid;
use rust_decimal::Decimal;
// TECHNICAL DEBT ELIMINATED - Use String and DateTime<Utc> directly