Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Per costruire un bot di trading algoritmico in Python, separa cinque passaggi: acquisizione e controllo dei dati, calcolo del segnale, regole di portafoglio, valutazione storica e paper trading. Qui trovi una traccia concreta per una strategia momentum su dati mensili: il segnale è esplicito, ma non promette rendimenti e non basta da solo a stabilire quantità o modalità d’esecuzione.

Definisci mercato, strumenti e orario della decisione

Prima di scrivere il segnale, stabilisci quali strumenti il bot può negoziare, su quale mercato, con quale frequenza e in quale momento prenderà le decisioni. Un esempio su azioni statunitensi con dati mensili è diverso da uno su ETF intraday: cambiano calendario, sessioni, granularità e trattamento dei prezzi. Limita l’universo agli strumenti che vuoi davvero includere e documenta come viene scelto e aggiornato nel tempo.

Per collegare un esempio azionario statunitense a dati storici o in tempo reale e, più avanti, a ordini simulati, Alpaca documenta il proprio SDK Python alpaca-py e l’API dati. Il progetto ufficiale indica client per dati storici e streaming e la conversione dei risultati in DataFrame pandas; i dettagli di account e accesso vanno verificati nella documentazione del servizio, perché possono cambiare. Tieni comunque il livello dati dietro funzioni o moduli separati: il calcolo del segnale dovrebbe poter lavorare su un DataFrame senza dipendere dal broker. Guida Alpaca all’API Market Data e repository ufficiale di alpaca-py.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Controlli da fare sui dati

  • Usa timestamp con fuso orario esplicito e verifica il calendario delle sessioni del mercato.
  • Controlla righe duplicate, valori mancanti, ordinamento temporale e intervalli irregolari prima di calcolare rendimenti o indicatori.
  • Per rendimenti su più periodi, scegli prezzi aggiustati in modo coerente con l’endpoint e con il trattamento di split e dividendi. Registra la scelta: prezzi non comparabili possono alterare il segnale.
  • Verifica origine, copertura e granularità dei dati effettivamente disponibili per il tuo account. In particolare, la documentazione Alpaca specifica che gli account Paper Only hanno accesso ai soli dati IEX: non presumere che ciò equivalga a una copertura consolidata dell’intero mercato. Documentazione Alpaca sul paper trading.

Scegli una definizione precisa di momentum

“Momentum” non specifica da solo né il calcolo né la strategia. Un momentum time-series valuta il rendimento passato dello stesso strumento; uno cross-sectional confronta più strumenti e li ordina in base al rendimento relativo. Devi inoltre dichiarare universo, finestra, frequenza, ingresso, uscita e dimensionamento: cambiare anche uno solo di questi elementi produce regole diverse.

Approccio Domanda a cui risponde Regola da specificare
Time-series Lo strumento ha avuto rendimento positivo o negativo nella finestra scelta? Formula e soglia; per esempio, mantenere una posizione lunga quando il rendimento passato supera zero.
Cross-sectional Quali strumenti hanno avuto rendimento maggiore rispetto agli altri nell’universo? Universo disponibile a ogni data, metodo di classificazione e strumenti selezionati o esclusi.

Un riferimento documentato per il momentum fattoriale è la metodologia Mom della Kenneth R. French Data Library: usa rendimenti precedenti dal mese 12 al mese 2 per formare sei portafogli value-weighted, all’intersezione di due gruppi per dimensione e tre gruppi per rendimento passato. La descrizione mensile indica titoli NYSE, AMEX e NASDAQ con dati di rendimento precedente. È una definizione di fattore e una convenzione utile da capire, non una ricetta universale né un’indicazione che quella finestra sia ottimale per il tuo bot. Dettaglio del fattore Momentum mensile (Mom).

Un segnale mensile prior 2–12

Per rendere l’esempio verificabile, supponi di avere una serie mensile di prezzi di chiusura aggiustati, ordinata per mese, senza mesi mancanti o duplicati. Il rendimento prior 2–12 al mese t è prezzo[t−2] / prezzo[t−12] − 1: l’ultimo mese viene escluso e si confrontano i prezzi di due mesi e dodici mesi prima. Il calcolo qui sotto non scarica dati né invia ordini; riceve una serie già preparata.

import pandas as pd

def momentum_prior_2_12(month_end_adjusted_close: pd.DataFrame) -> pd.DataFrame:
    """Rendimento dal mese t-12 al mese t-2, calcolato a ogni fine mese."""
    prices = month_end_adjusted_close.sort_index()
    if not prices.index.is_unique:
        raise ValueError("L'indice mensile contiene duplicati")
    return prices.shift(2).div(prices.shift(12)).sub(1)

I primi dodici valori saranno vuoti perché non c’è ancora abbastanza storico. La funzione presume che ogni riga corrisponda a un mese consecutivo e che i prezzi siano stati preparati in modo coerente; ordinarli non risolve mesi assenti o dati errati. Se vuoi un segnale diverso — per esempio un lookback giornaliero o una classifica cross-sectional — cambia la definizione e documentala invece di chiamare genericamente “momentum” qualsiasi risultato.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Trasforma il segnale in posizioni ed esecuzioni separate

Un segnale non stabilisce quanti titoli acquistare, quale esposizione massima accettare o quale ordine inviare. Mantieni distinte queste decisioni: feature e segnale, condizioni d’ingresso e d’uscita, dimensionamento, invio dell’ordine e riconciliazione dello stato restituito dal broker. Per una prima prova su un solo strumento puoi definire una regola didattica lunga o in liquidità: se il rendimento prior 2–12 è positivo, la posizione obiettivo è 1; altrimenti è 0. Questa regola non include short selling, limiti di rischio o gestione di più strumenti.

Se il segnale è calcolato alla chiusura del mese t, non attribuirgli un’esecuzione retroattiva allo stesso prezzo di chiusura senza una giustificazione e un modello coerente. Una semplice simulazione mensile può applicare la posizione decisa alla chiusura di t ai rendimenti del mese successivo; nella pratica, prezzo e momento dell’esecuzione dipendono dal processo effettivo e dalle ipotesi di fill. Nel codice seguente le righe sono fine mese e la colonna contiene la posizione obiettivo definita a quella data:

momentum = momentum_prior_2_12(month_end_adjusted_close)
position_at_month_end = momentum.gt(0).astype(float)
monthly_returns = month_end_adjusted_close.pct_change()

# La posizione osservata alla fine del mese precedente è applicata
# al rendimento del mese corrente; non ci sono costi o slippage.
strategy_returns = position_at_month_end.shift(1) * monthly_returns

È uno scheletro per controllare l’allineamento temporale, non un backtest completo: non modella ordini, fill, costi, dati mancanti, più posizioni o vincoli di portafoglio. Prima di interpretare un risultato, verifica manualmente almeno alcune date, assicurandoti che il segnale usi solo prezzi già osservati e che la posizione sia applicata soltanto dopo la decisione.

Rendi tracciabile ogni decisione

Registra, con timestamp, input disponibili, segnale calcolato, posizione obiettivo, ordine richiesto, risposta dell’API e stato simulato. La riconciliazione è importante: una decisione teorica non equivale a un ordine accettato, né a un ordine eseguito. Un articolo accademico di Zhang e coautori descrive una pipeline che separa API dei dati, calcolo di indicatori e segnali, condizioni di trading e strumenti di monitoraggio; è un modello concettuale, non una prova che una strategia sia redditizia o una specifica aggiornata di broker. Studio sulla pipeline di data science per il trading algoritmico.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Valuta il backtest senza confondere passato e futuro

