Нейронные сети и генетические алгоритмы


Нейронные сети и генетические алгоритмы
Atom
8/15/2013


Уважаемые специалисты по алгоритмической торговле! Кто нибудь пробовал использовать в своих алгоритмах экзотические способы поиска скрытых закономерностей, такие как нейронные сети и генетические алгоритмы? Звучит красиво, но насколько они эффективны? Так как их реализация требует значительной загрузки мозгов! Оно того стоит?
Вот, например, человек ищет куда пристроить свою библиотеку с нейронными сетями под Матлаб. Хоть и не про трейдинг, но хоть какие-то наработки.




1 2 3  > >>
loop

Avatar
Date: 9/14/2013
Reply


Нейронные сети и генетические алгоритмы в книге Каца Маккормика «Энциклопедия торговых стратегий» возвеличиваются как максимум возможного, в нашем не простом ремесле.
Кто разбирается в этом владеет миром.

Да оно в общем то и понятно, это ИИ, самое сложное и пока непостижимое на земле. Я не имею в виду эти все кустарные приблуды кочующие в интернетах, они с реальными нейронными сетями которые разрабатывают в google связанны только названием.BigGrin
Thanks:

PavelS

Avatar
Date: 9/16/2013
Reply


Есть еще книжка Бестенс Д. и др. Нейронные сети и финансовые рынки. В интернете она есть. Практической пользы возможно и нет, но пролистать для ознакомления можно. Чуда ждать от нейронных сетей не стоит. Всего лишь куча методов анализа данных, каждый со своими целями, задачами и границами применимости. На попробовать, для понимания как ставить задачу и готовить данные, рекомендую взять NeuroShell 2. У меня, именно для торговли на рынке, успешного применения не получилось.
Thanks:

Андрей Шабанов

Avatar
Date: 9/23/2013
Reply


На мой взгляд (который сейчас активно проверяется:) методы машинного обучения (с обучающими выборками) обладают своими плюсами и минусами.
В любом случае не стоит их возводить в ранг всемогущих машин выплевывающих указания куда пойдет рынок.
И уж точно при разработке стратегий не стоит пользоваться методами data mining, не разобравшись детально во всех сильных и слабых местах каждого метода..

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

один из примеров:
http://jspauld.com/post/...achine-learning-and-hft

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

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



В догонку...метод генетического алгоритма - по большей части, это метод оптимизации (хотя, естественно, можно и на нем строить МТС). Я знаю пару команд, которые с помощью него оптимизируют и достаточно успешно свои стратегии. Дело в том, что у нас обычно не бывает априорных предположений о "характере" целевой функции,экстремум которой мы ищем. точнее этот характер может меняться от вида стратегии..например если у нас есть просто стратегия в которой параметрами выступают числовые значения то обычно и градиентных методов достаточно, но зачастую бывает более сложные ситуации и здесь генетический алгоритм бывает неплох, особенно если надо отсеять крупицу из горы данных и стратегий.
Thanks:

Андрей Гунинский

Avatar
Date: 9/23/2013
Reply


То что нужно понять как работает та или иная используемая система это без спорно, иначе это случайная игра. Перебором параметров тут успеха не достичь. На мой взгляд такие «сложные» методы больше как маркетинговый приём пользы приносят чем реально повышают эффективность прогнозирования. Кто знает как устроенны нейронные сети понимает что нет там ничего сверх естественного, а в контексте рыночных таймсерий на первый план выходит предобработка ряда(дов), то есть удаление шума и сжатие входных векторов, а когда это сделано в должной мере эффективно то дальнейшее преобразование в сигнал тривиально и не требует для этого сложных иерархических методов. В общем если данные хорошо отфильтрованы то сеть не нужна а если плохо отфильтрованны то она бесполезна, я конечно утрирую но это близко к реальности.
Thanks:

Mikhail Sukhov

Avatar
Date: 9/23/2013
Reply


Андрей Шабанов GoTo
И уж точно при разработке стратегий не стоит пользоваться методами data mining, не разобравшись детально во всех сильных и слабых местах каждого метода..


