Auguri per MT5 - pagina 70

 
MetaDriver:

Ai compilatori, un suggerimento.

Per favore, fate il trasferimento di piccole strutture per valore, non solo per riferimento. Perché tutta l'aritmetica complessa/razionale è terribilmente lenta.

Per favore, spiegate come il passaggio per riferimento invece della trasmissione del valore della struttura può rallentare? Meglio di tutto con un esempio.


Non appena permettiamo il passaggio di strutture per valore, inizia la vera frenata. Gli sviluppatori useranno inconsapevolmente il passaggio di strutture enormi attraverso lo stack ovunque e i loro programmi saranno rallentati.

 
MetaDriver:

L'eredità multipla è sicuramente il male.

Ы? Come si ereditano due interfacce?

Io sono a favore della fusione con gli sharps piuttosto che con i plus. Lì ha molto più senso, date le generazioni di esperienza.

Almeno con le basi. Tali espressioni sono un palese trolling.
 
MetaDriver:

Una richiesta ai compilatori.

Per favore, fate il trasferimento di piccole strutture per valore, non solo per riferimento, altrimenti tutta l'aritmetica complessa/razionale è terribilmente lenta.

Basta impostare un limite (a vostra discrezione - 32 o 64 byte) dopo il quale il compilatore non passa la struttura passata per valore e richiede rigorosamente il passaggio per riferimento.

Sarebbe anche molto bello poter restituire piccole strutture come risultato di una funzione.

--

Voto anche per il sovraccarico dell'operatore. Spero di riuscire a farlo un giorno. Sembra che il corso "fondere con C++" sia preso e generalmente sostenuto.

La sintassi funzionale per le operazioni aritmetiche con oggetti matematici non standard è molto scomoda, e inoltre rallenta molto,

perché non può essere sostituito da sostituzioni in linea e richiede il dispendio di chiamate di funzione.

No. Strutture solo per riferimento. Nessuna eccezione. Dacci qualche cifra per i freni in modo da poter stimare la portata della catastrofe.

Avevamo un'opzione per restituire strutture come risultato di una funzione. Alla fine abbiamo annullato questa opzione a causa dell'ambiguità dell'implementazione (il nostro debug interno). Abbiamo deciso che, poiché le strutture sono passate per riferimento, passiamo la struttura risultante come parametro.

Il sovraccarico degli operatori è possibile. Ma non ora.

 
Sviluppatori: per favore, fate funzionare OnTimer() negli indicatori che non sono collegati a un grafico.
 
Lizar:
Sviluppatori: per favore, fate funzionare OnTimer() negli indicatori che non sono collegati al grafico.
+1000
 
stringo:

1. no. strutture solo per riferimento. Nessuna eccezione. Per i freni, date delle cifre, così possiamo stimare la portata del disastro.

2. Avevamo un'opzione per restituire strutture come risultato di una funzione. Alla fine abbiamo annullato questa opzione a causa dell'ambiguità dell'implementazione (i nostri battibecchi interni). Abbiamo deciso che, poiché le strutture vengono passate per riferimento, passiamo la struttura risultante come parametro.

3. il sovraccarico degli operatori è possibile. Ma non ora.

1. :) Catastrophe è cancellato. L'ho misurato e sono rimasto molto sorpreso, i freni non ci sono (lo script è nel trailer). Ma la sintassi in molti casi è più conveniente, quando si possono sostituire le espressioni nei parametri. Sì... Beh, posso vivere con questo. È sopportabile. La cosa principale è che non rallenta.

Ma possiamo riassegnare le strutture? L'assegnazione delle strutture è perfettamente legale, quindi permettiamo anche questo. Il programma è molto più leggibile quando l'assegnazione del risultato dell'esecuzione della funzione è sintatticamente unificata:

Y = Func(X); - sembra molto più chiaro quando si legge brevemente il codice che Func(X, Y); // si dovrebbe indovinare che Y è un out-parameter.

No, a Straustrup non piacerebbe la tua soluzione... non è giusto in qualche modo... :)

3. Oh, che bello. Grazie per questo.

File:
 
MetaDriver:

Possiamo anche riassegnare legalmente le strutture, quindi permettiamo anche la riassegnazione. Il programma è molto più leggibile quando l'assegnazione del risultato di una funzione è sintatticamente unificata:

Ti dirò un segreto. Fallo e basta.

Si è scoperto che non l'hanno tagliato. Si possono restituire strutture semplici. Ma tenete presente che in questo caso dovrete aggiungere 2 copie extra - copiare nella struttura del tempo sullo stack e copiare dalla struttura del tempo nella struttura del risultato.

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

Perché la classe CExpert dalla libreria standard è dichiarata così nella documentazione,

class CExpert : public CObject

e nel file Expert.mqh vediamo questa dichiarazione?

class CExpert : public CExpertBase
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
C'è bisogno di un articolo sulle classi per creare e testare strategie di trading...
 
Lizar:
Sviluppatori: per favore fate funzionare OnTimer() negli indicatori che non sono attaccati al grafico.
Al momento è improbabile. La funzione per impostare il timer dovrebbe essere chiamata ChartSetTimer(), questo nome riflette il suo comportamento più accuratamente.
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Работа с событиями / EventSetTimer - Документация по MQL5