Генетический алгоритм в тестере стратегий.

 

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

Почитал вот эту статью: https://www.mql5.com/ru/articles/1408

Но плохо понял как же все таки проходит оптимизация. Те кто знает как проходит оптимизация по генетическому алгоритму, объясните пожалуйста на пальцах как это делается на примере обычного советника по пересекающимся МА. Параметры - периоды каждой МА и все. Зарание спасибо!

 

Тестер по ГА - чушь и ерунда. ГА совсем не для этого. Не используйте тестер с включенной галкой "Генетический алгоритм"

 

хорошо, в таком случае предложи свой алгоритм как уменьшить количество проходов при обучении нейронной сети. Есть банально 4 параметра: a1 a2 a3 a4. от 0 до 200 шаг 1 итого 1600 млн проходов

 
MrGold166:

хорошо, в таком случае предложи свой алгоритм как уменьшить количество проходов при обучении нейронной сети. Есть банально 4 параметра: a1 a2 a3 a4. от 0 до 200 шаг 1 итого 1600 млн проходов


Сколько людей, столько мнений.

Только ответьте на один вопрос - сколько нейронов в скрытом слое?

 
Ты уверен, что говоришь о нейронной сети?
 
MrGold166:

Но плохо понял как же все таки проходит оптимизация. Те кто знает как проходит оптимизация по генетическому алгоритму, объясните пожалуйста на пальцах как это делается на примере обычного советника по пересекающимся МА. Параметры - периоды каждой МА и все. Зарание спасибо!

Два параметра (2 машки) принимаются генами хромосомы. К примеру, задается интервал поиска параметров от 10 до 100, тогда хромосому можно представить так (гены изображены в виде числовой прямой с текущим значением генов) с параметрами 15 и 30:

--------15----------------------------------------

----------------30--------------------------------

берем ещё одну хромосому, например такую:

-----------------------50-------------------------

--------------------------60----------------------

Результатом скрещивания будет такая хромосома:

------------ 33-----------------------------------

---------------------45--------------------------

Вот так берутся хромосомы с лучшими показателями (например баланс) и скрещиваются. В итоге хромосомы становятся всё лучше и лучше с каждым разом.


зы Это самое простое объяснение работы ГА, насколько можно вообще.

 

ТС, вообще тут объяснение на пальцах не прокатит.

Читай Википедию. И попробуй для себя понять, почему ГА не катят, когда зависимость между генами, вообще говоря, неизвестна. И неизвестным образом влияет на результат.

 
Diamant:

Читай Википедию. И попробуй для себя понять, почему ГА не катят, когда зависимость между генами, вообще говоря, неизвестна. И неизвестным образом влияет на результат.

Не вводите людей в заблуждение, пожалуйста.
 
joo:

Два параметра (2 машки) принимаются генами хромосомы. К примеру, задается интервал поиска параметров от 10 до 100, тогда хромосому можно представить так (гены изображены в виде числовой прямой с текущим значением генов) с параметрами 15 и 30:

--------15----------------------------------------

----------------30--------------------------------

берем ещё одну хромосому, например такую:

-----------------------50-------------------------

--------------------------60----------------------

Результатом скрещивания будет такая хромосома:

------------ 33-----------------------------------

---------------------45--------------------------

Вот так берутся хромосомы с лучшими показателями (например баланс) и скрещиваются. В итоге хромосомы становятся всё лучше и лучше с каждым разом.


зы Это самое простое объяснение работы ГА, насколько можно вообще.

Т.е Изначально мы можем провести несколько тестов в обычном режиме для общей картины и дальнейшего скрещивания. Допустим тестируем хромосомы 10-100 20-90 30-80 40-70 50-60 и далее проводим скрещивание?

похоже Diamant действительно прав, это явно не подходит.

Тогда вопрос другой, какой метод оптимизации использовать лучше. В данном случае оптимизация=подгон. Или нужно применять на конкретном примере в зависимости от параметров? Давайте на примере нейросети представленной на данном сайте в статьях. Там взят АО 1 7 14 и 21й бар, 4 нейрона. Задаются им веса для удобства 0-200 в дальнейшем веса пересчитываются через 100-вес.

 
Vinin:


Сколько людей, столько мнений.

Только ответьте на один вопрос - сколько нейронов в скрытом слое?

На данный момент нет данных о количестве нейронов. Хочу создать систему которая будет комбинировать варианты нейронов в том числе и их количество, обучать их по очереди и выявлять наилучшие комбинации.
 
MrGold166:

Т.е Изначально мы можем провести несколько тестов в обычном режиме для общей картины и дальнейшего скрещивания. Допустим тестируем хромосомы 10-100 20-90 30-80 40-70 50-60 и далее проводим скрещивание?

Да, можно искать наилучшие параметры даже в рукопашную. Проводим ряд первоначальных тестов 10-100 20-90 30-80 40-70 50-60. Выбираем два варианта с лучшими показателями и скрещиваем их. Полученную хромосому заносим в наш список. Из этого списка выбираем опять две лучшие и скрещиваем их. Незабываем выкидывать самые плохие сохраняя численность популяции.

Упрощённо так и работает. Попробуйте, будете удивлены.

MrGold166:

похоже Diamant действительно прав, это явно не подходит.

Diamant не прав.

Причина обращения: