Funzione OrderSendAsync() - pagina 7

 

Asincronia senza controllo = caos.

Il controllo dell'asincronia può essere eseguito solo in OnTrade().

C'è bisogno di identificare una particolare richiesta in OnTrade().

Così arriviamo a che OrderSendAsync() deve restituire il numero del biglietto ricevuto dal server (escludendo la situazione di time-out). Il numero di ticket è necessario per identificare in modo univoco la richiesta sia dal server che dal client.

Unificando questo meccanismo, anche la funzione OrderSend() può essere ridisegnata - dovrebbe restituire il numero del biglietto, o "-1" in caso di fallimento dell'invio dell'ordine al server.

Poi, nel programma, implementa una classe con l'elenco dei biglietti generati.

Ad ogni evento OnTrade(), capiamo:

1. se si tratta della nostra azione o, per esempio, dell'azione di un'altra istanza di Expert Advisor (i maghi non saranno più necessari).

2. A che tipo di richiesta stiamo ricevendo una risposta.

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 
voix_kas:

Così, OrderSendAsync() dovrebbe restituire il numero di biglietto ricevuto dal server (esclusa la situazione di timeout). Il numero del biglietto è necessario per identificare in modo inequivocabile la richiesta sia con il server che con il client.

Salve. Sapete cos'è l'async?
 
TheXpert:
Salve. Sai almeno cos'è l'asincronia?
<<Dimenticate l'asincronia sincrona!
 
Stiamo ora discutendo l'aggiunta di una funzione OnTradeResult(MqlTradeResult&info), che avrà dettagli esatti sulle risposte del server.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
Renat:
Stiamo ora discutendo l'aggiunta della funzione OnTradeResult(MqlTradeResult&info) che avrà i dettagli esatti delle risposte del server.

Secondo me, dovrebbe apparire così dal lato dell'utente:

l'utente scrive una classe per lavorare con i puntatori e vi allega la classe di elaborazione dei segnali commerciali.

Quando appare un segnale, vengono creati nuovi oggetti e viene inviata una richiesta al server; di conseguenza, l'oggetto esiste fino all'esecuzione del segnale.

OnTrade controlla il destino e prende una decisione (o/o) o invia una nuova richiesta o distrugge l'oggetto man mano che ha lavorato.

Questo schema ha bisogno dell'identificazione di quale oggetto trattare in relazione all'attivazione di questo evento Trade.

 
Urain:

In questo schema, è necessario identificare quale oggetto elaborare in relazione all'attivazione di questo evento Trade.

Qual è il problema?
 
TheXpert:
Qual è il problema?

Stai scherzando?

Il commercio è ora senza volto, non si può dire quale oggetto della lista deve essere processato quando arriva.

 
Urain:

Mi stai prendendo in giro?

Niente affatto. A proposito, non vale la pena preoccuparsi molto di OnTrade, perché non verrà il 100% delle volte (è circa lo stesso dell'errore 1 in MT4)

Cioè, devi ancora stipulare un'assicurazione.

Non è meglio "farlo bene"?

 
TheXpert:

Niente affatto. A proposito, non vale la pena di preoccuparsi molto di OnTrade, perché non verrà il 100% delle volte (che è circa lo stesso dell'errore 1 in MT4)

Cioè, devi ancora stipulare un'assicurazione.

Non è meglio "farlo bene"?

Giustificare perché il commercio non entra nel ~100% delle volte?
 
Urain:
Giustificare perché il commercio non entra nel ~100% delle volte?
Perché i pacchetti rotti, le connessioni interrotte, ecc. Inaffidabile. Inaffidabile - devi rimbalzare.