Stop-Loss e Take-Profit
Uscite automatiche lato client per proteggere le posizioni
I prediction market non offrono un ordine stop nativo. Il CLOB di Polymarket e Kalshi consentono entrambi di piazzare ordini limit e market, ma nessuno dei due chiude automaticamente una posizione quando il prezzo si muove contro di te. Se il tuo contratto YES scende da 0.60 a 0.20 mentre dormi, nessuno lo sta tenendo d'occhio tranne te. Il layer Stop-Loss e Take-Profit di Predite colma questa lacuna con regole di uscita sintetiche, lato client, che monitorano le tue posizioni aperte e inviano un ordine di chiusura quando il tuo trigger viene raggiunto.
Funziona sia sulle posizioni in paper trading sia sulle posizioni live del bot, ed è costruito appositamente per proteggerti dalla cosa che fa più male nei prediction market a bassa liquidità: il gap risk.
Cosa fa questa funzionalità
Un ordine stop-loss è una regola collegata a una singola posizione aperta. Definisci un prezzo (o una variazione percentuale rispetto all'ingresso) e Predite monitora il mercato fino a quando quel livello viene toccato. Quando ciò accade, la posizione viene chiusa automaticamente e registrata.
Predite supporta tre tipi di trigger:
- •Stop-loss — chiude la posizione quando il prezzo del lato che detieni scende fino al tuo trigger o al di sotto di esso. Questo limita il tuo rischio di ribasso.
- •Take-profit — chiude la posizione quando il prezzo del lato che detieni sale fino al tuo trigger o al di sopra di esso. Questo blocca i guadagni così che un'operazione vincente non ritorni fino al punto di pareggio.
- •Time-stop — chiude la posizione a un timestamp fisso indipendentemente dal prezzo. Utile per operazioni event-driven in cui vuoi esposizione solo durante una finestra nota (la pubblicazione di una trimestrale, un dibattito, una decisione della Fed) e vuoi uscirne dopo, qualunque cosa accada.
Ogni ordine è side-aware, ovvero consapevole del lato. Predite sa se sei long YES o long NO e valuta il trigger rispetto alla gamba corretta. Polymarket quota YES e NO come una coppia complementare (prezzo NO = 1 − prezzo YES), quindi se detieni NO a 0.30 e imposti uno stop a 0.20, Predite traccia la gamba NO (1 − yesPrice) e si attiva quando il *tuo* prezzo effettivo raggiunge 0.20 — non quando lo fa la quotazione YES. Ragioni sempre in termini del contratto che possiedi realmente.
Perché è importante: il gap risk nei mercati sottili
La maggior parte dei prediction market è sottile. Un mercato che scambia poche migliaia di dollari al giorno può avere uno spread ampio e un book poco profondo. Quando esce una notizia, il book degli ordini non scivola in modo fluido da 0.55 a 0.45 — fa un gap. Il miglior bid svanisce, e il bid in attesa successivo potrebbe essere 15 centesimi più in basso. Quando te ne accorgi, hai già superato il livello a cui volevi uscire.
Uno stop-loss non ti farà eseguire magicamente al tuo trigger esatto in un mercato che fa gap — nessuno stop su qualsiasi venue può farlo. Ciò che fa è garantire che, nel momento in cui Predite osserva il prezzo al tuo livello o oltre, invii una chiusura invece di aspettare che tu ti svegli e reagisca. In pratica è la differenza tra uscire vicino al tuo piano e uscire a qualunque livello resti dopo una cascata. Per le operazioni event-driven, il time-stop è spesso lo strumento più pulito: non si cura di una candela momentanea, rimuove semplicemente l'esposizione una volta che la finestra della tua tesi si è chiusa.
È anche per questo che trattiamo il take-profit come un trigger di prima classe. Nei mercati sottili una posizione può impennarsi su un singolo ordine di grandi dimensioni per poi tornare alla media nel giro di minuti. Un take-profit ti permette di raccogliere quell'impennata invece di guardarla svanire.
Come funziona il monitoraggio: lato client + cron
Predite monitora le tue uscite su due layer, e comprenderli entrambi ti dice esattamente su cosa fare affidamento.
Layer 1 — Lato client (browser)
Mentre hai la dashboard aperta, la vista Positions interroga i prezzi live e valuta i tuoi trigger attivi nel browser in tempo quasi reale. Vedrai la distanza dal trigger aggiornarsi continuamente e riceverai un toast istantaneo in-app nel momento in cui un livello viene toccato. Questo layer è reattivo ed eccellente mentre stai facendo trading attivamente, ma funziona solo quando una scheda è aperta.
Layer 2 — Cron lato server (il layer durevole)
Il layer che ti protegge davvero quando sei lontano è il cron lato server. Un job pianificato (/api/cron/check-stop-losses) viene eseguito ogni 2 minuti, 24 ore su 24, 7 giorni su 7, indipendentemente da qualsiasi browser. A ogni esecuzione:
- Carica ogni ordine con
status = 'active'. - Li raggruppa per mercato e recupera i prezzi correnti dalla Polymarket Gamma API in batch (così 40 ordini sullo stesso mercato costano una sola ricerca di prezzo, non 40).
- Valuta ogni trigger rispetto al prezzo live (oppure, per i time-stop, rispetto all'orologio).
- Per ogni ordine che si attiva, rivendica atomicamente l'ordine (lo porta a
triggeredsolo se è ancoraactive), quindi invia la chiusura.
Poiché il cron è la fonte di verità, non hai bisogno di tenere una scheda aperta perché i tuoi stop funzionino. Il layer lato client è una comodità per un feedback istantaneo; il cron è la garanzia.
La cadenza di 2 minuti è la risoluzione pratica del sistema. Gli stop vengono valutati su un intervallo di polling, non tick per tick, quindi in un gap violento la tua uscita reale può essere un paio di minuti e diversi centesimi oltre il tuo trigger. Imposta i livelli tenendo presente questo margine, anziché piazzare uno stop un centesimo sotto il prezzo corrente.
Comportamento in paper vs live
Le stesse regole si applicano a entrambe le modalità, ma ciò che accade a un trigger è diverso.
Posizioni in paper trading
Per una posizione in paper trading, un'uscita attivata chiude la posizione all'interno del simulatore di Predite. Il cron segna la posizione come chiusa al prezzo di uscita osservato, calcola il P&L realizzato a partire dal tuo ingresso, dal numero di share e dalla direzione, e lo scrive nella tua cronologia paper. Niente tocca un venue reale. Questo è il posto ideale per fare pratica con la tua disciplina di uscita — vedere come uno stop al 20% si sarebbe comportato nell'arco di una settimana di operazioni prima di rischiare capitale. Lo stop-loss in paper trading è incluso a partire dal piano Starter in su.
Posizioni live (bot)
Per una posizione live, un'uscita attivata invia un ordine di chiusura reale sul CLOB di Polymarket tramite il tuo wallet collegato, gestito dal motore di esecuzione del bot al suo passaggio successivo. L'esecuzione è un'azione di mercato reale soggetta alla liquidità reale e allo spread, e il tuo P&L live e il tuo trade journal si aggiornano di conseguenza.
Il trading live richiede il piano Bot ($99/mese). Le uscite live passano attraverso lo stesso percorso di esecuzione del resto della tua automazione, inclusa l'invio gasless tramite il Builder Program dove disponibile. Se una chiusura live fallisce (errore di rete, ordine rifiutato, posizione già chiusa manualmente), l'ordine viene segnato come failed con un motivo invece di essere ritentato silenziosamente, e ricevi una notifica così da poter agire.
> Riepilogo dei piani: Stop-loss e take-profit in paper trading — Starter, Pro, Bot. Stop-loss e take-profit live su posizioni reali — solo Bot.
Due modi per impostare le uscite
Ci sono due punti di accesso complementari, a seconda che tu faccia trading manuale o con un bot.
A. Ordini per singola posizione (manuale)
Collega un ordine esplicito a una singola posizione aperta dal pannello Positions. Scegli il tipo di trigger e il prezzo (un valore compreso tra 0 e 1, in linea con il modo in cui il mercato quota). Questo è il metodo più preciso — stai indicando un livello esatto.
Per aggiungere uno stop per singola posizione:
- Apri Dashboard → Positions (paper o live) e trova la posizione aperta.
- Clicca Add exit su quella riga.
- Scegli Stop-loss, Take-profit o Time-stop.
- Per stop-loss/take-profit, inserisci il prezzo di trigger per il lato che detieni (es. 0.20). Per un time-stop, scegli l'orario di scadenza.
- Conferma. L'ordine compare come
activecon una lettura in tempo reale della distanza dal trigger.
Puoi sovrapporre uno stop-loss e un take-profit sulla stessa posizione per creare un bracket — esci da un lato o dall'altro, a seconda di quale si verifica per primo.
B. Default percentuali (bot)
Quando crei o modifichi un bot, imposti `stop_loss_pct` e `take_profit_pct` nella configurazione della strategia. Si tratta di variazioni percentuali misurate dal prezzo di ingresso di ciascuna posizione, applicate automaticamente a ogni posizione che il bot apre — così non devi piazzare manualmente uno stop per ogni operazione. Il motore del bot controlla queste condizioni di uscita a ogni esecuzione come parte di execute-bots, e chiude qualsiasi posizione il cui P&L superi la soglia (motivo di uscita registrato come stop_loss o take_profit).
Se non li imposti, i bot usano default sensati: stop-loss del 30% e take-profit del 50%. Sono punti di partenza, non raccomandazioni — affinali per ogni strategia e validali con il [Backtesting](/docs/backtesting) prima di andare live.
I due sistemi coesistono. Le regole percentuali di un bot coprono automaticamente l'intero portafoglio; un ordine per singola posizione ti permette di sovrascrivere o aggiungere un livello più stretto, impostato a mano, su una specifica operazione a cui tieni.
Passo dopo passo: la tua prima operazione protetta
- Apri una posizione — in paper dall'EV Scanner, oppure live tramite un bot.
- Vai su Positions e clicca Add exit su quella posizione.
- Imposta uno stop-loss a una distanza sensata sotto il tuo ingresso (lasciagli spazio per lo spread e la cadenza di 2 minuti).
- Facoltativamente, aggiungi un take-profit sopra l'ingresso per bloccare i guadagni.
- Conferma. Osserva la distanza dal trigger in tempo reale; ora il cron protegge la posizione 24 ore su 24.
- Quando un trigger si attiva, ricevi una notifica e la posizione risulta chiusa con il P&L realizzato.
Consigli e insidie
- •Non impostare gli stop dentro lo spread. In un mercato sottile con uno spread 0.55/0.62, uno stop a 0.60 potrebbe attivarsi sul normale rumore delle quotazioni. Piazza i livelli al di fuori dello spread e della risoluzione di 2 minuti.
- •Attenzione al lato. Imposta sempre il trigger in termini della gamba che detieni. Se sei long NO, il tuo stop è sul prezzo NO, e Predite gestisce per te la conversione YES↔NO.
- •Gli stop non sono esecuzioni garantite. In un gap la tua uscita reale può essere peggiore del trigger. Dimensiona le posizioni assumendo che lo stop sia una rete di sicurezza, non un pavimento preciso.
- •I trigger sono idempotenti. Un ordine attivato viene rivendicato atomicamente prima che la chiusura venga eseguita, così esecuzioni cron sovrapposte non possono chiudere due volte una posizione.
- •L'annullamento è un soft-cancel. Rimuovere un ordine lo imposta a
cancellede lo mantiene nella cronologia per finalità di audit — il tuo record triggered/cancelled resta intatto per il [Trade Journal](/docs/trade-journal). - •Chiudere manualmente una posizione lascia i suoi ordini orfani; il cron salta una posizione già chiusa e non genera errori, ma fai ordine tra gli ordini attivi per mantenere il pannello pulito.
- •Un time-stop ignora il prezzo — si attiva esclusivamente in base all'orologio. Abbinalo a uno stop-loss quando vuoi sia un pavimento di prezzo sia un orario di uscita rigido.
Come si collega al resto di Predite
Lo stop-loss si colloca al centro del tuo flusso di lavoro. Usa l'[EV Scanner](/docs/ev-scanner) e l'[AI Probability](/docs/ai-probability) per trovare un edge, il [Kelly Calculator](/docs/kelly-calculator) per dimensionarlo, e uno stop-loss per limitare il rischio di ribasso sull'operazione che hai appena dimensionato. Per ingressi di grandi dimensioni, combina gli stop con i [TWAP Orders](/docs/twap-orders) così da entrare gradualmente e avere al contempo un'uscita definita. Ogni uscita attivata confluisce nel tuo [Trade Journal](/docs/trade-journal) e nel P&L del [Portfolio](/docs/portfolio), e le tue strategie di bot in [Bot Strategies](/docs/bot-strategies) portano i propri stop basati su percentuale su ogni posizione che aprono.