Немного удивлен :) Решил поделиться и задать НЕ риторический вопрос. - страница 15
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мы же говорим об оптимизаторе, не как множество одиночных прогонов тестера. Концепция оптимизатора совсем в другом. Там существенный выигрышь в скорости достигается за счет незначительных погрешностей в результатах. Для оптимизатора совершенно не нужны модели по тикам. Максимум - по ценам открытия. Оптимизатор - это не много раз тестер, это другое совсем. У вас другой подход, тоже вполне логичный.
Сделав недостоверный тестер (а погрешность там будет никак не 1%), разработчик получит пятно на всю жизнь. И разговор про "в 100 раз быстрее" покажется просто цветочками в сравнении с заявлениями "да где это видано, чтобы оптимизатор имел право что-то загрублять".
Мы наоборот боремся за максимальную точность и ускорение оптимизатора за счет:
- оптимизированности алгоритмов
- максимизации производительности и функциональности MQL5 языка
- многопотоковых, удаленных и облачных агентов
- детальной истории М1 с поддержкой спредов
- использования 64 битных версий
Распараллеливание процесса оптимизации стратегий сразу же дало линейное ускорение по числу расчетных ядер, а язык MQL5 стал огромным шагом вперед по сравнению с MQL4.Сделав недостоверный тестер (а погрешность там будет никак не 1%), разработчик получит пятно на всю жизнь.
Такое ощущение, что на разных языках говорим. Вас ни в чем не упрекаю. Более того, сказал, что разработчики пошли единственно верным путем.
Просто не надо хаять все остальные разработки, что вас не касаются. У меня считалка в 100 раз быстрее MT4-тестера и с погрешностью < 1 % ТОЛЬКО НА МОЕМ СОВЕТНИКЕ. Для других советников мне считалку делать и не надо было.
Понимаете, мне надо было, я и сделал для себя, и никому вообще не навязываю такой путь. Лишь только говорю, что в случае необходимости всегда имеется возможность написать НЕУНИВЕРСАЛЬНУЮ тупую, но очень быструю считалку. А после ее результаты отточить на совсем не тупом, а хорошо сделанном симуляторе реальной торговли - тестере MT4-MT5.
Надо быть идиотом, чтобы критиковать разработчиков за то, что оптимизатор не такой быстрый, как считалка. И надо быть очень упертым, чтобы утверждать, что специально написанная для частного случая считалка не будет быстрее универсального тестера в этом частном случае.
Повторюсь, разработчиков кормят его клиенты - ДЦ, в лице армии трейдеров. МТС-ников кормят тоже свои клиенты - рынки. Каждый занимается своим делом. Просто не надо хаять друг друга. Можно же без пренебрежения и уважительно друг к другу относиться.
Топикстартер начал практически с наезда на разработчиков. Несколько раз говорил, что так нельзя. Разработчики стали перегибать в итоге тоже палку, говоря свое. Давайте просто уважать друг друга.
Подведу итог, который я для себя сделал - МТ5 тестер/оптимизатор НУЖЕН, не важно что для каких-то особых случаев ( как личностных так и прикладных ) он не применим, так как нет ничего идеального. Тчк.
Дискусия для меня лично было полезная. Покрайней мере стало ясно, что с позиции разработчиков то решение которое они реализовали это лучшее. А то что кому-то надо гонять милиарды прогонов - вопрос другой. Надо - ну дак делай сам. И все. Изменить МТ5 оптимизатор в сторону увеличения производительности ( до заоблачных величин ) не реально. В вопросе производительности они сделали многое, почти что все возможное. Молодцы.
Так что я получил ответ на свой не риторический вопрос.
ТО hrenfx: какой ответ Вы хотите получить от Рената? Он отвечает так как это положено разработчику. ИМХО, он все что Вы говорите прекрасно понимает. Но отвечает не именно Вам лично - а всем кто его читает. Так и следует всегда читать ответы разработчиков.
Мы сетуем, на жись, а они софт делают не лично для нас а для потребителей. Видимо если бы мы заплатили им мильёны они бы сделали софт лично для нас.
Так что спасибо. Ответ получен. :)
ТО hrenfx: какой ответ Вы хотите получить от Рената? Он отвечает так как это положено разработчику. ИМХО, он все что Вы говорите прекрасно понимает. Но отвечает не именно Вам лично - а всем кто его читает. Так и следует всегда читать ответы разработчиков.
В свете затронутой темы качества и скорости различных универсальных тестеров забыл упомянуть реального конкурента MQL5 - Stock#.
На самом деле - создание цифро-дробилки (Data-Crusher) или считалки как Вы ее называете, далеко не простая вещь.
Вот как Вы уже выше заметили - разумно перейти от цен выраженных в виде плавающих чисел к ценам в виде целых чисел, так как во первых это сокращает обьем используемой памяти покрайней мере 4 раза, так как USHORT занимает всего два байта и имеет диапазон значений от 0 и до 65535, которого даже для пятизнака впринципе хватает. То есть получается 6553 старых пунктов - больше чем за глаза, при том что DOUBLE занимает 8 байт.
То есть если мы имеем 50 миллионов тиков например на одном символе то ( при том что и время мы также кодируем в USHORT мы получаем размер тика 3*2 = 6 байт ) , то есть 50 * 6 примерно 300 мегабайт. А в случае если мы храним тик в виде DOUBLE и даже если время будет USHORT то получается 2*8+2=20 байт, тогда 20 * 50 это уже как минимум гигабайт.
Ну а если символов скажем 7 то это в одном варианте 7 * 300 = 2.1 гига а во втором 7 гигов . ОП. Если принять за стандарт 4 гига ОП для 64-разрядных машин то получается что мы уже выехали на подкачку 100%.
Ну а если не хранить тики при оптимизации а генерировать их перед прогоном - то оно конечно :)) будет меньше занимать места. Но это уже не цифро-робилка получится.
ОК - идем дальше - допустим мы умные и сгенерировали тики. И в памяти они занимают 2 гига, но если мы старательные и умные но при этом мало смыслим в высокопроизводительности в силу отсутствия опыта- то мы на каждый прогон от начала истории и до конца будем срздавать свой "поток" и гонять. Но вот только на последней "глупости" мы потеряем примерно в четыре раза по произодительности. Вдумайтесь! В четыре раза - это я все про Си конечно же. Так что если кому-то больше чем один захочется иметь супер производительный оптимизатор ( не тестер ) то я готов сделать такую программу. Но это займет время и поэтому хочется денег. :)
То есть вот я только что насчитал в ВОСЕМЬ раз ускорение.
Это примерно 150 миллионов тиков за 12 секунд на DOUBLE в целых числах еще в четыре раза быстрее, то есть 4 секунды прогон все тики на трех символах от 1999 года до наших дней.
Такой тестер у меня есть ( для среды МТ4 даже с поддержкой компилятора с МТ4 ну а С++ его родное ) с мультивалютностью причем. Переделать его под нетто торговлю дело простое. А вот делать компилятор с МТ5 я точно не буду, просто лень. Он кстати поддерживает отладку МТ4 :)) Прямо в студии. Можно туда приделать распределенную обработку на соседних машинах, но будет ли выигрыш по быстродействию надо еще посмотреть.
C чартами, с счетчиками производительности, с загрузкой собственной любой истории ... вобщем прога весьма и весьма не маленькая - на вскидку 10000 строк. :)
Если модераторы не против, выложите здесь скрины примеров вашего тестера. Возьмите какой-нибудь стандартный советник, переделайте его во "все в одном" (без индикаторов) и прогоните в разных оптимизаторах, включая свой. Результаты хотя бы в виде скринов выложите.
Мне свою считалку показывать бессмысленно (выше уже говорил), потому как ее лучше, чем словом "считалка", не назвать. По вашим же заявлением у вас почти (всего не знаю) полноценный оптимизатор. Разработчики свой оптимизатор выложили (даже два - MT4 и MT5). Обсуждать и критиковать его можем. Покажите что-то и от себя. Потенциальные покупатели, возможно, найдутся.
Да и разработчики, возможно, призадумаются, если реально ваш универсальный оптимизатор считает значительно быстрее и с допустимой погрешностью.
Тут еще встает вопрос индикаторов. Лично мне они не нужны для написания советников, но 99% их использует, поэтому разработчики во многом архитектуру своего тестера-оптимизатора затачивали под реалии большинства. Отсюда могут быть некоторые архитектурные потери в скорости для "все в одном" (мог бы быть быстрее), но зато значитеельное преимущество для вариантов с индикаторами (чем могло бы быть).
P.S. В цифрах у вас явная неточность: не может история в INT занимать 2.1Gb, а в DOUBLE - 7Gb. Разница должна быть всегда ровно в 2 (USHORT не хватит) раза. Переход на целочисленную арифметику с ценами дает значительное преимущество, когда в советнике вся логика может быть заменена на целочисленную. Это случается не часто.
Если модераторы не против, выложите здесь скрины примеров вашего тестера. Возьмите какой-нибудь стандартный советник, переделайте его во "все в одном" (без индикаторов) и прогоните в разных оптимизаторах, включая свой. Результаты хотя бы в виде скринов выложите.
Мне свою считалку показывать бессмысленно (выше уже говорил), потому как ее лучше, чем словом "считалка", не назвать. По вашим же заявлением у вас почти (всего не знаю) полноценный оптимизатор. Разработчики свой оптимизатор выложили (даже два - MT4 и MT5). Обсуждать и критиковать его можем. Покажите что-то и от себя. Потенциальные покупатели, возможно, найдутся.
Да и разработчики, возможно, призадумаются, если реально ваш универсальный оптимизатор считает значительно быстрее и с допустимой погрешностью.
Тут еще встает вопрос индикаторов. Лично мне они не нужны для написания советников, но 99% их использует, поэтому разработчики во многом архитектуру своего тестера-оптимизатора затачивали под реалии большинства. Отсюда могут быть некоторые архитектурные потери в скорости для "все в одном" (мог бы быть быстрее), но зато значитеельное преимущество для вариантов с индикаторами (чем могло бы быть).
P.S. В цифрах у вас явная неточность: не может история в INT занимать 2.1Gb, а в DOUBLE - 7Gb. Разница должна быть всегда ровно в 2 (USHORT не хватит) раза. Переход на целочисленную арифметику с ценами дает значительное преимущество, когда в советнике вся логика может быть заменена на целочисленную. Это случается не часто.
Ну если Вы считаете, что USHORT не хватит, то да. Но я считаю, что хватит. Да и кроме того зачем дабл-то - FLOAT в два раза меньше и быстрее.
А что качается скинов - то :
Ага, ладно - покажу если время будет, но не скины - так как это не оконное приложение, а покажу что-то вроде видео.
Покупатели я думаю тут НЕ найдутся. :) А летом, может быть время будет, переделаю его в нетто и выложу "на продажу". Сделаю сайт на английском и выложу. Думаю что продавать его :) ( мне уже на самом деле смешно - вот я еще шараварой тольоко не занимался в жизни ) буду баксов за 30-50. Но хрень интересная - прикиньте - пишешь на МТ4 и отлаживаешь в студии. :)
Да что касается индикаторов то поддерживается все - и iCustom ( сделанно так же ка сейчас в MT5 - если есть такой индикатор на символе с одинаковыми параметрами то он не пересчитывается ) . Вообщем проще сказать чего там нет - ... честно говоря уже не помню, что именно не стал делать, но есть все что нужное в МТ4. Да, и тики там идут от каждого символа в советник, на котором идет тест, а не только от того символа на котором работает советник как сейчас в МТ5.
Да вспомнил - есть даже библиотеки и экспорт ... Вообщем есть все. :)
Целочисленные (да еще если короткие short) данные не могут использоваться ни в каких операциях деления и умножения. Где там хранить дробные значения в 15 знаков? Точно так же опасно и самоубийственно использовать float, у которого абсолютно не хватает точности. Объем накапливаемых погрешностей у float таков, что с его помощью ни в коем случае нельзя рассчитывать индикаторы.
Начинающие разработчики об этом не в курсе. Они еще не видят всего объема сложностей.
Особых преимуществ перевод цен в целочисленные не дает. Да, оно эффективно уменьшает объемы, но во много раз теряет скорость из-за неибежного перекодирования в double. Именно неизбежного, ибо не получится сделать абсолютно всю систему целочисленной, вычислимую математику все равно придется делать в double(точности которого даже не хватает).
Целочисленные (да еще если короткие short) данные не могут использоваться ни в каких операциях деления и умножения. Где там хранить дробные значения в 15 знаков? Точно так же опасно и самоубийственно использовать float, у которого абсолютно не хватает точности. Объем накапливаемых погрешностей у float таков, что с его помощью ни в коем случае нельзя рассчитывать индикаторы.
Начинающие разработчики об этом не в курсе. Они еще не видят всего объема сложностей.