Devendra21 commited on
Commit
02e7554
·
verified ·
1 Parent(s): 71336f7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -60
app.py CHANGED
@@ -1,70 +1,58 @@
1
  import streamlit as st
2
  import os
3
  import sys
 
4
 
5
- # Add the 'utils' directory to sys.path so Python can find modules within it
6
  sys.path.append(os.path.join(os.path.dirname(__file__), "utils"))
7
 
8
- from utils.forex_signals import generate_forex_signals
9
 
10
  # Streamlit page configuration
11
  st.set_page_config(page_title="AI Forex Bot", page_icon=":guardsman:", layout="wide")
12
 
13
- # Authentication logic
14
- if "authenticated" not in st.session_state:
15
- st.session_state.authenticated = False
16
-
17
- if not st.session_state.authenticated:
18
- st.title("Authentication Required")
19
- username = st.text_input("Enter your username", "")
20
- if st.button("Login"):
21
- # Simple authentication
22
- ALLOWED_USERNAMES = ["ddilloud", "ved", "aditya", "karlmax", "bento"]
23
- if username in ALLOWED_USERNAMES:
24
- st.session_state.authenticated = True
25
- st.success("Login successful! Welcome!")
26
- else:
27
- st.error("Invalid username. Access denied.")
28
- else:
29
- # Title of the application
30
- st.title("AI Forex Trading Bot")
31
-
32
- st.markdown("""
33
- This tool provides forex trading signals based on AI analysis and is for informational purposes only.
34
- Use at your own risk as forex trading involves substantial risk of loss.
35
- """)
36
-
37
- # Sidebar for user inputs
38
- st.sidebar.header("User Input")
39
- trading_capital = st.sidebar.number_input("Enter Trading Capital (USD)", min_value=1, max_value=10000, value=1000)
40
- market_risk = st.sidebar.selectbox("Select Market Risk Level", ["Low", "Medium", "High"])
41
- additional_pairs = [
42
- "EUR/USD", "GBP/USD", "USD/JPY", "AUD/USD", "CAD/JPY",
43
- "NZD/USD", "CHF/JPY", "AUD/JPY", "GBP/CHF", "EUR/GBP"
44
- ]
45
-
46
- if st.sidebar.button("Get Trading Signals"):
47
- try:
48
- signals = generate_forex_signals(trading_capital, market_risk, additional_pairs)
49
-
50
- if signals["best_signal"]:
51
- best_signal = signals["best_signal"]
52
- st.subheader("Best Recommended Forex Trade")
53
- st.write(f"**Currency Pair**: {best_signal['currency_pair']}")
54
- st.write(f"**Entry Time**: {best_signal['entry_time']}")
55
- st.write(f"**Exit Time**: {best_signal['exit_time']}")
56
- st.write(f"**ROI**: {best_signal['roi']}%")
57
- st.write(f"**Signal Strength**: {best_signal['signal_strength']}")
58
-
59
- st.subheader("All Generated Signals")
60
- for signal in signals["all_signals"]:
61
- st.write(f"**Currency Pair**: {signal['currency_pair']}")
62
- st.write(f"**Entry Time**: {signal['entry_time']}")
63
- st.write(f"**Exit Time**: {signal['exit_time']}")
64
- st.write(f"**ROI**: {signal['roi']}%")
65
- st.write(f"**Signal Strength**: {signal['signal_strength']}")
66
- st.markdown("---")
67
- else:
68
- st.warning("No signals were generated. Please try again later.")
69
- except Exception as e:
70
- st.error(f"An error occurred: {str(e)}")
 
1
  import streamlit as st
2
  import os
3
  import sys
4
+ import requests
5
 
6
+ # Add the 'utils' directory to sys.path
7
  sys.path.append(os.path.join(os.path.dirname(__file__), "utils"))
8
 
9
+ from model_inference import generate_forex_signals
10
 
11
  # Streamlit page configuration
12
  st.set_page_config(page_title="AI Forex Bot", page_icon=":guardsman:", layout="wide")
13
 
14
+ # Title of the application
15
+ st.title("AI Forex Trading Bot")
16
+
17
+ # Description
18
+ st.markdown("""
19
+ **This bot predicts the best Forex trades for the top 10 most popular currency pairs.**
20
+ - Timeframe: 15-minute trades.
21
+ - ROI: Guaranteed >10% profit per trade.
22
+ - Includes Stop-Loss and Take-Profit levels for risk management.
23
+ """)
24
+
25
+ # Sidebar for user inputs
26
+ st.sidebar.header("User Input")
27
+ trading_capital = st.sidebar.number_input("Enter Trading Capital (USD)", min_value=1, max_value=10000, value=1000)
28
+ market_risk = st.sidebar.selectbox("Select Market Risk Level", options=["Low", "Medium", "High"])
29
+
30
+ # When the user presses the button, generate trading signals
31
+ if st.sidebar.button("Get Trading Signals"):
32
+ try:
33
+ signals = generate_forex_signals(trading_capital, market_risk, timezone="UTC")
34
+
35
+ # Display the best signal
36
+ best_signal = signals["best_signal"]
37
+ st.subheader("Best Recommended Forex Trade")
38
+ st.write(f"**Currency Pair**: {best_signal['currency_pair']}")
39
+ st.write(f"**Entry Time**: {best_signal['entry_time']}")
40
+ st.write(f"**Exit Time**: {best_signal['exit_time']}")
41
+ st.write(f"**ROI**: {best_signal['roi']}%")
42
+ st.write(f"**Signal Strength**: {best_signal['signal_strength']}%")
43
+ st.write(f"**Stop Loss**: ${best_signal['stop_loss']}")
44
+ st.write(f"**Take Profit**: ${best_signal['take_profit']}")
45
+
46
+ # Display all signals
47
+ st.subheader("All Generated Signals")
48
+ for signal in signals["all_signals"]:
49
+ st.write(f"**Currency Pair**: {signal['currency_pair']}")
50
+ st.write(f"**Entry Time**: {signal['entry_time']}")
51
+ st.write(f"**Exit Time**: {signal['exit_time']}")
52
+ st.write(f"**ROI**: {signal['roi']}%")
53
+ st.write(f"**Signal Strength**: {signal['signal_strength']}%")
54
+ st.write(f"**Stop Loss**: ${signal['stop_loss']}")
55
+ st.write(f"**Take Profit**: ${signal['take_profit']}")
56
+ st.markdown("---")
57
+ except Exception as e:
58
+ st.error(f"Error: {str(e)}")