Errori, bug, domande - pagina 1563

 
Anton Zverev:

Sarebbe molto più comodo se per ogni simbolo il terminale tenesse un contatore di tick (dal momento della connessione). E ogni Expert Advisor, quando chiamato, otterrebbe il numero del tick su cui è stato chiamato.

Questo permetterebbe di stimare le zecche mancate.

In questo momento, ogni EA deve essere attivato su un grafico. BookEvent è la prima rondine, dicendo che non sono necessari grafici per eseguire gli EA.

Non c'è bisogno di nuove entità. La valutazione dei tick mancati può essere fatta usando il contatore esistente. Si chiama tick_volume
 
Slawa:

Nel funzionamento normale, un EA sarà chiamato su ogni tick del secondo simbolo solo se quell'EA è collegato al grafico di quel secondo simbolo.

E non c'è bisogno di preoccuparsi di alcun grafico-evento. Tutto è già stato fatto prima di te, devi solo guardarti intorno.

1. Per esempio, fate un timer di 1 secondo.

2. Si organizza un ciclo da zero a 100 in OnTimer con Sleep(10) e si controlla che non venga eseguito più di 1 secondo.

3. Analizza qualsiasi strumento che ti piace usando le query di SymbolInfoTick.

Questo design funzionerà anche nel tester

Naturalmente, questo costrutto non funzionerà bene neanche nel tester - salterà i tick. Sono sorpreso che tu (lo sviluppatore) suggerisca di usare una stampella nel tuo stesso prodotto!

Slawa:
Non avete bisogno di nuove entità. La valutazione dei tick mancati può essere fatta da un contatore già esistente. Si chiama tick_volume

Prova a chiamare copitix per qualche barra, con una richiesta di un numero appropriato di barre di tick-volume. E vedere come questo parametro si confronta con quello che copytix produce.

La differenza è enorme anche su M1! Per non parlare degli altri TF.

 

Un Expert Advisor lavora con un solo grafico. Se OnTick è scritto correttamente e senza freni, l'Expert Advisor non perderà un solo tick

Questo è un dato di fatto.

Se avete bisogno dell'elaborazione simultanea di diversi simboli, eseguite gli Expert Advisors sui grafici degli strumenti richiesti. Uno strumento - un Expert Advisor.

Ma è possibile testare un solo Expert Advisor. Anche questo è un dato di fatto.

E per quanto riguarda il salto dei tick nel ciclo in OnTimer, ha bisogno di una prova riproducibile. Li avete?

 
Slawa:

Un Expert Advisor lavora con un solo grafico. Se OnTick è scritto correttamente e senza freni, l'Expert Advisor non perderà un solo tick

Questo è un dato di fatto.

Se avete bisogno dell'elaborazione simultanea di diversi simboli, eseguite gli Expert Advisors sui grafici degli strumenti richiesti. Uno strumento - un Expert Advisor.

Ma è possibile testare un solo Expert Advisor. Anche questo è un dato di fatto.

Queste dichiarazioni mi fanno rabbrividire. Se vuoi scambiare diversi simboli contemporaneamente, eseguire altrettanti Expert Advisors? Che figata! Forse ho sbagliato qualcosa, pensando che il tester sia multisimbolo.

E per quanto riguarda i tick che saltano nel ciclo di OnTimer avete bisogno di prove riproducibili. Li avete?

Non ho prove (non le ho preparate) della correttezza dell'affermazione che è ovvia per me. Ma cercherò di prepararli. Mi sorprendi sempre di più.
 

Scambiate tutti i simboli che volete da un singolo EA nel tester, ma non cercate di inventare storie altisonanti per poi stupirvi.

Volete un flusso di tick completo e sincronizzato di tutti i simboli in un singolo punto OnTick, che non funziona nel terminale o nel tester. A OnTick arriva il flusso di tick del simbolo corrente di lavoro. Il tester ha un comportamento simile al terminale.

Per accedere al flusso di tick di altri simboli vi vengono offerti dei workaround. Anche se scomodo, non c'è altra via d'uscita.

 

Ho trovato un'interessante funzioneMQL5InfoInteger() nel file di libreria Trade.mqh. Conosco MQLInfoInteger() ma non conosco questo. F1 non reagisce ad esso, ma le sue azioni sembrano essere simili a quelle di MQLInfoInteger().

Questa funzione è necessaria nella biblioteca?

 
Sì, nessun asterisco appare sull'aggiornamento nei preferiti. In particolare per questo ramo.
 
Anton Zverev:

Questo tipo di affermazione mi fa rabbrividire. Vogliamo scambiare diversi simboli contemporaneamente - eseguire altrettanti EA? Che figata! Devo aver sbagliato qualcosa pensando che il tester sia multisimbolico.

Non ho prove (non le ho preparate) della verità della mia ovvia affermazione. Ma cercherò di prepararli. Mi sorprendi sempre di più.

Il tester è un multisimbolo. Puoi scambiare tutti gli strumenti che vuoi, purché siano disponibili sul server.

Ma poiché puoi testare un solo Expert Advisor su un solo simbolo, devi valutare da solo la ricezione dei tick per "altri" simboli. Ecco perché abbiamo proposto un ciclo in OnTimer.

Il grafico-evento dell'indicatore appropriato è anch'esso una soluzione, ed è più diretto, rispetto al ciclo, e non è per nulla stampella. Ma non è chiaro, cosa c'entra IndicatorRelease?

 
Slawa:

Anche l'entrata nel grafico dall'indicatore corrispondente è una soluzione, più diretta di un loop e non è affatto una stampella.Non è chiaro, cosa c'entra IndicatorRelease?

iCustom+IndicatorRelease. Creare entità complesse dal nulla non è probabilmente una stampella. Sui gusti non si discute. La questione è quanto una tale stampella su numerosi agenti andrà a sprecare risorse.

Beh, quasi tutto è figo in 5. La velocità è al top. E qui, scusate, un po' di pelosità totale dove non ve l'aspettate.

 
Renat Fatkhullin:

Per accedere al tick-stream di altri personaggi vengono offerti dei workaround. Anche se scomodo, ma non c'è altra via d'uscita.

Vasiliy ha detto che su FORTS (non nel tester) il meccanismo funziona attraverso la sottoscrizione e BookEvent. In questo modo, si evita di legare l'EA a qualsiasi grafico.

Motivazione: