ta-lib-in-rust 1.0.8

A library of technical indicators for financial analysis, similar to TA-Lib
Documentation
//! # Stock Trading Module
//! 
//! This module provides tools and utilities specifically for equity markets.
//! It handles stock-specific trading concepts including:
//! 
//! - Market sessions (pre-market, regular hours, after-hours)
//! - Common stock trading patterns
//! - Sector rotation analysis
//! - Earnings and dividend event handling
//! - Index and stock correlations

use polars::prelude::*;

/// Basic functions for equity trading
pub mod equity_trading {
    use super::*;

    /// Calculate market session performance metrics
    /// 
    /// Analyzes stock performance during different market sessions.
    /// Useful for traders who focus on specific times of the trading day.
    /// 
    /// # Arguments
    /// 
    /// * `df` - DataFrame with price and datetime data
    /// * `datetime_col` - Column name for datetime
    /// 
    /// # Returns
    /// 
    /// DataFrame with session analysis columns
    pub fn analyze_market_sessions(
        df: &DataFrame,
        datetime_col: &str
    ) -> PolarsResult<DataFrame> {
        // This is a placeholder for the actual implementation
        // A full implementation would:
        // 1. Identify pre-market, regular hours, and after-hours periods
        // 2. Calculate performance metrics for each session
        // 3. Identify patterns across sessions

        Ok(df.clone())
    }

    /// Identify common stock price patterns
    /// 
    /// Detects classic chart patterns like double tops, head and shoulders, etc.
    /// 
    /// # Arguments
    /// 
    /// * `df` - DataFrame with OHLCV data
    /// 
    /// # Returns
    /// 
    /// DataFrame with pattern detection columns
    pub fn detect_stock_patterns(df: &DataFrame) -> PolarsResult<DataFrame> {
        // This is a placeholder for pattern detection logic
        
        Ok(df.clone())
    }

    /// Analyze earnings impact on price movement
    /// 
    /// Studies historical price reactions to earnings announcements
    /// 
    /// # Arguments
    /// 
    /// * `df` - DataFrame with price data
    /// * `earnings_dates` - Dates of earnings announcements
    /// 
    /// # Returns
    /// 
    /// DataFrame with earnings impact analysis
    pub fn analyze_earnings_impact(
        df: &DataFrame,
        earnings_dates: &[String]
    ) -> PolarsResult<DataFrame> {
        // This is a placeholder for earnings analysis
        
        Ok(df.clone())
    }
}

//! # Stock Trading Indicators
//! 
//! This module provides specialized technical indicators optimized for stock trading
//! across different timeframes.

pub mod short_term;
pub mod long_term;

pub use short_term::*;
pub use long_term::*;

// Re-export commonly used functionality for convenient access
pub use short_term::swing_detection;
pub use long_term::trend_analysis;

mod breadth;
pub use breadth::{calculate_advance_decline_line, calculate_trin, calculate_mcclellan_oscillator};

mod relative_strength;
pub use relative_strength::calculate_relative_strength;

mod vwap_bands;
pub use vwap_bands::calculate_vwap_bands;

mod pairs_trading;
pub use pairs_trading::calculate_pairs_zscore;

mod patterns;
pub use patterns::recognize_candlestick_patterns;