![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тут по пунктам:
Спасибо, Сергей, все по делу.
2) Предобработка входов (вопрос кажется весьма простой и вполне открытый, можно обсуждать, если будет известно, что и как сделано в данном случае)
Ничего экстраординарного. Есть несколько уровней, каждый отдельно обрабатывается фильтром Ходрика-Прескотта без заглядывания.
3) Математика НС.
Ряд экспериментов показал, что параметры сети в определенных пределах оказывают незначительное влияние на результат. Слишком маленькое количество приводит к переобучению, слишком большое к перенасыщению.
На тему эхо сетей готов общаться. Код пока выкладывать не буду, есть определенные планы.
4) "Организационные" вопросы работы НС.
Как/когда обучать/переобучать
кстати, не пробовал менять
, периоды/интервалы
серьезного исследования тоже не проводил. Думаю, влияние будет, возможно даже различные периоды в зависимости от инструмента.
, логика работы советника-интерпретатора выхлопа сети
Серьезного исследования пока тоже не было, но из того что менял думаю существенного влияния не окажет, хотя... надо будет проверить еще раз.
, ММ
не вижу смысла вообще прикручивать. Потенциальную прибыльность легко оценить по ФВ.
- почему все же "эхо"? Вы же в ней поварились, расскажите о плюсах минусах.
Ну во-первых, меньше парева с параметрами сети. Не надо думать, что если например скрытый слой меньше входного, то это уже сжатие данных и высока вероятность, что сеть работать не будет и т.д. Не нужно учитывать кучу мелочей, которые есть в остальных сетях.
Вкратце сейчас я так работаю с сетью -- тупо накидал нейронов, связей (определенное кол-во, определенные типы).
Адаптировал. Использую. Меня мало волнует что происходит внутри, т.е. я по сути получаю удобный черный ящик.
Практически любая задача, решаемая MLP решается эхо-сетью.
Во-вторых -- я всегда получаю оптимальное (исходя из топологии и соотношения входов и выходов) решение
В-третьих -- время адаптации (я сознательно избегаю слова "обучение") сети прогнозируется с большой точностью, т.к. для этого используется МНК, нету никакой сходимости и т.п.
Минус пока видел только один -- ограничение по фитнесс функции. Т.е. теоретически я могу использовать лишь поиск решения с наименьшей среднеквадратичной ошибкой ФФ и подобное. Это конечно можно обойти с помощью генетического обучения, но тогда теряется вся прелесть эхо сети.
Хотя нет, есть еще один -- не уверен, но по-моему (могу ошибаться) время обучения возрастает кубически (не столько обучения, сколько формирования производной матрицы), поэтому обучить сеть с кол-вом нейронов, скажем, 1000 займет уже ощутимое время.
Как Вы ее вообще откапали?
Благодаря этому же форуму :) от товарища gpwr, за что ему большое спасибо :)
2й тип ТС это вообще от лукавого имхо.
Имхо, со 2-м типом намного легче работать и проводить анализ результатов. Например, ТС обсуждаемого проекта изначально полностью подходила под 2-й тип.
а)Вы действительно уверены, что входы/выходы невозможно улучшить?
Конечно же нет
b)Предобработка: Как она все же у Вас выглядит? Проводился ли, например, анализ распределения входных значений?
Нормализация в некотором виде присутствует, но никакого серьезного анализа распределения данных нет.
А деволатилизацию (есть в статьях) Вы не проводили для индюков, которые подаёте на вход сети?
Ознакомился -- интересно. Может поделитесь опытом использования? Какие результаты, улучшения, особенности, подводные камни?
Так же можно попробовать индюки сделать безгеповыми.
Представим, условно, анализируемую область данных (паттерн) синим прямоугольником, а прогнозируемую область данных красным прямоугольником. В текущей реализации размер по вертикали красной области зависит через масштабный коэффициент от размера синей (а должно бы зависеть от содержания данных в синей области, а не от размера области). Вот два примера, где наблюдаем разногласие:
и
Видим, что размер красного прямоугольника меньше на первом скрине и больше на втором чем размер синего.
Нормирование сигнала происходит относительно размеров по вертикали.
Так вот, думается, что всё таки нужно нормировать не по размерам примера, а по размерам всей обучающей выборки. Видимо из-за этого снижается прогнозная способность сетки.
Есть одно неудобство с этим связанное (поэтому и был выбран такой способ нормирования), но ни куда, видно, от него не деться - нужно один раз дополнительно прогонять по обучающей выборке, для того, что бы замерить максимальные и минимальные значения.
Понятно, что распределение сигналов от паттерна в текущей реализации с сильными смещениями (что есть плохо) в области минимальных и максимальных значений, так как в каждом паттерне есть значения 1 и значение -1.
По моему, нужно начать с этих изменений.
Мне ты объяснял по-другому :) . Сейчас, пожалуй, согласен.
Да нет же, не по другому. Говорю же, на словьях трудно изъяснятся, с картинками проще. И говорящему, и слушающему. ;)
PS А на счет прогнозной области по обучению на профит - это остается в силе, занимаюсь.
Я эксперементировал с ценой по следующему алгоритму:
1) Получаем от Close ряд первых разностей (РПР)
2) Вычисляем мувинг от модуля РПР (я брал период 25)
3) Делим РПР на мувинг
Получаем РПР, который более стационарен. Можно вернуться к псевдо ценовому ряду, используя куммулятивную сумму.
Вижу, что РПР Вы не используете. Для ценового ряда используете удаление тренда? Или же ценовой ряд просто нормируете в заданный диапазон?
renegate:
Для ценового ряда используете удаление тренда?
Здесь тоже можно поподробнее.
Или же ценовой ряд просто нормируете в заданный диапазон?
Сейчас нормировка происходит внутри описания паттерна.
Сейчас буду делать нормализацию по всему набору паттернов. Это по идее не должно быть сложно.
Хотелось бы попробовать прицепить деволатилизацию, но здесь уже будет посложнее. Буду думать.
Для этого нужно принять аксиому, что ценовой ряд складывается из трендовой, циклической, шумовой составляющих.
От ценового ряда отнимаем трендовую составляющую. Навскидку 3 способа:
1) Делаем анализ главных компонент (АГК или PCA у буржуев) и обнуляем первую главную компоненту
2) Вычитаем мувинг из ценового ряда. Его период подбираем на глаз или оптимизацией, или через спектральный анализ
3) Находим линейную регрессию всего ценового ряда и вычитаем из цены.
После этого получаем ряд в котором присутствуют только циклическая и шумовая составляющие. Их удобно нормировать в заданный диапазон.
Я эксперементировал с ценой по следующему алгоритму:
1) Получаем от Close ряд первых разностей (РПР)