Tradovate API

API Tradovate: isAutomated deve essere true per i bot

Se lasciate isAutomated al suo valore predefinito false, ogni ordine algoritmico che inviate viene silenziosamente etichettato in modo errato presso il CME come un clic umano. Ecco cosa fa il flag, perché esiste e come impostarlo correttamente.

Verificato dal Trading Systems Team di PickMyTrade Ultimo aggiornamento
· Lettura di 7 minuti
Corpo della richiesta JSON placeOrder di Tradovate nell'API Explorer con il campo isAutomated omesso, impostato per default su false

Instradando ordini verso Tradovate da un bot, un bridge webhook o uno script, un piccolo campo decide se la borsa tratta la vostra esecuzione come un ordine automatizzato corretto oppure come una violazione dell'audit trail: isAutomated. Lasciandolo al suo valore predefinito false, ogni ordine algoritmico che inviate viene silenziosamente etichettato in modo errato presso il CME come un clic umano. Inviandolo con il tipo di dato sbagliato, la richiesta può essere respinta prima ancora di raggiungere il matching engine. Nel 2026, con l'indicatore Manuale/Automatizzato del CME applicato a ogni singolo ordine, impostare correttamente questo booleano non è più facoltativo, ed è uno dei motivi più comuni per cui gli sviluppatori vedono i propri ordini automatizzati comportarsi in modo strano o venire segnalati. Ecco esattamente cosa fa il flag, perché esiste e come impostarlo affinché il vostro bot operi senza rifiuti.

Checklist rapida per il flag isAutomated

  • È un bot, uno script o un webhook a inviare l'ordine? Impostate isAutomated: true su ogni chiamata a /order/placeOrder.
  • È una persona a cliccare un pulsante nella vostra interfaccia? isAutomated resta su false (il valore predefinito).
  • State inviando il valore con il tipo corretto? Lo schema lo definisce come booleano true, non come stringa "true", verificate cosa serializza realmente il vostro client HTTP.
  • State usando una strategia bracket/OSO? Applicate il flag anche all'ordine principale in placeOSO/placeOrderStrategy, non solo agli ordini singoli.
  • Notate rifiuti anomali o “accesso negato”? Verificate prima il flag e il suo tipo, prima di dare la colpa ad autenticazione, simbolo o impostazioni di rischio.
  • Non siete sicuri di chi “possiede” l'ordine? Se nessuna persona lo ha attivato fisicamente in tempo reale, è automatizzato. Contrassegnatelo come tale.

Cosa significa davvero il flag isAutomated

isAutomated è un campo booleano nel corpo della richiesta placeOrder di Tradovate. Indica a Tradovate, e tramite Tradovate al matching engine di CME Globex, se una persona reale ha avviato fisicamente l'ordine oppure se è stato generato da un software. Se il campo viene omesso, Tradovate lo tratta come false, il che è corretto solo per un ordine inserito da una persona che ha cliccato in un front-end.

Nel momento in cui un algoritmo, un trading bot, un webhook di TradingView o qualsiasi processo impersonale genera l'ordine, quel valore predefinito è sbagliato. Il flag deve essere impostato per gli ordini inseriti da un algoritmo automatizzato, a differenza di quelli avviati manualmente con un clic. Impostare isAutomated: true è ciò che fa sì che la vostra richiesta venga associata alla designazione corretta della borsa.

Non si tratta di una preferenza di Tradovate, ma di una regola della borsa. Dal 5 giugno 2011, il CME Group richiede che ogni ordine inserito in Globex indichi se è stato inserito con modalità manuale o automatizzata, riportato nel Tag 1028 (Manual Order Indicator) FIX. L'8 ottobre 2012, tale obbligo è stato codificato nella Rule 536.B di ciascuna borsa. I valori ammessi sono rigidi: gli ordini manuali inviano Y, gli ordini automatizzati inviano N, e nessun altro valore è consentito. Il vostro isAutomated: true è ciò che fa sì che Tradovate contrassegni il vostro ordine come automatizzato (N) sulla linea. Una trasmissione imprecisa di questo indicatore costituisce una violazione dell'audit trail che può comportare provvedimenti disciplinari ai sensi della CME Rule 512.

Le cause principali di un flag isAutomated mancante o errato

1. Il campo viene semplicemente omesso

La causa più comune è omettere del tutto isAutomated dal payload. Tradovate lo imposta per default su false, quindi la richiesta ha comunque successo, ed è proprio per questo che è pericoloso. Gli ordini del vostro bot vengono instradati alla borsa etichettati come manuali (Y), anche se sono stati generati da un software. Non compare alcun errore, ma ogni esecuzione automatizzata risulta ora etichettata in modo errato nell'audit trail del CME.

2. Il valore viene inviato con il tipo sbagliato

Lo schema degli ordini di Tradovate documenta isAutomated come booleano. Alcuni client HTTP, richieste con codifica form o wrapper di terze parti lo serializzano come stringa "true" anziché come booleano JSON true. A seconda di come il vostro stack costruisce il corpo della richiesta, un valore che l'API non riesce a interpretare come booleano può essere ignorato (tornando a false) oppure far fallire la richiesta. Inviate il tipo che la vostra libreria serializza effettivamente in JSON, un booleano vero, a meno che il vostro bridge non documenti diversamente.

3. Il flag manca sugli ordini bracket/strategia

Gli sviluppatori spesso aggiungono isAutomated alle singole chiamate placeOrder ma lo dimenticano nelle richieste placeOSO e placeOrderStrategy (bracket OSO/OCO). L'ordine principale in una strategia resta comunque un ordine automatizzato e necessita del flag. Un ingresso bracket inviato senza di esso costituisce la stessa violazione di un ordine singolo non contrassegnato.

4. Una confusione tra umano e bot nel percorso del codice

Se lo stesso percorso di codice gestisce sia le azioni manuali dell'interfaccia sia i segnali automatizzati, è facile impostare un valore fisso per entrambi. Il flag deve riflettere la vera origine di ogni ordine al momento dell'invio: true quando un segnale o un algoritmo lo ha generato, false solo quando una persona ha cliccato.

Corpo JSON placeOrder di Tradovate corretto con isAutomated impostato sul booleano true, evidenziato in verde, per un ordine di bot

Come correggere il flag isAutomated: passo dopo passo

1

Correggere il flag mancante

Aprite il codice che costruisce il corpo della richiesta /order/placeOrder. Aggiungete isAutomated accanto agli altri campi obbligatori, accountSpec, accountId, action, symbol, orderQty e orderType. Impostate il valore su true per qualsiasi ordine generato dal vostro bot, script o webhook. Lasciatelo su false solo per gli ordini attivati direttamente da una persona. Reinviate un ordine di prova nell'ambiente demo e confermate che la risposta sia un id ordine valido e non un errore. Un corpo placeOrder automatizzato minimo è simile a questo: { "accountSpec": "YourUserName", "accountId": 0, "action": "Buy", "symbol": "MESU6", "orderQty": 1, "orderType": "Market", "isAutomated": true }

2

Correggere il tipo di dato sbagliato

