Блог им. 3Qu |Сравнение торговой системы на индикаторах и нейросети. Это как это?

    • 01 сентября 2021, 21:28
    • |
    • 3Qu
  • Еще
Сравнение торговой системы (ТС) на индикаторах и нейросети. — У меня вопрос, а это как?
Не, конечно можно сравнить между собой две системы — одну на индикаторах, другую на нейросети — не вопрос. Но вопрос, что, если сделать такую же ТС как на нейросети (НС), но на индикаторах, а потом их сравнить?, лишен смысла.
Для тех кто не в танке. Что есть нейрон НС?
Сравнение торговой системы на индикаторах и нейросети. Это как это?
Всего лишь сумматор, на выходе которого прикреплена некая нелинейность, сигмоид, например.
Если подать на входы нейрона значения цены с интервалом Т (скажем, 1 минута), то на выходе сумматора получим значения нашего любимого индикатора WMA.
Допустим, таких нейронов во входном слое НС штук 20. Получается, что только один входной слой нашей НС уже содержит 20 различных индикаторов WMA.
Если слоев у нас несколько, то одна НС уже может иметь в своем составе сотенку-другую индикаторов WMA перемежающихся нелинейными элементами (скажу только, что нелинейные элементы там нужны).
Ну, и каким образом мы собираемся строить на индикаторах ТС аналогичную НС? Хотел бы я посмотреть на того героя, любителя индикаторов.)
Все тоже самое относится и к другим методам машинного обучения. Но, если что, то вперед за орденами, стройте.)
Это так, немного достало.)

Блог им. 3Qu |Проектирование ТС. 5. Машинное обучение.

    • 01 сентября 2021, 17:37
    • |
    • 3Qu
  • Еще
Прошлый топик мы завершили на том, что попытки поручить построение торговой системы (ТС) машинному обучению (МО) бесполезны, т.к. на рынке отсутствуют явные зависимости, а те которые есть подавляются псевдозависимостями присущими конкретному интервалу истории котировок.
Но, все-таки не верится. Мы ведь находим в инете и даже в комплекте с пакетами МО такие экземплы применения МО, что при запуске их на своем компе, мы порой находимся в изумлении — неужели такое вообще возможно сделать за каких-то 5 минут. Ну, если это можно, то брехня это, что нельзя поручить МО самой сделать ТС.
Ну, скажем задача разделения множеств различными методами МО:
Проектирование ТС. 5. Машинное обучение.
картинка с сайта - https://scikit-learn.org ©

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

( Читать дальше )

Блог им. 3Qu |Проектирование ТС. 4. Машинное обучение.

    • 31 августа 2021, 15:40
    • |
    • 3Qu
  • Еще

Ещё с самого начала, в первой части, писал, что проект является экспериментальным, что из него получится я не знаю.Получится — хорошо, не получится — останутся наработки, которые могут пригодиться в дальнейшем.Тем не менее, обещал освещать ход проекта.
На сегодняшний день удалось получить на тестах некоторую незначительную и неустойчивую прибыль. Эти копейки не произведут впечатления на читателя — такое вы и сами получали неоднократно. Даж позориться не хочется.)
Но, что это дало? Это позволило алгоритмически более-менее разграничить области возможных лонгов и шортов.
Дальше есть следующие возможности:
а. Накручивать на ТС различные индикаторы и долго и нудно подбирать их параметры и условия входа в сделку и соответствующую логику.
в. Попробовать использовать для построения ТС методы машинного обучения (МО. Тем более, какие-то наработки в этой области у меня уже есть.
«И так как с детства его влекло к технике, то он всею душою отдался пункту «в» (тайное похищение чужого имущества, совершенное с применением технических средств или неоднократно».© Пункт «в» мне тоже более интересен, однако я совсем не исключаю и параллельного применения элементов из пункта «а».
Для тех, кто не в теме, немного подробней.
Если мы возьмём рыночные данные, каким-то образом их идеально подготовим, попробуем обучить какое нибудь МО (нейросеть (НС), скажем), то мы, скорее всего, сразу получим великолепные результаты. Единственным недостатком этих результатов будет то, что прибыль мы сможем получить только на той истории, на которой мы обучали МО. На реале и даже на другом отрезке истории такая ТС работать скорее всего не будет.
Рыночные зависимости очень неявные, встречаются в ценовом ряду нечасто и выделить их на общем фоне удачных и неудачных сделок не представляется возможным. В результате МО при обучении находит некоторые зависимости или псевдозависимости имеющиеся только в обучающей последовательности, нигде более не встречающиеся и обучается им. Т.е., псевдозависимости оказываются более явными, чем то что мы пытаемся найти.
Как с этим планируется бороться, это, возможно, обсудим уже в следующий раз.


Блог им. 3Qu |Использование Машинного Обучения в торговых системах. Реализация.

    • 18 января 2021, 22:58
    • |
    • 3Qu
  • Еще
В топике Использование Машинного Обучения в торговых системах. Простейшее применение описаны принципы построение логики ТС с применением Машинного Обучения (МО). Вкратце опишем пути реализации.
Это уже посложней — нам понадобятся знания  Lua, С++ и Python.
Я предпочитаю ничего не делать сам, особенно, если для написания программы требуется изучение и реализация сложных алгоритмов. Зачем это делать, если можно использовать уже готовое. В современном программировании это один из основных принципов объектно-ориентированного программирования — берешь готовый объект и используешь. Если есть уже готовые библиотеки с нужными программами, то их и используем — сокращает время реализации, не надо беспокоиться об отладке, и много других плюсов. Извините, ленив и нелюбопытен — есть масса других интересных вещей, на которые можно потратить свое время.
Для начала пишем на C++ простенькую DLL для связи с Lua — шаблон проекта такой DLL вы можете найти в моих топиках. Нужный Вам код вам придется писать самим.

( Читать дальше )

Блог им. 3Qu |Использование Машинного Обучения в торговых системах. Простейшее применение.

    • 18 января 2021, 14:54
    • |
    • 3Qu
  • Еще
Допустим, делаете вы торговую аж на 5 или больше индикаторах. Их как-то надо обернуть логикой принятия решений, потом как-то настроить, подобрать параметры в логике — работа большая, требующая много времени. Но вы сами эту систему разработали, и уже в основном знаете, что конкретно должна искать ваша логика. А раз так, то вы уже примерно знаете, где конкретно ваша логика должна выдавать свои сигналы.
В подобных случаях мы можем существенно облегчить себе работу, поручив построение логики методам Машинного Обучения (МО).
Входы мы знаем, выходы нам тоже примерно известны — строим обучающую последовательность для выбранного метода МО. Затем нормируем нашу обучающую последовательность к входам/выходам метода МО. Обучаем. Проверяем. Получаем готовую логику для нашей торговой системы.
Отмечу, что в данном конкретном случае нас не должны особо заботить переобучение и прочие проблемы МО — мы делаем вполне однозначную систему.
В нашем случае мы всего-навсего используем МО как обучаемую логику.

( Читать дальше )

Блог им. 3Qu |Как работает Machine Learning.

    • 01 января 2021, 22:30
    • |
    • 3Qu
  • Еще
Различных методов Machine Learning очень много, но все они работают примерно одинаково. Это и нейросети, и леса-деревья, и Байесовские классификаторы, и многое другое. Найти и прочитать как ходят-как сдают, как обучают и проверяют правильность обучения — не проблема.
Но пользователи часто забывают одно правило: мусор на входе — мусор на выходе. Для обучения недостаточно сделать обучающую последовательность с правильными ответами — результатом будут хорошие результаты на обучающей последовательности, и никакие на реальных данных.
Таким образом, мы должны четко себе представлять, чему именно мы учим, и это вовсе не правильные ответы, а правильные ответы на правильные вопросы. Если не хотите получать дурацкие ответы — не задавайте дурацкие вопросы.

Т.е., для обучения МЛ нам нужно сформулировать адекватные вопросы и ответы на них. Только в этом случае метод МЛ реально обучится и будет реально работать не только на обучающейся последовательности.
Вопрос ещё в том, что обычно мы не знаем и правильных вопросов.
Но это дело поправимое  Мы формируем какую либо гипотезу, например — три солдата показывают нам то-то и то-то. Мы как-то ищем этих трёх солдат на истории, там же находим ответы на них, обучаем на этом метод МЛ, проверяем на независимом отрезке истории, и выясняем — действительно ли эти 3 солдаты так важны для нашей торговли, или ну их на фиг.
Понятно, что и при обучении и на реале нам надо задавать МЛ только значимые вопросы, а именно, показывать МЛ не все данные подряд, а только наших трёх солдат.
Ну, а если солдаты воевать не желают, проверяем значимость вороны на шесте.) И так, пока действительно не найдем что-то стоящее.

Блог им. 3Qu |Применение Машинного Обучения в Торговых Стратегиях

    • 13 декабря 2019, 19:20
    • |
    • 3Qu
  • Еще
В прошлом посте  Мода на Машинное Обучение мы выяснили, что Машинное Обучение (МО) может решить только конкретные задачи, т.к. единственное чем занимается, так это подбором решения под заранее известные ответы, но делает это оч качественно. Посмотрим, где в ТС можно найти такие задачи.
Пусть у нас возникла идея замечательной ТС. Мы накидали на график всяческих индикаторов, ну, и прям видно — вот оно, счастье. Начали долго и муторно писать логику входов в сделку и пр. Параметры индикаторов и их сочетания неизвестны, логику еще продумывать надо, количество if зашкаливать начинает — эт только на глаз все хорошо и просто.
Подождите, так нам нужно найти всего лишь некоторый набор математических выражений для описания нашей стратегии, а это как раз задача для МО, и, по идее, МО должно с такой задачей хорошо справиться.
Итак, берем нашу стратегию, пишем несложную логику в общих чертах описывающую нашу стратегию — получаем как-бы упрощенный вариант стратегии. С помощью этой логики (упрощенной стратегии) выделяем интервалы обучения и генерируем обучающие последовательности. Подготавливаем данные — приводим все это к виду понятному МО. Обучаем на этих данных МО, проверяем на независимых данных — получаем готовую стратегию. Естественно, упрощенную логику (стратегию) оставляем как часть стратегии, ограничивающую область применения МО.
Собственно, сэкономили на написании логики стратегии.
Ну, а будет работать такая стратегия или нет — это уже зависит не от МО, а от идеи самой стратегии. Естественно, предполагаем, что как готовить данные, обучать-проверять — это мы хорошо знаем и все правильно делаем.

Блог им. 3Qu |Мода на Машинное Обучение.

    • 12 декабря 2019, 19:33
    • |
    • 3Qu
  • Еще

К обеду астролябия была продана интеллигентному слесарю за три рубля.
— Сама меряет, — сказал молодой человек, передавая астролябию покупателю, — было бы что мерять.
(И.Ильф, Е.Петров, Двенадцать стульев.)

Машинное обучение (МО) сейчас является очень популярной темой, и им не занимается только ленивый. В наличии масса готовых к употреблению библиотек — нейросети, леса-деревья, Байесы, и пр. и пр. Осваивается все это за пару недель и применяй — не хочу. Однако, результаты такого применения в трейдинге как правило нулевые или около того. Без толку, но, хотя-бы хорошо провели время,) узнали много нового и интересного.
Отрицательные результаты объясняюся тем, что методы МО — это не более чем математическое выражение или их набор формируемый в процессе обучения. При этом МО старается как можно точнее подогнать мат. выражение(я) под ответы представленные в обучающей выборке. Т.е., в принципе, методология МО ничем не отличается от банальной подгонки решения под имеющийся ответ. В студенческие годы, если что-то не сходилось, оч помогало умножить или разделить, скажем, на корень из Пи или корень из двух. Вот, и МО делает абсолютно тоже самое. И мы занимаемся тем же самым, когда подбираем параметры индикаторов, входов, тейков и стопов для получения от стратегии максимальной прибыли, и, надо сказать, с тем-же результатом — вся эта подгонка работает только на том отрезке, где мы подобрали, и никак на реальном рынке. К чести МО отметим, что методы МО гораздо лучше и эффективней чем мы занимаются подгонкой, и на интервале обучения получат классную ТС из практически всего, что вам придет в голову. Только реально работать это не будет.(
Таким образом, для типовых методов построения торговых систем применение МО не дает и не может дать ровным счетом ничего, и применение МО в подобных системах не имеет смысла. Можно не дергаться, такие задачи МО не решает.
Ну, и выводы:
МО следует применять для задач, имеющих решения, которые можно получить подгонкой под ответ. Для решения других задач методы МО не предназначены.
Такие задачи и следует искать для применения МО при разработке ТС. И если вы их найдете, это может сэкономить вам массу времени и сил. Подобных задач, кстати, великое множество, но с этим лучше обратиться к специальной литературе.





....все тэги
UPDONW