File size: 2,130 Bytes
3f96245 adbc0ad 3f96245 dd448e5 3f96245 7d80d52 3f96245 adbc0ad b5416e9 76337a5 7d0ce76 235c728 7d80d52 adbc0ad 3f96245 dd448e5 3f96245 dd448e5 4f7b738 dd448e5 4f7b738 d7fdf9f 4f7b738 adbc0ad 4f7b738 adbc0ad 5a94d26 cc21455 5a94d26 adbc0ad dd448e5 adbc0ad 3f96245 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import streamlit as st
import requests
from Pandas_Market_Predictor import Pandas_Market_Predictor
import pandas as pd
# Hard-coded API key for demonstration purposes
API_KEY = "QR8F9B7T6R2SWTAT"
def fetch_alpha_vantage_data(api_key):
url = f'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&interval=5min&apikey={api_key}'
response = requests.get(url)
alpha_vantage_data = response.json()
return alpha_vantage_data
def calculate_indicators(data):
data = data.apply(pd.to_numeric, errors='coerce')
data['Doji'] = abs(data['Close'] - data['open']) <= 0.01 * (data['high'] - data['low'])
data['Inside'] = (data['high'] < data['high'].shift(1)) & (data['low'] > data['low'].shift(1))
data['MA5'] = data['Close'].rolling(window=5).mean()
data['MA20'] = data['Close'].rolling(window=20).mean()
data['26EMA'] = data['Close'].ewm(span=26).mean()
data['12EMA'] = data['Close'].ewm(span=12).mean()
data['MACD'] = data['12EMA'] - data['26EMA']
return data
def main():
st.title("Stock Trend Predictor")
api_key = API_KEY
alpha_vantage_data = fetch_alpha_vantage_data(api_key)
alpha_vantage_time_series = alpha_vantage_data.get('Time Series (5min)', {})
df = pd.DataFrame(alpha_vantage_time_series).T
df.index = pd.to_datetime(df.index)
df = df.dropna(axis=0)
df = df.rename(columns={'1. open': 'open', '2. high': 'high', '3. low': 'low', '4. close': 'Close', '5. volume': 'volume'})
df = calculate_indicators(df)
my_market_predictor = Pandas_Market_Predictor(df)
# Remove Ichimoku Cloud columns
ichimoku_columns = ["tenkan_sen", "kijun_sen", "senkou_span_a", "senkou_span_b"]
df = df.drop(columns=ichimoku_columns)
indicators = ["Doji", "Inside", "MA5", "MA20", "MACD"]
trend = my_market_predictor.Trend_Detection(indicators, 10)
st.subheader("Predicted Trend:")
st.write("Buy Trend :", trend['BUY'])
st.write("Sell Trend :", trend['SELL'])
st.write(f"Standard Deviation Percentage: {my_market_predictor.PERCENT_STD}%")
del df
if __name__ == "__main__":
main() |