Geek7 commited on
Commit
420653d
·
verified ·
1 Parent(s): b2a2e7e

Update app.py

Browse files

import streamlit as st
from thronetrader import StrategicSignals

def main():
st.title("Strategic Trading Signals")

# Input for stock symbol
symbol = st.text_input("Enter stock symbol (e.g., AAPL):", "AAPL")

# Display strategic trading signals
strategic_signals = StrategicSignals(symbol=symbol)

st.subheader("Bollinger Bands Signals:")
bollinger_bands_signals = strategic_signals.get_bollinger_bands_signals()
display_signals(bollinger_bands_signals)

st.subheader("Breakout Signals:")
breakout_signals = strategic_signals.get_breakout_signals()
display_signals(breakout_signals)

st.subheader("Crossover Signals:")
crossover_signals = strategic_signals.get_crossover_signals()
display_signals(crossover_signals)

st.subheader("MACD Signals:")
macd_signals = strategic_signals.get_macd_signals()
display_signals(macd_signals)

st.subheader("RSI Signals:")
rsi_signals = strategic_signals.get_rsi_signals()
display_signals(rsi_signals)

def display_signals(signals):
for signal in signals:
if isinstance(signal, dict):
st.write(f"Date: {signal.get('date', 'N/A')}")
st.write(f"Signal: {signal.get('signal', 'N/A')}")
else:
st.write("Invalid signal format.")

if __name__ == "__main__":
main()

Files changed (1) hide show
  1. app.py +0 -81
app.py CHANGED
@@ -1,81 +0,0 @@
1
- import streamlit as st
2
- import requests
3
- from thronetrader import StrategicSignals
4
- from thronetrader.helper.squire import classify # Import your classification method
5
- import pandas as pd
6
-
7
- def main():
8
- st.title("Strategic Trading Signals")
9
-
10
- # Input for stock symbol
11
- symbol = st.text_input("Enter stock symbol (e.g., AAPL):", "AAPL")
12
-
13
- # Fetch Alpha Vantage data
14
- alpha_vantage_data = fetch_alpha_vantage_data(symbol)
15
-
16
- # Extract relevant data from Alpha Vantage response
17
- alpha_vantage_time_series = alpha_vantage_data.get('Time Series (5min)', {})
18
- df = pd.DataFrame(alpha_vantage_time_series).T
19
- df.index = pd.to_datetime(df.index)
20
- df = df.dropna(axis=0)
21
-
22
- # Rename columns
23
- df = df.rename(columns={'1. open': 'open', '2. high': 'high', '3. low': 'low', '4. close': 'Close', '5. volume': 'volume'})
24
-
25
- # Calculate indicators
26
- df = calculate_indicators(df)
27
-
28
- # Display strategic trading signals
29
- strategic_signals = StrategicSignals(df)
30
-
31
- st.subheader("Bollinger Bands Signals:")
32
- bollinger_bands_signals = strategic_signals.get_bollinger_bands_signals()
33
- display_signals(bollinger_bands_signals)
34
-
35
- st.subheader("Breakout Signals:")
36
- breakout_signals = strategic_signals.get_breakout_signals()
37
- display_signals(breakout_signals)
38
-
39
- st.subheader("Crossover Signals:")
40
- crossover_signals = strategic_signals.get_crossover_signals()
41
- display_signals(crossover_signals)
42
-
43
- st.subheader("MACD Signals:")
44
- macd_signals = strategic_signals.get_macd_signals()
45
- display_signals(macd_signals)
46
-
47
- st.subheader("RSI Signals:")
48
- rsi_signals = strategic_signals.get_rsi_signals()
49
- display_signals(rsi_signals)
50
-
51
- # Example of using your classify method
52
- classification_result = classify(df, logger) # Pass your DataFrame and logger
53
- st.subheader("Classification Result:")
54
- st.write(classification_result)
55
-
56
- def fetch_alpha_vantage_data(symbol):
57
- api_key = "QR8F9B7T6R2SWTAT"
58
- url = f'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval=5min&apikey={api_key}'
59
- response = requests.get(url)
60
- alpha_vantage_data = response.json()
61
- return alpha_vantage_data
62
-
63
- def calculate_indicators(data):
64
- # Convert all columns to numeric
65
- data = data.apply(pd.to_numeric, errors='coerce')
66
-
67
- # Example: Simple condition for doji and inside
68
- data['Doji'] = abs(data['Close'] - data['open']) <= 0.01 * (data['high'] - data['low'])
69
- data['Inside'] = (data['high'] < data['high'].shift(1)) & (data['low'] > data['low'].shift(1))
70
- return data
71
-
72
- def display_signals(signals):
73
- for signal in signals:
74
- if isinstance(signal, dict):
75
- st.write(f"Date: {signal.get('date', 'N/A')}")
76
- st.write(f"Signal: {signal.get('signal', 'N/A')}")
77
- else:
78
- st.write("Invalid signal format.")
79
-
80
- if __name__ == "__main__":
81
- main()