Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from binance.client import Client | |
| from binance_api.client import BinanceClient | |
| from indicators.sma import calculate_sma | |
| from indicators.bollinger_bands import calculate_bollinger_bands | |
| from signals.strategy import generate_signals | |
| from utils.plotting import plot_data_with_indicators_and_signals | |
| import pandas as pd | |
| # Initialize Streamlit app | |
| st.title('CryptoApp: Cryptocurrency Trading Signals') | |
| # User inputs | |
| symbol = st.text_input('Enter the cryptocurrency symbol (e.g., BTCUSDT):').upper() | |
| api_key = st.text_input('Enter your Binance API Key:') | |
| api_secret = st.text_input('Enter your Binance API Secret:', type="password") | |
| # Analyze button | |
| if st.button('Analyze'): | |
| if not symbol or not api_key or not api_secret: | |
| st.error('Please provide both the cryptocurrency symbol and your Binance API credentials.') | |
| else: | |
| # Initialize Binance Client | |
| try: | |
| client = BinanceClient(api_key, api_secret) | |
| # Fetch historical price data | |
| data = client.fetch_historical_prices(symbol=symbol, interval=Client.KLINE_INTERVAL_1HOUR, days=30) | |
| # Calculate indicators | |
| data = calculate_sma(data, 'close', 21) | |
| data = calculate_sma(data, 'close', 50) | |
| data = calculate_bollinger_bands(data) | |
| # Generate signals | |
| data = generate_signals(data) | |
| # Plotting | |
| st.write(f'Analysis and Signals for {symbol}') | |
| plot_data_with_indicators_and_signals(data) | |
| except Exception as e: | |
| st.error(f'Failed to fetch and analyze data for {symbol}. Error: {str(e)}') | |