Блог им. 3Qu

О Machine Learning, ML, для Мальчик buybuy.

    • 26 января 2023, 19:37
    • |
    • 3Qu
  • Еще
Не далее как вчера Мальчик buybuy написал топик Рыночный профит — прогноз или паттерн?, где в ходе обсуждения он загорелся желанием использовать ML для своих задач и возник такой диалог:
3Qu, нивапрос
Давай ему (ML) реальный рыночный сэмпл скормим? )))
Если не подавится — бабла поднимем по самое не балуйся )))
Практически гарантирую )))
С уважениемavatarМальчик buybuy
Мальчик buybuy, 
Запасы данных у меня почти бесконечные
Постановка задачи тоже понятна
Мне непонятна.)
Подготовь данные для обучения, скажи каким ML обучать. Так и быть, накормлю твоими данными.
Только расскажи чему и на чем учим. Верняк скажу, что в такой постановке не прокатит и данные не подходят.) Поди туда не знаю куда, принеси то, не знаю что, или дай бабла не прокатит. avatar3Qu
.
3Qu, я понятия не имею, как обучаются ML
Мальчик buybuy
Далее мы договорились, что, возможно, вместе поработаем с ML. Однако, чтобы вместе поработать, нужно, чтобы товарищ хоть что-то понимал в специфике обучения ML. Хотел было написать в ответ коммент, но для коммента слишком громоздко получается, благодаря чему появился этот топик.

Для начала обучим ML таблице умножения от 0 до 10.
Эту задачу можно решать двумя путями: классификацией и регрессией.
Классификация — это задача раскладывания яблок, апельсинов и ботинок лежащих в одной куче по разным ячейкам. Для таблицы умножения нам понадобится 101 ячейка от 0 до 100.
Регрессия — это уже больше задача, типа, вычислительной, но ML не оч хорошо справляется с вычислениями и будет предлагать нам не точные, а наиболее вероятные ответы.
Короче, выбор конкретного метода обучения в зависимости от конкретной задачи за вами.
Итак, для таблицы умножения берем ML с двумя входами для сомножителей и одним выходом для произведения. Готовим обучающую последовательность вида 5*5 = 25, 6.8*3.2 = 21.76,… итак несколько тысяч таких примеров, может поменьше. Подаем на вход сомножители, смотрим на ответ ML, и если ответ неправильный, запускается процесс меняющий параметры или даже структуру ML в рамках выбранного нами метода.
Когда обучение завершено, можно подавать на вход сомножители и на выходе видеть ответы. Мало того, в процессе обучения у ML появляются способности к обобщению и она даст более-менее правильные ответы даже на те сомножители, которых не было в обучающей последовательности.
Напомню, ML не оч приспособлена для решения прямых вычислительных задач, но и с ними она может неплохо справляться. Достигается это тем, что в ML при обучении строятся некие гиперплоскости, и в этом пространстве ищутся решения. Практически, это похоже на апроксимацию.
Обратите внимание, что для обучения ML нужен Учитель, который знает правильные ответы на все поставленные при обучении вопросы.
Есть еще так называемое обучение без Учителя, когда ML начинает работать с реальной средой, но здесь нам понадобится Оценщик, который контролирует правильность действий ML и в случае ошибки запускает механизм обучения. Т.е., без Учителя по любому никуда.)

Теперь рассмотрим задачу прогнозирования знака свечи по двум предыдущим свечам, предложенную нашим Мальчиком. Задача эта даже проверялась на Smart-Lab и плохонько, но работала. Решим ее с помощью ML.
Здесь мы на истории уже знаем правильный ответ. На входы ML подаем нормированные приращения свечей (dС = Close — Open), на выходе получаем знак, а можно даже и предполагаемый размер следующей свечи. Для обучения используем dC1, dC2 и как правильный ответ dC3, и так несколько тысяч выбранных случайно из истории троек. Здесь тоже можно использовать классификацию, если нужен только знак след-й свечи, либо регрессию, если мы хотим получить и предполагаемый размер свечи. Далее, обучаем как в первом случае.
Если между размерами свечей существует сильная связь, то ML идеально справится с задачей. Если связь слабая, но хоть какая-то есть, то ML ее также обнаружит и будет прогнозировать не хуже алгоритма Мальчик buybuy, а скорее всего, даже лучше. Вы че думаете, яйцеголовые от нечего делать ML в своих исследованиях применяют для чего ни попадя.

