Оптимизируй советника - и получи лучшего из оптимизированных. - страница 23

 
+1 Взял оставшегося на оптимизацию
Файлы:
 
George Merts:

Актуально в любом случае.

Даже если сделать несколько оптимизаций одновременно - то это позволит более качественно выбрать лучший набор входных параметров - просто соединив XML-файлы, и обработав оценочным скриптом. Проблемы могут быть, только если скрипт найдет ошибки. как вот в прошлые разы, когда я не все переменные отметил в SET-файле. Скрипт мне и писал, мол, "инвалидный файл", а я не мог понять, в чем дело.

Так что эта твоя оптимизация учитывается. Сейчас обработаю, обновлю версию на Яндекс-диске, и выложу очередных экспертов "вылетевших" из Лиги. Если интересно - могу писать "за что вылетел". :)

Вообще я думал, что генетика отберет каждый раз одни и те же результаты, разве это не так?

Статистику вылета можно собирать, быть может последуют по этим данным улучшения в советнике, если подход изменится...

 
Aleksey Vyazmikin:

Вообще я думал, что генетика отберет каждый раз одни и те же результаты, разве это не так?

Статистику вылета можно собирать, быть может последуют по этим данным улучшения в советнике, если подход изменится...

Генетика - не может давать одни и те же результаты. Только близкие. И то - если функция достаточно "ровная". 

Мы имеем пространство из миллиарда вариантов кобминаций. Нам надо выбрать лучшие.

Сперва - мы берем случайные 512 вариантов. Это первое поколение.

Потом формируем следующее поколение - производим в каждой кобминации случайные изменения параметров - мутации. Получается 1024 особи. Выбираем 512 с наибольшим значением фитнесс-функции (фитнесс-функция - это как раз та самая настройка Custom в установках оптимизации). И цикл мутаций повторяется.

Циклы продолжаются до тех пор, пока не перестанут появляться большие значения фитнесс-функции.

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

Если мы берем два разных XML-файла оптимизации, то лучшее значение в них может быть одинаково. Но вот дисперсии - будут обязательно отличаться. А это - повлияет на выбор, возможно, разумнее окажется взять чуть меньшее значение фитнесс-функции, однако, такое, чтобы дисперсия вокруг этого значения была значительно меньше.

 
Aleksey Vyazmikin:
+1 Взял оставшегося на оптимизацию

У тебя 24 регкода, обработаю  GBPCHF_EMAFlatRTS - будет 25. Выложишь следующий файл - будет 26. Но, сейчас надо отойти. Приду часа через четыре, выложу очередных "аутсайдеров". 


Алексей, если захочешь использовать регкоды - для тебя будет разумнее откомпилировать отдельную версию "Лиги" - в которую будут сразу "забиты" твои выбранные коды на выбранное время действия. Чтобы в настройках надо было бы написать только желаемый риск. Все выбранные системы - будут работать независимо, как если бы это были несколько копий Лиги, каждая на своем Магике (так работают эксперты на общем демо-счете, там же не 270 советников, а всего лишь пять, но они отрабатывают все 270 ТС).

Для интересующихся напоминаю, советник Лига Торговых Систем - доступен для скачивания на Яндекс-Диске

EALeague
EALeague
  • yadi.sk
View and download from Yandex.Disk
 
GBPJPY_ChnTrendRTS
Файлы:
 
George Merts:

Сперва - мы берем случайные 512 вариантов. Это первое поколение.

Мы бирем или оптимизатор? Просто что-то я сомневаюсь про случайность, т.е. что генерирует эту случайность, известен ли алгоритм? Привязка ко времени?


George Merts:

Потом формируем следующее поколение - производим в каждой кобминации случайные изменения параметров - мутации. Получается 1024 особи. Выбираем 512 с наибольшим значением фитнесс-функции (фитнесс-функция - это как раз та самая настройка Custom в установках оптимизации). И цикл мутаций повторяется.

А где можно посмотреть примеры  самостоятельного составления подобной функции?

Или это просто одно число по результатам пользовательского расчета, которое должно стремится к большему или меньшему значению, и соответственно если есть динамика, то генетика капает в том самом направлении?

George Merts:

У тебя 24 регкода, обработаю  GBPCHF_EMAFlatRTS - будет 25. Выложишь следующий файл - будет 26. Но, сейчас надо отойти. Приду часа через четыре, выложу очередных "аутсайдеров". 


Алексей, если захочешь использовать регкоды - для тебя будет разумнее откомпилировать отдельную версию "Лиги" - в которую будут сразу "забиты" твои выбранные коды на выбранное время действия. Чтобы в настройках надо было бы написать только желаемый риск. Все выбранные системы - будут работать независимо, как если бы это были несколько копий Лиги, каждая на своем Магике (так работают эксперты на общем демо-счете, там же не 270 советников, а всего лишь пять, но они отрабатывают все 270 ТС).

Хммм, я даже не знаю, как их выбирать... что там можно нужно потом оптимизировать, или только одно значение "риск"?

 

Так. Подошел. Все в порядке, все обработалось, вложено в Лигу.

Есть идея изменить немного советники для оптимизации, чтобы по XML-файлам было сразу видно, на каком символе их запускали, и на каком бек- и форвард-периоде. Займусь на выходых этим.

Пока - надо дописать инструкцию для новичков.

Aleksey Vyazmikin:

Мы бирем или оптимизатор? Просто что-то я сомневаюсь про случайность, т.е. что генерирует эту случайность, известен ли алгоритм? Привязка ко времени?

Оптимизатор, конечно. Он же проводит генетическую оптимизацию.

И, насколько я знаю, и вижу - первоначальные наборы параметров - генерируются чисто случайно, скорее всего, с использованием команды процессора, выдающие случайные числа. По идее, должна использоваться инструкция процессора RDRAND, выдающая случайное число, отвечающее многим специальным стандартам. Но, понятное дело, случайные числа на самом деле могут быть и псевдослучайными - это ненамного хуже, нам же не нужна устойчивая криптография, нам нужно равномерное "засеивание" поля значений.

 
Aleksey Vyazmikin:
 

А где можно посмотреть примеры  самостоятельного составления подобной функции?

Или это просто одно число по результатам пользовательского расчета, которое должно стремится к большему или меньшему значению, и соответственно если есть динамика, то генетика капает в том самом направлении?

Да, все верно, фитнес-функция - это результат OnTester(), которая характеризует проход. В самом простом случае - это просто значение депозита в конце прохода. Оптимизатор отбирает кобминации, в которых эта функция будет максимальной. И новые поколения формируются все ближе и ближе к максимуму.

У меня используется хитрая многофакторная функция, которая очень хорошо отражает качество торговли, когда-то этот код я получил на платной основе, но сейчас не жалею.

Там, в генетическом алгоритме вобще довольно много хитростей, где-то была даже статья про генетические алгоритмы, и много рассказывалось.

 
Aleksey Vyazmikin:
 

Хммм, я даже не знаю, как их выбирать... что там можно нужно потом оптимизировать, или только одно значение "риск"?

Оптимизировать - ничего не надо, все уже оптимизировано до тебя. Ты ж сейчас и занимаешься тем, что оптимизируешь системы-аутсайдеры, с тем, чтобы они стали системами-фаворитами на других наборах параметров. Ставим их на демо, и смотрим, как они будут торговать. Некоторым из них повезет - и они начнут торговать в плюс. Это будет видно через месяц. К тому времени бывшие фавориты - покажут "контрольный выстрел" и будут сняты с торговли, а новые системы, из тех, которые сейчас оптимизируются - как раз и займут их место.

Мы берем любую из систем-фаворитов, выставляем в ней значение риска - и вперед, можно торговать.

А вот "как выбирать"... Это сейчас у меня основной вопрос.  Если "на простой помол" - то визуально и по показателю "качества".  Те системы, которые я выбрал - я поставил на реальный счет, инвест-пароль на который у тебя имеется.  Но, они выбраны интуитивно. К сожалению, четкие критерии я еще пока не выработал.

Так что - гляди на графики, выбирай лучший - вот тебе пока и выбор. Выбрать явно есть из чего.

 

Системы, требующие переоптимизации:

Две  показали слишком длинную очередь СЛ, остальные - превысили допустимый просад.

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