Приветствую всех!
Надеюсь, вам понравилась статья.
Буду рад выслушать советы по переводу UGA на рельсы ООП.
Проверить-бы, будет ли вот это
MathSrand((int)TimeLocal());
работать при оптимизации?
Вы не запускали свою библиотеку в тестере?
1) Проверить-бы, будет ли вот это
MathSrand((int)TimeLocal());
работать при оптимизации?
2) Вы не запускали свою библиотеку в тестере?
1) Не вижу причин, что бы не работало.
2) В двух словах на этот простой вопрос исчерпывающего ответа дать не получится.
Трейдерские задачи оптимизации можно условно разделить на 2 типа: а) "Локальные задачи" и б)"Глобальные задачи".
а) Локальные - совокупность всех действий трейдера/ТС (которые в свою очередь, тоже могут быть разбиты на локальные задачи), выполняемых на каждом тике. Примером этого типа является первая задача в статье (решение уравнений, выбор оптимальной цены опциона и др. подобные задачи). Не требуют наличия ценовой истории "будущего".
б) Глобальные задачи - оптимизация некоей функции от всех локальных задач (это может быть итоговая за отчетный период прибыль, просадка, МО и т.д.). Требуется вся ценовая история на оптимизируемом периоде времени. Штатный тестер выполняет задачи именно этого типа.
UGA проектировался так, что бы никак не зависеть от штатного тестера и может быть использован как для глобальных, так и для локальных задач без изменения кода алгоритма, в том числе и в "самодельных" тестерах. В рамках же штатного тестера UGA может быть использован без изменений только в локальных задачах. Для глобальных задач в тестере его нужно модифицировать.
У меня пока не было необходимости использовать алгоритм оптимизации в тестере, имеющий свой алгоритм оптимизации.
Опишите Вашу задачу в общих чертах и мы рассмотрим здесь пути её решения.
Спасибо, joo, - интересная работа!
Появились вопросы о практическом применении генетического алгоритма
В статье описаны:
- поиск максимума/минимума функция двух переменных на заданном интервале
- поиск максимума функции Profit (пример с ЗигЗаг'ом)
Приведите, плз, примеры практических задач трейдинга, где по Вашему мнению алгоритм может быть полезен
- 2010.05.25
- Andrey Dik
- www.mql5.com
Опишите Вашу задачу в общих чертах и мы рассмотрим здесь пути её решения.
Задача простая: Хочу чтобы функ. srand() устанавливала генератор в случайную отправную точку при каждом прогоне тестера.
Окзалось что MathSrand((int)TimeLocal()) устанавливает генератор в предыдущее(одно и тоже) начальное состояние при различных многократных прогонах тестера.
Задача простая: Хочу чтобы функ. srand() устанавливала генератор в случайную отправную точку при каждом прогоне тестера.
Окзалось что MathSrand((int)TimeLocal()) устанавливает генератор в предыдущее(одно и тоже) начальное состояние при различных многократных прогонах тестера.
TimeLocal отдаёт время в секундах. При тестировании это будет одно и то же сгенерированное тестовое время.
Попробуйте использовать GetTickCount. Он честно отдаёт миллисекунды и ничего не эмулирует.
При тестировании это будет одно и то же сгенерированное тестовое время.
О! Спасибо.
Спасибо, joo, - интересная работа!
Появились вопросы о практическом применении генетического алгоритма
В статье описаны:
- поиск максимума/минимума функция двух переменных на заданном интервале
- поиск максимума функции Profit (пример с ЗигЗаг'ом)
Приведите, плз, примеры практических задач трейдинга, где по Вашему мнению алгоритм может быть полезен
Экономические задачи вообще и задачи трейдера в частности в большинстве своем имеют оптимизационный характер.
Трейдеры находятся в постоянном поиске оптимальных параметров своих ТС. Вот далеко неполный список видов задач, в решении которых поможет UGA:
-поиск оптимальных параметров индикаторов
-поиск оптимальных параметров ММ
-поиск оптимальных настроек фильтров (любых, в том числе и поиск коэффициентов в цифровых фильтрах) в индикаторах
-обучение нейронных сетей любой топологии и произвольного размера
-обучение комитетов сетей любых топологий и произвольных размеров. (комитет - группа независимых от друг друга сетей)
UGA можно использовать как для решения отдельных приведенных выше задач, так и все вместе сразу. Так, для того, чтобы помочь понять всю мощь UGA, скажу, что возможность решения последнего в списке вида задач, позволяет создавать модели мозга (как известно, мозг состоит из отделов).
Список задач можно продолжать долго, достаточно взглянуть на ветки форума.
Классная штука и грамотно написана. Я сам тоже игрался с генетической оптимизацией, но к сожалению выгод мало нашёл. ГА обычно рассматривают как метод глобальной оптимизации. Это всё так если у вас уйма времени чтобы иметь дело с очень большим колониями. Но при ограничении времени (размера колоний), ГА как и методы градиентного спуска сходится к локальному миниму, причём довольно медленно. Конечно, по сравнению с методами тупого перебора всех возможных комбинаций входных параметров ГА даёт неоспоримое преимущество в скорости. Одним из широких применений ГА является обучение многослойных нейронных сетей с их большим количеством коэффициентов. Такие сети имеют огромное количество локальных минимумов. ГА почему-то считают понацеей этого зла. Но на самом деле понацеей является применяемый инструмент, т.е. многослойная сеть в данном случае. Намного проще выбрать другой инструмент способный на высокую точность классификации (типа buy/sell/hold) или регрессивной экстраполяции при простой и однозначной оптимизации ;-)
1) Классная штука и грамотно написана.
2) Я сам тоже игрался с генетической оптимизацией, но к сожалению выгод мало нашёл. ГА обычно рассматривают как метод глобальной оптимизации. Это всё так если у вас уйма времени чтобы иметь дело с очень большим колониями. Но при ограничении времени (размера колоний), ГА как и методы градиентного спуска сходится к локальному миниму, причём довольно медленно. Конечно, по сравнению с методами тупого перебора всех возможных комбинаций входных параметров ГА даёт неоспоримое преимущество в скорости. Одним из широких применений ГА является обучение многослойных нейронных сетей с их большим количеством коэффициентов. Такие сети имеют огромное количество локальных минимумов. ГА почему-то считают понацеей этого зла. Но на самом деле понацеей является применяемый инструмент, т.е. многослойная сеть в данном случае. Намного проще выбрать другой инструмент способный на высокую точность классификации (типа buy/sell/hold) или регрессивной экстраполяции при простой и однозначной оптимизации ;-)
1) Спасибо за добрые слова.
2) Не сомневаюсь в Вашем знании предмета разговора, но, всё же, требуется некая сноровка в работе с генетическими алгоритмами (4-й совет в разделе статьи "Рекомендации по работе с UGA" )
UGA разрабатывался как универсальный инструмент, который можно использовать для любых задач оптимизации (раздел статьи "Немного истории") без каких либо доработок алгоритма. Максимально доступен для дальнейших модификаций и добавлении специфичных операторов. Много ли Вы знаете алгоритмов оптимизации с такими свойствами?
Не знаю, почему GA считают панацеей от различных проблем оптимизации, я лично так не считаю и нигде этого не заявлял. Безусловно, для каждой конкретной задачи можно подобрать наилучший инструмент оптимизации как по скорости выполнения так и по итоговому результату. У UGA же цель другая - быть универсальным.
В ветке на MQL4 форума "Тестовая многопеременная многоэкстремальная функция" я выкладывал некоторые интересные тестовые функции, одна из них представлена в статье.
Если есть желание, можете попробовать найти экстремумы предлагаемых функций другими алгоритмами оптимизации отличными от GA и выложить результаты здесь. Милости прошу. Всем будет интересно и мне в первую очередь.
PS Рекомендую всё же поближе познакомится с алгоритмом, предлагаемым в статье, что бы убедится в обратном (выделено жирным), хотя у меня нет цели убеждать в чем то кого либо.
Удачи в Ваших исследованиях!
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Генетические алгоритмы - это просто!:
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
Автор: Андрей