Errori, bug, domande - pagina 575

 
Karlson:
Se ci sediamo a parlare di demagogia )), aspetteremo le conseguenze di Eurochif... e la-la...

Cosa c'è di sbagliato nelle conseguenze di Eurochif?

cartapesta:
"Mi dia la lista completa, per favore".
+1
 
La mia proposta è di stare al passo con i tempi, di scrivere qualcosa che sia realistico in questa fase, cioè, sono contrario alla frase "Non dovresti scrivere un multithreading, perché non c'è multithreading", dopo tutto non stiamo scrivendo nanorobot con nanoalgoritmi per commerciare in canali superveloci.L'unica cosa che devi fare quando fai trading con 1-3 spread potenziali (fino a 10-20 punti di spread a 4 cifre), e se non ti piace - un tick è sufficiente per una coppia veloce o anche una barra di un minuto per un sondaggio.
 
Interesting:

Cosa c'è che non va dopo l'EUROCHIFA?

Il capo dollaro... Non ha senso scambiarlo se l'Eurobucks è già scambiato... Poi c'è la possibilità di una crisi... Molte cose sono possibili, fino alla regolamentazione di altre valute...
 
papaklass:
Sì, finché i gestori di eventi OnTick() e OnTrade() e il multithreading negli EA non diventano parametrici, il normale multithreading sarà solo un sogno. Tutta questa roba - OnChartEvent() ecc. non ha senso. È un tentativo di sostituire la parametrizzazione dei gestori di eventi principali. E mentre MQ farà queste sciocchezze, invece di risolvere il problema cardinalmente (parametri di gestori di eventi e multithreading) MT5 sarà allo stesso livello in cui è ora. E non ci sono prospettive speciali per questa piattaforma nella sua forma attuale. (Non visibile ai commercianti).

Non ci si rende conto del livello di problemi per le diverse classi di utenti, dei processi interni dall'implementazione del multithreading per MQL5 e delle implicazioni globali per la piattaforma.

Pensateci per una settimana, trovate cinque condizioni mortali e poi potete pubblicare le specifiche.

Ci siamo impegnati in tale analisi molte volte e per molto tempo, grazie alla quarta generazione della lingua.

 
papaklass:
Il terminale permette di aprire 99 grafici. E aspettare la prossima coppia per vedere cosa succede lì? E se analizzi su barre di minuti in queste condizioni, avrai accesso agli strumenti un'ora e mezza dopo l'ultimo sondaggio. E come fa la gente ad analizzare centinaia di grafici (per il mercato azionario)? E anche MT5 è posizionato come un terminale azionario. Quindi ci sono queste torte. Quindi senza multithreading e parametricità dei gestori di eventi non c'è nulla. O fare trading su 1 - 12 coppie.

Lei è fondamentalmente in errore nel non saperlo:

  • ogni EA/script viene eseguito in un proprio thread indipendentemente dagli altri
  • ogni grafico ha la sua coda indipendente
  • ogni simbolo ha il proprio thread di esecuzione quando si lavora sui grafici; tutti gli indicatori di questo simbolo sono calcolati in questo thread, senza influenzare i processi degli indicatori degli altri simboli
  • il terminale ha molti thread di sistema che fanno il loro lavoro indipendentemente l'uno dall'altro e slegano i colli di bottiglia

Sfortunatamente, le dichiarazioni "datemi il multithreading e basta" non significano che capite veramente i processi esistenti. Abbiamo lavorato molto bene sui processi interni del terminale e abbiamo implementato un sistema molto produttivo e coerente.

 
Loky:

Non c'è niente di chiaro in questa implementazione. Interessante ha articolato correttamente il problema nel post precedente.

"Il linguaggio stesso (il concetto stesso di MQL) non permette di organizzare l'elaborazione di più thread all'interno di un programma"

Una volta che la funzione OnChartEvent() viene eseguita e mentre il codice per elaborare l'evento di arrivo di un nuovo tick di una delle coppie viene eseguito, tutte le altre coppie con i loro eventi onTick avranno un riposo!

