
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Messaggio tecnico. Riunire dichiarazioni interessanti in un unico argomento.
sergeev:
Yedelkin:
Quale proprietà del conto sarà responsabile del limite di ordini simultanei nella coda di esecuzione? Sarà possibile trovare questa cifra programmaticamente?
il risultato della funzione OrderSendAsync = false sarà semplicemente
usalo come guida
Ho riletto il thread con interesse, e l'ho anche testato nella pratica, e qui ho scoperto la palese discriminazione del trading automatico.
Ecco il registro della chiusura manuale delle posizioni: (cronologia comprensibile dal basso verso l'alto)
Quello che vediamo qui: l'ordine viene inviato, l'ordine viene accettato, un ticket viene assegnato all'ordine, e infine l'ordine viene eseguito (ci possono essere alcuni spostamenti di interpretazione, ma questo è tutto). Tutto è classico.
L'unica cosa strana è che l'evento Trades sa con certezza (all'interno del terminale) da quale categoria è stato attivato, così come da quale ordine (per le ultime due categorie); altrimenti sarebbe impossibile emettere tale commento, e il programmatore dovrebbe reinventare la ruota per ottenere questa informazione. E la situazione con la funzione OrderSendAsync non ha aggiunto alcuna semplicità.
Tuttavia, dobbiamo notare che la velocità di esecuzione degli ordini è aumentata. Ora non abbiamo il tempo di notare che l'ordine viene messo in coda, ed è già stato eseguito.
Quindi abbiamo un pacchetto di ordini, ognuno dei quali teoricamente viene 4 Trades, in ognuno dei Trades avremmo bisogno di controllare ogni ordine.
Così, abbiamo 4*Numero_Ordine*Numero_Ordine punti di controllo, cioè abbiamo 400 per 10 ordini e 40000 per 100. E Dio non voglia, qualsiasi ordine avrebbe meno quantità di Trades di 4, allora l'intera logica di controllo crolla, poiché l'attesa prima di inviare un secondo ordine (se la prima richiesta non viene eseguita) avviene esattamente sul numero 4.
Hai inviato una pila di ordini di compravendita al server.
Per ogni ordine, è necessario tenere un controllo di esecuzione separato? E quanto tempo dobbiamo aspettare per una risposta?
Ogni ordine deve essere monitorato separatamente?
Sì
E quanto tempo devo aspettare per una risposta?
sì
Non hanno la stessa funzione per diversi broker. Se STP, allora è più una questione per il loro fornitore di liquidità.No, è tutto indovinato dai fondi di caffè. Quando apri la finestra manualmente, premi buy, aspetti un requote o un'esecuzione, premi ok e hai finito.
Quando si apre in modalità automatica, ci dovrebbe essere anche un punto di riferimento, dal quale si deve inviare una seconda richiesta o tutto è ok.
SZS ha aggiunto al post sopra, rileggete.
No, sono tutte congetture, quando apri manualmente una finestra, premi buy, aspetti un requote o un'esecuzione, premi ok e hai finito.
No. Questo è il caso quando il codice di ritorno è DONE(10009).
Ma ci sono broker che passano il tuo commercio al fornitore. E in questo caso vi restituiranno immediatamente PLACED(10008). E a proposito, se si tratta di un ordine di mercato, non ci sarà nessun Deal ticket in questa risposta, ma solo l'order ticket.
E non ci sarà nemmeno un biglietto per l'ordine in caso di OrderSendAsync.
Nella modalità automatica, così dovrebbe essere il punto di riferimento, da cui si desidera inviare una seconda richiesta, o tutto è OK.
Bene, qual è il punto di riferimento a requotes anche su MT4? Non farete un ciclo infinito e non aspetterete la cancellazione o l'apertura di un ordine.
Tutto è ticketype, con controlli degli stati salvati, ecc.
Ho provato ad eseguire la funzione OrderSendAsync()
Ha risposto con
2012.05.02 21:12:33 OrderSendAsync (USDCHF,M1) retcode=10008, order=0, deal=0
Sorge una domanda veloce: come pensiamo di tracciare il destino di una richiesta di compravendita quando viene inviata usando la funzione OrderSendAsync(), se non conosciamo nemmeno il ticket dell'ordine? Il commento deve essere compilato dal broker.
Traccia l'esecuzione di transazioni asincrone in OnTrade. Sì, questo è un percorso più complicato, ma questo è il prezzo dell'asincronia.
La modalità asincrona è progettata per l'immissione di ordini in blocco, ma non per una singola transazione. Per una singola transazione è meglio usare la modalità sincrona - tutto sarà eseguito alla stessa velocità e con un servizio completo.
Traccia l'esecuzione di transazioni asincrone in OnTrade. Sì, è un modo più complicato, ma questo è il prezzo dell'asincronia.
1) non garantisce la tempestività e nemmeno la disponibilità della risposta
2) richiede chiaramente code di operazioni separate da parte dello sviluppatore
In altre parole, dovremo generare una lista di ordini e poi controllarli e riempirli all'interno di OnTrade. Questo, ovviamente, è straziante.
Da parte nostra, potremmo mantenere in modo trasparente code asincrone, riempirle di risposte e fornire ai commercianti comode funzioni per controllare e recuperare voci elaborate dalla coda. Puoi controllare le code in modo asincrono in OnTrade o in modo sincrono facendo il polling nel ciclo subito dopo l'invio di un batch di ordini.
Penseremo a un tale meccanismo - renderebbe la vita più facile agli sviluppatori EA alleggerendoli dalla loro routine.