Discussione sull’articolo "Eventi di Trade in MetaTrader 5" - pagina 2

 
Rosh:
L'articolo dice che il controllo iniziale viene eseguito nel terminale. Anche OrderCheck() funziona nel terminale, non viene inviato nulla al server.
Eccone un altro: "La richiesta non valida non supera il controllo iniziale sul lato server".
 
Yedelkin:

L'articolo dice: "una volta inviata la richiesta, questa arriva al server e viene sottoposta a una prima convalida".

Letteralmente dice quanto segue:

Importante: ogni richiesta è sottoposta a un controllo preliminare di correttezza nel terminale client stesso prima di essere inviata al server di trading. Le richieste plausibilmente errate (acquisto di un milione di lotti o acquisto a un prezzo negativo) non passano al di fuori del terminale. Questo per proteggere i server di trading da richieste errate di massa in caso di errore nel programma mql5.

Dopo aver inviato una richiesta, questa arriva al server di trading e supera il controllo iniziale:

 
Rosh:
Hai confuso anche me. Ho rimosso il riferimento dalla combinazione "controllo iniziale".
Sto rileggendo l'articolo. Mi scuso se qualcosa è sbagliato. Ma ho già dato due link direttamente dall'articolo sul controllo iniziale lato server.
 
Yedelkin:
Quindi stai dicendo che la funzione OrderSend() restituisce true solo dopo che il server accetta (piazza) l'ordine?
Significa che la richiesta è stata accettata. Inoltre, può essere rifiutata dal commerciante, dalla piattaforma di trading e così via.
 
Rosh:

Dice letteralmente quanto segue:

Importante: ogni richiesta è sottoposta a un controllo preliminare di correttezza nel terminale del cliente stesso prima di essere inviata al server di trading. Le richieste plausibilmente errate (acquisto di un milione di lotti o acquisto a un prezzo negativo) non passano al di fuori del terminale. Questo per proteggere i server di trading da richieste errate di massa in caso di errore nel programma mql5.

Dopo l'invio di una richiesta, questa arriva al trade server e supera il controllo iniziale:

È quindi necessario suddividerla in tre controlli:

1) controllo di massima da parte del terminale;

2) controllo dal lato del terminale tramite la funzione OrderCheck()$

3) controllo lato server.

Non è ancora chiaro a cosa si riferisca il concetto di "controllo primario".

 

Rosh:
Это означает, что запрос принят. Дальше он может быть отвергнут дилером, торговой площадкой и так далее.

OK. Non mi interessa il destino dell'ordine. Dalle sue parole deduco (domanda 2) che la funzione OrderSend() non può restituire true subito dopo aver verificato la correttezza della richiesta. true viene restituito solo dopo che il server accetta l' ordine. È corretto? Si scopre poi che l'informazione secondo cui "in caso di successo del controllo della struttura di base, viene restituito true" non è del tutto corretta nel libro di riferimento.
 
Yedelkin:
OK. Non mi interessa il destino dell'ordine. Dalle sue parole deduco (domanda 2) che la funzione OrderSend() non può restituire true subito dopo aver verificato la correttezza della richiesta. true viene restituito solo dopo che il server accetta l' ordine. È corretto? Si scopre poi che l'informazione secondo cui "in caso di successo del controllo di base delle strutture, viene restituito true" non è del tutto corretta nel libro di riferimento.
Controllo di base ≡ Controllo primario sul lato server
 
Rosh:
Controllo di base ≡ Controllo primario lato server

Ho già scritto sopra, nel formulare la domanda 2, che "ci possono essere situazioni in cui una richiesta è già stata controllata per la correttezza, ma non è ancora stata accettata dall'intermediario". Nessuno sembra contestare questa affermazione. Ecco perché riformulerò la domanda 2 tenendo conto delle vostre definizioni:

in quale momento esatto la funzione OrderSend() restituisce true - subito dopo il controllo di base (controllo iniziale sul lato server) della correttezza della richiesta o solo dopo che l'ordine è stato accettato dal server?

In effetti, è interessante la seguente domanda: in quale fase (dal terminale al server) la funzione OrderSend() segnala che l'ordine è passato? "Controllo di base" o "Controllo di base + accettazione (inserimento) dell'ordine"? Oppure è impossibile trarre le dovute conclusioni solo al ricevimento di true ?

 
Yedelkin:

Ho già scritto sopra, nel formulare la domanda 2, che "ci possono essere situazioni in cui una richiesta è già stata controllata per la correttezza, ma non è ancora stata accettata dal broker". Nessuno sembra contestare questa affermazione. Pertanto, riformulerò la domanda 2 tenendo conto delle vostre definizioni:

in quale momento esatto la funzione OrderSend() restituisce true - subito dopo il controllo di base (controllo primario sul lato server) della correttezza della richiesta o solo dopo che l'ordine viene accettato dal server?

Naturalmente, dopo che il server l'ha accettato: è ovvio. Inoltre, la funzione si chiama OrderSEND.
[Eliminato]  
Yedelkin:

In effetti, mi interessa la seguente domanda: quale fase (dal terminale al server) della funzione OrderSend() è segnalata da true ? "Controllo di base" o "Controllo di base + accettazione (inserimento) dell'ordine"? Oppure non è possibile trarre le necessarie conclusioni solo dalla ricezione di true ?
A mio parere, non si dovrebbero trarre conclusioni basate solo su true, ma si dovrebbe analizzare anche il codice di risposta del server (e quest'ultimo ha una priorità maggiore, a quanto mi sembra)...