Автоматический выбор диапазона параметров для оптимизации - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Youri Tarshecki
3618
Youri Tarshecki  
Aliaksandr Hryshyn:
Мне нужны именно диапазоны и шаг. Оптимизация потом. Это связано с определённым разделением задачи автоматического поиска стратегии...
Я и говорю про диапазон и шаг. Вы же сами  казали, что мы ничего не знаем про советник, значит, единственный способ - пробовать и атвоматически определять результат.
Aliaksandr Hryshyn
2590
Aliaksandr Hryshyn  
Yuri Evseenkov:

Мне кажется искомые диапазоны можно найти многомерной оптимизацией.

Допустим нужно найти максимальный профит при параметрах х1, х2, х3, ...хn.

Применяем метод координатного спуска. Сначало диапазоны максимальны. Ищем максимум поочередно.

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

Затем ищем значения х2, подставляя найденный х1 и фиксированные хn и т.д

Мы нашли значения х1,х2,...хn . Вот относительно их и можно задавать диапазоны . При этом могут помочь выявленные в ходе многомерной и одномерной оптимизации наиболее эффективные диапазоны и шаги приближения к решению по каждому параметру.

Наверное так и будет)).
Alexey Navoykov
4541
Alexey Navoykov  
Maxim Kuznetsov:
 

PS/ получилось ответить на едва мелькнушее и сразу удалённое сообщение :-)

Да я просто написал, не подумав как следует )  А именно, что надо будет взять в качестве фитнес-функции при генетической оптимизации в данном случае.  Что-то не соображу.
Aleksey Mavrin
1533
Aleksey Mavrin  
Aliaksandr Hryshyn:
Наверное так и будет)).

И как получилось реализовать задачу? Я сейчас тоже бьюсь над подобной, при этом задача определения граничных условий стоит даже если советник не закрыт как черный ящик, а вы сами его писали)

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

Ищу метод определения диапазона ГУ до прогонов модели на выборке.

Dmitiry Ananiev
9042
Dmitiry Ananiev  

НУ вариант первый - Допустим есть переменная double Factor0  = 10.0. Перебор можно сделать с коэффициентом например 1.2  Т.е. пишем input double Factor  = 0.2 и в расчет подставляем Factor0= Factor *1.2. Можно вынести и 2 переменные. и все умножать на коэффциент чтоб провести грубую оптимизацию, а потом коэффциент ставим 1 и выставляем параметры близкие к максимальным результатам. 

2. Пишем что-то типа input double Factor__0_1__10_0 = 0.5; Соответсвенно юзверь видит что ркомендованый  диапазон для оптимимзации с 0,1 до 10,0.

3. Пользуем комментарии Пишем типа - input double Factor= 0.5 // Opmization 0.1/0.1/10/ 

4. Пользуем ParameterGetRange Прописываем все что нужно в OnTesterInit(), При этом есть возможность создавать собственные сценарии оптимизации. 


Aleksey Mavrin
1533
Aleksey Mavrin  
Dmitiry Ananiev, вашу бы инструкцию в правила местного МарГета, это бы приблизило его к Макету. Но вопрос остаётся - как самому разрабу правильно их определить.
Dmitiry Ananiev
9042
Dmitiry Ananiev  
Aleksey Mavrin:
Dmitiry Ananiev, вашу бы инструкцию в правила местного МарГета, это бы приблизило его к Макету. Но вопрос остаётся - как самому разрабу правильно их определить.

так это зависит от идеи которая заложена в робот. Если я использую в роботе какйото коэффициент то я уже предтсавляю какой он примерно должен быть. 
Если это параметр индикатора МА, то врядли счет пойдет на тысячи. Поэтому оптимизацию можно ставить от 1 до 300 к примеру. А чаще и до 100 достаточно при этом разумно применять перебор с коэффциентом. Не думаю что период МА 178 сильно будет отличаться от периода в 179 или в 177. Тут уже можно делать перебор с шагом 5 или даже 10. ЗА счет этого можно сэкономить очень много времени Одно дело перебирать параметр 200 раз - другое дело - 50 раз. 
Опять же можно использовать вариант 1.2. Т.е. ввести коэффицент для всех перменных для грубой оптмимзации. 

Dmitiry Ananiev
9042
Dmitiry Ananiev  
Aleksey Mavrin:
Dmitiry Ananiev, вашу бы инструкцию в правила местного МарГета, это бы приблизило его к Макету. Но вопрос остаётся - как самому разрабу правильно их определить.

Когда я выкладывал свои продукты. то одно из требований маркета сделать описание параметров и параметры их оптимизации. Без этого в маркет продукты не пускали.

Aleksey Mavrin
1533
Aleksey Mavrin  
Dmitiry Ananiev:

Когда я выкладывал свои продукты. то одно из требований маркета сделать описание параметров и параметры их оптимизации. Без этого в маркет продукты не пускали.

Я видел что не всегда и не совсем. видимо сейчас требования послабляют, деньги  то всем нужны)

Dmitiry Ananiev:

так это зависит от идеи которая заложена в робот. Если я использую в роботе какйото коэффициент то я уже предтсавляю какой он примерно должен быть. 
Если это параметр индикатора МА, то врядли счет пойдет на тысячи. Поэтому оптимизацию можно ставить от 1 до 300 к примеру. А чаще и до 100 достаточно при этом разумно применять перебор с коэффциентом. Не думаю что период МА 178 сильно будет отличаться от периода в 179 или в 177. Тут уже можно делать перебор с шагом 5 или даже 10. ЗА счет этого можно сэкономить очень много времени Одно дело перебирать параметр 200 раз - другое дело - 50 раз. 
Опять же можно использовать вариант 1.2. Т.е. ввести коэффицент для всех перменных для грубой оптмимзации. 

Вот тот вариант чесгря не совсем понял, чем отличие от задания шага перебора? 

А вообще вы всё верно указали - ГУ (граничные условия) зависят от сути модели и заложенных в неё гипотез. Вот только обычно сформулировать гипотезы получается несколько расплывчато, вы ведь тоже ТОЧНО не сможете сказать максимальный период МА в вашем примере, не так ли? 300? Почему? т.е. сформулируйте гипотезу :) Я к тому что есть ведь вероятность что эта ваша стратегия "вдруг" при периоде МА 1000 покажет супер-результат, Уверены что этого не может быть? Сможете доказать теоретически?

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

Dmitiry Ananiev
9042
Dmitiry Ananiev  
Aleksey Mavrin:


Вот тот вариант чесгря не совсем понял, чем отличие от задания шага перебора? 


Вот формула не совсем правильная тут наверно лучше число 1.05 возводить в степень 5-10 -20 - т.д. 
 Суть в том чтоб в начале перебор шел 1-2-3-4-5-6- с 50 до 100 :   55-60-65-70 с 200 : 210-220 - 230 и т.д.

Вообщем по уму прописать условия через case: или через if

Т.е. если парметр равен 10  то реальное значение = 10. Если парамтер = 20, то значение равно 50 и т.д. 

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