Ну, вот, пожалуй все про обучение ML. Если что еще надумается, дополню.

PS Критика в комментах не принимается, писал как можно проще. Если хотите дополнить — дополняйте.
★4
59 комментариев
Шустро, вы, свояли, респект!
Крутая интересная тема… Мб Американцы так про русских думаю что ловят условно Дудя и Моргенштерна, тк обычный Ваня русский к ним не добирается, опрашивают его, загоняют данные в ML и результат их политика?! Связь какая никакая у них есть и они потом думают что у нас тут вся страна такая, которая всё вокруг ненавидит?!
Еще надо написать что самое ценное при обучении это правильно размеченные данные, чтобы те же машины ездили и умели отличать человека от столба, толпы китайцев/малазийцев и тп целыми годами просматривали миллионы картинок и помечали на них все объекты: это велосипедист, это столб и т.д. и если бы не было эти терабайтов размеченных картинок, то ничего бы не работало. Так что вам возможно нужны теребайты правильно размеченных Учителем свечек, чтобы ваши торговые нейросети научились торговать лучше людей.
avatar
Beach Bunny, я уже конкретно показывал где-то, что мозгов для трейдинга нужно меньше чем у таракана.) Напомню, у таракана всего-то ~1 млн. нейронов.
avatar
3Qu, 
я уже конкретно показывал где-то, что мозгов для трейдинга нужно меньше чем у таракана
тем не менее, вы пока вне трейдинга уже большой промежуток времени ;)
avatar
Андрей К, и вы, должно быть, знаете почему.) Я это пояснял ранее. В обозримом будущем возвращаться не планирую.
avatar
Beach Bunny, разметка объектов на картинках для обучения ML — это якобы борьба со спамом — капча
avatar
Beach Bunny, тут чуть разные песни, то о чем вы это по сути компьютерное зрение, то о чем ТС это предсказание временных рядов.ВОобще разные подходы;)В принципе временные ряды проще
avatar
matroskin, я не писал что нужно предсказывать временные ряды, нужна к примеру нейросеть которая торгует(к примеру) как Татарин или Тарасов в их стиле торговли.
avatar
Beach Bunny, торговля на фр это все предсказывание временных рядов))не важно кто как торгует)))Просто поток цен во времени это временной ряд.Не важно кто там торгует и как.Это уже отдельный вопрос.Тот пример что ТС привел очень прост.Тут даже не надо модель сразу строить, достаточно построить корреляционную матрицу из датафрэйма и понять есть вообще тут рыба то)Если нет корреляций между фичами и таргетом dc1,dc2 и dc3 соответственно, то все  и незачем парится.Без корреляции модели вам сказку не нарисуют))
Тарасова даже рассматривать не хочу.А касаемо Татарина, то тут вопрос формализации, сможете четко разложить стратегию и тогда можно подобрать фичи(ну или сделать) и попробовать на основании этого обучить модель)Все возможно, ну или почти все;)
avatar
matroskin, 
Если нет корреляций между фичами и таргетом dc1,dc2 и dc3 соответственно, то все  и незачем парится.
Нет там рыбы.)) Это только пример, взятый из экзерсисов Мальчика buybuy.
avatar
3Qu, тогда и модели мучить смысла нет))
avatar
matroskin, не, ну легкая корреляция там есть. Рыбы нет, и мучать действительно практического смысла нет.) Никто и не мучил, но кто-то на СЛ по формуле Мальчика делал.
avatar
Раскладывание яблок, апельсинов по ячейкам — ближе к кластеризации
avatar
Бдыщ. Pre-trained model
import tensorflow as tf
model = tf.keras.Sequential([tf.keras.layers.Multiply()])
for sample in [[2, 2], [3, 5], [5, 3], [9, 9]]:
    print(sample, model(sample).numpy())
avatar
Бро!

Спасибо огромное за твой труд — но я правда не понимаю, чего ты здесь понаписал.

