Блог им. abel

Machine learning: сколько могут заработать алгоритмы?

    • 02 марта 2021, 16:36
    • |
    • Abel
  • Еще

Как думаете, сколько может принести алгоритмическая торговля? 10% годовых? 100%? Или больше?

Все мы знаем, что machine learning может делать множество крутых вещей. А уж применить его в трейдинге для анализа графиков и прочих цифр — эта идея вообще очевидная. Почему же в публичном пространстве почти не встречается историй успеха? Не знаю, возможно потому что деньги любят тишину.

Однако я точно знаю что machine learning работает! На самом деле очень многие его применяют. Да я сам занимаюсь этим для прогноза движений по индексу S&P 500. Я также общался с человеком, который за год заработал $5млн от стартового депозита в $300 тыс. Буквально вчера общался с другим человеком, который подтвердил, что легко можно делать 300%-500% на американских индексах. Врут? Думаю что нет.

С помощью ML я и сам смог заработать +45.9% к счету только за февраль, а депозит у меня не маленький. Ниже приведены результаты по моим сделкам в феврале на реальном счете. Для сравнения в скобках указано значение тех же метрик за тот же период по самому индексу S&P 500.

Feb 2021 assets change: +45.9% (S&P 500 Feb: +2.6%)
Average daily return: 2.07% (S&P 500 Feb: 0.14%)
Annualized return: 14918.8% (S&P 500 Feb: 40.7%)
Annualized volatility: 57.1% (S&P 500 Feb: 14.3%)
Maximum drawdown: 1.6% (S&P 500 Feb: 3.2%)
Annualized Sharpe ratio: 9.12 (S&P 500 Feb: 2.46)

Повезло? Может быть. Однако все цифры в целом совпадают с бэктестами за предыдущие периоды. Это позволяет мне оставаться оптимистом и думать, что это не случайность.

Честно говоря, могло бы быть даже лучше. Я пару раз открывал сделки без рекомендаций от ML моделей. И оба таких раза пришлось закрывать пусть с небольшим, но с убытком. На диаграмме ниже приведены изменения депозита на реальном счете по сравнению с идеальным, если бы я торговал исключительно по рекомендациям. Ну что ж, выводы сделаны, буду больше доверять моделям и своим алгоритмам.

Machine learning: сколько могут заработать алгоритмы?

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

Телеграм канал проекта - https://t.me/right_side_vision

★1
88 комментариев
Без ссылки на гитхаб этот текст не имеет смысл.
Чёрный Трейдер, ну я пока не готов выкладывать все исходники в публичный доступ. Но если вы занимаетесь ML для трейдинга, то добро пожаловать в чат канала. Там уже подобралось довольно интересное сообщество, люди периодически деляться своими идеями и находками.
avatar
Что-то не встречал я людей, зарабатывающих торговлей по ML, но обсуждающих эту тему годами, как грязи.
avatar
3Qu, я тоже не встречал таких людей раньше. Но после того как я стал публиковать свои результаты в телеге, то такие люди сразу нашлись.
avatar
Abel, Ну эт как в анекдоте:
— сосед в 75 лет говорит, что может 5 раз, а я ни разу.
Врач: Ну, и вы говорите.
avatar
Почему же в публичном пространстве
почти не встречается историй успеха?
Во, наконец-то появилась… история )))

Уважаемый, какие нах истории, если уже даже на ру-рынках через 70% переваливает объём торгов, совершаемый роботами. На Западе так и через 80 давно перевалил.
Сколько вам еще историй нужно?

Ну и на смартлабе каждый месяц многие постят отчеты алготрейдинга.
Желающий глаза да увидит, желающий прихвастнуть даже не посмотрит
avatar
VladMih, речь, воще-то, о ML, а не об алго вообще. Алго весь MQL.com забит под завязку.
avatar
Ну понятно, Вы наловчились увеличивать счет в 10 раз за каждый год. И хотите порадовать дальних. 
Еще 3 года и будет тысяча немаленьких депозитов. И форбс у Ваших ступней. 
avatar
SergeyJu, вы конечно можете не верить, ваше право. Но это правда. Я выгружал реальные сделки от брокера и уже по ним считал результаты февраля.
Да и вообще я не вижу смысла врать. Зачем мне это? Я ничего не пытаюсь никому продать.
avatar
Abel, кстати уж, опишите вкратце принципы построения своей ML. Know how раскрывать не надо.
avatar
3Qu, не уверен что тут нужны технические подробности. Здесь все-таки не программисты. Если вкратце, то у меня Tensorflow, обучал на данных за историю 50+ лет. В модели много разных данных учитывается включая инфляцию, трежюрис, балансы центробанков и т.п.
avatar
Abel, Tensorflow, что именно? — нейросеть, леса-деревья, Байес? Прогнозирование или классификация?
avatar
3Qu, нейросеть. Почти обычная регрессионная модель, точнее ансамбль моделей. Лучше это все-таки не здесь обсуждать, если интересно полистайте чатик, я там много рассказывал уже.
avatar
Abel, а говорите ничего не продаете? :) вот сразу и чатик ))
avatar
CloseToAlgoTrading, вы серьзно?  
Там 30 человек всего, на этом не заработать :)
avatar

Abel, да я просто над вами немножечко подшучиваю. Все мы что то да продаем. 

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

У вас 13 сделок судя по графику за месяц было, зачем вам инфляция в фичах? как часто вы вообще сделки совершаете?

avatar
CloseToAlgoTrading, 
Было бы интересно узнать детали, но переходить для этого в телегам чатик не хочется. 
Я не поленился, сходил-почитал — никакой конкретики там тоже нет. Все как и в любых других темах/обсуждениях по ML.
avatar
3Qu, меня вот последнее время волнуе тема приведения цены к одному диапазону, и мне кажется, лучшее что я пока нашел :) это графической представление )). Ибо как нам известно, все нейросети очень чувствительны к входным данным.
avatar
CloseToAlgoTrading, вы нормализацию имеете в виду или что?
avatar
Abel, я чет сегодня плохо мысли выражаю, я про распределение наверное больше.
avatar
CloseToAlgoTrading, оч. просто делается. Пусть цена C[i]. Тогда для приведения интервала:
с[i] =(C[i] -C[0])/C[0] или с[i] =(C[i] -C[I])/C[I] — это по последнему значению I. Можно это на константу умножить, чтобы значения не слишком маленькими были.
Я так делаю.
avatar

3Qu, хмм… ну вот смотрите, может я туплю конечно, но допустим у нас есть цены и мы их приводим к одному диапазону, как ниже Abel спрашивал, нормализацуем от 0 до 1. Без всякого рода преобразований, нам надо знать диапазон входных данных и если новое значение будет выходить из этого диапазона мы не сможем его использовать, ну или сможем приравнять к 1. Что ж, так себе вариант. Далее мы возмем и будем приобразовывать скажем по вашей формуле, или можно по процентному изменению, или логорифмическими процентами, или еще как то. Получаем вроде бы более менее приемлимые одинаковые данные, но опять таки сталкиваемся с проблемой, что в обучающей выборке у нас будет минимум и максимум. Я имею ввиду, если у нас скажем все наши данные в выборке для обучения болтаются в каком то диапазоне, а потом этот диапазон меняется, но мы больше не можем доверять модели.

однако глядя на график 80х120 пикселей мы всегда имеем один и тот же диапазон для обучения, и использования в будущем :)… вопрос конечно что именно мы видим на картинке, и какие пиксели задействованы.. 

avatar
CloseToAlgoTrading, график 80х120 пикселей будет эквивалентен вполне себе случайному масштабированию входных данных :)
avatar
bstone, возможно, но мы получим другое их представление. Хотя вполне вероятно, что это тоже самое только вид сбоку ). Если будет какой то вразумительный результат, сообщу. 
avatar
CloseToAlgoTrading, подход взять просто доходность, как написал 3Qu, вполне адекватный. Можно еще BN сразу после входа поставить. Если вас беспокоит вопрос оценки достоверности на данных сильно отличающихся от обучающих примеров, то есть целый ряд приемов.
Наиболее рабочий из offline RL — делается несколько прогнозов и смотрится их дисперсия. На данных близких к обучающей выборке дисперсия разных прогнозов будет небольшая, а за пределами большая. В офлайн RL обычно не используют прогнозы в области большой дисперсии. Если модели легкие, то можно учить сразу несколько, если тяжелые, то обычно берут общюю основу и несколько легковесных голов. 
avatar
Михаил, не могли бы намекнуть, как приспособили RL к ценовым данным? 
avatar
SergeyJu, а в чем проблема? Мне кажется, для классического трейдинга одной позицией все делается прямолинейно.

Я торгую портфелями, вот тут пока не придумал, как RL приспособить, поэтому не использую. 
avatar
Михаил, дабы уточнить, offline RL (offline reinforcement learning)? если да, то что то не улавливаю идею зачем тут RL. 
avatar
CloseToAlgoTrading, я вас не призываю RL использовать. Просто в offline RL проблема, что обучающие примеры сильно могут отличаться от реальных является ключевой. Там эта тема широко исследована. Основной приём борьбы на пальцах описал — много моделей и оценка их разброса. Если он большой, то мы понимаем, что видимо попали в область непознанного и не пользуемся прогнозами. Если разброс не большой, то пользуемся средним прогнозом. Ничего не мешает делать это для обычного DL или ML.
avatar
Михаил, благодарю за разъяснение, теперь я понял вашу мысль. 
avatar
CloseToAlgoTrading, если так хотите, то можно делить на Сmax на интервале анализа. Мне кажется, что это не оч рулит, тогда флет на интервале будет аналогичен по диапазону большим движениям.
В моем случае, относительный диапазон более-менее сохраняется.
ЗЫ Кстати, на приведенной мной нормализации НС и леса-деревья вполне сносно прогнозируют, при условии, что прогнозируется не каждый чих, а заранее отобранные области.
avatar

3Qu, это же просто приращения цен, пересчитанные в проценты? Вроде, есть инттегральное ощущение, что так вот «в лоб» не работает...

avatar
ch5oh, типа того, только приращения относительно 0-го или последнего отсчета в выборке. Это просто нормирование.
В лоб это действительно не работает, но самому ML действительно больше ничего не нужно.
Там ниже есть коммент немного развивающий тему.
avatar
CloseToAlgoTrading, а зачем вообще приводить к одному диапазону? Мне не кажется, что это правильно. Я просто логарифмирую и привожу к нулю всех в один и тот же момент времени.  
avatar
SergeyJu, да просто это какое-то империческое наблюдение что ль, или внутреннее убеждение, что это лучше работает с нейросетями.
avatar
CloseToAlgoTrading, имхо, мое эмпирическое наблюдение состоит в том, что многие обычные «привычки» программистов, наловчившихся дергать ML за усы, мешают им работать с ценовыми рядами. 
avatar

SergeyJu, ох, боюсь есть большая доля правда в ваших словах. 

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

avatar
CloseToAlgoTrading, да, не нужны ML никакие фичи. Подаем на ML ценовой ряд, а нужные фичи, при необходимости, ML сама построит. Если есть что строить.))
avatar
3Qu, это точно нет :)
avatar
CloseToAlgoTrading, это точно, да! )) С фичами уже оч мало кто работает, предпочитают работать с подготовленными данными напрямую. Если в данных есть что обнаруживать — ML это обнаружит. Если нет — никакие фичи это не исправят.
avatar
3Qu, ну не скажите :)
Если бы одного ценового ряда было достаточно, то у меня бы все заработало еще пару лет назад.

А так-то даже не программист давно может ML прогнозы строить сейчас. Тут я уже писал как-то об этом, там много ума не нужно.
avatar
Abel, смотря чему и как учить. Часто и одного ценового ряда достаточно, в смысле данных, но не в смысле обучения. Для обучения неплохо бы знать — чему именно учишь.))
avatar
Abel, 
ЗЫ Вот, кстати, от старых экспериментов картинка сохранилась по прогнозированию котировок:

По х — прогнозируемое значение, по У — реальное значение через время Т. Для прогноза используется толко и непосредственно используется ценовой ряд, ничего больше.
Все значения нормированы к некоторому диапазону. При прогнозе >1.5 почти все будет в плюс. При прогнозе в окрестностях нуля, естественно, ничего интересного мы не увидим.

