Скачать MetaTrader 5

Генетические алгоритмы. Вопросы экспертам.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаете ли вы, что в MQL5 появились классы?
vb
315
vb 2011.02.14 22:24 

Предлагаю в этой ветке писать о вопросах и достижениях сообщества в указанной области, делиться кодами.

У меня есть вопрос к специалистам. Кто-нибудь реализовал алгоритм дифференциальной эволюции для МТ(в виде универсальной функции)? Алгоритм предназначен для численного поиска минимума или максимума функции, когда сделать аналитически это трудно или нельзя. Алгоритм известен с 90х годов, довольно полезный и не сложный. В кодобазе он мне не встречался. Кто-то может поделиться? Если нет, то выложу свой вариант, когда напишу, но как скоро это будет - не знаю. Интересны и другие реализованные ГА, осуществляющие эту задачу (желательно попроще, без наворотов, чтобы каждый мог разобраться и под себя изменть). Также интересен опыт, насколько хорошо такие алгоритмы справляются с указанной задачей для много-экстремальных функций.

igor
1144
igor 2011.02.14 22:31  
А какую функцию вы собираетесь исследовать.
Alexandr
1916
Alexandr 2011.02.14 22:37  
Дифференциа́льная эволю́ция (англ. differential evolution) — метод многомерной математической оптимизации, относящийся к классу стохастических алгоритмов оптимизации (то есть работает с использованием случайных чисел) и использующий некоторые идеи генетических алгоритмов.

Это прямой метод оптимизации, то есть он требует только возможности вычислять значения целевой функций, но не её производных. Метод дифференциальной эволюции предназначен для нахождения глобального минимума (или максимума) недифференцируемых, нелинейных, мультимодальных (имеющих, возможно, большое число локальных экстремумов) функций от многих переменных. Метод прост в реализации и использовании (содержит мало управляющих параметров, требующих подбора), легко распараллеливается.

Метод дифференциальной эволюции был разработан Рэйнером Сторном и Кеннетом Прайсом, впервые опубликован ими в 1995 году и разработан в дальнейшем в их более поздних работах.
vb
315
vb 2011.02.14 22:40  
zhuki:
А какую функцию вы собираетесь исследовать.

По описанию, алгоритм может исследовать любую функцию(зависимость). Специалисты, возможно, скажут, что это не так и есть ограничения. В этом его сила, и поэтому он полезен. У меня необходимость исследовать 2-у мерную, неаналитически заданную функцию (обычная y=f(x)). Цель - сократить время счета, чтобы не перебирать все значения.
Alexandr
1916
Alexandr 2011.02.14 22:40  
igor
1144
igor 2011.02.14 22:40  
Jingo:
Дифференциа́льная эволю́ция (англ. differential evolution) — метод многомерной математической оптимизации, относящийся к классу стохастических алгоритмов оптимизации (то есть работает с использованием случайных чисел) и использующий некоторые идеи генетических алгоритмов.

Это прямой метод оптимизации, то есть он требует только возможности вычислять значения целевой функций, но не её производных. Метод дифференциальной эволюции предназначен для нахождения глобального минимума (или максимума) недифференцируемых, нелинейных, мультимодальных (имеющих, возможно, большое число локальных экстремумов) функций от многих переменных. Метод прост в реализации и использовании (содержит мало управляющих параметров, требующих подбора), легко распараллеливается.

Метод дифференциальной эволюции был разработан Рэйнером Сторном и Кеннетом Прайсом, впервые опубликован ими в 1995 году и разработан в дальнейшем в их более поздних работах.

Содержательно. Так,что обследовать собрались?
Alexandr
1916
Alexandr 2011.02.14 22:41  
-Aleksey-:

По описанию, алгоритм может исследовать любую функцию(зависимость). Специалисты, возможно, скажут, что это не так и есть ограничения. В этом его сила, и поэтому он полезен. У меня необходимость исследовать 2-у мерную, неаналитически заданную функцию (обычная y=f(x)). Цель - сократить время счета, чтобы не перебирать все значения.
я не думаю что КПД будет лучше генетики, вы можете ускорить оптимизацию раз в 10 если подключитесь к многоядерной сети. и тем самым переборы оптов будут быстрее.
vb
315
vb 2011.02.14 22:44  
Jingo:
я не думаю что КПД будет лучше генетики.

Хочу начать с чего-то простого, а там видно будет. А генетика, оформленная в виде универсальной MT функции(значения исследуемой функции, условие поиска, параметры алгоритма - чтобы просто взять кусок кода и подставить исследуемые значения значения) вам где-то встречалась - чтобы савнивать можно было с ней?

вы можете ускорить оптимизацию раз в 10 если подключитесь к многоядерной сети. и тем самым переборы оптов будут быстрее.
Эээ... не совсем знаком с предметом. Знаю, что к такой сети тестер МТ5 подключается, а интересно использование алгоритма внутри индикатора - в реал-тайм режиме(независимость, кстати от внешней вычислительной сети, какая-никакая). К сети такой для расчета индикаторов и экспертов можно подключаться как-то? Какие-то платные сети?
hrenfx
3672
hrenfx 2011.02.14 22:53  
vb
315
vb 2011.02.14 22:56  
hrenfx:
JQS UGAlib

Спасибо огромное. Это я не углядел :)
Nikolay Sarjenuk
16386
Nikolay Sarjenuk 2011.02.15 02:39  

Скажите пожалуйста, на сколько глубокие знания в математике нужно иметь, перед тем как приступать к изучению ГА?

Спасибо!

12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий