Как предсказать отработку сетапа на бирже?

На истории найдены определенные сетапы по которым известен результат (сетап - типа горизонтального пробоя).
Результат может быть 1 из 4: Стоплосс, Профит, Безубыток или Таймаут.
На истории найдено по 100000-200000 сетапов на каждый результат.

Хочу на них попробовать обучить нейронку и предсказывать на новых сетапах результат.
Это задача на классификацию?
Как подойти к задаче?
Какие слои и структуры?
Для обучения планирую скармливать нейронке например 1000 свечек до конца формирования сетапа.
Надо ли как то предобрабатывать эти свечки или можно скармливать как есть OHLCV?

Порекомендуйте статьи с чего начать

Background: миддл/сеньор JS/PHP, полный ноль в AI/python
  • Вопрос задан
  • 164 просмотра
Решения вопроса 2
@rPman
Есть два глобальных подхода к автоматизации решения задач:
1. если задачу может решить человек, то задача формализуется, эмпирически (т.е. сам человек, своими размышлениями и экспериментами) формулируются правила, чаще всего переводом в математику, затем они программируются на языках программирования
2. берут какую то универсальную формулу, которая (в теории может описывать любой) описывает требуемую задачу, и каким-либо алгоритмом подбираются ее параметры. Есть кстати алгоритмы, которые перебирают не только параметры но и саму логику формулы.
Одна из самых известных математических формул, которая может описать любой процесс в реальности (с некоторым приближением естественно) - это нейронные сети (есть даже универсальная теорема аппроксимации, показывающая крутость многослойного перцептрона).

Если пользоваться вторым подходом, это может потребовать 'бесконечного' объема ресурсов или 'бесконечного' количества обучающих данных, что само собой не радует, особенно когда львиная доля ресурсов тратится на подзадачу, которая первым подходом уже решена и в сравнении не требует ресурсов вообще.

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

Поэтому подумай, а как человек классифицирует данные? в каком виде он на них смотрит? в виде графика на котором он рисует линии? вот и представь данные как такой график (нормализуй не от min/max датасета, а текущего фрейма, то что идет на вход нейросети, если что этот подход ничего не гарантирует но как минимум сеть будет видеть то же что и человек).

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

Типичный 'аналитик' начинает рисовать на графиках какие то кривые, обычно по какому то не сложному алгоритму, вот и автоматизируй этот процесс не ИИ алгоритмами, и добавь результат в обучающую выборку, возможно это поможет?

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

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

p.p.s. на спекулятивном рынке можно зарабатывать на постоянной, это тяжелый труд, высокое психо-эмоциональное давление, огромные риски... и речь идет о считанных десятках процентов годовых.
Ответ написан
Maksim_64
@Maksim_64
Data Analyst
Это задача на классификацию?

Да. Так как у тебя таргет дискретный [Стоплосс, Профит, Безубыток,Таймаут]

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

Какие слои и структуры?
Рекурентная нейронная сеть, функция активации relu, кроме последнего слоя там softmax или что типа того что бы можно трансформировать вывод в вектор вероятностей.

Для обучения планирую скармливать нейронке например 1000
Без понятия тюнинг гиперпараметров, а batch size это один из параметров которые тюнятся, делаются после с наблюдением поведения других метрик на тренировочном и тестовом сете.

Надо ли как то предобрабатывать эти свечки или можно скармливать как есть OHLCV?
Надо препроцессинг для time series необходим их много гугли, но однозначно надо.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы