Tradovate API

Effettuare ordini tramite l'API Tradovate

Vuole inviare un ordine a Tradovate direttamente dal proprio codice? Ecco come costruire la richiesta /order/placeOrder dall'inizio alla fine, incluso il flag isAutomated che la prima volta manda in confusione molte persone.

Verificato dal Trading Systems Team di PickMyTrade Ultimo aggiornamento
· Lettura di 6 minuti
Risposta del token di accesso dell'API Tradovate restituita dall'endpoint accessTokenRequest

Vuole inviare un ordine a Tradovate direttamente dal proprio codice? Magari sta creando un trading bot, scrivendo lo script di una strategia, oppure configurando un'automazione come PickMyTrade. In ogni caso, tutto si riduce a un'unica chiamata REST: /order/placeOrder. Ecco come costruire questa richiesta dall'inizio alla fine, incluso il flag isAutomated che la prima volta manda in confusione molte persone.

Che cos'è l'endpoint placeOrder di Tradovate?

/order/placeOrder è l'endpoint REST di Tradovate che invia un nuovo ordine al mercato dal proprio codice anziché dall'interfaccia della piattaforma. Gli si passa un piccolo payload JSON con account, contratto, lato, quantità e tipo di ordine, tramite una richiesta HTTPS autenticata, e Tradovate restituisce l'ID dell'ordine risultante oppure un motivo di fallimento. Ogni ingresso, uscita e bracket gestiti tramite API si basano su questa unica chiamata.

Inviare un ordine tramite l'API Tradovate: passo dopo passo

1

Autenticarsi e ottenere un token di accesso

Non è possibile inviare nulla senza prima ottenere un token bearer. Invii (POST) le proprie credenziali e i dettagli dell'app a /auth/accessTokenRequest, e la risposta le fornirà un accessToken da allegare a ogni chiamata successiva. I token scadono dopo un intervallo definito, quindi rinnovi il proprio tramite /auth/renewAccessToken prima che scada: è più rapido e più pulito rispetto a riautenticarsi da zero.

2

Trovare accountId e accountSpec

Ogni ordine richiede due identificatori di account: l'accountId numerico e l'accountSpec testuale (nome/specifica del proprio account). Chiami GET /account/list con il proprio token bearer ed estragga entrambi i campi dall'account con cui desidera operare. Se uno dei due è errato, Tradovate restituisce un errore "Access is denied" anziché un'esecuzione.

3

Costruire il payload di placeOrder

Ora assembli il corpo JSON. Un ordine di mercato di base richiede sei campi più il flag di conformità:

4

Impostare correttamente isAutomated, quindi inviare

Il booleano isAutomated indica al mercato chi ha effettivamente premuto il grilletto. Se una persona fa clic su un pulsante nella sua interfaccia, il valore è false (predefinito). Se un bot, un algoritmo o qualsiasi processo impersonale invia l'ordine, deve impostare isAutomated: true. Si tratta di un requisito di conformità CME rigoroso, non di un dettaglio opzionale. Una volta che il payload è corretto, lo invii (POST) a /order/placeOrder sull'host corretto, demo.tradovateapi.com/v1 per la simulazione oppure live.tradovateapi.com/v1 per denaro reale, con il proprio token nell'header Authorization: Bearer.

5

Confermare l'ordine o leggere il motivo del fallimento

Ecco la parte che molti si perdono: un 200 OK significa che la richiesta è stata accettata, non che l'ordine è stato eseguito. Margine, limiti di rischio o un mercato chiuso possono comunque bloccarlo del tutto. Legga quindi il corpo della risposta: un successo restituisce un orderId, mentre un rifiuto restituisce un failureReason e un failureText che può registrare e su cui può agire. Verifichi poi l'esecuzione nel pannello Ordini di Tradovate, così da non affidarsi mai solo al codice di stato.

Tradovate API access token response returned by the accessTokenRequest endpointTradovate account list API response showing the numeric account id and the account name field

{
  "accountSpec": "YOUR_ACCOUNT_NAME",
  "accountId": 123456,
  "action": "Buy",
  "symbol": "MESM6",
  "orderQty": 1,
  "orderType": "Market",
  "isAutomated": true
}

  • action è Buy o Sell; orderType accetta Market, Limit, Stop o StopLimit.
  • Un ordine Limit richiede anche un price; un ordine Stop richiede uno stopPrice. Aggiunga un timeInForce opzionale (ad esempio Day, GTC, IOC o FOK) ogni volta che non desidera usare il valore predefinito.
  • Utilizzi il simbolo del contratto del mese corrente (front-month); i simboli scaduti o continui vengono rifiutati.
Tradovate placeOrder JSON payload in an API client with the isAutomated flag highlightedTradovate placeOrder 200 OK API response returning the new order IDTradovate Orders panel showing the newly placed API order row and its fill status

Perché potrebbe servirle

  • Trading bot, trasformano i segnali di una strategia in ingressi e uscite in tempo reale senza alcun clic manuale.
  • Strumenti di gestione del rischio personalizzati, chiudono o coprono le posizioni automaticamente non appena le proprie regole si attivano.
  • Piattaforme di collegamento, instradano gli avvisi da TradingView, Python o un foglio di calcolo direttamente verso Tradovate.
  • Passaggio dal backtest al reale, riutilizzano esattamente la logica di ordine testata, ora per inviare ordini reali.

Automatizzi tutto questo con PickMyTrade

Non ha voglia di gestire personalmente token, ID account, il flag isAutomated e i rate limit? PickMyTrade collega i suoi avvisi TradingView direttamente al suo account Tradovate, così gli ordini vengono inviati automaticamente, correttamente formattati e con i flag di conformità, senza che lei debba scrivere una sola riga di codice API.

Eviti tutta la complessità tecnica degli ordini

Lasci che PickMyTrade colleghi i suoi avvisi TradingView direttamente al suo account Tradovate, così gli ordini vengono inviati automaticamente senza che lei debba scrivere codice API.

Inizi la sua prova gratuita di 5 giorni

Domande frequenti

Se un bot o un qualsiasi processo automatizzato attiva l'ordine, sì: il mercato lo considera un requisito di conformità. Solo gli ordini attivati manualmente da una persona dovrebbero inviare false (il valore predefinito).

Di solito è dovuto a un accountId/accountSpec errato o mancante, a un token privo dei permessi per gli ordini, oppure all'uso dell'host demo con credenziali live (o viceversa). Recuperi entrambi i campi dell'account da /account/list e verifichi di utilizzare l'URL di base corretto.

No. 200 OK significa solo che Tradovate ha accettato la richiesta. Controlli il corpo della risposta per un orderId (accettato) oppure un failureReason (rifiutato per motivi di margine, rischio o mercato chiuso).

Questa guida ha scopo esclusivamente educativo e informativo e non costituisce una consulenza finanziaria, di investimento o di trading. Il trading di futures e di 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, approvata né sponsorizzata da Tradovate, Inc. "Tradovate" e 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 verifichi sempre la procedura attuale nella piattaforma e nella documentazione ufficiali di Tradovate prima di agire.