Ispezionate il JSON grezzo inviato dal vostro client (registrate il corpo della richiesta o usate l'output di debug della vostra libreria). Confermate che isAutomated compaia come booleano puro, "isAutomated": true, e non come stringa tra virgolette "isAutomated": "true". Se il vostro framework racchiude automaticamente i booleani tra virgolette, convertite esplicitamente il valore in un booleano reale prima della serializzazione, oppure usate il tipo documentato dal vostro wrapper API. Ripetete il test e verificate che l'ordine venga accettato. Se utilizzate un bridge o terze parti, controllate la loro documentazione per il tipo esatto atteso, alcune integrazioni con codifica form si aspettano una forma stringa, quindi verificate con il vostro strumento specifico prima di dare per scontato.

3

Correggere gli ordini bracket e strategia

Individuate il vostro generatore di richieste placeOSO o placeOrderStrategy. Aggiungete isAutomated: true all'ordine di ingresso/principale della strategia, esattamente come fareste per un ordine singolo. Le gambe di stop e target collegate ereditano il contesto della strategia, ma il flag appartiene all'ordine che inviate. Inviate un bracket di prova in demo e confermate che tutte le gambe compaiano come previsto nel report degli ordini.

4

Confermare che l'ordine sia stato accettato e correttamente contrassegnato

Dopo l'invio, controllate nella risposta di placeOrder la presenza di un orderId numerico (successo) anziché di un failureReason. Aprite il modulo Ordini oppure interrogate /order/list e confermate che l'ordine risulti accettato/attivo, non rifiutato. Per i conti live, monitorate attentamente i primi ordini automatizzati per assicurarvi che ora, con il flag impostato, vengano instradati correttamente.

Riferimento allo schema dell'API Explorer di Tradovate per il modello placeOrder, che mostra isAutomated tipizzato come campo booleanoReport degli ordini della piattaforma web Tradovate che mostra un ordine automatizzato accettato e attivo dopo aver impostato isAutomated su true

Tabella di risoluzione dei problemi

Sintomo Cosa significa Soluzione
isAutomated omesso dal payloadTorna per default a false; gli ordini del bot vengono etichettati come manuali (Tag 1028 = Y)Aggiungete isAutomated: true a ogni placeOrder automatizzato
"isAutomated": "true" (stringa)Il valore potrebbe non essere interpretato come booleano; può essere ignorato o rifiutatoInviate il booleano JSON true, non una stringa tra virgolette
Flag mancante sul parent OSO/OCOL'ingresso bracket viene instradato come ordine automatizzato non contrassegnatoImpostate isAutomated: true sull'ordine principale della strategia
Stesso percorso di codice per UI e botOrigine errata segnalata per ordineImpostate il flag per ogni ordine in base all'origine reale al momento dell'invio
Ordine segnalato / problema di audit trailLa designazione CME Tag 1028 non è accurataAssicuratevi che gli ordini automatizzati vengano sempre segnalati come automatizzati (N)
“Accesso negato” intermittente su placeOrderDi solito autenticazione/account/simbolo, non il flag in séCorreggete l'autenticazione e usate l'id numerico dell'account; mantenete corretto anche il flag

Dove si inserisce PickMyTrade

Se mantenere manualmente il contratto API grezzo vi sembra fragile, PickMyTrade collega gli avvisi di TradingView direttamente al vostro account Tradovate e gestisce per voi l'intera gestione degli ordini:

  • Etichettatura di automazione corretta, gli ordini generati dai vostri avvisi vengono inviati attraverso il percorso automatizzato corretto, così la designazione della borsa viene gestita senza dover codificare manualmente il flag.
  • Validazione del payload, i campi simbolo, quantità e tipo di ordine vengono validati prima dell'invio dell'ordine, individuando gli errori che si trovano proprio accanto a isAutomated nel body.
  • Instradamento sicuro rispetto ai rate limit, il flusso degli ordini viene distribuito nel tempo affinché le raffiche non superino i limiti di richiesta di Tradovate.
  • Sincronizzazione multi-account, lo stesso ordine validato viene replicato su tutti i vostri account collegati invece di dover reimplementare il payload per ciascuno.

Fate trading senza rifiuti

Iniziate la vostra prova gratuita di 5 giorni, collegate oggi stesso i vostri avvisi e fate trading senza rifiuti.

Iniziate la vostra prova gratuita di 5 giorni

Domande frequenti

È un booleano nel corpo della richiesta placeOrder che indica se l'ordine è stato generato da una persona o da un software. Corrisponde al FIX Tag 1028 Manual Order Indicator del CME, così la borsa sa che l'ordine era automatizzato.

Il campo torna per default a false, quindi il vostro ordine automatizzato viene segnalato al CME come inserito manualmente. Si tratta di una designazione dell'audit trail imprecisa, che ai sensi della CME Rule 536.B e della Rule 512 può comportare provvedimenti disciplinari.

Usate true per qualsiasi ordine generato da un bot, un algoritmo, uno script o un webhook. Usate false solo per gli ordini attivati fisicamente da una persona in tempo reale.

Lo schema degli ordini di Tradovate lo definisce come booleano, quindi inviate true (non "true"). Se utilizzate un bridge di terze parti o un client con codifica form, verificate il tipo esatto atteso, poiché la serializzazione può differire tra gli strumenti.

Sì. Impostate il flag sull'ordine principale/di ingresso della vostra richiesta placeOSO o placeOrderStrategy, esattamente come fareste per un ordine singolo.

Non sempre. Poiché torna per default a false, molte richieste hanno successo ma vengono etichettate in modo errato. Il rischio maggiore è una violazione di conformità e di audit trail. Tuttavia, inviare il valore con un tipo che l'API non riesce a interpretare può far fallire la richiesta stessa.

Dal 2011, il CME richiede che ogni ordine Globex identifichi l'inserimento manuale (Y) rispetto a quello automatizzato (N) per finalità di sorveglianza e audit trail. Ciò è stato codificato nella Rule 536.B nel 2012, e sono validi solo i valori Y o N.

Di solito quell'errore riguarda l'autenticazione, l'id dell'account o il simbolo, non isAutomated. Mantenete corretto il flag, ma risolvete separatamente i problemi di autenticazione e accesso all'account.

Questa guida ha finalità esclusivamente educative e informative e non costituisce consulenza finanziaria, di investimento o di trading. Fare trading su futures e altri prodotti a leva comporta un rischio sostanziale di perdita e non è adatto a tutti gli investitori. PickMyTrade è una piattaforma di automazione indipendente di terze parti e non è affiliata, sostenuta o sponsorizzata da Tradovate, Inc. Tutti i nomi, i loghi e i marchi correlati sono di proprietà dei rispettivi titolari. Le funzionalità e i passaggi della piattaforma cambiano nel tempo, quindi verificate sempre la procedura attuale sulla piattaforma e nella documentazione ufficiali di Tradovate prima di agire.