![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что то у вас не то там. Сейчас попробовал массив 10000000 - в момент отмасштабировался.
Я не знаю, у кого вообще тормозят ресайзы. Вот первые и последние 10 тысяч (1-10000 и 140000-150000) из 150 000 ресайзов, время на них, как видно, от длины массива никак не зависит, ни параболически, никак по-другому. На первых 7-10 тысячах видно, что время на resize вообще тратится не каждый раз, что подтверждает тезис о том, что память выделяется блоками по несколько элементов.
По оси ординат время в миллисекундах, уходящее на ресайз восьми буферов, скрипт ниже. Ни о каких подвисаниях на 30 секунд, описанных выше очевидцами, речи нет и в помине.
от длины массива никак не зависит
Поправлюсь: растет такими вот "уплотняющимися" ступеньками по 15-16 миллисекунд через каждые 10000-20000 шагов. Например, постепенное уплотнение видно на 1 графике.
Объяснить явление пока затрудняюсь.
Я не знаю, у кого вообще тормозят ресайзы. Вот первые и последние 10 тысяч (1-10000 и 140000-150000) из 150 000 ресайзов, время на них, как видно, от длины массива никак не зависит, ни параболически, никак по-другому. На первых 7-20 тысячах видно, что время на resize вообще тратится не каждый раз, что подтверждает тезис о том, что память выделяется блоками по несколько элементов.
По оси ординат время в миллисекундах, уходящее на ресайз восьми буферов, скрипт ниже. Ни о каких подвисаниях на 30 секунд, описанных выше очевидцами, речи нет и в помине.
Если SetAsSerias() туда сюда и ресайз на один бар на каждом новом баре, то у меня тормозит (тестировать и оптимизировать не реально), и не только у меня так, однако некоторые утверждают что ничего не тормозит - вот что интересно.
Если SetAsSerias() туда сюда и ресайз на один бар на каждом новом баре, то у меня тормозит (тестировать и оптимизировать не реально), и не только у меня так, однако некоторые утверждают что ничего не тормозит - вот что интересно.
Я не пытался вычислить механизм ресайза, а зависимость в моем исследовании, очевидно, была статистической. И на твоих графиках видно, что тенденция к росту есть.
Но у меня ресайзы были массовыми, а тут они единичные. Конечно, все иначе.
Да и исследовал я до больших размеров, кстати. Вот и посмотри, что будет при размере буфера в несколько миллионов (грубо говоря, 3 года - миллион баров на М1).
Что то у вас не то там. Сейчас попробовал массив 10000000 - в момент отмасштабировался.
Да вы правы, наверно какая то ошибка была.
Провел небольшой эксперимент с виртуальными буферами, возможно заинтересовавшимся темой будет интересно. Тут ArrayResize будет вызываться, не на каждом новом баре, а через определенный промежуток sizeStep. Так же iMAOnArray работает корректно, если ей не пользоваться можно вообще избежать установки буферов как серий. Этот индикатор в точности повторяет мой индикатор mabyma. Если будете сравнивать, обратившие внимание что в прикрепленном файле используется простое скользящее средние, а в mabyma подефолту ленейно взвешенное.
Я не пытался вычислить механизм ресайза, а зависимость в моем исследовании, очевидно, была статистической. И на твоих графиках видно, что тенденция к росту есть.
Но у меня ресайзы были массовыми, а тут они единичные. Конечно, все иначе.
Да и исследовал я до больших размеров, кстати. Вот и посмотри, что будет при размере буфера в несколько миллионов (грубо говоря, 3 года - миллион баров на М1).
От миллиона до 1001000 в пределах 100 миллисекунд на операцию
Поставил 10 миллионов - скрипт залез в подкачку (оперативы в машине 1ГБ), попутно выпихав туда все запущенные в системе программы, и завис почти намертво. Короче ждать я не стал.
Т.о. пока хватает памяти все ресайзится быстро, когда лезет на диск - все, до свидания. Подозреваю, что та же ситуация и со встроенными буферами индикаторов.
оперативы в машине 1ГБ
Несерьезно. Надо 3. А лучше 64-бит и 8 )).
4 гига ддр3 стоят уже 800 рублей
а 2 x 4 гига 1000...
Несерьезно. Надо 3. А лучше 64-бит и 8 )).
4 гига ддр3 стоят уже 800 рублей
а 2 x 4 гига 1000...
Как пойдет на трейдинге с первого профита купим =)