Я в своем топике обозначил 2 подхода:
1, 2. Типо ТВиМС (предсказание будущего значения приращения цены или его знака). Эта задача решается аналитически — никакие нейросети и машинное обучение нах не нужны
3. Решение задачи максимизации эквити as is, т.е. без упрощений

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

Я всего лишь намекнул, что быстрое решение такой задачи способно привести к прорыву в соседних областях.
Ты написал — г@вно вопрос — ML все порешает.

И?

С уважением
avatar
Мальчик buybuy, 
я правда не понимаю, чего ты здесь понаписал.
ну,  стало быть, не судьба.
Я написал, что твоя задача как раз для ML, а говно- не говно, это как с пчелами — ничего заранее сказать нельзя, но тебе видней.)
Ты хотел прогнать через ML. Я тебе попытался объяснить как обучают ML. Не пролезло, извини.
avatar
3Qu, так я только со спасибо и с уважением, бро )))

Просто задача, которую я тебе формулировал вчера, ничего не знает про корреляции и не укладывается в твою парадигму даже в простейшем случае d(1), d(2), d(3) )))

Я вроде вчера ночью все подробно описал, не?

Ты ответил, что сегодня будешь разбираться?

Так вот — я нихуа не понимаю, в чем ты разобрался.
Дай молоток, плз, я попробую постучать )))

С уважением
avatar
Мальчик buybuy, 
О Боже, это всего лишь пример обучения ML.
Действительно ни х… не понял.))
Ладно, проехали.
avatar
3Qu, ну если это пример

То да, я ничего не понял

Можно попросить тебя обучить МЛ на решение моей исходной задачи?
С меня ящик коньяка (или других вкусняшек) на твой выбор

Сам я в этой хне копаться не хочу, если честно. Т.к. немного представляю себе предмет «нелинейная оптимизация» в части МЛ. Там нет ни рыбы, ни грибов… (IMHO)

С уважением
avatar
Мальчик buybuy, попросить можно.
ML обучается числами: N чисел — условие задачи, M чисел — ее решение. И таких комбинаций: условие-решение для обучения должно быть тысячи.
Подготовь таковые, плюс аналогичные для теста, + расскажи как можно нормировать к диапазону или сам это сделай.
А получится- не получится — это от тебя зависит — дерьмо на входе — дерьмо на выходе.
avatar
3Qu, так это и невозможно!

Я уже писал тебе — аномально высокое количество входных комбинаций
Ты ответил — хня, ML со всем справится )))

С уважением
avatar
Мальчик buybuy, 
avatar
Мальчик buybuy, а не надо все комбинации.
Я вот, обучал  на ряде из 20 последовательных Close. Я че, смотрел, все ли там комбинации. Выбрал из истории монтекарлой достаточное для обучения кол-во отрезков по 20, тыщ 40, кажется, пронормировал. И все прекрасно обучилось. Ела все подряд.)
avatar
3Qu, не, бро, так не получится

Задача, которую я описывал, по своей сути предполагает практически полный перебор.

Любое упрощение — во благо

С уважением
avatar
Мальчик buybuy, 
Задача, которую я описывал, по своей сути предполагает практически полный перебор.
ну, в таком случае сам перебирай.))
Но, вообще, странная задача, без обобщения.
+ 1 свеча, и мочало, начинай сначала.)
avatar
3Qu, так это не моя хотелка

Это формализация задачи нахождения максимума эквити в маркетном исполнении

Не нравится — решай другую задачу

Но имей в виду, что ее отношение к профиту на рынке может оказаться примерно таким же, как отношение свиньи к апельсинам...

С уважением
avatar
Мальчик buybuy,  я порешаю другую.))
Кстати, где ты взял 280 сделок в год? Я как не смотрю, у меня больше ~120-130 не получается.) 
avatar

3Qu, хмммм

258 сделок в год — это мои алго. Я их не обсуждал даже.
Ты про свои анонсировал 4+ сделки/день.
Вне этого контекста мы с тобой количество сделок не обсуждали.
В чем вопрос?

С уважением

