[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 376

 
Integer:

Sì, ma solo se il primo ordine è un ordine a mercato. Se è in sospeso, non succede niente.
Sì, esattamente. - Questo è un chiarimento importante. Mi è mancato.
 
Chiripaha:

Questo è il punto (per la correttezza dei parametri dell'esperimento). È per questo che faccio le domande, perché sono insicuro di me stesso e quindi cerco di identificare - forse ho fatto qualcosa di sbagliato se questi risultati divergono. Questo è più al punto di test - in momenti come questo, un programma apparentemente ben scritto fallisce e ci si rende conto che si deve guardare da qualche parte.

Ho ottenuto questi "esperimenti" per caso. Anch'io ho scritto programmi per il lavoro in parallelo - ora ho rinunciato a questo metodo perché non ha aumentato la mia efficienza (può essere realizzato in altri progetti). Il risultato era tale che finché il primo programma non veniva elaborato - non si ottenevano dati - il secondo non partiva (o, più precisamente, falliva). Questa sequenza dipendeva dalla finestra in cui avevo messo (cioè in che ordine) i blocchi EA. - Quindi, concludiamo che la sequenza delle finestre è importante, vale a dire che gli Expert Advisor sono elaborati in modo sequenziale, non in parallelo. E questa sequenza dipende dalla numerazione delle finestre nella lista del terminale.

Questa è l'essenza dell'esperienza.

Ma, di nuovo, forse questa è un'interpretazione errata dei miei risultati. Ecco perché mi ostino a cercare di risolvere questa questione ora, e non solo per quanto riguarda lo "slittamento".

Intendevo il funzionamento on-line degli EA. E tu parli di test. Si tratta del tester? Come possono lavorare diversi EAs nel tester allo stesso tempo?
 
TarasBY:
Mi riferivo al funzionamento on-line degli EA. E tu stai parlando di test. Si tratta del tester? Come possono lavorare diversi EAs nel tester allo stesso tempo?

No - l'ho detto in modo errato (fuori sequenza). - Per test, non intendevo un tester, ma tester di programmi nella fase di debugging e di identificazione delle loro caratteristiche. In questo caso, a causa della mancanza di informazioni documentate, stavo identificando le peculiarità di mt4. (devo ricorrere a questo di tanto in tanto).

Naturalmente, sto parlando anche degli EA che lavorano online ora.

 
Chiripaha:

No - questo era sbagliato (con perdita di coerenza). - Per test non intendevo tester - ma tester di programmi nella fase di debugging e di rivelazione delle peculiarità del loro lavoro. In questo caso, a causa della mancanza di informazioni documentate, stavo identificando le peculiarità di mt4. (devo ricorrere a questo di tanto in tanto).

Naturalmente, sto parlando di EAs che lavorano anche online ora.

Se lo sviluppatore dichiara la possibilità per il terminale di dare diversi ordini di compravendita al server allo stesso tempo, come può essere fatto lavorando in modo sequenziale?
 

Grazie a tutti per le vostre risposte. Proverò a cambiare il codice in modo che l'EA non esca finché OrdersTotal non mostra un ordine aperto. Allora il 2° vedrà sicuramente che c'è un ordine. Lo spero.

A proposito, nella mia esperienza, gli EAs girano in sequenza e creano anche una coda in qualche modo, a giudicare dalle stampe.

 
Arles:

Grazie a tutti per le vostre risposte. Proverò a cambiare il codice in modo che l'EA non esca finché OrdersTotal non mostra un ordine aperto. Allora il 2° vedrà sicuramente che c'è un ordine. Lo spero.

A proposito, nella mia esperienza, gli EAs girano in sequenza e creano anche una coda in qualche modo, a giudicare dalle stampe.

Print() non può servire come base per tali conclusioni. Avete visto il codice sorgente di questa funzione? Per essere sicuri, a che punto la stampante stampa l'ora? L'output sul file è esattamente sequenziale, e la stampante può scrivere il tempo esattamente al momento dell'output sul file, ma non al momento in cui l'evento che descrive si verifica.
 
TarasBY:
Se lo sviluppatore dichiara la possibilità per il terminale di dare diversi ordini di compravendita al server allo stesso tempo, come posso farlo lavorando in modo sequenziale?

È difficile per me dire qualcosa su questo. Non ho molta idea di come comunicare direttamente con questi sviluppatori per capire cosa sostengono.

Ma come qualcuno che è abituato a basarsi non su quello che dicono, ma su quello che ottengo dall'esperimento, quello che vedo è quello che canto. - Quello che non riesco a vedere, faccio domande e chiarisco la mia posizione.

Il fatto è che questa posizione (di lavoro successivo), secondo me, è abbastanza naturale e corretta. Ecco perché non ho mai specificato questa domanda prima. È corretto perché altrimenti ci possono essere errori nella contabilità finanziaria delle posizioni. Ma, comunque, questo può essere tagliato a livello di server - controllerà se qualcosa è corretto o no. Ma anche in questo caso, quando si lavora con Expert Advisors e il terminale, ci sarebbero troppi comandi inutili ed errati che intaserebbero il flusso di trade con "spazzatura" non necessaria. E così via.

 
Chiripaha:

È difficile per me dire qualcosa su questo. Non ho molta idea di come comunicare direttamente con questi sviluppatori per capire cosa sostengono.

Ma come qualcuno che è abituato a basarsi non su quello che dicono, ma su quello che ottengo dall'esperimento, quello che vedo è quello che canto. - Ciò che non riesco a vedere, faccio domande, chiarisco la mia posizione.

Il punto è che questa posizione (con un lavoro coerente) è, secondo me, abbastanza naturale e corretta. Ecco perché non ho elaborato in qualche modo questa questione prima. È corretto perché altrimenti ci possono essere errori nella contabilità finanziaria delle posizioni. Ma, comunque, questo può essere tagliato a livello di server - controllerà se qualcosa è corretto o no. Ma anche in questo caso, quando si lavora con Expert Advisors e il terminale, ci sarebbero troppi comandi inutili ed errati che intaserebbero il flusso di trade con "spazzatura" non necessaria. E così via.

Leggi - con un'elaborazione coerente, non ci sarebbe bisogno di fare un tale "orto". (E non dimenticate - ogni articolo è moderato dagli sviluppatori).

P.S. Anche io mi affidavo alla mia esperienza e alla mia logica, piuttosto che alle parole di qualcun altro. :)

 
TarasBY:

Leggi - con un'elaborazione coerente, non ci sarebbe bisogno di fare un tale "orto". (E non dimenticare - ogni articolo è moderato dagli sviluppatori).

P.S. Anch'io sono abituato a basarmi sulla mia esperienza e sulla mia logica, piuttosto che sulle parole degli altri. :)

Tenete presente che non sto facendo un'affermazione. Al contrario, sto chiedendo: è vero o no? : )) E citare come argomento quello che ottengo in pratica.

E la questione dello "slittamento" rimane ancora non confermata per me. Cioè aperto. : ))

