Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 85

 
Nikolai Semko:

È molto interessante...
Avete qualche idea del perché succede in questo modo?

Qual è il meccanismo?

È difficile da dire esattamente. Quando si sa in anticipo che una variabile non cambierà, si può trovare un modo più elegante per memorizzarla, risolvere i loop e altre ottimizzazioni del compilatore.

Quindi vi raccomanderei di usare const il più possibile non solo per l'autocontrollo ma anche per il compilatore.

 
fxsaber:

È difficile dirlo con certezza. Quando si sa in anticipo che la variabile non cambierà, si può trovare un modo più elegante di memorizzarla, scoprendo cicli e altre ottimizzazioni del compilatore.

Pertanto, raccomanderei non solo per l'automonitoraggio, ma anche per il compilatore di usare const il più possibile.

Hai controllato le altre funzioni StringXXX? Forse sono tutti lenti: -D
 
Alain Verleyen:
Avete controllato le altre funzioni StringXXX? Forse sono tutti lenti: -D

Non l'ho fatto. Ne avevo bisogno per questo.

Скрипты: ThirdPartyTicks
Скрипты: ThirdPartyTicks
  • 2018.04.11
  • www.mql5.com
ThirdPartyTicks: Автор: fxsaber...
 

fxsaber:

void OnStart()
{  
  const string Str = "123.456";
  
  BENCH(Print(Bench1(1 e7, Str)));
  BENCH(Print(Bench2(1 e7, Str)));
  BENCH(Print(Bench3(1 e7, Str)));
}

Risultato(rilascio).

1234559999.924436
Time[Print(Bench1(1 e7,Str))] = 1656182
1234559999.924436
Time[Print(Bench2(1 e7,Str))] = 1639179
1234559999.924436
Time[Print(Bench3(1 e7,Str))] = 147382

Come è, questi test non sono del tutto oggettivi a causa della capacità del compilatore di ottimizzare tale codice. Avete una stessa stringa che viene analizzata più volte, mentre avete bisogno di analizzare una stringa diversa ad ogni iterazione

 
Alexey Navoykov:

Come è, questi test non sono del tutto oggettivi a causa della capacità del compilatore di ottimizzare tale codice. Avete una stessa stringa che viene analizzata più volte, mentre avete bisogno di analizzare stringhe diverse ad ogni iterazione

Ho considerato questa circostanza ma non ho steso un codice più pesante. Ha lo stesso risultato.

 

Lo duplicherò qui, si è perso

Forum sul trading, sistemi di trading automatico e test di strategia

FAQ da principianti MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2018.04.18 14:54

Potete dirmi, dopo il test in modalità multivaluta nel tester vediamo il risultato solo ..., tuttavia, non vediamo nulla se non il risultato complessivo.

Da qualche parte ho incontrato o in un articolo o in kodobase un codice che mostra i risultati per ogni simbolo separatamente. Chi sa che cosa?

 
Vitaly Muzichenko:

Lo duplicherò qui, deve essersi perso lì

https://www.mql5.com/ru/articles/4562

Работаем с результатами оптимизации через графический интерфейс
Работаем с результатами оптимизации через графический интерфейс
  • 2018.04.05
  • Anatoli Kazharski
  • www.mql5.com
Продолжаем развивать тему обработки и анализа результатов оптимизации. В предыдущей статье было показано, как визуализировать результаты оптимизации через графический интерфейс MQL5-приложения. На этот раз усложним задачу: выберем  100 лучших результатов оптимизации и отобразим их в таблице графического интерфейса.  Кроме этого, продолжим...
 

Ho trovato questo, ma è un po' diverso.

Grazie!

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Rilasciata la versione beta di MetaTrader 5 build 1795 su MetaQuotes-Demo

fxsaber, 2018.04.24 09:37

Tester
TESTER_EURUSD : real ticks begin from 2018.04.02 00:00:00
TESTER_EURUSD : 2018.04.03 00:00 - 2018.04.24 00:00  last prices absent for 15 whole days, bars built by bid prices
final balance 10000000.00 USD
OnTester result 203343
TESTER_EURUSD,M1: 1407448 ticks, 21591 bars generated. Environment synchronized in 0:00:00.172. Test passed in 0:00:00.905 (including ticks preprocessing 0:00:00.203).


Cosa c'entra l'ultimo prezzo con un simbolo con queste impostazioni?

Devi azzerare SYMBOL_TICKS_BOOKDEPTH, altrimenti (nello screenshot = 9) il tester si aspetterà l'ultimo prezzo (anche se non ce n'è) come sopra nel post.

Quindi dopo "Copia da:" tenete d'occhio questo parametro.
 
L'ho visto nel SB, non sapevo che fosse una possibilità
template <typename T>
struct TMP
{
  T Tmp;
};

TMP<int>Var; // Между типом и названием переменной нет пробела
Motivazione: