An advanced algorithmic trading bot for the Hyperliquid DEX, featuring a Bollinger Bands + RSI + ADX strategy, comprehensive backtesting framework, and machine learning optimization capabilities. This bot is designed for algorithmic trading on perpetual futures contracts, with a focus on automated strategy execution and optimization.
-
Multiple Trading Strategies:
- Bollinger Bands + RSI + ADX strategy (BBRSI)
- ML-enhanced strategies with optimized parameters
- Customizable entry/exit conditions
-
Advanced Backtesting System:
- Historical data analysis with realistic trade simulation
- Performance metrics and statistics
- Visualization of equity curves and trade performance
- Multi-symbol testing capabilities
- Risk management analysis
-
Machine Learning Optimization:
- Automated parameter optimization using ML models
- Feature importance analysis
- Support for different ML models (Random Forest, XGBoost, Neural Networks)
- Optimized strategy parameter generation
-
Risk Management:
- Configurable position sizing
- Take profit mechanisms
- Liquidation prevention
- Performance analysis
-
Visualization Tools:
- Equity curve visualization
- Trade performance charts
- Drawdown analysis
- Interactive HTML reports
- Node.js (v14 or higher)
- npm (Node Package Manager)
- Python 3.x (for ML optimization features)
- Python packages: numpy, pandas, scikit-learn, xgboost, shap, matplotlib
-
Clone the repository:
git clone <repository-url> cd hyperliquidalgobot
-
Install Node.js dependencies:
npm install
-
Install Python dependencies (for ML features):
pip install numpy pandas scikit-learn xgboost shap matplotlib
-
Create a
.env
file in the root directory:PRIVATE_KEY=your_private_key_here
The bot's behavior can be customized through the configuration files in the config/
directory:
default.json
: Default trading settingsbacktest.json
: Specific settings for backtesting
Trading Parameters:
market
: Trading pair (default: BTC-PERP)positionSize
: Position size as a decimal (e.g., 0.1 for 10%)leverage
: Trading leveragetimeframe
: Candlestick intervalprofitTarget
: Take profit percentage
Indicator Parameters:
- RSI settings: period, overbought, oversold levels
- Bollinger Bands settings: period, standard deviation
- ADX settings: period, threshold
Start the trading bot (not fully implemented yet):
npm start
Run a backtest with default settings:
npm run backtest
Run a backtest with specific configuration:
node src/backtesting/run.js --config backtest
Run a backtest with ML-optimized parameters:
node src/backtesting/run.js --config backtest --use-ml
Specify a particular ML model:
node src/backtesting/run.js --config backtest --use-ml --ml-model BTC-PERP_15m_randomforest
Visualize backtest results:
node src/backtesting/visualize.js
Generate ML-optimized parameters:
node src/backtesting/ml_optimize.js --market BTC-PERP --timeframe 15m
A strategy that combines Bollinger Bands, RSI, and ADX indicators:
-
Long Entry Conditions:
- Price crosses below the lower Bollinger Band
- RSI is below the oversold level
- ADX is above the threshold
-
Short Entry Conditions:
- Price crosses above the upper Bollinger Band
- RSI is above the overbought level
- ADX is above the threshold
-
Exit Conditions:
- Take profit at the configured target
- Cross of price under/over middle Bollinger Band
- RSI extreme levels (>80 for longs, <20 for shorts)
Extends the base strategies by applying machine learning optimized parameters:
- Uses the same signal generation logic as the base strategy
- Parameters are optimized using machine learning models
- Models analyze historical performance to find optimal settings
- Feature importance analysis identifies key indicators
├── config/ # Configuration files
│ ├── default.json # Default trading settings
│ └── backtest.json # Backtesting settings
├── src/
│ ├── application/ # Main application code
│ │ └── controller.js # Application controller
│ ├── backtesting/ # Backtesting framework
│ │ ├── Backtester.js # Core backtesting engine
│ │ ├── RiskManager.js # Risk management module
│ │ ├── ml_optimizer.js # ML optimization implementation
│ │ ├── ml_optimize.js # ML optimization CLI
│ │ ├── visualization.js # Visualization library
│ │ ├── visualize.js # Visualization CLI
│ │ ├── run.js # Backtesting runner
│ │ ├── strategies/ # Strategy implementations for backtesting
│ │ │ └── MLEnhancedStrategy.js # ML-enhanced strategy
│ │ └── data/ # Historical data for backtesting
│ ├── hyperliquid/ # Hyperliquid integration
│ │ ├── marketInfo.js # Market information fetching
│ │ ├── trade.js # Trading functions
│ │ └── websocket.js # WebSocket connection
│ └── strategy/ # Trading strategies
│ ├── BBRSIStrategy.js # Bollinger Bands + RSI + ADX strategy
│ ├── ScalpingStrategy.js # Scalping strategy
│ └── indicators/ # Technical indicators
│ ├── ema.js # EMA calculation
│ └── index.js # Indicator utilities
├── .env # Environment variables (not in repo)
└── package.json # Project dependencies
The backtesting system generates several output files:
equity_curve.json
: Equity curve databacktest_trades.json
: Detailed trade informationtrade_statistics.json
: Performance statisticsequity_curve_chart.html
: Visual equity curve charttrade_performance_chart.html
: Trade performance visualizationdrawdown_chart.html
: Drawdown analysisbacktest_summary.html
: Complete backtest summary
The ML optimization process generates:
- Optimized parameter files in
src/backtesting/ml_models/
- Feature importance analysis
- Performance metrics
- HTML reports
- Configurable position sizing
- Take-profit mechanisms
- Risk management controls
- Comprehensive error handling
The bot maintains detailed logs in:
- Console output for important information
- Log files for debugging and detailed operations
This bot is for educational purposes only. Cryptocurrency trading carries significant risks. Always test thoroughly on testnet before using real funds.
MIT
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request