Ошибки, баги, вопросы - страница 2879
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я его немного переработал
(так то так лучше не пользоваться макросом ;)
Я его немного переработал
(так то так лучше не пользоваться макросом ;)
при тесте максимально запутываю код, чтобы оптимизатор не выбросил пустые циклы
у Вас
// for(int i = 0; i < 5; i++) sum += u.param[i];
оптимизация выполнения MQL может вообще досрочно прекратить первый цикл, т.к. рассчитанные значения не используются , поэтому нужно, что то делать после SpeedTest() с результатами - этот цикл
проверил с закомментированным циклом, не выбросил, а в дргом тесте можно обломаться
маккросы дело вкуса, проверял это макрос неоднократно, работает, не вижу смысла писать тоже самое руками
UPD: вот нашел где читал, как современные компиляторы сейчас работают, довольно познавательно
https://habr.com/ru/post/431688/
https://habr.com/ru/post/47878/
код выдаёт значение iRSI хендлов и тп всегда только 10, но цены и график меняется же.
iRSI(_Symbol,PERIOD_H1,14,PRICE_CLOSE)
билд 2652
код выдаёт значение iRSI хендлов и тп всегда только 10, но цены и график меняется же.
iRSI(_Symbol,PERIOD_H1,14,PRICE_CLOSE)
билд 2652
Это вы получили хендл индикатора, он и есть 10
Далее нужно получить значения на нужном баре
Почитайте справку, или поищите ответы на форуме - их много
Это вы получили хендл индикатора, он и есть 10
Далее нужно получить значения на нужном баре
Почитайте справку, или поищите ответы на форуме - их много
Понял. Буду изучать про буфферы. Странно было ощущение что и так всё работает, может с mql4 спутал.
Странно что через гугл так и не смог найти по запросу- получение данных с индикатора в mql5
Ага по вашему примеру как я понял значение индикатора RSI находится в итоге в переменной вида
проверил:
2020.10.15 21:48:01.401 SpeedTst (EURUSD,H1) tst 1 : : loops=10000000000 ms=10864370
2020.10.15 21:48:12.264 SpeedTst (EURUSD,H1) tst 2 : : loops=10000000000 ms=10862287
не значительная разница, высока вероятность, что если поменять тесты местами, то результаты будут наоборот
в общем не критично
вряд ли правильно включать rand() в тест, т.к. эта функция на порядок больше съедает ресурсов, чем остальные команды.
Думаю так будет правильнее тест:
Результат:
К счастью я все же не на ту лошадку поставил. Юнионы чуть быстрее. С ними удобнее работать, да и код более читабельный.
вряд ли правильно включать rand() в тест, т.к. эта функция на порядок больше съедает ресурсов, чем остальные команды.
вообще некритично
время выполнения rand() постоянное, скорее всего это обычная С++ функция , гуглится "rand c++ source code"
инициализировать обязательно нужно, но если инициализировать константами, можно нарваться на оптимизацию
в общем не понятна нелюбовь к rand()
как вариант инициализироваться чем-нибудь таким:
будет быстро
запустил Ваш скрипт, имхо не правильно
основное время это загрузка кода в кэш и затем в процессор
ну и добавим дискретность системного таймера
получим... почти случайное число
долго тестировать нужно, примерно 100500 раз, имхо
вряд ли правильно включать rand() в тест, т.к. эта функция на порядок больше съедает ресурсов, чем остальные команды.
Думаю так будет правильнее тест:
Результат:
К счастью я все же не на ту лошадку поставил. Юнионы чуть быстрее. С ними удобнее работать, да и код более читабельный.
раз на раз, причем на расстоянии первый выигрыше, (как вроде у первого способа убрал линию конвертацию с шорта в во что-то)
вообще некритично
время выполнения rand() постоянное, скорее всего это обычная С++ функция , гуглится "rand c++ source code"
инициализировать обязательно нужно, но если инициализировать константами, можно нарваться на оптимизацию
в общем не понятна нелюбовь к rand()
как вариант инициализироваться чем-нибудь таким:
будет быстроречь была в том что при замерах надо мерять именно то что требуется, без лишнего
речь была в том что при замерах надо мерять именно то что требуется, без лишнего
нет
если будут повторяющиеся участки кода - получите тестирование оптимизации!
какая разница сколько выполняется rand() ?
да пусть он выполняется 2/3 времени теста, главное чтобы время выполеения rand() было постоянным
ну и имхо, переключать контекст на выполнение системных функцций нужно, Ваш же MQL код будет использовать системные MQL-функции? - смысл идеальный код тестить?