FT1 / app.py
Devendra21's picture
Update app.py
d114cd5 verified
raw
history blame
3.06 kB
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)}")