Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да не надо ее решать. Достаточно для конкретного случая найти достаточную длину обучающей выборки, делается это очень просто.
ИМХО это решается гораздо проще. Посидел, поэкспериментировал с различными окнами оптимизации и надыбал такой метод:
Прогоняем первую оптимизацию. Ищем успешный или не очень успешный форвард с приличной просадкой. Подводим курсор мышки на графике ко дну этой самой просадки и в всплывающей подсказке видим дату. Смещаем завершение окна оптимизации до этой самой даты. Прогоняем еще одну оптимизацию, ищем успешный форвард и видим, что чудо свершилось: подгонка выровняла нашу прежнюю просадку, превратив ее в профитный участок, а далее форвард успешен, т.к. он был таковым и до данного трюка.
Теоретически такой прием конечно же лучше, т.к. в данном случае наша ТС научилась устранять просадку, чего ранее не могла, т.к. не обладала телепатическими способностями и мы ей подсказали, в чем заключалась ее ошибка. А практически - это еще вилами писано, т.е. нужно дополнительно проверять, насколько данный метод адекватен, поскольку участок окна для форвардного теста у нас уменьшился.
Материал для статьи уже собран полностью, осталось только все это хозяйство привести в порядок, добавить кой какие изображения и можно отправлять на публикацию.
Если в кратце, то в статье рассматривается нейросеть с встроенной экспертной системой (чего только сочинители статей не понавыдумывают, ради гонорара?) и даны ответы на вопросы:
1. Зачем нейросети нужна интерполяция? Действительно, с какого перепугу это ей вдруг приспичило?
2. Может ли нейрон, обученный для корректной аппроксимации на стационарных и непротиворечивых данных интерполировать? Разобрано на примере логистической регрессии, которая в свою очередь является нейроном. Пропагандисты логистической регрессии останутся недовольными. Врачи-вредители тоже не одобрят сию писанину, т.к. нынче модно с помощью логистической регрессии вычислять диагнозы на компьютере.
3. Как создать экспертную систему для корректной интерполяции: необходимые и достаточные условия? По сути экспертная система - это слой нейросети, но не черный ящик, т.к. имеет базу знаний в виде легко интерпретируемых правил, как и у других экспертных систем. Если кому есть что скрывать, то лучше такое не читать, а пользоваться черными ящиками.
4. Можно ли переобучить нейросеть с экспертной системой на борту? А кто запрещает?
5. Как автоматически обучить экспертную систему на наборе обучающих примеров, чтобы не пришлось вручную создавать и корректировать ее базу знаний? Ясен пень, что обучающие примеры - это торговые сигналы, т.е. по показаниям технических индикаторов либо осцилляторов и обучаем систему торговать, а не распознавать какие-то ботанические ирисы Фишера. Но все же ручками, особенно кривыми и растущими из кой-каких мест как-то привычнее и надежнее базу знаний поковырять, чем доверять это дело тупым алгоритмам.
6. Как устранить недообучение нейросети с экспертной системой? Странный конечно же вопрос, т.к. все привыкли бороться с переобучением и подгонкой. А тут автор явно что-то не то решил побороть.
7. Достоинства и недостатки общераспространенных нейросетей в сравнении с нейросетью, имеющей на борту экспертную систему? Здесь автор шибко переборщил в плане недостатков, т.к. нынче принято загибать, типа: ноу-хау, патентованное средство, аналогов хрен сыщешь, рекомендации от лучших собаководов и стоматологов, недостатков быть не может, только достоинства, заказывайте и покупайте прямо сейчас, а то на складе уже заканчивается и т.д.
Также к статье будут приложены исходные коды нейросети с экспертной системой, написанные на mql4 и mql5 без использования внешних библиотек и dll, а в самой статье по ходу пьесы разъясняются основные особенности алгоритмов. Тут вообще какие-то безобразия, т.к. все граальщики доподлинно знают, что исходники нужно тщательно скрывать от посторонних глаз, свидетелей убирать и следы заметать.
Вот такие пирожки.
проблема подгонки в том, что некоторые анализируют только отдельно взятые результаты оптимизации(прогоны). А надо рассматривать их в совокупности - общий резалт по оптимальным зонам. И тогда форвард не нужен.
К примеру есть система на одной машке с одним оптом - период машки. Оптимизировали и получили кучу наборов значения оптов, упорядочили их например по ПФ. Конечно, шанс что отдельные прогоны случайны велик и нужна проверка например форвардом. Но если рассматривать не отдельные прогоны, а оптимальную зону и результат по ней, то сохранение положительного результата по оптимальной зоне на разных участках ряда подогнать практически невозможно. Конечно, это зависит от ширины оптимальной зоны и чувствительности резалтов прогона к минимальному изменению опта. Т.е. сохранение оптимальной зоны есть признак робастности и антиподгонка. А форвард хорош только при однократном его использовании. Многократно используя его для одной и той же системы и он просто становится частью обучающей выборки.
P.S.
время на котором конкретная система работала тоже параметр системы. Например, одна работала с 2005 по 2011. Вот это ее диапазон оптимальных значений - время жизни. Оптимизитруя на истории мы практически стремимся найти системы у которых этот диапазон максимален. Но система не обязаня работать вечно. Поэтому задавая период тестирования надо учитывать, что произвольно выбирать его и требовать чтобы система работала на всем этом участке - это от балды. Вздумалось искать за 10 лет - ищешь)). Имха, достаточно такой период, чтобы он давал нужный уровень достоверности результатов. Это зависит от кол-ва сделок и распределения прибыльных/убыточных сделок.
Avals:
Но если рассматривать не отдельные прогоны, а оптимальную зону и результат по ней, то сохранение положительного результата по оптимальной зоне на разных участках ряда подогнать практически невозможно.
Да имхо то же самое только в другую степь. Оптимальная зона это типа сглаживающий фильтр по результатам?
это типа среднее значение целевого показателя (профит-фактор например) в определенном диапазоне опта.
Важно, чтобы диапазон опта с достаточным средним значением целевого показателя был достаточно широким и сохранялся на всех участках теста. Отдельные его прогоны могут и уходить временно в убыточную зону, но в среднем диапазон должен сохранять профитность. Система робастна если это верно для каждого опта.
Вобщем, суть в том чтобы оценивать робастность не отдельного прогона, а самого опта в целом
К примеру, решили что IQ человека зависит от роста. Оптимизнули на 1000челах и получили что при росте 162см максимум IQ достигается в среднем. Потом стали форвард тестировать на других людях и вышло не очень)) А вот если получится, что стабильно на каждой выборке люди с ростом например 160-170см имеют более высокий средний IQ то шансов что это случайность меньше гораздо чем при выборе одного значения (потому что людей больше в выборку попадает). И это означает, что сама по себе зависимость IQ от роста имеет место быть
Новая версия в прикрепленном файле, на этот раз с money management (неагрессивный процент от депо):
Новая версия в прикрепленном файле, на этот раз с money management (неагрессивный процент от депо):
проблема подгонки в том, что некоторые анализируют только отдельно взятые результаты оптимизации(прогоны). А надо рассматривать их в совокупности - общий резалт по оптимальным зонам. И тогда форвард не нужен.