Untitled
unknown
python
2 years ago
2.2 kB
2
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...