А вы говорите — фичи.))
avatar
3Qu, Ваш прогноз и есть то, что обычно называют фичей. Если найти еще что-нибудь независимое от него, вторую фичу, то Вы вообще — король. 
avatar
SergeyJu, это не фича, а уже результат работы МО непосредственно с ценовым рядом.
avatar
3Qu, это как поглядеть.
avatar
SergeyJu, уж коли старый график вылез, задумался, и, вроде, пришло в голову как это реально использовать. Возможно и удастся ее применить.
Раньше метода с НС не пошла, т.к. оказалось, что она не эффективней существующей стратегии.
avatar
CloseToAlgoTrading, да сделок стало мало теперь. Я сначала просто пытался торговать прогнозы, получалось не очень, сильно эмоции подводили. Потом просто запрограммировал торговую стратегию/алгоритм, который на основе прогнозов от ML модели выдает рекомендации. И это был существенный прорыв, количество сделок сильно упало, а прибыль сильно выросла. Теперь эмоции не мешают :)
avatar
Abel, нужны, конечно, подробности. Без них весь пост — обычное «ля-ля» на завалинке. =)
avatar
ch5oh, ну я вроде много чем поделился уже в комментариях. Вас что-то конкретное интересует?
avatar

Abel, какими «подробностями»? Что Вы использовали Tensorflow? =)

 

ПС Телеги нет и не будет, звиняйте. Мне СЛ хватает.

avatar
Abel, более-менее объективный срок для оценки работы управляющего в мире измеряется не месяцем, а годами. И люди смотрят не на голую доху, а на то, как она достигнута. Какие риски, какие издержки и так далее. 
Вы сказали, что за месяц у Вас волшебный результат, а бэктест за годы еще более волшебный по дохе. Про риски ничего не сказали, про издержки тоже. То есть подход явно дилетантский. Возможно, Вы нашли жемчужину в куче навоза. Но верится в это с трудом.
P.S. А ходить по чатикам и телегам как-то не принято тут. Всегда можно ответить прямо и по существу. 
avatar
SergeyJu, да, проекту есть куда развиваться. Я просто решил поделиться с миром вокруг как и что у меня. Нашел вот много единомышленников, это радует!
avatar

Вижу легкую внутреннюю несогласованность в посте).


С одной стороны имеем результаты за февраль, которые, как вы говорите, соответствуют бэктестам, т.е. типа норма. А за февраль видим шарп 9 и прочие вещи. Т.е. между строк читаем: модель феерическая.

 

И далее вы пишете, что руками два раза торговали и пишете так неуверенно, что становится понятно, что вы не особо руками торгуете.

 

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

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

avatar
Replikant_mih, я торгую лет 10-15 уже. Сделок за февраль 35 по отчету брокера. Это только один из моих счетов, и это только по фьючерсу на S&P 500.
Я говорю, что с февраля я стиль торговли очень сильно изменил. Для сравнения, в январе сделок было 135. Там одних комиссий я почти на $800 баксов заплатил.
avatar
Abel, А понял. Спасибо.
avatar
Запах телеграм-заманухи в посте сильнее запаха торговли. 
avatar
bocha, ну я же не могу рассказать все о проекте в одном посте. В телеграмме я периодически пишу об успехах и неудачах, может кому интересно будет.
avatar
Почему же в публичном пространстве почти не встречается историй успеха? Не знаю, возможно потому что деньги любят тишину.

Потому что использование ML лишь упрощает перебор в большинстве случаев. В рамках заданных условий и направления поиска.
А если за этими условиями ничего позитивного и реально существующего нет?
Нужна идея, которая может что-то дать. Это должно быть интуитивно понятно. И эту идею нужно суметь передать ML.
avatar
svgr, все верно! Сам ML — это не панацея, это лишь инструмент, который не у каждого будет работать. В первую очередь нужно запрограммировать идею в модели, целиком согласен!
avatar
13 сделок за месяц? К ML отношусь скептически — упираюсь в стат. арбитраж. 
PS. На финише алго, который будет делать 500+ сделок @ES в день.
avatar
ELab, вы комиссию посчитайте. Оно вам надо 500+ сделок по @ES?
avatar
Abel, 1 usd на круг на лот
avatar
ELab, это где такие комиссии? Поделитесь плиз, я тоже так хочу.

У меня в IB по $2.1 выходит за контракт сейчас. Я смотрел брокеров разных, но дешевле не нашел. Буду очень благодарен, если поделитесь.

У меня только за январь почти $800 на комиссии ушло. Это одна из причин кстати почему я стал торговать по-другому и сильно снизил общее количество сделок.
avatar
Abel, у компаний у которых есть членство на бирже. Можно еще в лизинг взять место на бирже. но с такими оборотами нет смысла.
avatar
ELab, что за компании такие? Назовите хоть одну плиз. Насколько я понял комиссия только самой биржи $1.23 для меня. + Regulatory Fee + broker Fee 
Биржи кому-то делают скидки?
avatar
Abel, посмотрите сколько платят члены биржи. по компании не помогу (как вы и сказали — деньги любят тишину). стоит ли заморачиваться ради 10-20 сделок этим всем?
avatar
ELab, ну знаете, я готов заморочиться, чтобы заработать почти +50% к моему депо за месяц 
avatar
Abel, советую написать своему брокеру и рассмотреть вопрос лизинга членства на СМЕ — они с радостью ответят и помогут
avatar
ELab, что-то я сомневаюсь что тот же IB вообще будет что-то делать по такому письму от меня. Или на CME в членство даже физиков берут?
avatar
Abel, любой каприз за ваши деньги. Да и брокера можно на 1-2-3 сменить. Google «cme membership lease»
avatar
ELab, так Вы подошли уже к финишу? Я помню, у Вас были посты, в которых Вы рассказывали о том, что начали торговать на CME, но потом я так понял, что не пошло и закруглились.
avatar
Schurik, те попытки были смешные ;) сейчас другой алго
avatar
ELab, ну так он работает уже этот новый алгоритм?
avatar
Schurik, на финишной прямой. Осенью обкатал на «бюджетном окружении». Есть надежда, что прокатит ©
avatar
ELab, на обычном сервере или на сетевой карте с FPGA будете работать?
avatar
Schurik, на сервер будет крутиться. это стат. арбитраж с традиционными элементами кодинга — «гавно и палки»… ;)
avatar
ELab, 
не хотел бы портить ваш мимимшный диалог, но гавна в вашем арбитраже существенно больше, чем палок. Так что, в таком виде, как в публикациях на смартлабе, это до продакшна не дойдет.
ELab, круто! поделитесь потом результатами плиз, очень интересно.
avatar
Abel, да, как запуск будет — в общих чертах поделюсь. надеюсь, что успехом
avatar
       Важен не нейросетевой инструмент, а идея, что думать(что искать), вот тут миллион проблем и всплывают, начиная с «проклятия размерности». Всё равно, что с электронным микроскопом ползать по лесу и искать где север. Когда знаешь, что ищешь, есть модель, можно и с сеткой и без строить прогнозы. А так, простите, каша из топора, лично моё мнение.
а я готов поучаствовать ) пустите меня в чатик
в свое время всякие нейросети на дельфях и сиплюсплюсах делал
avatar
sis12qw, чат канала здесь - https://t.me/right_side_vision_chat
avatar
Блин ML работает конечно — на растущем рынке он работает как и все другое, это такой вариант не париться с составление портфеля,  ARIMA-GARCH + пара фильтров — пожалуйста — thefinefolio.com/ — до сих пор сижу фиттингом занимаюсь, зарабатывает хорошо при ребалансировке каждую неделю
avatar
что будет с ML стратегией, когда рынок упадет? Ее нужно будет остановить и вернуться к Мартышкам на боковике?
avatar
Stas Dzyuba, На падениях тоже зарабатывает.
Здесь и здесь можно посмотреть как она себя ведет на бэктестах.
Как вела система себя на падениях в феврале на реальном счете — здесь.
avatar

теги блога Abel

....все тэги



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