Carles Sentis de20259caf Refactor TradingStats module and update project structure for enhanced modularity. 11 uur geleden
..
README.md 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
__init__.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
debug_stats.py de20259caf Refactor TradingStats module and update project structure for enhanced modularity. 11 uur geleden
demo_stats.json 0cfca41a25 Refactor data management and update file structure for trading bot - Modified the .gitignore to include new data directories for persistent trading data and logs. Updated reset_data.sh to reflect changes in file paths and improved user prompts. Enhanced trading_stats.py and alarm_manager.py to ensure data is stored in the new structure, improving organization and maintainability. Added demo_stats.json for testing purposes. 4 dagen geleden
demo_stats.py de20259caf Refactor TradingStats module and update project structure for enhanced modularity. 11 uur geleden
run_all_tests.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_alarm_system.py 01b6eed4d8 Add price alarm system and logging enhancements - Introduce a comprehensive price alarm manager with functionality for creating, triggering, and managing alarms. Implement logging configuration with rotation and cleanup support, and integrate alarm checks into the Telegram bot for real-time notifications. Add tests for alarm management and ensure persistence across sessions. 5 dagen geleden
test_balance.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_bot_fixes.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden
test_config.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_exit_command.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_heartbeat_config.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden
test_integrated_tracking.py de20259caf Refactor TradingStats module and update project structure for enhanced modularity. 11 uur geleden
test_logging_system.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden
test_order_management.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_order_monitoring.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_performance_command.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden
test_period_commands.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden
test_period_stats_consistency.py de20259caf Refactor TradingStats module and update project structure for enhanced modularity. 11 uur geleden
test_perps_commands.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_positions_display.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden
test_risk_management.py 5b76ad1144 Enhance documentation and update .gitignore - Add comprehensive command reference and project structure documentation, improve README for clarity, and update .gitignore to include test artifacts and temporary files. 5 dagen geleden
test_stats_fix.py de20259caf Refactor TradingStats module and update project structure for enhanced modularity. 11 uur geleden
test_stop_loss_config.py f8db740389 Remove Telegram bot implementation - The telegram_bot.py file has been deleted as part of a refactor to streamline the codebase. This change eliminates the previous bot implementation, paving the way for a new architecture. 5 dagen geleden

README.md

🧪 Tests Directory

Test suite for the Hyperliquid Manual Trading Bot

📋 Available Tests

🔧 Core Tests

  • test_config.py - Validates configuration and environment setup
  • test_balance.py - Tests balance fetching with CCXT integration

💰 Trading Tests

  • test_perps_commands.py - Tests perps trading logic (/long, /short)
  • test_exit_command.py - Tests position closing functionality (/exit)
  • test_order_management.py - Tests enhanced order management (/orders, /coo)
  • test_risk_management.py - Tests stop loss and take profit commands (/sl, /tp)
  • test_order_monitoring.py - Tests automatic order monitoring and notifications

🚀 Running Tests

Run All Tests

cd tests
python run_all_tests.py

Run Individual Tests

cd tests
python test_config.py           # Test configuration
python test_balance.py          # Test balance fetching
python test_perps_commands.py   # Test trading commands
python test_exit_command.py     # Test exit functionality
python test_order_management.py # Test order management
python test_risk_management.py  # Test risk management

Run from Project Root

python tests/run_all_tests.py   # All tests
python tests/test_config.py     # Individual test

📊 Test Structure

Each test file follows the same pattern:

#!/usr/bin/env python3
"""
Test description
"""

import sys
from pathlib import Path

# Add project paths
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
sys.path.insert(0, str(project_root / 'src'))

# Import modules to test
from hyperliquid_client import HyperliquidClient
from config import Config

def test_function_name():
    """Main test function."""
    # Test implementation
    return True  # or False

if __name__ == "__main__":
    success = test_function_name()
    sys.exit(0 if success else 1)

✅ Test Coverage

Configuration & Setup

  • ✅ Environment variable validation
  • ✅ CCXT configuration format
  • ✅ Network settings (testnet/mainnet)
  • ✅ API key validation

Hyperliquid Client

  • ✅ Client initialization
  • ✅ Balance fetching (CCXT format)
  • ✅ Position fetching
  • ✅ Order fetching
  • ✅ Market data retrieval

Trading Commands

  • ✅ Long/short command logic
  • ✅ Market vs limit order detection
  • ✅ Token amount calculations
  • ✅ Symbol format conversion
  • ✅ Price validation

Order Management

  • ✅ Order filtering by token
  • ✅ Bulk order cancellation logic
  • ✅ Token extraction and validation

Position Management

  • ✅ Position detection
  • ✅ Exit order logic
  • ✅ Direction determination (long/short)

Risk Management

  • ✅ Stop loss validation (price direction)
  • ✅ Take profit validation (price direction)
  • ✅ Position requirement checking
  • ✅ P&L calculation at SL/TP levels

Order Monitoring

  • ✅ Order fill detection logic
  • ✅ Position change tracking
  • ✅ P&L calculation accuracy
  • ✅ Notification triggering
  • ✅ 30-second monitoring cycle

🔍 What Tests Check

Integration Tests

  • Real API connectivity (testnet)
  • Data format validation
  • Error handling
  • Network timeouts

Logic Tests

  • Command parsing
  • Calculation accuracy
  • Symbol conversions
  • Filter operations

Safety Tests

  • Configuration validation
  • API key security
  • Network isolation (testnet)

📝 Test Output

Each test provides:

  • ✅ PASS/❌ FAIL status
  • Detailed progress with emojis
  • Error messages with stack traces
  • Configuration summary
  • Ready-to-use commands for testing

Example output:

🧪 Testing Configuration Setup
==================================================
✅ Configuration valid
🌐 Network: Testnet
🔑 Private Key: 0x1234567890...

🎉 Config test PASSED!

🚀 Adding New Tests

  1. Create test file: test_new_feature.py
  2. Follow naming convention: test_<feature_name>.py
  3. Use standard structure (see above)
  4. Add to this README
  5. Test runner will auto-discover it

🛡️ Test Safety

  • All tests use testnet by default
  • No real money at risk
  • Read-only operations (except explicitly noted)
  • API key masking in outputs
  • Network isolation validation

📱 Mobile Testing

After tests pass, verify on Telegram:

# Start bot
python src/telegram_bot.py

# Test commands
/start
/balance
/long BTC 10
/sl BTC 9000
/tp BTC 11000
/orders
/coo BTC

Happy testing! 🧪🚀