Блог им. Nikitka
Упростим тему по максимуму.
Возьмем данные, 10 входных точек. Неважно чего, неважно каких.
Возьмем 1 нейрон, который видит эти 10 точек, а значит у него есть 10 весов которые нужно найти.
Процесс нахождения весов и есть обучение.
Метод обучения на примерах. Значит мы должны знать заранее ответы, какое значение примет сеть для каждого примера.
Есть методы обучения без примеров.
Вот такой примитив.
И это не работает потому что:
1. Когда мы подаем нестационарные данные, ответы так же будут нестационарны, какую бы математику мы не применили. Не существует математики корректно описывающей нестационарные процессы. Сети инструмент стационарный!!!!! Это означает что необходимо подавать стационарные данные на вход. Самый яркий пример синусоида, идеал стационарности и по амплитуде, и по частоте.
2. Метод обучения на примерах, применять нельзя. Потому что для любого набора данных невозможно разметить данные 100% правильно. Потому что у вас в реальном рынке есть куча факторов задержка, скорость расчетов, скорость выставления и получения данных, точность этих данных, ликвидность, набрал позу или нет, и в каком объеме и тд и тп.
3. Таким образом применение сетей реально серьезная софтовая задача, придется разработать очень серьезный комплекс, внутри которого будет зашита сеть для обучения, и отдельный режим этого софта для тестирования полученных результатов.
Если вы не умеете программировать забудьте про сети.
Если умеете, будьте готовы писать очень большой и сложный проект. Который даст мощный исследовательский инструмент, и не факт что этот инструмент даст необходимый результат.
И сами сети здесь в общем то вторичны, по сравнению задачей по разработке всего комплекса софта в целом.
Вам потребуется:
1. Данные в виде ордерлога из которых вы будете нарезать модели данных для сети.
2. Видеокарта с CUDA + ваш супер софт.
3. Крайне необычно мыслящий мозг, который будет способен решать такую исследовательскую задачу.
Ордерлог, куда, это все технические моменты. Технические моменты легко преодолеет более-менее подкованный ремесленник. Тем более, что не всегда нужно лезть так глубоко. В конце-концов, емкие системы по необходимомти медленные.
А вот с мозгами и с нестационарностью ценовых рядов Вы все правильно отметили. Тут уже не только трясти, тут еще и думать придется.
Емкие, да медленные, но там и доходность 20 годовых. Да для таких никакие сети и не нужны
Теперь второе, я ведь не о минутных свечках написал, а о средней частоте квантования. У нас тут теорема Котельникова не при делах из-за нестационарности. Квантовать можно по уровням, например, тогда при резком движении отсчеты будут более частыми, а на спокойном рынке — редкими.
Алго это в первую очередь набор поз. Здесь важны максимальная надежность и точность. По 1 контракту за день легко можно позу в в мильен контрактов набрать, Никто и не заметит.
Вот такое оно современное ХТФ
Сам собираю все доступные рынки.
Весь софт свой
smart-lab.ru/blog/335782.php
smart-lab.ru/blog/310157.php
В боевом режиме с 2012 года.
что мешает использовать готовые комплексы? заточенные под определенные задачи, в том числе касаемо рынка?
Ну а применить их к рынку, вопрос времени, опыта, и смекалки.
1Непостоянные по амплитуде колебаний.
2 По частоте/периоду колебаний.
и тд и тп.
Как только мы находим постоянство хотя бы 1 параметра, уже можно спокойно торговать.
Классический арбитраж построен на постоянстве амплитуты. Точнее на возврате амплитуды к известному значению
2. Разметить можно достаточно точно. ML не конечный результат — это инструмент поиска закономерностей. Далее можно протестировать, насколько неточная разметка и всякие технические моменты влияют на результат.
3. ML принципиально не отличается от любого другого способа анализа рынка — везде путь от некой идеи до ее реализации достаточно сложный.
Плюс ML — в том, что в нем изначально решается задача избежать переподгонки по возможности.
А то, что Вы написали — статарбитраж, то есть, арбитраж частичный.
Всего один слой — это линейная модель, получается линейная комбинация чиселок, это слишком просто для того, чтобы быть полезным. Вообще нейронная сеть — это не какая-то волшебная штука, а просто вычислялка приближенного значения некоторой интересующей нас функции в многомерном пространстве параметров. И соответственно оч важно и что подаётся на вход, и что на выход.
Проблема нейросетей не совсем в том, что они не могут работать с нестационарностью, это ни один метод нормально не может. Но разные области многомерного пространства параметров могут быть «стационарнее» других, а этого нейросеть сама «понять» толком не может, поскольку работает со всей областью целиком по определению
Там не то что евклидово расстояние, правило треугольника работать не обязано )
Вот, навскидку, про расстояние Махаланобиса и кластерный анализ.
www.isa.ru/aidt/images/documents/2012-01/81_89.pdf
Подавай на вход разности между соседними барами. Будет тебе стационарный ряд.
Тесты — это про одно, а рост счета — это про другое.