Il backtest è interpretabile solo se le sue ipotesi sono esplicite. Scrivi quale universo era investibile a ogni data, quale periodo e granularità hai usato, quando si decide e a quale prezzo ipotizzi l’esecuzione, ogni quanto ribilanci e quali componenti di costo includi. Un universo costruito soltanto con i titoli ancora esistenti oggi può introdurre survivorship bias; usare dati successivi alla decisione o eseguire al prezzo che ha generato il segnale può introdurre leakage temporale.

Una procedura di valutazione

  1. Fissa universo e convenzioni. Definisci l’elenco di strumenti disponibile nel tempo, la fonte dei prezzi, la gestione di split e dividendi e il calendario.
  2. Allinea informazione ed esecuzione. Calcola il segnale solo con dati disponibili alla decisione e applicalo a un momento successivo plausibile. Dichiara prezzo, ritardo e modello di fill.
  3. Separa sviluppo e valutazione. Non scegliere la finestra e le soglie sullo stesso periodo che presenti come prova fuori campione. Una valutazione walk-forward può essere utile quando riflette la domanda che vuoi porre, ma non elimina gli errori di modello.
  4. Includi le ipotesi di costo. Considera commissioni e altri costi pertinenti, spread, turnover e slippage secondo il livello di dettaglio dei dati. Se non li modelli, dichiara chiaramente che il risultato non li include.
  5. Confronta e descrivi il profilo. Usa un benchmark semplice coerente con mercato e periodo e osserva, oltre al rendimento, drawdown, volatilità, turnover e costi. Nessuna singola metrica descrive da sola il rischio.

Un risultato storico dipende da dati, selezione dell’universo e ipotesi d’esecuzione. La metodologia French definisce come costruire un fattore, non predice il rendimento futuro della tua implementazione; non esiste nel materiale citato una statistica generale trasferibile a questo bot. Il tutorial Alpaca del 4 giugno 2026 presenta esempi ipotetici a scopo educativo e non costituisce raccomandazione o endorsement di una strategia. Tutorial Alpaca sulla costruzione di un bot azionario.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Usa il paper trading per provare il flusso software

Nel paper trading colleghi il tuo codice a un ambiente di simulazione invece di inviare gli ordini a un mercato reale. È utile per verificare autenticazione, formato delle richieste, gestione delle risposte, registrazione e riconciliazione dello stato. La documentazione Alpaca descrive ordini simulati abbinati ai prezzi di mercato secondo le ipotesi del sistema, ma avverte che paper e live non sono equivalenti. In particolare, elenca fattori che non sono simulati o non sono pienamente riflessi, tra cui market impact, information leakage, slippage dovuto alla latenza, posizione nella coda degli ordini limit, price improvement, commissioni regolamentari e dividendi. Alpaca riassume il divario così: “When you run your algorithm with the live market, there are many things that can happen that you may not see in backtesting.” Documentazione ufficiale Alpaca sul paper trading.

Passaggio operativo prudente

  1. Prepara un account e credenziali paper; tienili separati dalle eventuali credenziali live e non inserirli nel codice condiviso o nei log.
  2. Collega il bot all’ambiente simulato usando le istruzioni correnti del servizio e verifica ogni richiesta con un ordine di prova coerente con le regole che vuoi controllare.
  3. Controlla che i log mostrino in modo concorde decisione, ordine richiesto, risposta, stato dell’ordine e posizione risultante; gestisci esplicitamente errori e stati non conclusivi.
  4. Prova scenari diversi, inclusi dati mancanti, rifiuti, ordini non eseguiti e interruzioni. Non trattare un test senza errori come prova di qualità dei fill o di redditività.

Le modalità di accesso ai dati e le condizioni del servizio possono variare con account e mercato: verifica la documentazione aggiornata prima di configurare il collegamento. Un periodo di paper trading verifica il processo software in simulazione; non certifica che la stessa logica sarebbe eseguibile allo stesso prezzo o profittevole con denaro reale.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.