Untitled
unknown
python
a year ago
2.2 kB
1
Indexable
from pip import python-telegram-bot from telegram.ext import Updater, CommandHandler import yfinance as yf from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import numpy as np # Funzione per il comando /start def start(update, context): update.message.reply_text('Ciao! Benvenuto nel tuo bot di previsione del Bitcoin. Usa /predict per ottenere una previsione.') # Funzione per il comando /predict def predict(update, context): # Scarica i dati storici del prezzo del Bitcoin bitcoin_data = yf.download('BTC-USD', start='2020-01-01', end='2024-04-01', progress=False) # Prepara i dati per l'analisi bitcoin_data['NextDayPrice'] = bitcoin_data['Close'].shift(-1) # Prezzo del giorno successivo bitcoin_data.dropna(inplace=True) # Rimuovi righe con valori mancanti X = bitcoin_data[['Close']] # Variabile indipendente (prezzo di chiusura) y = bitcoin_data['NextDayPrice'] # Variabile dipendente (prezzo del giorno successivo) # Dividi i dati in set di addestramento e test X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Addestra il modello di regressione lineare model = LinearRegression() model.fit(X_train, y_train) # Fai una previsione per il prezzo del Bitcoin di domani last_price = bitcoin_data['Close'].iloc[-1] tomorrow_price = model.predict(np.array(last_price).reshape(-1, 1))[0] # Invia la previsione all'utente prediction_message = f"Previsione per il prezzo del Bitcoin di domani: ${tomorrow_price:.2f}" update.message.reply_text(prediction_message) def main(): # Token del tuo bot Telegram token = 'INSERISCI_IL_TUO_TOKEN_QUI' # Crea un updater per il tuo bot updater = Updater(token, use_context=True) # Ottieni il dispatcher per registrare i gestori dei comandi dp = updater.dispatcher # Registra i gestori dei comandi dp.add_handler(CommandHandler("start", start)) dp.add_handler(CommandHandler("predict", predict)) # Avvia il bot updater.start_polling() # Mantieni il bot in esecuzione finché non viene interrotto manualmente updater.idle() if __name__ == '__main__': main()
Editor is loading...