Programmer 33 Author Share Posted August 22, 2010 На сайте http://articles.mql4.com/ru/80 написано: Особенности работы тестера стратегий на истории - Некоторые функции отрабатываются/пропускаются без вывода Это Sleep(), Alert(), SendMail(), SpeechText(), PlaySound(), MessageBox(), WindowFind(), WindowHandle(), WindowIsVisible() Это не совсем точно. Посмотрите логи в ходе тестирования советника на истории. Ф-я Alert() отрабатывается и выводится в них. Quote Link to post Share on other sites
ReasonMan 1 Share Posted August 25, 2010 Я придерживаюсь своей т. зр.: Alert() и Print() замедляют оптимизацию.Поясню. Когда происходит компиляция кода в рабочий файл *.ex4 компилятор выбрасывает все закомментированные строки. Поэтому, если Alert() и Print() закомментированы, то повлиять они никак на оптимизацию не могут. Идём далее. Пусть Alert() и Print() не закомментированы. Действительно, при оптимизации в логи ничего не выводится, но за счёт чего это достигается? Ведь, эти ф-ии всё же присутствуют в исполняемом файле. Достигается вот за счёт чего: программа-оптимизатор, выполняя Ваш код, каждый раз, когда натыкается на ф-ю, которая должна быть проигнорирована, принимает решение об игнорировании оной. Это занимает процессорное время, соответственно, тормозит оптимизацию. Логично, согласен. По тестам как раз и получается разница в несколько процентов видимо из-за этого. Только что проверил. Alert действительно выводится в логи в режиме тестирования. М-да, таки не всему написанному можно верить... Спасибо за пояснения! Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 30, 2010 Логично, согласен. По тестам как раз и получается разница в несколько процентов видимо из-за этого.Только что проверил. Alert действительно выводится в логи в режиме тестирования. М-да, таки не всему написанному можно верить... Спасибо за пояснения! Нет проблем. Обращайтесь! Quote Link to post Share on other sites
Aleks54321 0 Share Posted December 15, 2020 Привет! Подскажите, пожалуйста, оптимизировал советник полгода назад за 2005 - 2015 года и подобрал хороший сет за 2000 - 2020 года. Сделки на реале совпадают с тестером. Сейчас прогнал этот сет у того же брокера, с тем же спредом и на том же периоде, а результаты другие, намного хуже. Брокер Альпари, хотя у других брокеров то же самое выявил. В чем может быть проблема. Quote Link to post Share on other sites
Ugar68 372 Share Posted December 15, 2020 6 часов назад, Aleks54321 сказал: Привет! Подскажите, пожалуйста, оптимизировал советник полгода назад за 2005 - 2015 года и подобрал хороший сет за 2000 - 2020 года. Сделки на реале совпадают с тестером. Сейчас прогнал этот сет у того же брокера, с тем же спредом и на том же периоде, а результаты другие, намного хуже. Брокер Альпари, хотя у других брокеров то же самое выявил. В чем может быть проблема. По описанию похоже что проблема в советнике. Особенно если он старый. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
BauBok 1 Share Posted January 11, 2021 (edited) Поделюсь определенным опытом. 1. Начинал оптимизирвоать а MT4 генетическим алгоритмом. Штука прикольная, но работает не очень быстро. 2. Написал свой тестировщик на Delphi. Загружаю графики и тестирую стратегию. Затем эти коэффициенты дают приблизительно похожие результаты с тестированием на MT4. Получается можно писать свои тестировщики на разных языках. 3. Подбор параметров (оптимизацию) сначала осуществлял генетичесиким алгоритмом, потом нашел более гениальный алгоритм- называется - метод роя частиц. 4. Все алгоритмы оптимизации можно паралелить на многоядерных машинах, я запускал и на 32 ядерных. Скорость тестирования и оптимизации - аховая, по сравнению с пунктом 1. Edited January 11, 2021 by Capman Quote Link to post Share on other sites
Ugar68 372 Share Posted January 15, 2021 11.01.2021 в 18:32, BauBok сказал: Поделюсь определенным опытом. 1. Начинал оптимизирвоать а MT4 генетическим алгоритмом. Штука прикольная, но работает не очень быстро. 2. Написал свой тестировщик на Delphi. Загружаю графики и тестирую стратегию. Затем эти коэффициенты дают приблизительно похожие результаты с тестированием на MT4. Получается можно писать свои тестировщики на разных языках. 3. Подбор параметров (оптимизацию) сначала осуществлял генетичесиким алгоритмом, потом нашел более гениальный алгоритм- называется - метод роя частиц. 4. Все алгоритмы оптимизации можно паралелить на многоядерных машинах, я запускал и на 32 ядерных. Скорость тестирования и оптимизации - аховая, по сравнению с пунктом 1. Генетический алгоритм не очень хорошая штука. Он пропускает проходы. Не всегда находит лучший. Простой перебор всех проходов точно ничего не пропустит. Генетику и другие методы выбора проходов стоит применять когда их количество большое и жизни не хватит дождаться окончания оптимизации. Тестер МТ4 старый и не обновляется давно. Метаквоты на него забили. На все обращения они рекомендуют переходить на МТ5. Тестер МТ5 действительно гораздо больше может. При оптимизации не только может раскидать проходы по потокам, но и задействовать сетевые агенты. Я бы не сказал что тестер МТ5 быстрый, но возможностей гораздо больше чем у старшего брата МТ4. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
BauBok 1 Share Posted February 6, 2021 15.01.2021 в 18:04, Ugar68 сказал: Генетический алгоритм не очень хорошая штука. Он пропускает проходы. Не всегда находит лучший. Простой перебор всех проходов точно ничего не пропустит. Генетику и другие методы выбора проходов стоит применять когда их количество большое и жизни не хватит дождаться окончания оптимизации. Тестер МТ4 старый и не обновляется давно. Метаквоты на него забили. На все обращения они рекомендуют переходить на МТ5. Тестер МТ5 действительно гораздо больше может. При оптимизации не только может раскидать проходы по потокам, но и задействовать сетевые агенты. Я бы не сказал что тестер МТ5 быстрый, но возможностей гораздо больше чем у старшего брата МТ4. Не ну, конечно, в моем случае перебор не реален. Хотя может и возможен с больши шагом. Насчет Mt5 интересная информация. Вообще лучше оперировать конкретными числами. Например, временем одного прохода, или частотой подбора "W". Т.ь сколько проходов за секунду. В мт4 это число для 3х летнего графика будет меньше единицы W~0.03, т.к там может и минуту обсчитытвать один график. У меня получается на Xiaomi Air c 4мя потоками и по моей методе W¬3-10 а то и больше. Quote Link to post Share on other sites
Ugar68 372 Share Posted February 6, 2021 5 часов назад, BauBok сказал: Не ну, конечно, в моем случае перебор не реален. Хотя может и возможен с больши шагом. Насчет Mt5 интересная информация. Вообще лучше оперировать конкретными числами. Например, временем одного прохода, или частотой подбора "W". Т.ь сколько проходов за секунду. В мт4 это число для 3х летнего графика будет меньше единицы W~0.03, т.к там может и минуту обсчитытвать один график. У меня получается на Xiaomi Air c 4мя потоками и по моей методе W¬3-10 а то и больше. В МТ4 моделируются тики по алгоритмам в зависимости от формы бара. И сохраняются в fxt файл. Далее тестер работает с этим файлом. А какой в Вашем тестере алгоритм моделирования тиков? И как тестер потом работает с ними? Или Ваш тестер только по истории баров работает без тиков? Или Вы сравниваете с тестером МТ4 в режиме "по ценам открытия..."? Тогда он то же с целыми барами работает, но всё же сначала создаёт fxt файл, но уже в нём тик это бар. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
BauBok 1 Share Posted February 9, 2021 07.02.2021 в 00:10, Ugar68 сказал: В МТ4 моделируются тики по алгоритмам в зависимости от формы бара. И сохраняются в fxt файл. Далее тестер работает с этим файлом. А какой в Вашем тестере алгоритм моделирования тиков? И как тестер потом работает с ними? Или Ваш тестер только по истории баров работает без тиков? Или Вы сравниваете с тестером МТ4 в режиме "по ценам открытия..."? Тогда он то же с целыми барами работает, но всё же сначала создаёт fxt файл, но уже в нём тик это бар. Я считаю, что лучше работать с барами (я лично испольую 30 минутные) Т.ь. всего 4 значения Open Close Highe Low . D MT4 режим тестирования соответствует по ценам открытия. Таким образом тестироваие происходит намного быстрее и собственно сделки начинать в момомент прихода(окончания) бара. Учитывать все тики занятие бксполезное, все равно все индикаторы считаются по барам. Такая методика значительно ускоряет процесс оптимизации советника. Quote Link to post Share on other sites
Ugar68 372 Share Posted February 9, 2021 1 час назад, BauBok сказал: Я считаю, что лучше работать с барами (я лично испольую 30 минутные) Т.ь. всего 4 значения Open Close Highe Low . D MT4 режим тестирования соответствует по ценам открытия. Таким образом тестироваие происходит намного быстрее и собственно сделки начинать в момомент прихода(окончания) бара. Учитывать все тики занятие бксполезное, все равно все индикаторы считаются по барам. Такая методика значительно ускоряет процесс оптимизации советника. Но тогда и советник должен всё делать только в моменты открытия новых баров. Даже применение обычных стопов и тейков под большим вопросом. А тестер МТ4 придуман как универсальный инструмент. Именно по этому он использует fxt файл посредник, а не бежит прямо по файлу истории. Хотя к файлам истории других символов он может обращаться, но моделировать тики по ним не может. Тестер МТ5 сильно отличается. Он не только может обращаться к файлам истории других символов, но и моделировать тики по всем используемым символам. А самое интересное что он умеет работать по реальным тикам, если брокер предоставляет их историю. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
MG4 3,094 Share Posted February 9, 2021 2 часа назад, BauBok сказал: Я считаю, что лучше работать с барами (я лично испольую 30 минутные) Т.ь. всего 4 значения Open Close Highe Low . если стоп и тейк укладываются в high - low одного бара, кто будет вперед? стоп или тейк? Quote — Маржинкольщик наколи мне маржинкол. Только качественная аналитика в ветке ПАММ-а MTSavg Link to post Share on other sites
DVargo 210 Share Posted February 9, 2021 (edited) 15 часов назад, Ugar68 сказал: Именно по этому он использует fxt файл посредник, а не бежит прямо по файлу истории. Хотя к файлам истории других символов он может обращаться, но моделировать тики по ним не может. файлы fxt, так и файлы истории можно собирать самому. Я на заказ делал людям нестандартные таймфреймы, 1с, 30 с и др., тики как бар. Некоторые делают экзотику, например в 12 мин, 6 с и т.д. - для чего это им надо не знаю. Раз делал потиковое моделирование в Excel на заказ. Там чел новости обыграть хотел. Я его сразу предупреждал, что результаты тестов очень сильно будет от реала отличатся. офквоты уже лет 10 как вылечить не могут. И счета иногда на новостях в аут на пару минут уходят. Каждый изгаляется как может. Не всем хватает возможностей МТ4 штатных, а МТ5 не везде есть, да и люди в основном не программисты. Edited February 10, 2021 by Capman п.1 1 Quote А не пойти ли бы вам Link to post Share on other sites
BauBok 1 Share Posted February 9, 2021 15 часов назад, Ugar68 сказал: ... Привет, в общем про fxt файл посредник я узнал только сегодня, из ваших писем, и в целом я не вижу разницы откуда читать историю из файла некого fxt или файла истории... я просто скажу как у меня и какая логика. Если сделки происходят с частотой раз в день или 2-3 раза в день, то вполне можно открывать сделки только в момент прихода 30 мин. баров. Стопы и тейк профиты при моделировании отрабатываются значениями баров H/L с учетом спреда. Спред выставляется экспериментальный из реальных наблюдений и одинаковый для всей истории -точнее не абсолютное значение, а его относттельное значение. Понятно, что срабатывание стоплоса/тейкпрофита моделируется с точностью в пределах длительности бара - 30 мин, но для задачи моделирвоания это не важно, главное знать, что событие произошло. В целом эта методика правильно моделирует реальную ситуацию, помоему. 12 часов назад, DVargo сказал: А вот тестить на ноутах это абсдец. Их системы охлаждения не предназначены для убивания процессора. почему-то ноутов стало жалко, современные ноуты уже без охлаждения, дают фору любым 32 ядерным стационарникам.. по отношению производительность/цена. В общем поясните, тогда какой путь не тупиковый. Вообще, любое предсказание курса из общих принципов это подбор параметров моделирующей системы. 15 часов назад, MG4 сказал: если стоп и тейк укладываются в high - low одного бара, кто будет вперед? стоп или тейк? Смотрите, данная стратегия подразумевает не частые сделки 1-3 в день и естественно надо брать стоплосы и тейкпрофиты достаточно большие, чтобы они редко попадали в предел одного бара... . Весь смысл в том, чтобы ускорить процесс подбора параметров по длительному промежутку исторических данных. Если работать на коротких дистанциях, то надо брать бары покороче чтобы такой ситуции не было как вы описываете. Я так думаю. Quote Link to post Share on other sites
DVargo 210 Share Posted February 10, 2021 (edited) 10 часов назад, BauBok сказал: почему-то ноутов стало жалко, современные ноуты уже без охлаждения, дают фору любым 32 ядерным стационарникам. Ваш хаоми ват 40-45? А например у AMD Ryzen 9 3950X BOX 105 ват. Вы знаете за счет чего такая разница и куда ваты идут. (Ноут полная мощность и чисто процессор, если что). Ваш хуоме за 60К (ориенировочно) 4 ядра по 1,4-1,6? Ryzen 9 3950X 16 ядер по 3,5. и рязань стоит 70К + мать, видюха, память, блок - около 20К, и того 90К. Монитор, клава, мыш - возможно у вас осталась от предыдущего компа, но можно и БУ. ибо не критично. Я что-то пока 16 ядерных ноутов в продаже не видел. 8 ядер Acer Nitro 5 AN515-44-R78Y 8 по 2,9 стоит 73К. Edited February 10, 2021 by Capman п.1 1 Quote А не пойти ли бы вам Link to post Share on other sites
DVargo 210 Share Posted February 10, 2021 (edited) Забыл, по поводу fxt файла. А разница есть - в зависимости от тикового объема или реальных тиков fxt файл может быть очень большим. У меня файлик минуток 50 мб за 2,5 года (870К минуток). Такой же fxt будет в районе гига или больше, проверять надо. не делал давно большие тесты. И потом вопрос, а как мы с ним работаем - загоняем в память и грузим оперативку и если пишем свой тестер не на мт4, то можно резать на отдельные файлики, например по месяцам, и уже с ними работать. А это уже оптимизация времени теста. Не все так однозначно. Да и цифры странные 50М - минутки. 1Г или около - тики. разница 20раз. В сутках 1440 минут и около 100К тиков - разница в 70 раз. Но в миутках - 4 котировки (дабла), время, объем. В тиках 2 + время. По памяти не помню структуру файла, забывается все. Так что появился такой вопрос - скорость чтения и записи на винт и объем оперативки. Это для МТ4. А вот если МТ5 и мультивалютник - вот этого я не знаю, не пробовал. Там файлик больше будет и на сколько - количество пар? И работает ли мт5 с одним файлом. Что-то как-то с этим не парился. Тестил на мт4 и переписывал код под мт5. На мт5 тестил только на работоспособность. Надо будет проверить, когда не лень будет. Если это так, а по логике должно быть так, то уже критично размер оперативки. А битность у нас 64 - то есть пределом в 4Гига мы не ограничены. Edited February 10, 2021 by DVargo Quote А не пойти ли бы вам Link to post Share on other sites
BauBok 1 Share Posted February 10, 2021 (edited) 7 часов назад, DVargo сказал: .. Файлы истории скачиваю прям из MT4 , из раздела архивные данные, если используете спец ссылки и гигабайтные файлы, то ок, у меня файлы 30 мин выходят порядка 2-4 MБ, в этом и преимущество отказа от тиковой торговли и перхода на баровые, таскать гигабайтник по памяти как то неудобно. Вот как раз AMD Ryzen 9 3950X 16 ядерный у меня и есть и ноут Xiaomi air, первый насобирали за 120 т, второй стоит 40, производительность у них отличается в зависимости от алгоритма в 2 -3 раза, мне ваши ваши перемножения никчему, у меня есть конкретные цифры скорости рассчета по методу роя частиц, в многопотоковом режиме. Теперь об интересном. Метод роя частиц при 10-20 подбираемых параметрах, конечно, на AMD Ryzen дает хорошие результаты, но Xiaomi air находит результаты не хуже... понятно, что в такой системе трудно найти абсолютный оптимум функции оптимизируемой. Но факт остается фактом -Xiaomi air хоть и 2-3 раза слабее, все равно позволяет локально находить хорошие сеты. НАсчет времени жизни ПАМА понятно, что это зависит от того какие управляющий выставил условия остановки в случае просадок, где разместил роботов, насколько часто обновляет стратегиии, я считаю, что можно найти супер способных роботов но их все равно надо подстраивать под рынок периодически... либо делать отбор... в общем посмотрим. Главное не нервничать, делиться опытом- в разумных пределах конечно. Edited February 10, 2021 by Capman Quote Link to post Share on other sites
DVargo 210 Share Posted February 10, 2021 (edited) Я не знаком ни с методом роя частиц, ни с тем как вы его воплотили в коде. А тестировать процессоры на производительность я умею, и мои тесты как минимум сходятся с теорией. Например Ryzen 3200 4х3,6ГГц в производительности дает как I-5 4х3 ГГц. Вот это очень похоже на правду. И где гарантия что у вас там дополнительно какого-то интерфейса нет или умеете грузить все ядра - где скрины тестов, это у вас теория с практикой не сходится, а у нас все по теории. И рад за вас что вы додумались не убивать ноут тиками, ибо не справляется. на 2-3 раза слабее очень уж сомнения, вот 4-8 где то похоже, и то если в турбо, и не дольше 2-3 часов. По теплопакету раз в 5-6 получается. и вы там что-то говорили про "производительность/цена" - где расчет или наоборот цена/производительность? 4 часа назад, BauBok сказал: у меня есть конкретные цифры скорости рассчета по методу роя частиц, в многопотоковом режиме. Так ознакомьте нас с ними, а то у нас все по другому, и скрины загрузки проца приложите. Edited February 10, 2021 by DVargo Quote А не пойти ли бы вам Link to post Share on other sites
BauBok 1 Share Posted February 10, 2021 2 часа назад, DVargo сказал: Так ознакомьте нас с ними, а то у нас все по другому, и скрины загрузки проца приложите. Тут возникает вопрос как тестировать железо, чтобы это был тест приближенный к полевым условиям (с учетом скорости обращения к памяти). Если взять тестеры из интернета, например, https://www.guru3d.com/files-get/cinebench-15-download,1.html то он действительно дает превосходство CPU у Ryzen и Xiaomy Air в 26 раз 1. 4156 cb - на AMD Ryzen 9 3950 16-Core - вот только протестил 2. 156 cb - 2 Core Intel Core m3-7Y30 Если я беру задачу оптимизации, в качестве тестовой функции можно взятьфункцию Шейфеля, ее оптимум известен Xi=420.9687.... см. сайт https://www.sfu.ca/~ssurjano/schwef.html можно взять 15 размерную - с 15 неизвестными . И делаю программу на Delphi 7 поиском решения методом роя частиц то при 100% загрузке 1) Выдает скорость поиска 1600 частиц/ms (30 потоков) второй 500 частиц/ms (4 потока) Оба компьютера работают на полную загрузку можете поверить на слово. Вот такая петрушка получается. Если кто понимает в чем дело, напишите. Если есть программисты попробуйте найти оптимум этой функции на своем языке программирования, свой тест на Delphi я пока выкладывать не хочу...просто сообщаю результаты. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.