Manuale di Bot Telegram Segnali Crypto

Configura e usa il bot Python consegnato per i comandi Telegram /start e /prices.

Per chi è: È pensato per chi sa eseguire comandi Python da terminale e vuole usare o studiare un bot Telegram essenziale. Prima di usarlo devi avere un bot Telegram, il suo token e un chat ID.

Tempo di configurazione: Primo avvio: durata variabile in base alla configurazione di Python e Telegram.

Cosa fa

  • Legge le variabili d’ambiente BOT_TOKEN e CHAT_ID e interrompe l’avvio se uno dei due valori non è configurato.
  • Crea un’applicazione python-telegram-bot e la avvia in polling con app.run_polling().
  • Registra il comando /start, che risponde con il messaggio di stato e con la watchlist fissa BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, ADAUSDT e DOTUSDT.
  • Registra il comando /prices, che richiede il ticker a 24 ore di ciascun simbolo della watchlist all’endpoint Binance /api/v3/ticker/24hr e risponde con ultimo prezzo e variazione percentuale.
  • Contiene get_klines, impostata per richiedere 50 candele con intervallo 1h, e calculate_rsi, che calcola un RSI a periodo 14 sui prezzi di chiusura forniti.
  • Contiene generate_signal, che classifica RSI e variazione di prezzo come FORTE BUY, BUY, FORTE SELL, SELL oppure HOLD secondo soglie fisse nel codice.

Cosa non fa

  • Non calcola MACD: nel codice Python non è presente alcun calcolo MACD, nonostante il nome del prodotto e alcune frasi del README.
  • Non usa CoinGecko: il codice effettua richieste agli endpoint REST pubblici di Binance definiti nella costante BINANCE_API.
  • Non avvia segnali automatici periodici nel flusso principale: main non chiama né pianifica send_signals.
  • Non esegue acquisti, vendite, ordini, collegamenti a wallet o operazioni su exchange.
  • Non salva uno storico, non offre dashboard e non include un pannello per modificare la watchlist.
  • Non include il file .env.example indicato dai README consegnati.

Requisiti

  • Python 3: Serve un’installazione di Python 3 eseguibile da terminale. Il file consegnato usa l’interprete python3 nell’intestazione e le istruzioni sotto usano un ambiente virtuale.
  • Bot Telegram e token: Devi creare un bot tramite @BotFather con la procedura standard di Telegram e conservare il token ottenuto. Il codice richiede il valore nella variabile BOT_TOKEN.
  • Chat ID Telegram: Devi conoscere un chat ID e inserirlo in CHAT_ID: il controllo iniziale lo richiede anche se il percorso principale con /start e /prices non invia messaggi diretti a quel valore.
  • Connessione Internet: Il polling del bot richiede Telegram. Il comando /prices richiede anche l’accesso agli endpoint pubblici Binance definiti nel codice. Verifica termini, disponibilità, limitazioni e listino degli eventuali servizi terzi presso i rispettivi fornitori.
  • Dipendenze Python: requirements.txt richiede python-telegram-bot==20.7, aiohttp==3.9.1 e python-dotenv>=1.0.0.
  • File .env creato manualmente: python-dotenv è incluso nelle dipendenze e il codice chiama load_dotenv(). Poiché .env.example non è stato consegnato, devi creare tu il file .env nella cartella da cui avvii lo script.