Подозреваю, что использование термина DM употреблено в рамках генетики. Что, на мой взгляд, неправильно.

http://ru.wikipedia.org/wiki/Data_mining

Quote:
Основу методов Data Mining составляют всевозможные методы классификации, моделирования и прогнозирования, основанные на применении деревьев решений, искусственных нейронных сетей, генетических алгоритмов, эволюционного программирования, ассоциативной памяти, нечёткой логики. К методам Data Mining нередко относят статистические методы (дескриптивный анализ, корреляционный и регрессионный анализ, факторный анализ, дисперсионный анализ, компонентный анализ, дискриминантный анализ, анализ временных рядов, анализ выживаемости, анализ связей).


Главное выделил.

Другими словами, как раз нужно использовать data mining для разработки стратегий. Чтобы хотя бы проверить на числах или графике своб идею, прежде чем начинать программирование стратегии.

Я для себя еще давно разделил этапы разработки стратегии ввиде ответов на вопросы:

1. Существует ли неэффективность (да/нет).
2. Суммарное время жизни за весь период (если ее не было 2-3 месяца назад, то есть большая вероятность, что она исчезнет к запуску робота).
3. Количественне характеристики: сколько раз проявляется в течении дня (интрадей и хфт), какая средняя прибыль, сколько сделок.
4. Алготрейдерские характеристики: соотношение профит-лосса, соотношение заявок к сделкам (важно для ХФТ), гладкость кривой, средний размер позиции, среднее время нахождения в позиции и т.д.

Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Андрей Шабанов GoTo

В догонку...метод генетического алгоритма - по большей части, это метод оптимизации (хотя, естественно, можно и на нем строить МТС).


Придерживаюсь такого же мнения. Как сказали на Пауке, если на вход алгоритму давать мусор, то и на выходе будет такое же качество. Генетика хороша для оптимизации, но на вход нужно давать уже правильные данные. Тоесть те, что подтверждены статистически. Но на логику принятия решения алгоритма это не должно влиять. Скажем так, можно, конечно, сделать стратегию на генетике, но я почти уверен, что дешевле будет делать ввиде обычной структурированной стратегии с постоянной модернизацией. Рынок постоянно меняется, и с генетикой можно попасть банально в ситуацию, когда окончание разработки стратегии происходит позднее существования неэффективности.
Thanks:

PavelS

Avatar
Date: 9/23/2013
Reply


Михаил Сухов GoTo
Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Даже не знаю как вопрос сформулировать Confused У меня, пока стратегию не напишу, неэффективность не могу оценить.
Thanks:

loop

Avatar
Date: 9/23/2013
Reply


Михаил Сухов GoTo
А это всего лишь простой скрипт на C# или SQL.


Скриптом случайно не поделитесь? Заинтриговали:))Drool Ну или формулу, алгоритм...

Если сикрет то без обид, я всё понимаю.

Спасибо.

Thanks:

Mikhail Sukhov

Avatar
Date: 9/23/2013
Reply


PavelS GoTo
Михаил Сухов GoTo
Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Даже не знаю как вопрос сформулировать Confused У меня, пока стратегию не напишу, неэффективность не могу оценить.


Потому что нужен опыт. Это решение той же задачи, но с другого края, так сказать. Я вот удивляюсь, почему трейдеры пытаются сразу программировать стратегии (скриптом, дизайнером, кодом), если они еще не уверены в робастости подхода.

Что такое стратегия, вернее это ее код. Это некая F(x), где x - исходные данные. Оптимизация этой стратегии есть ничто иное, как dFx/dy этой функции. Тоесть для того, чтобы проверить наше число, нам сначала нужно получить число Fx, и далее его интерполировать по параметрам y.

Зачем? Зачем нагружать и себя и машинку лишними вычислениями? А как же оптимизация труда, времени и энергии в розетке?RollEyes

Можно сразу получать dx/dy. И уже к полученному числовому ряду применять F.

