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§
- Enhanced
SmaStrategy - Enhanced SMA cross strategy with funding awareness
- Funding
Arbitrage Strategy - Funding arbitrage strategy implementation
- Funding
Aware Config - Configuration for funding-aware strategies
- Trading
Signal - Trading signal with position size and strength
Enums§
- Signal
Strength - Signal strength for trading decisions
Traits§
- Hyperliquid
Strategy - 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