Skip to main content
Glama

MCP Hybrid Forecasting

by j1c4b
test_working_system.py4.99 kB
# test_working_system.py - Test your working models def test_working_models(): """Test the working models without pmdarima.""" print("🚀 Testing Working Trading Models") print("=" * 50) try: # Test imports from models.arima_model import get_arima_forecast, get_enhanced_arima_forecast from models.hybrid_model import train_xgboost_on_residuals print("✅ Model imports successful") # Test basic functionality ticker = 'AAPL' print(f"\n📊 Testing with {ticker}...") # Get ARIMA forecast arima_forecast, residuals, df = get_arima_forecast(ticker) print(f"✅ ARIMA forecast: ${arima_forecast:.2f}") # Train XGBoost on residuals xgb_model, latest_features = train_xgboost_on_residuals(residuals, df) # Make hybrid prediction residual_correction = xgb_model.predict(latest_features)[0] hybrid_forecast = arima_forecast + residual_correction last_price = df['Close'].iloc[-1] change = (hybrid_forecast - last_price) / last_price print(f"\n📈 RESULTS:") print(f"✅ Last price: ${last_price:.2f}") print(f"✅ ARIMA forecast: ${arima_forecast:.2f}") print(f"✅ Residual correction: {residual_correction:.4f}") print(f"✅ Hybrid forecast: ${hybrid_forecast:.2f}") print(f"✅ Expected change: {change:+.2%}") # Generate signal if change > 0.02: signal = "🟢 BUY" elif change < -0.02: signal = "🔴 SELL" else: signal = "🟡 HOLD" print(f"✅ Trading Signal: {signal}") # Test enhanced version print(f"\n🔬 Testing Enhanced ARIMA...") enhanced_results = get_enhanced_arima_forecast(ticker, n_periods=1) if enhanced_results: enhanced_forecast = enhanced_results['forecast_results']['forecasts'].iloc[0] print(f"✅ Enhanced ARIMA forecast: ${enhanced_forecast:.2f}") print(f"✅ Model diagnostics: RMSE={enhanced_results['diagnostics']['rmse']:.4f}") print(f"\n🎉 ALL TESTS PASSED! Your trading system is ready.") return True except Exception as e: print(f"❌ Test failed: {e}") import traceback traceback.print_exc() return False def test_multiple_tickers(): """Test with multiple tickers.""" print("\n🔄 Testing Multiple Tickers...") print("-" * 40) tickers = ['AAPL', 'MSFT', 'GOOGL'] results = [] for ticker in tickers: try: from models.arima_model import get_arima_forecast from models.hybrid_model import train_xgboost_on_residuals print(f"\n📊 Analyzing {ticker}...") arima_forecast, residuals, df = get_arima_forecast(ticker) xgb_model, latest_features = train_xgboost_on_residuals(residuals, df) residual_correction = xgb_model.predict(latest_features)[0] hybrid_forecast = arima_forecast + residual_correction last_price = df['Close'].iloc[-1] change = (hybrid_forecast - last_price) / last_price if change > 0.02: signal = "BUY" elif change < -0.02: signal = "SELL" else: signal = "HOLD" results.append({ 'ticker': ticker, 'last_price': last_price, 'forecast': hybrid_forecast, 'change': change, 'signal': signal }) print(f"✅ {ticker}: {signal} ({change:+.2%})") except Exception as e: print(f"❌ {ticker} failed: {e}") print(f"\n📋 SUMMARY:") print("-" * 40) for result in results: emoji = "🟢" if result['signal'] == "BUY" else "🔴" if result['signal'] == "SELL" else "🟡" print(f"{emoji} {result['ticker']}: ${result['last_price']:.2f} → ${result['forecast']:.2f} ({result['change']:+.2%})") return len(results) == len(tickers) if __name__ == "__main__": print("🚀 WORKING TRADING SYSTEM TEST") print("=" * 60) # Test single ticker success1 = test_working_models() if success1: # Test multiple tickers success2 = test_multiple_tickers() if success2: print(f"\n🎉 COMPLETE SUCCESS!") print("Your trading system is fully operational.") print("\nNext: Run the full enhanced main.py for comprehensive analysis!") else: print(f"\n⚠️ Basic functionality works, some tickers had issues.") else: print(f"\n❌ System needs debugging.") print("Check that you've copied the model files correctly.")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/j1c4b/mcp-hybrid-forecasting'

If you have feedback or need assistance with the MCP directory API, please join our Discord server