Avete davvero bisogno del trading ad alta frequenza sopra 1 secondo?

Penso di no, allora in OnChartEvent() aprite solo le bandiere di stato, e non ci sarà nessun ritardo, e spostate i calcoli stessi in OnTimer() ed elaborate solo quelle bandiere che sono aperte.

 
Urain:

Avete davvero bisogno di un trading ad alta frequenza superiore a 1 secondo?

Penso di no, allora in OnChartEvent() aprite solo le bandiere di stato, e non ci sarà nessun ritardo di flusso, e i calcoli stessi si spostano in OnTimer(), ed elaborano solo quelle bandiere, che sono aperte.

1. e come funzionerà questo progetto nel tester?

2. Ho bisogno di un trade con frequenza non inferiore all'arrivo di una nuova quotazione su una coppia. Posso analizzare il tempo tra le quotazioni e la loro quantità in un certo intervallo.

Vorrei avere "Calcoli" per due coppie diverse allo stesso tempo.

3. Vorrei avere un concetto completamente diverso di toolkit. Il binding al grafico EA è molto fastidioso. Vorrei che fosse al livello della visualizzazione degli oggetti, delle loro proprietà e degli eventi nella finestra del terminale.

Per esempio

- selezionato un simbolo nella finestra delle virgolette, cliccare con il tasto sinistro del mouse -> proprietà ->

poi osserva la lista degli eventi -> seleziona ontick due volte con il tasto sinistro del mouse -> si apre una finestra per inserire il codice mql5

Allo stesso modo, per altri oggetti terminali - grafici, indicatori, ecc.





 
Loky:

1. come funzionerà questo progetto nel tester?

2. Ho bisogno di fare trading con una frequenza non inferiore all'arrivo di una nuova quotazione su una coppia. Forse sto analizzando il tempo tra le citazioni e il loro numero in un certo intervallo.

Vorrei che i "calcoli" fossero eseguiti per due coppie diverse allo stesso tempo.

Poiché i calcoli avranno luogo in OnTimer() non ci sarà un'elaborazione simultanea, ma solo sequenziale.

In questo caso, la coda di eventi non si accumulerà. Gli eventi dei tick di coppie diverse che arrivano durante il calcolo di OnTimer() saranno saltati.

 
papaklass:
.....

Credo che tu ti stia prendendo troppe responsabilità. Come minimo, avresti dovuto essere più educato.

Se avete problemi con il terminale o l'esecuzione di programmi MQL5, allora contattate il posto giusto - servicedesk. Sarà molto più utile.

 
papaklass:

1. Perché tutti i grafici aperti con indicatori nel terminale online girano su un solo core? Ho 4 core sul mio computer e tre sono inattivi. Forse il cloud è da biasimare per queste prestazioni?

Gonewo. Pruf - per favore, vediamo.

2. Perché l'Expert Advisor multivaluta elabora i tick da ogni grafico in modo sequenziale e non da più simboli contemporaneamente?

Deve per forza? E qual è il problema di passare gli eventi necessari dagli indici spia? Beh, non le zecche, ovviamente, ma i segnali, ovviamente. E l'EA ha un solo filo e non ha bisogno di altro.

Non abbiamo bisogno di altri dolori e trappole con la sincronizzazione e i deadlock. Almeno padroneggia l'OOP e poi chiedi il multithreading.

Forse, ho organizzato male l'EA e ci sono funzioni in MT5 che permettono di usare tutti i core? Se sì, spiegate cosa sono queste funzioni e come usarle.

Perché l'Expert Advisor deve utilizzare tutti i core?

Non dovete nemmeno preoccuparvi del multithreading. L'Expert Advisor è una spia e un sincronizzatore di Expert Advisor. La maggior parte delle funzionalità è eseguita dalle spie e il sincronizzatore è responsabile del corretto scambio di dati dipendenti tra le spie.