Installazione passo passo

  1. Estrai l’archivio. Scarica il file ZIP consegnato ed estrailo in una cartella di tua scelta. Il codice e le dipendenze da usare sono nella sottocartella original.
  2. Controlla i file effettivamente disponibili. Nella cartella estratta trovi CONTENTS.en.md, README.en.md e la cartella original. In original sono presenti README.md, requirements.txt e telegram-bot-crypto.py; .env.example non è presente e non deve essere cercato o copiato.
  3. Crea e attiva un ambiente virtuale. Dal terminale entra in original. I comandi seguenti sono per macOS o Linux e isolano le librerie di questo bot dalle altre installazioni Python.
  4. Installa le dipendenze consegnate. Con l’ambiente virtuale attivo, installa esattamente le dipendenze elencate nel file requirements.txt.
  5. Crea il bot Telegram. Segui la normale procedura Telegram con @BotFather per creare il tuo bot e ottenere il token. Non inserire il token in chat, immagini, repository pubblici o file condivisi.
  6. Recupera il tuo chat ID. Recupera un chat ID con una procedura Telegram standard, ad esempio quella indicata nel README tramite @userinfobot. Il valore è obbligatorio per superare il controllo di configurazione del codice.
  7. Crea il file .env mancante. Nella cartella original crea manualmente un file chiamato .env. Non usare valori reali negli esempi e non pubblicare questo file.
  8. Verifica la configurazione. Controlla che entrambe le righe siano presenti, senza lasciare i segnaposto predefiniti del codice. All’avvio, il programma interrompe l’esecuzione se BOT_TOKEN o CHAT_ID mancano o iniziano con YOUR_.
  9. Avvia il bot. Con l’ambiente virtuale attivo e dalla cartella original, avvia lo script. Dopo il controllo delle credenziali il codice registra i due handler e passa al polling Telegram. Mantieni il processo in esecuzione mentre vuoi usare il bot.
  10. Prova i comandi disponibili. Apri la chat con il tuo bot e invia prima /start, poi /prices. Il primo comando mostra la watchlist; il secondo tenta di recuperare e visualizzare il ticker a 24 ore per ogni simbolo. Non aspettarti messaggi automatici di segnale: il file principale non avvia quel ciclo.

Uso quotidiano

Mantieni attivo il processo

Esegui il comando di avvio con l’ambiente virtuale attivo. Se chiudi il terminale o termini il processo, il bot smette di ricevere aggiornamenti in polling.

Usa /start come controllo rapido

Invia /start nella chat del bot per confermare che il bot risponda e per visualizzare la watchlist fissa presente nel sorgente.

Richiedi i prezzi con /prices

Invia /prices quando vuoi che il bot interroghi i ticker a 24 ore Binance per tutti i simboli della watchlist e risponda nella chat da cui è arrivato il comando.

Interpreta correttamente il dato mostrato

Il messaggio di /prices usa lastPrice e priceChangePercent restituiti dal ticker a 24 ore. Non è un segnale automatico e non è una raccomandazione di investimento.

Riavvia dopo una modifica al sorgente

Se modifichi WATCHLIST o altre parti del file Python, salva una copia del file originale, ferma il processo e avvialo di nuovo per caricare il codice aggiornato.

Arresta quando non ti serve

Interrompi il processo nel terminale secondo la normale procedura del tuo sistema. Non esiste nel pacchetto una funzione di pianificazione o arresto remoto.

Casi pratici

Consultazione personale della watchlist

Vuoi interrogare da Telegram i prezzi e la variazione a 24 ore dei sei simboli già definiti, senza aprire o modificare direttamente il codice ogni volta.

  1. Configura BOT_TOKEN e CHAT_ID nel file .env creato manualmente.
  2. Avvia telegram-bot-crypto.py dall’ambiente virtuale attivo.
  3. Invia /start per verificare che il bot risponda e leggere la watchlist.
  4. Invia /prices nella chat del bot quando desideri richiedere i ticker.

Ottieni nella chat una risposta con ultimo prezzo e variazione percentuale a 24 ore per la watchlist definita nel file consegnato.

Studio del calcolo RSI presente nel sorgente

Stai imparando Python e vuoi esaminare come il pacchetto trasforma una serie di prezzi di chiusura in un valore RSI e in un’etichetta testuale.

  1. Apri original/telegram-bot-crypto.py in un editor di testo.
  2. Esamina get_klines e la conversione del quinto valore di ogni candela in prezzo di chiusura.
  3. Esamina calculate_rsi con periodo 14 e generate_signal con le relative soglie.
  4. Tieni presente che queste funzioni sono definite nel file ma non sono collegate a un’attività automatica da main.

Ottieni un esempio concreto da leggere e verificare, distinguendo le funzioni disponibili dal comportamento effettivamente avviato.

Risposta a comandi in una chat Telegram

Hai reso il tuo bot disponibile in una chat Telegram con la normale procedura della piattaforma e vuoi offrire i due comandi inclusi nel codice.

  1. Avvia il processo con credenziali valide e connessione Internet disponibile.
  2. Invia /start nella chat per visualizzare il messaggio di stato e i simboli monitorati.
  3. Invia /prices nella stessa chat per richiedere i ticker della watchlist.
  4. Comunica agli utenti che la risposta riporta dati di mercato e non esegue operazioni né fornisce consulenza.

La chat può ricevere le risposte ai due comandi registrati dal bot, nei limiti della disponibilità di Telegram e Binance.

Consigli

  • Conserva BOT_TOKEN solo nel tuo file .env o nelle variabili d’ambiente del tuo sistema e non inviarlo mai in una chat Telegram.
  • Escludi .env da backup pubblici e repository versionati; il token permette di controllare il bot associato.
  • Prova /start prima di /prices: separa un problema di configurazione Telegram da un problema nel recupero dei dati Binance.
  • Ricorda che la variazione mostrata da /prices è il campo priceChangePercent del ticker a 24 ore, non una variazione calcolata dal bot su un intervallo scelto da te.
  • La watchlist iniziale è fissa nel codice e usa simboli nel formato BTCUSDT; modifica il sorgente solo se sai gestire una lista Python e poi riavvia il processo.
  • Non basarti sul nome del prodotto o sul README per presumere che MACD o segnali pianificati siano attivi: controlla il comportamento reale del file principale consegnato.
  • Se studi calculate_rsi, nota che la funzione usa un periodo 14 e restituisce 50.0 se riceve meno di 15 prezzi; nel flusso principale non viene chiamata da /prices.
  • Mantieni requirements.txt insieme al progetto e attiva sempre il relativo ambiente virtuale prima di avviare lo script.
  • Verifica i termini d’uso, i limiti di richiesta e la disponibilità degli endpoint Telegram e Binance prima di un uso continuativo.
  • Tratta prezzi, variazioni e qualsiasi etichetta BUY o SELL presente nel codice come informazioni tecniche, non come consulenza finanziaria; le criptovalute comportano rischio di perdita.

Risoluzione dei problemi

All’avvio compare ERRORE DI CONFIGURAZIONE — il programma non puo' partire.

BOT_TOKEN, CHAT_ID o entrambi non sono presenti, sono vuoti oppure iniziano con YOUR_. Il controllo _check_config viene eseguito prima di creare l’applicazione Telegram. Crea o correggi .env nella cartella di avvio con entrambe le variabili, oppure impostale come variabili d’ambiente. Riavvia poi il comando python telegram-bot-crypto.py.

Il README dice di copiare .env.example, ma il file non esiste.

L’archivio consegnato non contiene .env.example, benché sia elencato in README.md e README.en.md. Crea manualmente un file .env nella cartella original con due righe: BOT_TOKEN e CHAT_ID. Non creare o copiare file di configurazione da fonti non attendibili.

Python segnala ModuleNotFoundError per telegram, aiohttp o dotenv.

Le dipendenze non sono installate nell’interprete usato per avviare il bot, oppure l’ambiente virtuale non è attivo. Entra nella cartella original, attiva .venv e ripeti python -m pip install -r requirements.txt prima di riavviare lo script.

Il bot non risponde a /start o /prices.

Il processo potrebbe non essere in esecuzione, il token può non essere valido, oppure il polling Telegram non può connettersi con le tue condizioni di rete. Controlla che il terminale con lo script sia ancora aperto, verifica il token nel tuo ambiente privato e consulta la configurazione del bot nella procedura standard Telegram. Non condividere il token durante i controlli.

Il comando /prices non restituisce dati o incontra un errore durante il recupero.

Il comando dipende dalla connessione Internet e dalla risposta degli endpoint pubblici Binance per ogni simbolo; il codice del comando non aggiunge una gestione personalizzata degli errori di rete. Verifica la connettività, la disponibilità del fornitore e i suoi termini o limiti di richiesta. Riprova più tardi senza aumentare artificialmente la frequenza delle richieste.

Non arrivano segnali automatici ogni ora.

La funzione send_signals contiene un ciclo con pausa di 3600 secondi, ma main non la chiama né crea un’attività asyncio per eseguirla. Considera il pacchetto consegnato come un bot a comandi. Non presumere che l’invio automatico sia attivo solo perché la funzione è presente nel file o menzionata nel README.

Cerco un indicatore MACD nei messaggi o nel codice.

Il nome e il README menzionano MACD, ma telegram-bot-crypto.py non implementa un calcolo MACD e nessun comando lo mostra. Non usare il pacchetto per ottenere MACD. Basa il tuo utilizzo solo su /start, /prices e sulle funzioni realmente presenti, oppure fai valutare separatamente eventuali modifiche al codice.

Ho impostato CHAT_ID ma non ricevo messaggi diretti automatici in quella chat.

CHAT_ID supera il controllo iniziale e compare nella funzione send_signals, ma quella funzione non viene avviata da main. I comandi registrati rispondono invece alla chat dell’aggiornamento Telegram ricevuto. Usa /start e /prices nella chat desiderata per verificare il comportamento effettivo. Non fare affidamento su CHAT_ID per un invio automatico con il codice consegnato.

Limiti da conoscere

  • Il comportamento avviato è limitato al polling e ai due comandi /start e /prices; non c’è un processo automatico di segnali nel main consegnato.
  • MACD non è implementato nel sorgente, anche se compare nel nome del prodotto e nel README.
  • La fonte dati effettiva nel codice è Binance, non CoinGecko; BINANCE_API e i simboli della watchlist sono costanti del sorgente.
  • Le etichette BUY e SELL sono soglie tecniche definite in una funzione non avviata e non costituiscono consulenza finanziaria, invito a operare o garanzia di risultato. Le criptovalute sono rischiose e puoi perdere capitale.
  • Il pacchetto non effettua trading, non gestisce wallet, non conserva dati e non include storico, dashboard, notifiche programmate o configurazione grafica.
  • Telegram, Binance e la rete sono servizi esterni: disponibilità, accesso, termini e limiti possono cambiare. Rispetta le regole e i limiti di richiesta dei fornitori.
  • Il token del bot e il chat ID sono dati da proteggere. Il pacchetto non contiene un file .env.example e non deve essere completato con segreti pubblicati da terzi.

Domande frequenti

Quali file sono davvero inclusi?

Sono inclusi CONTENTS.en.md, README.en.md, original/README.md, original/requirements.txt e original/telegram-bot-crypto.py. Non sono presenti PDF né .env.example.

Quali file consegnati sono in inglese e quali in italiano?

CONTENTS.en.md e README.en.md sono in inglese. original/README.md è in italiano, così come i messaggi visibili del file Python; requirements.txt è indipendente dalla lingua.

Devo usare .env.example?

No, perché non è stato consegnato. Crea manualmente .env nella cartella di lavoro e aggiungi BOT_TOKEN e CHAT_ID con i tuoi valori privati.

Il bot invia segnali automatici?

Non con il flusso principale consegnato. send_signals è definita ma non viene chiamata da main, quindi il ciclo orario e l’invio diretto non partono.

Il bot calcola MACD?

No. Il sorgente implementa calculate_rsi e generate_signal, ma non contiene un calcolo MACD.

Quali mercati o simboli usa?

La costante WATCHLIST contiene BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, ADAUSDT e DOTUSDT. /prices richiede per ciascuno il ticker a 24 ore Binance.

Mi serve una chiave API Binance?

Il codice consegnato non legge né richiede una chiave API Binance. Usa URL pubblici incorporati nel sorgente; devi comunque verificare termini, disponibilità e limiti del fornitore.

Posso modificare la watchlist?

Sì, solo modificando la costante WATCHLIST in original/telegram-bot-crypto.py e riavviando il bot. Questa non è una configurazione disponibile tramite .env.