import streamlit as st import os import sys # Add the 'utils' directory to sys.path so Python can find modules within it sys.path.append(os.path.join(os.path.dirname(__file__), "utils")) from utils.forex_signals import generate_forex_signals # Streamlit page configuration st.set_page_config(page_title="AI Forex Bot", page_icon=":guardsman:", layout="wide") # Authentication logic if "authenticated" not in st.session_state: st.session_state.authenticated = False if not st.session_state.authenticated: st.title("Authentication Required") username = st.text_input("Enter your username", "") if st.button("Login"): # Simple authentication ALLOWED_USERNAMES = ["ddilloud", "ved", "aditya", "karlmax", "bento"] if username in ALLOWED_USERNAMES: st.session_state.authenticated = True st.success("Login successful! Welcome!") else: st.error("Invalid username. Access denied.") else: # Title of the application st.title("AI Forex Trading Bot") st.markdown(""" This tool provides forex trading signals based on AI analysis and is for informational purposes only. Use at your own risk as forex trading involves substantial risk of loss. """) # 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", ["Low", "Medium", "High"]) additional_pairs = [ "EUR/USD", "GBP/USD", "USD/JPY", "AUD/USD", "CAD/JPY", "NZD/USD", "CHF/JPY", "AUD/JPY", "GBP/CHF", "EUR/GBP" ] if st.sidebar.button("Get Trading Signals"): try: signals = generate_forex_signals(trading_capital, market_risk, additional_pairs) if signals["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.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.markdown("---") else: st.warning("No signals were generated. Please try again later.") except Exception as e: st.error(f"An error occurred: {str(e)}")