Immagino la moderazione. - Ma d'altra parte - indovinare non significa affermare. Se è così, spero sinceramente di ottenere un commento ufficiale su Sleep. Perché su questo forum ci sono un sacco di argomenti come le mie congetture e quelle ufficiali sono difficili da trovare (tranne il libro di riferimento, naturalmente - ma è lì che l'informazione su questo argomento è scarsa e incomprensibile. Altrimenti non si parlerebbe così tanto qui). E allo stesso tempo, lasciate che chiariscano la coerenza e il parallelismo. - Sarebbe utile anche per me capirlo.

 
Chiripaha:

È difficile per me dire qualcosa su questo. Non ho molta idea di come comunicare direttamente con questi sviluppatori per capire cosa sostengono.

Ma come qualcuno che è abituato a basarsi non su quello che dicono, ma su quello che ottengo dall'esperimento, quello che vedo è quello che canto. - Ciò che non riesco a vedere, faccio domande, chiarisco la mia posizione.

Il fatto è che questa posizione (con un lavoro costante) è, secondo me, abbastanza naturale e corretta. Ecco perché non ho mai specificato questa domanda prima. È corretto perché altrimenti ci possono essere errori nella contabilità finanziaria delle posizioni. Ma, comunque, questo può essere tagliato a livello di server - controllerà se qualcosa è corretto o no. Ma anche in questo caso, quando si lavora con Expert Advisors e il terminale, ci sarebbero troppi comandi inutili ed errati che intaserebbero il flusso di trade con "spazzatura" non necessaria. E così via.

Tutti gli script e gli Expert Advisors lavorano nei loro propri thread. Gli ordini commerciali sono raccolti da loro in una coda separata. Poi vengono distribuiti tra i flussi di libero scambio. Il numero di flussi di libero scambio può essere uguale a 8.

Print() emette ciò che è disponibile per l'output al momento dell'output. La presenza di più thread può essere determinata attraverso il log. L'output viene visualizzato all'inizio della funzione start() e alla fine. Mettete un ritardo tra di loro. Esegui diversi Expert Advisors su diversi strumenti. Guarda il registro. Vedrai che tra l'uscita di un Expert Advisor ci sono le uscite di altri Expert Advisor.

void start()
 {
  Print(Symbol(), " Start");
  Sleep(3000);
  Print(Symbol(), " End");
 }