Module strategies

Source
Expand description

§Strategy Implementations for Hyperliquid Backtesting

This module provides enhanced trading strategies specifically designed for Hyperliquid perpetual futures trading, including funding rate awareness and advanced signal processing.

§Key Features

  • Funding-Aware Strategies: Strategies that incorporate funding rate data into decision making
  • Enhanced Technical Indicators: Traditional indicators enhanced with perpetual futures mechanics
  • Signal Strength Classification: Multi-level signal strength for better risk management
  • Configurable Parameters: Flexible configuration for different market conditions
  • Strategy Composition: Combine multiple strategies for sophisticated trading logic

§Available Strategies

§1. Funding Arbitrage Strategy

Exploits funding rate inefficiencies by taking positions when funding rates exceed thresholds.

use hyperliquid_backtest::prelude::*;

#[tokio::main]
async fn main() -> Result<(), HyperliquidBacktestError> {
    let data = HyperliquidData::fetch("BTC", "1h", start_time, end_time).await?;
     
    // Create funding arbitrage strategy with 0.01% threshold
    let strategy = funding_arbitrage_strategy(0.0001)?;
     
    let mut backtest = HyperliquidBacktest::new(
        data,
        strategy,
        10000.0,
        HyperliquidCommission::default(),
    )?;
     
    backtest.calculate_with_funding()?;
    let report = backtest.funding_report()?;
     
    println!("Funding arbitrage return: {:.2}%", report.net_funding_pnl / 10000.0 * 100.0);
     
    Ok(())
}

§2. Enhanced SMA Cross Strategy

Traditional SMA crossover enhanced with funding rate considerations.

use hyperliquid_backtest::prelude::*;

let funding_config = FundingAwareConfig {
    funding_threshold: 0.0001,  // 0.01% threshold
    funding_weight: 0.3,        // 30% weight to funding signal
    use_funding_direction: true,
    use_funding_prediction: false,
};

let strategy = enhanced_sma_cross(10, 20, funding_config)?;

§Strategy Configuration

§Funding Awareness Configuration

use hyperliquid_backtest::prelude::*;

let config = FundingAwareConfig {
    funding_threshold: 0.0001,      // Minimum funding rate to consider (0.01%)
    funding_weight: 0.5,            // Weight of funding signal (0.0 to 1.0)
    use_funding_direction: true,    // Consider funding rate direction
    use_funding_prediction: true,   // Use funding rate predictions
};

§Signal Strength Levels

  • Strong: High confidence signals (>80% historical accuracy)
  • Medium: Moderate confidence signals (60-80% historical accuracy)
  • Weak: Low confidence signals (<60% historical accuracy)

§Custom Strategy Development

§Implementing HyperliquidStrategy Trait

use hyperliquid_backtest::prelude::*;

struct MyCustomStrategy {
    funding_config: FundingAwareConfig,
    // ... other fields
}

impl HyperliquidStrategy for MyCustomStrategy {
    fn funding_config(&self) -> &FundingAwareConfig {
        &self.funding_config
    }
     
    fn set_funding_config(&mut self, config: FundingAwareConfig) {
        self.funding_config = config;
    }
     
    fn process_funding(&self, funding_rate: f64) -> TradingSignal {
        // Custom funding processing logic
        if funding_rate.abs() > self.funding_config.funding_threshold {
            TradingSignal::new(
                if funding_rate > 0.0 { 1.0 } else { -1.0 },
                SignalStrength::Strong
            )
        } else {
            TradingSignal::new(0.0, SignalStrength::Weak)
        }
    }
     
    fn combine_signals(&self, base_signal: f64, funding_signal: &TradingSignal) -> f64 {
        // Custom signal combination logic
        let funding_weight = match funding_signal.strength {
            SignalStrength::Strong => self.funding_config.funding_weight,
            SignalStrength::Medium => self.funding_config.funding_weight * 0.7,
            SignalStrength::Weak => self.funding_config.funding_weight * 0.3,
        };
         
        base_signal * (1.0 - funding_weight) + funding_signal.position * funding_weight
    }
}

Structs§

EnhancedSmaStrategy
Enhanced SMA cross strategy with funding awareness
FundingArbitrageStrategy
Funding arbitrage strategy implementation
FundingAwareConfig
Configuration for funding-aware strategies
TradingSignal
Trading signal with position size and strength

Enums§

SignalStrength
Signal strength for trading decisions

Traits§

HyperliquidStrategy
Trait for Hyperliquid-specific strategies

Functions§

enhanced_sma_cross
Create an enhanced SMA cross strategy with funding awareness
funding_arbitrage_strategy
Create a funding arbitrage strategy