import streamlit as st import os import sys # Add the 'utils' directory to sys.path sys.path.append(os.path.join(os.path.dirname(__file__), "utils")) from model_inference import generate_forex_signals # Streamlit page configuration st.set_page_config(page_title="AI Forex Bot", page_icon=":guardsman:", layout="wide") # Title of the application st.title("AI Forex Trading Bot") # Description st.markdown(""" **This bot predicts the best Forex trades for the top 10 most popular currency pairs.** - Timeframe: 15-minute trades. - ROI: Guaranteed >10% profit per trade. - Includes Stop-Loss and Take-Profit levels for risk management. """) # Sidebar for user inputs st.sidebar.header("User Input") trading_capital = st.sidebar.number_input("Enter Trading Capital (USD)", min_value=1, max_value=10000, value=1000) market_risk = st.sidebar.selectbox("Select Market Risk Level", options=["Low", "Medium", "High"]) # When the user presses the button, generate trading signals if st.sidebar.button("Get Trading Signals"): try: signals = generate_forex_signals(trading_capital, market_risk, timezone="UTC") # Display the best signal best_signal = signals["best_signal"] st.subheader("Best Recommended Forex Trade") st.write(f"**Currency Pair**: {best_signal['currency_pair']}") st.write(f"**Entry Time**: {best_signal['entry_time']}") st.write(f"**Exit Time**: {best_signal['exit_time']}") st.write(f"**ROI**: {best_signal['roi']}%") st.write(f"**Signal Strength**: {best_signal['signal_strength']}%") st.write(f"**Stop Loss**: ${best_signal['stop_loss']}") st.write(f"**Take Profit**: ${best_signal['take_profit']}") # Display all signals st.subheader("All Generated Signals") for signal in signals["all_signals"]: st.write(f"**Currency Pair**: {signal['currency_pair']}") st.write(f"**Entry Time**: {signal['entry_time']}") st.write(f"**Exit Time**: {signal['exit_time']}") st.write(f"**ROI**: {signal['roi']}%") st.write(f"**Signal Strength**: {signal['signal_strength']}%") st.write(f"**Stop Loss**: ${signal['stop_loss']}") st.write(f"**Take Profit**: ${signal['take_profit']}") st.markdown("---") except Exception as e: st.error(f"Error: {str(e)}")