Например, возьмем арбитраж. Никто не пишет стратегию по раскореллированным парам. Тоесть как минимум все отвечают на вопрос номер 1. Отчевают это глазами, или просто чуйкой. Но можно ведь ответить числом. Причем это код будет обычного подсчета. Стратегия же в себя включает достаточно много трейдерского кода (открытие заявок, контроль позы, отслеживание ошибочных транзакций и прочее прочее). Нет смысла это писать на первом этапе, если на вопрос 1 мы получает отрицательный ответ.

Вот за счет этого и идет экономия времени.
Thanks:

loop

Avatar
Date: 9/24/2013
Reply


Михаил Сухов GoTo
PavelS GoTo
Михаил Сухов GoTo
Причем все это я отвечаю именно в таком порядке, и именно работой над данными (не над алгоритмом стратегии). Больше двух третей идей отсеиваются именно на вопросе 1. А это всего лишь простой скрипт на C# или SQL. Дело на час работы, за то я не иду до конечного пунтка - реализация стратегии.

Даже не знаю как вопрос сформулировать Confused У меня, пока стратегию не напишу, неэффективность не могу оценить.


Потому что нужен опыт. Это решение той же задачи, но с другого края, так сказать. Я вот удивляюсь, почему трейдеры пытаются сразу программировать стратегии (скриптом, дизайнером, кодом), если они еще не уверены в робастости подхода.

Что такое стратегия, вернее это ее код. Это некая F(x), где x - исходные данные. Оптимизация этой стратегии есть ничто иное, как dFx/dy этой функции. Тоесть для того, чтобы проверить наше число, нам сначала нужно получить число Fx, и далее его интерполировать по параметрам y.

Зачем? Зачем нагружать и себя и машинку лишними вычислениями? А как же оптимизация труда, времени и энергии в розетке?RollEyes

Можно сразу получать dx/dy. И уже к полученному числовому ряду применять F.

Например, возьмем арбитраж. Никто не пишет стратегию по раскореллированным парам. Тоесть как минимум все отвечают на вопрос номер 1. Отчевают это глазами, или просто чуйкой. Но можно ведь ответить числом. Причем это код будет обычного подсчета. Стратегия же в себя включает достаточно много трейдерского кода (открытие заявок, контроль позы, отслеживание ошибочных транзакций и прочее прочее). Нет смысла это писать на первом этапе, если на вопрос 1 мы получает отрицательный ответ.

Вот за счет этого и идет экономия времени.

Я думал тестирование это и есть та самая F.

Что значит «Зачем?» Вам может это и очевидно, но я даже в книжках о таком намёков не слышал, все дружно тестируют и анализируют результаты тестирования. Как это миновать совсем не очевидно.

Мне хочется выяснить что конкретно Вы имеете в виду под получением F(x) в какой мере это аналогично общепринятому тестированию, какие плюсы и минусы такого подхода. Зачем вообще тогда тестирование если и без него всё ясно с «неэффективнстью».

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

Про dy/dx не понял, то есть dF/dx или производная от «грааля» или что?
Thanks:

Андрей Гунинский

Avatar
Date: 9/24/2013
Reply


loop GoTo
...что конкретно Вы имеете в виду под получением F(x) в какой мере это аналогично общепринятому тестированию...


Это смотря какая закономерность апробируется. Если предикторный блок ТС для какого то цВР представлен в виде ряда уже готовых сигналов(1,0,-1), то вычисление на лету её P\L и кумулятивной прибыли на истории - тривиальная задача, можно поначалу подумать, что это возможно только для стратегий, которые которые своей деятельности не оказывают на свои же результаты, сильной обратной связи, но это только на первый взгляд, так как паттрерны реакции рынка на выставление приказов того или иного объёма можно учесть в алгоритме прогноза и всё равно всё сведётся к предсказанию смещения цены, в данных условиях.

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

В общем я поддерживаю Михаила Сухова в мнении о том что рыночные взаимосвязи, в начале нужно фильтровать с помощью таких, простых алгоритмов. Прежде чем уже строить на них боевую ТС.

PS. Это никакой не грааль. Даже на Форексных форумах завались «эквити-индикаторов» однако мало кому удаётся всё равно подымать много на рынке. Но я тоже после того как познакомился с этой технологией удивляюсь, как я раньше без неё обходился.
Thanks:
1 2 3  > >>

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy