Чемпионат Алгоритмов Оптимизации. - страница 135

 

Повторю правила с первой страницы, немного упростив:

1. К чемпионату допускаются алгоритмы оптимизации основанные на любых принципах и теориях поиска, абсолютно любые.

2. Каждый участник может представить от своего имени только один алгоритм в исходных кодах или в скомпилированном виде библиотеки *.ex5.

3. По итогам чемпионата участники будут ранжироваться согласно критериям: скорость работы алгоритма, количество запусков фитнес функции, точность нахождения решения.

Условия:

1. Организатор оставляет за собой право отказать в участии любому без объяснения причин.

2. Организатор имеет право участвовать в чемпионате.

3. Организатор отказывается от призов в пользу участников в случае наличия призового фонда от потенциальных спонсоров на момент объявления призовых мест.

Организатор Чемпионата Алгоритмов Оптимизации: Joo.

 

Оптимизируемая ФФ оформлена в виде библиотеки, имеющей экспортируемые функции:

int    GetParameters (double &min [], double &step [], double &max []); 
double GetFFvalue    (double &params []);

Всё очень просто, программа участника должна запросить параметры скрытой оптимизируемой функции в массивы min, step, max, размер массивов указывает на количество опт-параметров (возможно, мы в будущем ещё больше захотим удовольствия и увеличим количество параметров), после этого выполняет запросы к GetFFvalue, передавая в библиотеку варианты параметров и получая обратно значение FF.

Внутри библиотеки счетчик, при достижении 10000 обращений к библиотеке функция GetFFvalue превратится в тыкву начнет выдавать -DBL_MAX, поэтому обхитрить библиотеку не получится, делая больше запросов, чем оговорено регламентом.

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

До следующего понедельника выложу исходные коды  (включая библиотеки ФФ) с разъяснениями как это использовать, что бы участники могли начать разминку понимая поставленную задачу.

Естественно, к библиотеке для финальной битвы исходников не будет и ФФ будет иная!

 

1

.

 
Renat Akhtyamov #:

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

Оптимизация по сути - подгонка.

Вот зачем ты здесь это написал?

 
Andrey Dik #:

И, собственно пример библиотеки участника. Рабочий алгоритм оптимизации, основанный на ГСЧ. Весьма неплохо (для ГСЧ) ищет максимум у функций с параметрами в количестве 1...5 штутк (может и больше, ограничений в коде нет, но результаты будут удручающими). Для чемпа слабоват, но для примера сгодится:

Получается, что оптимизируемая функция импортирована в код участника. То есть он имеет к ней полный доступ. Или я опять не понял.  

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

оптимизация. А тут еще вокруг самой оптимизации еще непонятно что надо накрутить надо.

Как-то так надо: организатор предоставляет одну оптимизируемую функцию, участник предоставляет одну функцию, в которую

предается указатель на оптимизируемую функцию (или на класс с ней). Кроме этого должна быть лаконичная текстовая инструкция и

полноценный пример кода, но прозрачного и легко понятного. 

 
Dmitry Fedoseev #:

Вот зачем ты здесь это написал?

странный вопрос

ты в школу ходил чтобы учителя учить или наоборот?

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

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

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

 
Renat Akhtyamov #:

странный вопрос

ты в школу ходил чтобы учителя учить или наоборот?

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

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

Гуляй лесом.

 
Dmitry Fedoseev #:

Гуляй лесом.

еще один командир ;))))

 
Renat Akhtyamov #:

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

Оптимизация по сути - подгонка.

драсьте 😀 например  в роботе присутствует параметр tp в %, так можно задать и мильонтыщу процентов, который никогда не наступит, аналогично и со стопом, задача оптимизации найти такое решение по прибыли/просадке, которое наступает чаще, чем стопы и не выносит баланс. Касаемо советников, прибыльность проверить очень просто - задаешь профит равный просадке и смотришь, выигрывает он в принципе или нет. Если да, то можно оптимизировать, если нет, то в урну
 
Andrey Dik #:

Было в ветке несколько человек, кто готовил свои алгоритмы для соревнования.

"Оседлайте своих благородных алгоритмов, смелые рыцари оптимизации, и покажите миру мощь вашего интеллекта и искусства!"

Наверное, в Python много готовых реализаций. Интеграция с MQL5 имеется. Поэтому соревнование можно рассматривать, как сильно выходящее за рамки MQL5.

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