Programmazione asincrona e multithread in MQL - pagina 30

 
fxsaber:

Stiamo parlando di un cinque.

Avevi che result.order==0 && result.deal==0?

 
Andrey Barinov:

...

A proposito, tutte queste informazioni non cancellano il mio consiglio di smettere di usare EventChartCustom() e passare completamente alle risorse. Credetemi, questo modo è migliore e più universale. E il modello può essere applicato a un grafico regolare, impostando CHART_SHOW 0 (in modo che non riceva eventi inutili).

 
Andrey Barinov:

Avevi che result.order==0 && result.deal==0?

&& no. Ma Result.deal == 0 - non è sufficiente. Inoltre, è pericoloso fare qualcosa quando la storia del trading non ha ancora avuto il tempo di sincronizzarsi.

 
Naturalmente, questa opzione di multithreading è costosa, ma se non c'è altro, risolverà il problema. A malapena).
 
fxsaber:

&& - no. Ma Result.deal == 0 - non è sufficiente. Inoltre, è pericoloso fare qualcosa quando la storia del trading non ha ancora avuto il tempo di sincronizzarsi.

Fammi un esempio di un problema. Finora mi è sempre bastato sapere che l'ordine è stato inviato.

 
Andrey Barinov:

Fammi un esempio di un problema. Finora sono sempre stato soddisfatto delle informazioni che l'ordine è stato inviato.

Ci sono molte sfumature, non posso ricordarle tutte insieme. A colpo d'occhio

  • Un ordine a mercato è stato piazzato con successo. È diventato vero e 10009. Ma non è stato ancora eseguito.
  • La posizione è chiusa, ma non se ne parla nella cronologia degli scambi.
  • L'ordine viene eseguito e la posizione viene aperta. Ma l'ordine non è stato ancora cancellato dal terminale. Così, l'ordine e la posizione esistono nel terminale simultaneamente. Le loro etichette sono le stesse.
 
fxsaber:

Ci sono molte sfumature, non posso ricordarle tutte insieme. A colpo d'occhio

  • L'ordine a mercato è stato piazzato con successo. Abbiamo il vero e il 10009. Ma non è stato ancora eseguito.
  • La posizione è chiusa, ma non se ne parla nella cronologia degli scambi.
  • L'ordine viene eseguito e la posizione viene aperta. Ma l'ordine non è stato ancora cancellato dal terminale. Così, l'ordine e la posizione esistono nel terminale simultaneamente. Le loro etichette sono le stesse.

Ci sono davvero molte sfumature. Tu stesso hai risolto molti di questi problemi in MTOrders.

Costruisco la mia logica di trading in modo tale che l'informazione result.order sia sufficiente per me. Per diversi anni, non ci sono stati compiti (problemi) irrisolvibili.

P.S. Già offtopic.

 
Andrey Barinov:

Peter, tu non capisci.

C'è UN solo consigliere. Si esegue inoltre su un grafico invisibile, solo in modalità agente. Non ci sono eventi in esecuzione sull'agente. Significa che la risorsa non può essere interrogata in alcun modo, il timer non parte, i tick non arrivano...

L'Expert Advisor può moltiplicare quanti di questi agenti vuole. Ognuno di essi diventa un filo separato.

Può chiarire ancora una volta questa affermazione? Se un modello viene applicato a un grafico regolare e viene lanciata una copia dell'EA, tutti gli eventi arriveranno normalmente. Non è vero?

E se il modello è applicato a _OBJ_CHART, come può l'EA lavorare su di esso se nemmeno i tick arrivano?

 
Andrey Barinov:

Ci sono davvero molte sfumature. Voi stessi avete risolto molti di questi problemi in MTOrders.

Ho risolto tutto lì.

Costruisco la mia logica di trading in modo tale da avere abbastanza informazioni sui risultati e sugli ordini. Per diversi anni, non c'erano compiti (problemi) irrisolvibili.

Bisogna prendere certi server.

P.S. Già offtopic.

Sì, finiamo.

 
Реter Konow:

Può spiegare di nuovo questa affermazione? Dopo tutto, se si applica un modello a un grafico normale e si esegue una copia dell'EA, allora tutti gli eventi arriveranno normalmente. Non è vero?

E se si applica un modello a _OBJ_CHART, come può funzionare lì per intero se non arrivano nemmeno i tick?

Il grafico normale ha tutti gli eventi. L'OBJ_CHART ha solo OnChartEvent dove l'EA principale invia OnTick e OnTimer se necessario.

Motivazione: