Как правильно сформировать входные значения для НС. - страница 23
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я не разрабатываю НС, сейчас занимаюсь поиском оптимальных входов и выходов для построения обучающей выборки, я считаю правильная выборка важнее чем НС, вариантов НС на различных языках в сети куча...
Правильно. Архитектуру при наличии нормальных входов подобрать уже не проблема. Можно сказать: Входы - все, архитектура - ничто.
Вот, господа подобрали нормальные входы и получили соответствующие результаты c МTC "Сombo" :
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Попробовал и я прилодить руку с сему чуду. Парился неделю, и в базовой версии и дорабытывал алгоритм и несколько своих функций в basicTradingSystem вставлял - т.е. переделывал "базовую БТС" на языке автора. Результаты по прогону на истории - фантастические: прибылность от 8 до 12, мат.ожидание около 1000, но это правда с моим индюком. тестировал на 1Н по еврэ, отрезок около полугода. На след. месяц после - результат
"На след. месяц после - результат" ???
Valio, так какой-же результат у Вас получается в форварде? Очень интересно!
Просто я тоже переделал этого советника, и поначалу прибыльность по евре при оптимизации за год (даже не за полгода, а за год) по Н1 зашкаливала за 18 (и выше)!!! А вот форварды оказались, мягко говоря, не очень...
Сейчас, после очередной доработки, прибыльность при оптимизации стала ниже (около 10), но зато теперь достойно держит форвард (более 3-х месяцев). В форварде на участке более 3-х месяцев прибыльность составляет более 2,5. Продолжаю заниматься, думаю может получиться очень интересный эксперт.
Правильно. Архитектуру при наличии нормальных входов подобрать уже не проблема. Можно сказать: Входы - все, архитектура - ничто.
Вот, господа подобрали нормальные входы и получили соответствующие результаты c МTC "Сombo" :
В чем-то я с вами согласен. Но, архитектура сети играет большую роль ... например RBF-сети куда лучше позволяют решать некоторые задачи интерполяции.
В чем-то я свами согласен. Но, архитектура сети играет большую роль ... например RBF-сети куда лучше позволяют решать некоторые задачи интерполяции.
Применительно к трейдингу задачи интерполяции и аппроксимации абсолютно бесполезны, т.к. рынок все время меняется и котировки не являются гладкими функциями. Здесь надо решать задачи экстраполяции, так чтобы торговая стратегия успешно проходила форвард-тесты, а не ограничивалась подгонкой под историю. Нам не надо знать, какое значение имела цена между такой-то и такой-то датой, потому что она и так известна без всяких интерполяций.
Т. ч. не тратьте впустую время на интерполяции и архитектуры. Тем паче, что интерполяцию и аппроксимацию можно выполнить различными иными методами и гораздо проще и намного точнее.
Подбирайте адекватные входы, чтобы классификация паттернов выполнялась даже на элементарной архитектуре. После этого уже подобрать соответствующую архитектуру уже ничего не стоит. Пытаться делать все наоборот - только зря тратить время.
Для постройки дома наиболее важен фундамент, а не отделка. Хотя отделка и выглядит привлекательней фундамента.
Так и архитектура НС. Она конечно же добавляет функциональности, но только в том случае, если входы адекватны. Если неадекватны, то штукатурка дом от разрушения не спасет, коли фундамент разрушится.
Для постройки дома наиболее важен фундамент, а не отделка. Хотя отделка и выглядит привлекательней фундамента.
Так и архитектура НС. Она конечно же добавляет функциональности, но только в том случае, если входы адекватны. Если неадекватны, то штукатурка дом от разрушения не спасет, коли фундамент разрушится.Ок, согласен - сигналы входа и выхода важны. Это постановка задачи, которая определяет архитектуру НС. Классификация паттернов, это одна из них.
Скажем почему сигналом входа не может быть определение знака следующего бара + определение экстремумов этого же бара? Чем плохо?
Даже для классификации важным вопросом будет какую НС вы возьмете и как подготовите данные. Сеть, это не точный инструмент, она не может
выдать результат до сотых, но может дать критерии ... относительно которых другой инструмент даст расчет.
Применительно к трейдингу задачи интерполяции и аппроксимации абсолютно бесполезны, т.к. рынок все время меняется и котировки не являются гладкими функциями. Здесь надо решать задачи экстраполяции, так чтобы торговая стратегия успешно проходила форвард-тесты, а не ограничивалась подгонкой под историю. Нам не надо знать, какое значение имела цена между такой-то и такой-то датой, потому что она и так известна без всяких интерполяций.
Т. ч. не тратьте впустую время на интерполяции и архитектуры. Тем паче, что интерполяцию и аппроксимацию можно выполнить различными иными методами и гораздо проще и намного точнее.
Подбирайте адекватные входы, чтобы классификация паттернов выполнялась даже на элементарной архитектуре. После этого уже подобрать соответствующую архитектуру уже ничего не стоит. Пытаться делать все наоборот - только зря тратить время.
Для постройки дома наиболее важен фундамент, а не отделка. Хотя отделка и выглядит привлекательней фундамента.
Так и архитектура НС. Она конечно же добавляет функциональности, но только в том случае, если входы адекватны. Если неадекватны, то штукатурка дом от разрушения не спасет, коли фундамент разрушится.
Абсолютно согласен. Как мне сказал один уважаемый товарищ(Стив Вард) - "Ищите входы" )))))
Стоять!!! У меня уже есть готовая либка на VC++.
Только вот там есть 2 проблемы:
1. привязка к Boost, хочу таки избавиться, таки сериализацию лучше ручками сделать, один хрен глючит.
2. что-то с адаптивным шагом.
Зачем велосипед делать? Тем более там
1. MLP с возможностью создания древовидной структуры.
2. std::valarray + агрессивная оптимизация операций для ускорения подсчета
3. есть адаптивный шаг
4. паттерны с автонормированием.
5. широкие возможности для расширения.
Ы ?
Да, это все очень хорошо., спасибки за предложение. Но как говорится лучше один раз, зато сам :)
Я за эти выходные реально для себя очень много понял.
Особенно, когда удалось свести число циклов с 10е7 до порядка 10е4.
Сделал я это двумя путями.
1. Нейрон, с самой большой ошибкой корректируетсяс удвоенной скоростью. (пытался его заменят на нейрон с минимальной ошибкой - хуже)
2. Если корректировка нейрона меньше некоторой минимальной (например 10е-6), то корректировка увеличивается в 10 раз.
Очень понравилось. :)
Ну а насчет если пользоваться чужой, то пока ты сам не поймешь необходимость чего-нибудь, то оно тебе пока и не нужно.
Тем более, что здесь важна скорость, а наращивание функциональности в ущерб скорости - непозволительно. На мой взгляд лучше писать сетку для конкретной задачи. Конечно, не без того, чтоб были нормальные объекты, и продуманная структура, но...
По поводу пункта 2 и 3 уже интересно. Можно как нибудь узнать используемые методы?
-----------------------------------
Прочитал я посты. Жаль,что воз и ныне там. :) Все только и делаю, что пишут КАК ВАЖНО СОСТАВИТЬ ВХОДЫ!!!.Архитектура ничто - входы - всё, Ищите входы. и т.д.
А конкретики ноль. Может все таки гуру поделятся? А?
Что за либа?
Своя, было дело на RSDN выкладывал. До SourceForge дело не дошло, ну и ее еще доделать бы немного...
Сделал я это двумя путями.
1. Нейрон, с самой большой ошибкой корректируетсяс удвоенной скоростью. (пытался его заменят на нейрон с минимальной ошибкой - хуже)
2. Если корректировка нейрона меньше некоторой минимальной (например 10е-6), то корректировка увеличивается в 10 раз.
Очень понравилось. :)
Ага, прикольно, зашить что-ли у себя это дело?
Ну а насчет если пользоваться чужой, то пока ты сам не поймешь необходимость чего-нибудь, то оно тебе пока и не нужно.
Тем более, что здесь важна скорость, а наращивание функциональности в ущерб скорости - непозволительно. На мой взгляд лучше писать сетку для конкретной задачи. Конечно, не без того, чтоб были нормальные объекты, и продуманная структура, но...
Насчет скорости -- я сделал все возможное, думается, ускорить сам код в моей либе можно максимум процентов на 3-5. И это будет непросто :).
По поводу пункта 2 и 3 уже интересно. Можно как нибудь узнать используемые методы?
2. "Язык С++", Бьерн Страуструп, искать агрессивная оптимизация, суть в уменьшении операций копирования.
3. Конспект лекций В.А. Головко, попробуйте поискать его работы или погуглить на тему "адаптивный шаг обучения", сейчас не могу дать конкретной ссылки.
5. Расширение не в ущерб скорости, шаблоны рулят :) .
-----------------------------------
Прочитал я посты. Жаль,что воз и ныне там. :) Все только и делаю, что пишут КАК ВАЖНО СОСТАВИТЬ ВХОДЫ!!!.Архитектура ничто - входы - всё, Ищите входы. и т.д.
А конкретики ноль. Может все таки гуру поделятся? А?
Если конкретнее, то могу подсказать, как искать адекватные входы.
Берем простейший перцептрон (см. Как найти прибыльную торговую стратегию) и цепляем ему на вход некие индюки и их комбинации. То, что даст наибольший профитфактор на этом самом перцептроне, т.е. наилучшую подгонку при тестировании с постоянным лотом (без ММ), с достаточной долей вероятности пройдет форвард-тесты на более изощренной архитектуре. Почему, легко объяснить. Ведь перцептрон - это линейная классификация. А значит на входах мы получим линейную сепарабельность по паттернам. Архитектурой добавим классификацию по нелинейным параметрам и получим улучшенный результат.
Если поступить наоборот, то ничего не выходит. Навороченная архитектура жрет немерянные ресурсы и ищет признаки паттернов сразу по нелинейной сепарабельности, игнорируя линейную. А нелинейность без учета линейности - голимая подгонка. Получаем пустую трату времени.
Ну и еще на закуску. Если сетка обучается, то ни в коем случае ее нельзя обучать до конца. Она должна всегда быть недоучкой. Например, для полного обучения нужно 1000 эпох, делим на 3 и получаем примерно 300 эпох. Этого вполне достаточно. Почему? Если мы полностью будем переобучать сеть, то она будет пригодна только для стационарной среды. А финансовые инструменты - нестационарные переключаемые среды. Т.е. она может за некоторое время только частично перейти из одного стационарного состояния в другое, при этом по большей части оставаясь в прежнем состоянии. А может и вернуться к прежнему состоянию. Поэтому полное переобучение сетки - голимая подгонка под какую-то временную переключаемую среду.
Ну и наконец, для ботаников которые полагают, что интерполяционные возможности НС необходимы для трейдинга, могу привести конкретный контраргумент. Просто возьмите любой перерисовывающийся индикатор или осциллятор и вы получите офигенную интерполяцию на истории без всяких нейросетей и навороченных архитектур. Ясен пень, что от перерисовывающих индюков трейдеры шарахаются, потому что то, что пригодно для интерполяции или аппроксимации совершенно не пригодно для экстраполяции в условиях нестационарности.