avatar
Мальчик buybuy, ну, да, 258. Посмотрел твои интервалы из того разговора, и можно ли на них работать. Работать можно. Получилось 6-8 сделок за 20 дней на большинстве просмотренных интервалов. Остальное и связываться не стоит.
Вот и думаю, откуда система Мальчика столько сделок набрала? Их там нет.©
avatar
3Qu, хмммм

А я тебе про свою рабочую систему хоть раз что-то рассказывал?
Или ты ее из моих постов выдумал? )))

С уважением
avatar
Мальчик buybuy, а че там рассказывать, ты все сказал — ушел наверх от комиссий, 258. Да, и выбор невелик, даже перебора не нада.) Ниже, там мелочь плавает — неинтересно.
avatar
3Qu, ну не так

Там вся крупная рыба и плавает )))

Но тебе, бро, пока это не известно

Когда будешь сравнивать исполнение ордеров на $100k, $1mio, $5mio на криптобирже и расстраиваться по этому поводу — тогда и сверим часы

А в моменте все твои рассуждения, бро, носят чисто теоретический характер. Без обид.

С уважением
avatar
Мальчик buybuy, а ты говоришь про твою систему ничего неизвестно. Все известно.)
Ну, ладно, почти все.)
Задаваться не надо.)
Повторять, кстати, никто не собирается, не волнуйся так.
avatar
3Qu, вообще ничего не известно

Не?
Давай проверим мою систему на любом ценовом ряде?
Готов?

С уважением
avatar
Мальчик buybuy, зачем мне твоя система? У меня и своя неплохая.
Кстати, спасибо за ушел от комиссий. Я и сам собирался наверху посмотреть, но все как-то не досуг было.
avatar
3Qu, ну Ок, братэлло

Тогда я лично не понял, что мы уже сутки обсуждаем

1. Я обозначил постановку задачи, решение которой дает максимум эквити на интервале
2. Ты написал, что это элементарная задача, и методы ML рвут ее, как тузик — грелку
3. Я вежливо и осторожно попросил тебя предъявить либо грелку, либо тузика
4. Ты походу слился...
5. В чем правда, бро?

С уважением
avatar
Мальчик buybuy, правда в том, что ты не в состоянии подготовить обучающую и тестовую числовые массивы для ML, а за тебя это никто делать не будет.
Ну, не можешь, так не можешь. Делов-то.
Тебе четко сказали, один раз прогоню безвозмездно, т.е., даром.
avatar
3Qu, конечно не могу

Внимательно почитал материалы по предложенной тобой методике
Для реальной торговли обучающий материал не поместится в 1000 ТБ
Это вообще возможно посчитать?

С уважением

P.S. Для таких кейсов и существует сложная математика
avatar
Мальчик buybuy, нет, не поместится. Но это твои проблемы.))
avatar
Так, чисто для информации:
Пробовал я обучить свою самописную сеть подобному методу предсказания направления и возможного размера следующей свечи. Правда брал несколько более сложный набор данных и за 5 свечей, а не за 2. Рузльтат: вероятность колеблется недалеко от 50%. по направлению, и еще меньше по размеру. Конечно, есть много всяких «но» и «если», однако в целом  я пришел к выводу, что не просто так крупные компании, у которых достаточно средств для построения и обучения более сложных сетей, чем моя, до сих пор не стригут бабло с помощью таких сеток, поплёвывая в потолок.
avatar
Prophetic, 
Так, чисто для информации:
Пробовал я обучить свою самописную сеть подобному методу предсказания направления и возможного размера следующей свечи. Правда брал несколько более сложный набор данных и за 5 свечей, а не за 2. Рузльтат: вероятность колеблется недалеко от 50%. 
1. Свечей надо больше, ~ 15-20.
2. Обучали, либо не то что нужно, либо не тому что нужно.)
Вот пример работы обученного ML по прогнозированию котировок на 5 минут.
avatar
3Qu, Лично Вам удалось создать прибыльную ТС, которая реально приносит Вам деньги, на базе этого ML?
avatar
Prophetic, не пробовал за ненадобностью. На тот момент была прибыльная ТС. Шило на мыло — нет смысла.
avatar

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

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


теги блога 3Qu

....все тэги



UPDONW
Новый дизайн