Skip to main content

Crate formica

Crate formica 

Source
Expand description

FormicaX - High-Performance Clustering Library for Financial Data Analysis

FormicaX is a high-performance Rust library designed specifically for clustering analysis of financial data. It implements advanced machine learning clustering algorithms optimized for OHLCV (Open, High, Low, Close, Volume) data to identify market patterns, regimes, and trading opportunities.

§Quick Start

use formica::{
    clustering::kmeans::algorithm::KMeans,
    clustering::kmeans::config::{KMeansConfig, KMeansVariant},
    core::{ClusteringAlgorithm, OHLCV},
};
use chrono::Utc;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create sample OHLCV data
    let ohlcv_data = vec![
        OHLCV::new(Utc::now(), 100.0, 105.0, 98.0, 102.0, 1000),
        OHLCV::new(Utc::now(), 102.0, 107.0, 100.0, 104.0, 1200),
        OHLCV::new(Utc::now(), 104.0, 109.0, 102.0, 106.0, 1100),
    ];

    // Configure K-Means with modern builder pattern
    let config = KMeansConfig::builder()
        .k(2)                                // 2 clusters
        .variant(KMeansVariant::Lloyd)       // Use Lloyd's algorithm
        .max_iterations(100)                 // Maximum iterations
        .parallel(false)                     // Disable parallel for small dataset
        .build()?;

    // Initialize and fit the clustering algorithm
    let mut kmeans = KMeans::with_config(config);
    let result = kmeans.fit(&ohlcv_data)?;

    // Display comprehensive results
    println!("Clustering completed successfully!");
    println!("- Algorithm: {}", result.algorithm_name);
    println!("- Clusters: {}", result.n_clusters);
    println!("- Iterations: {}", result.iterations);
    println!("- Converged: {}", result.converged);
    println!("- Silhouette Score: {:.3}", result.silhouette_score);
    println!("- Execution Time: {:?}", result.execution_time);

    Ok(())
}

Re-exports§

pub use core::ClusterResult;
pub use core::ClusteringAlgorithm;
pub use core::DataLoader;
pub use core::FormicaXError;
pub use core::OHLCV;

Modules§

analysis
Analysis module for FormicaX
clustering
Clustering algorithms module for FormicaX
core
Core data structures and interfaces for FormicaX
performance
Performance optimization utilities for FormicaX
trading
Trading-specific utilities and algorithms for FormicaX
utils
Utility functions for FormicaX

Constants§

AUTHORS
DESCRIPTION
VERSION