Блог им. IvanNedomolkov_3ea

Я скачал 30 лет истории рынка за вечер. Потом полгода чинил данные, на которых стоит моя алго-платформа

Я скачал 30 лет истории рынка за вечер. Потом полгода чинил данные, на которых стоит моя алго-платформа

В прошлый раз я рассказывал, как моя платформа забраковала все 231 стратегии, которые я в неё загнал. Там был абзац про данные, который я сам назвал самой скучной частью проекта и проскочил в пять строк.

Соврал. Это не скучная часть. Это и есть проект.

Скачать тридцать лет дневных котировок по американским акциям — вопрос одного вечера и трёх строк на Python. Бесплатно, без регистрации. Дальше начинается интересное: эти данные врут, и врут они ровно в ту сторону, в которую вам приятно.

Расскажу, где именно, — по всем ловушкам, в которые я успел свалиться.

Ловушка первая: цены, которых никогда не было

Вы качаете Adj Close и радуетесь: цены уже скорректированы на сплиты и дивиденды, считать доходность удобно. Проблема в том, что скорректированная история переписывается задним числом. Прошла выплата дивиденда — и все цены до неё сдвинулись. Был сплит — сдвинулись ещё раз.

Практический смысл: цена, которую вы видите в исторической строке за 2003 год, никогда не появлялась ни на одном экране. По ней нельзя проверить, сработал бы стоп. Нельзя понять, пробила ли бумага круглый уровень. Нельзя посчитать проскальзывание — вы считаете его от числа, которого не существовало.

Пришлось держать два ряда параллельно: 16 921 596 скорректированных котировок для расчёта доходности и 15 382 482 сырых, нескорректированных — для всего, что связано с исполнением. Плюс отдельно события корпоративных действий, чтобы одно можно было получить из другого и сверить.

Ловушка вторая: в вашей выборке нет покойников

«Тестирую на акциях S&P 500» звучит солидно. Вопрос: состав индекса вы взяли какой? Сегодняшний.

А в сегодняшнем нет Enron, нет Lehman, нет Bear Stearns и ещё пары сотен компаний, которые за тридцать лет обанкротились, были поглощены или тихо ушли с биржи. Ваша стратегия торгует исключительно теми, кто гарантированно дожил до 2026 года. Это не бэктест, это машина времени с читом.

Лечится только одним способом: покойников надо вернуть в выборку. Я вытащил 1 083 делистинга из формы SEC Form 25 — официального уведомления о снятии бумаги с торгов — и восстановил исторические составы индекса на каждую дату. Не «какие бумаги в индексе», а «какие бумаги были в индексе именно в тот день прошлого».

Разница на глаз не видна. На результатах видна прекрасно.

Ловушка третья: отчётность, которой ещё не было

Эта ломает пополам всё фундаментальное. Квартальная прибыль лежит в базе с датой окончания квартала — 31 марта. Ваш бэктест честно берёт её 31 марта и принимает решение.

В реальности отчёт публикуется недели через три-четыре после закрытия квартала. Всё это время рынок его не знает. А ваша стратегия — знает.

Единственное лекарство — хранить фундаменталку point-in-time: с привязкой не к отчётному периоду, а к дате, когда цифра стала публичной. У меня это 2 830 167 записей из SEC EDGAR, и каждая знает свой день рождения.

Ловушка четвёртая: доходность, которая не полная

Сравниваете эквити стратегии с графиком S&P 500 и выигрываете? Поздравляю, вы выиграли у индекса без дивидендов. Это фора примерно в полтора-два процента годовых, подаренная вам просто так.

Мелочь? На тридцати годах это разница между «обогнал рынок» и «не обогнал».

Ловушка пятая, техническая: бесплатные источники молчат, когда врут

Все четыре ловушки выше — методологические, про них хотя бы пишут. А есть пятая, про которую не пишет никто, потому что она неинтересная.

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

Пришлось строить конвейер с несколькими источниками — yfinance, Stooq, SEC EDGAR, FRED — и автопереключением между ними, когда один замолчал или начал спорить с другим. И отдельно набор проверок целостности, который ругается на физически невозможные свечи.

Как понять, что данные всё-таки не врут

Самая полезная вещь, которую я построил, — не конвейер, а автотест на тождество: сырая цена плюс все дивиденды и сплиты за период обязаны сойтись с полной доходностью. Это замкнутая проверка: если хоть где-то потерялась корпоративная выплата или задвоился сплит, равенство разъезжается.

Сходится с расхождением меньше десятой доли процента годовых. Именно этот тест ловил мои ошибки чаще всего — и, в отличие от меня, он не устаёт и ничего не хочет доказать.

Во что это вылилось по объёму

Около 39 миллионов записей в аналитических слоях: котировки в двух видах, фундаментальные показатели, размеченные паттерны, факторные оценки. Тридцать лет, 5 264 тикера, 1996–2026.

И вот теперь — главное, ради чего я это всё пишу.

Данные — это не подготовка к исследованию

Мне казалось, что загрузка данных — скучный подготовительный этап перед настоящей работой: генерацией стратегий, оптимизацией, поиском грааля. По времени вышло наоборот. Конвейер данных занял в разы больше, чем всё остальное вместе взятое.

И только благодаря ему результат прошлого поста чего-то стоит. Когда я говорю «из 231 кандидата не прошёл никто» — это утверждение имеет смысл ровно настолько, насколько честны данные под ним. На кривых данных я бы нашёл граали. Много. Красивых. Они бы даже работали — на бумаге, до первого реального ордера.

Если строите своё, короткий чек-лист, который сэкономит вам полгода:

1. Храните сырые цены рядом со скорректированными. Всегда.
2. Верните в выборку тех, кто умер. Их отсутствие — самая дорогая ошибка из всех.
3. Фундаменталку привязывайте к дате публикации, а не к отчётному периоду.
4. Сравнивайтесь с полной доходностью индекса, а не с ценовым графиком.
5. Сделайте один замкнутый автотест на тождество данных — он найдёт то, что вы не догадаетесь проверить.

Это не гарантирует, что вы найдёте прибыльную стратегию. Это гарантирует другое: если не найдёте, то узнаете об этом за компьютером, а не на брокерском счёте.

Про кухню, если интересно: headless-база на 1С (сто с лишним объектов, ноль форм, всё через HTTP-API) + Python для расчётов + LLM-агент в Telegram, через которого я гоняю бэктесты. Ордера уходят брокеру только после подтверждения кнопкой — никакого автопилота. Разбор архитектуры с картинками: tezbase.kz/keysy/stratlab-kvant-platforma-na-1c

Дисклеймер: личный исследовательский проект, режим paper-trading. Не инвестиционная рекомендация.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.5К | ★11
67 комментариев
Хорошая работа!! 
avatar
Ho_Chu, спасибо! Самое обидное в этой истории, что чинить данные пришлось уже после того, как первые результаты бэктестов были посчитаны и обрадовали. А вы на каких данных гоняете и чем чистите сплиты?
Иван Недомолков, я забил на Америку в ноябре 2021
avatar

Ho_Chu, и, возможно, не прогадали. Я остался скорее из инженерного упрямства: американская история просто лучше всех документирована — есть делистинги, есть исторические составы индексов, есть отчётность с датами публикации. На ней удобно отлаживать саму методику, даже если торговать в итоге будешь совсем другое.

Иван Недомолков, поэтому я и сказал: хорошая работа!!!
avatar
Редчайший случай серьезного подхода к подготовке данных. 
Я не использую фундаментал и мне было проще. А сейчас совсем просто — волевым усилием отказался от идеи торговли американских акций. Пока готовлю инструмент только для QQQ. И не знаю, придет ли его время.
Сколько акций у Вас в базе, кстати.
avatar
SergeyJu,  спасибо. В базе 5 264 тикера за 1996-2026, из них 1 083 уже делистингованные: втащил их обратно из SEC Form 25 специально, потому что без покойников бэктест показывает ровно то, что приятно видеть.

QQQ в этом смысле сильно проще: вся возня с историческим составом индекса и корпоративными событиями отпадает, остаётся чистая механика. Единственное, дивиденды у него всё равно есть, и при сравнении с бенчмарком на длинном горизонте они заметно набегают.
Иван Недомолков, уж больно частым гребнем Вы гребете. А если взять только то, что хотя бы раз вошло в сп500 или, более узко,  насдак100 с момента 1 вхождения? 
avatar
 так и есть, широкая гребёнка живёт только на слое хранения. Торговая вселенная в тестах ровно та, о которой вы говорите: на каждую дату берётся состав, который был в индексе в тот день, от первого вхождения бумаги и до выхода.

Но чтобы этот состав вообще восстановить, нужны все 5 264: пока не сложишь входы, выходы и делистинги, не узнаешь, кто и когда в индексе был. Плюс широкий срез работает как контроль: если эффект жив только на узком списке, это чаще подгонка, чем находка.
Иван Недомолков, люди годами торгуют один только Си и как-то не переживают насчет подгонки. 
beststocks.ru/stock/qqq/dividends
avatar

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

Но подгонка никуда не девается, она переезжает. С выбора бумаг — на выбор параметров и на выбор окна, в котором вы решили, что правило работает. Вопрос просто звучит иначе: не «не одни ли это выжившие», а «не подогнал ли я период под то, что уже подсмотрел».

За ссылку спасибо. Дивидендная доходность QQQ невелика, и на годовом горизонте ей легко пренебречь — но на двадцатилетнем именно она и превращает ценовой график в полную доходность. Это ровно та четвёртая ловушка: она незаметна ровно до того момента, когда начинаешь всерьёз сравниваться с бенчмарком.

Иван Недомолков, нельзя объять необъятное К.Прутков.
Технически намного проще сделать несколько  простых систем на разных активах, да, с некоторым риском переподгонки на каждой, начать торговать со скромными весами и заняться выбраковкой неудач и добавлением свежих конструкций. То есть решать портфельную задачу как в теории, так и на практике. Чем все вот это,  что Вы огромным трудом создали. Если бы я был руководителем компании, в которой много денег в ДУ и много фондов, я бы Вас пригласил на работу. Но для частника, имхо, Ваш труд чрезмерен. Тем более, что каждый новый день надо отслеживать и фиксировать свежую информацию. 
avatar
Сочувствую. Я тоже убил много времени на «исследования». Хотя и не на столь высоком уровне. Слава богу, с  конца 2018 мне резко полегчало.
«У лисы 33 уловки от собак, а у кошки только одна» ©
avatar

kurd, «у кошки только одна» — забираю в копилку. Похоже, весь мой проект и был дорогим способом убедиться, что тридцать три уловки не работают, а одну кошачью я так и не нашёл. Утешаюсь тем, что выяснять это полгода за компьютером всё-таки дешевле, чем пару лет на счёте.

Иван Недомолков, 10:05 «Ведь я же говорил»
www.cbr.ru/hd_base/metall/metall_base_old/
www.cbr.ru/hd_base/metall/metall_base_upto/
cbr.ru/hd_base/metall/metall_base_new/
История с 25.03.1997 года
А если сочетать фьючерс с нулевым ГО в Сбербанке с резервом в маржинальном SBMM и в накопительном счёте…
avatar

Спасибо за ссылки, забрал. История с 1997 года по металлам — это как раз то, чего мне не хватает по российской части: у меня туда руки пока не доходили, а без длинного ряда там и проверять нечего.

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

Иван Недомолков, 11:37 Самая главная история (для «кошки») здесь
www.tadviser.ru/images/6/65/IMG_20230518_134809_939.jpg
Сегодня уже более $40 трлн, не тренд, а историческая неизбежность.
Всё остальное пена и шелуха.
avatar
Дeнег не дам.
avatar
энто не гарантирует, что найдёте прибыльную стратегию
все украдено еще до вас...©...
лучшая Стратегия —Цена выше выборки по среднему...(АГ)
avatar

wistopus, так и есть — не гарантирует, я об этом прямым текстом в конце и написал. Гарантирует другое: что вы это выясните до того, как занесёте деньги, а не после.

Про «цену выше средней» — тут самое интересное. У меня строгий гейт валил в первую очередь сложные многофакторные конструкции, а простые правила с двумя параметрами держались дольше всех. Математика тут как раз на стороне простого: чем меньше параметров, тем меньше вариантов вы перебрали, тем ниже планка, которую нужно взять по Deflated Sharpe. Красивому монстру на десяти факторах эта планка задирается до небес — и он честно об неё убивается.

Иван Недомолков, чтобы точно O границу максимума (в вашем случае шарпа) для наборов с коррелированными системмами, надо все шарпы и соотв максимум считать эмпирически а не по оценке Бейли которая для скоррелированных систем будет завышена. Где ваши наборы на этом графике? 

avatar

зе Cooler, вопрос по делу, и ответ у меня неудобный.

Мой набор лежит в левой части вашего графика. 231 кандидат — это несколько семейств (моментум, возврат к среднему, пробой) с перебором параметров внутри каждого. Соседние по параметру варианты идут почти в обнимку, между семействами корреляция умеренная. Эффективное число независимых попыток там не 231, а порядка числа семейств — ближе к десятку, чем к сотне.

И следствие вы называете верно: в оценку я подставлял N = 231 как есть. Значит ожидаемый максимум под нулевой гипотезой был завышен, а гейт получился строже, чем следовало. На итог «не прошёл никто», думаю, это не повлияло — до порога не дотягивали с большим запасом, а не на сотых. Но это именно «думаю»: пересчёт с эффективным N я не делал, так что как факт не подаю.

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

А вы эффективное N как оцениваете на практике — по средней попарной корреляции или через собственные числа ковариационной матрицы?

Иван Недомолков, да никак не считаю,  если система с 7 индикаторами, и вы из неё получили к примеру 25 систем(попыток) с разными параметрами индикаторов/режимов то все они считаются ОДНОЙ попыткой. Я только прочитал эту «основополагающую» статью, там тоже допущения мама не горюй… Например сначала набор шарпов принадлежит нормальному распределению затем чтобы найти O выбоки она превращается из нормальной в экспон. затем делается ещё шаг конем и берётся оценка О из забытой книги где как бы доказывается что распределение сходится к простейшему из трех случаев распределений (гумбеля) с функцией распределен верхней границы в пределе равной константе эйлера. После этого распред шарпов снова становится нормальным .  При этом предел достигается при большом числе попыток больше 1?  больше 100? или больше триллиона?
Для оценки верхней границы, внимание нужно УЖЕ иметь рассчитанную дисперсию по выборке.  Если у вас есть дисперсия, наверное вы все остальное метрики также рассчитали, включая премловутый максимум выборки. ИНЫМИ СЛОВАМИ Бейли  берёт ОДНО число для дисперсии шарпов а потом строит оценки максимума последовательности с любым числом попыток 1 или 1000, не важно. У них что первее яйцо или курица? Почему например нормировки «сдутого Шарпа» на количество испытаний и ненормальность приращений у них степенной (корень) природы, а не экспоненциальной как само CDF? Короче допущений у них вагон..... 
avatar

зе Cooler, спорить не буду: цепочка допущений там длинная, и «курица или яйцо» вы поймали точно — дисперсию шарпов формула требует раньше, чем объясняет, откуда её взять.

Вывод у меня из этого практический: аналитику не использовать вовсе. Распределение максимума считается эмпирически по своему же набору — перемешать доходности кандидатов, прогнать гейт на перемешанном, повторить тысячу раз и посмотреть, какой шарп там вылезает случайно. Ни Гумбеля, ни нормальности, ни вопроса о сходимости. И ваш счёт попыток встраивается туда сам: коррелированные варианты не дают тысячу независимых шансов, они дают ровно столько, сколько дают.

На мой итог это не повлияло бы — до порогов не дотягивали с большим запасом. Но формулу «сдутого шарпа» из отчётов уберу: она даёт точность, которой у неё нет.

wistopus, не все так просто даже на новых рынках, а, тем более,  в США. 
Я вот недавно в очередной раз убедился, что СП500 с 23 года работал как минимум в 2 разных режимах и то, что было верно, скажем, до конца 80-х может быть вовсе не применимо сейчас. Для НАСДАК 100 нет такой истории, но и там как минимум 2 разных режима. А уж про акции и говорить сложно, уж больно их много и они иногда очень разные.
avatar
Люди, которые формировали данные цены, тоже менялись.

bonzamen, это, пожалуй, самое сильное возражение ко всей затее — и полного ответа у меня на него нет.

История говорит о рынке, которого больше не существует: другие участники, другие комиссии, другие скорости, до 2001-го вообще котировки в долях. Чистота данных тут не спасает вообще никак — данные-то как раз честные, меняется механизм, который их породил.

Единственное, что я с этим делаю: не верю результату, который держится на одном режиме рынка. В гейте есть требование показать себя минимум в 12 ячейках из 15 по сетке «режим волатильности × период». Вашу проблему это не решает, но хотя бы отсекает стратегии, которые жили ровно в одну эпоху и умерли вместе с ней.

Иван Недомолков, я, как правило, не использую больше 2 простых индикаторов, редко — 3. 
avatar

SergeyJu, и это, судя по моим же результатам, разумнее. Строгий гейт в первую очередь выкашивал именно многофакторные конструкции: чем больше ручек, тем выше планка, которую надо взять, чтобы отличиться от везения. У двух-трёх простых индикаторов эта планка хотя бы достижима.

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

Интересно, большая работа проделана. Но всегда есть выбор — делать все это самому или подписаться за деньги на сервисы, которые это уже все проделали и поддерживают процесс.

Ну и реплика по поводу скорректированных данных:

цена, которую вы видите в исторической строке за 2003 год, никогда не появлялась ни на одном экране. По ней нельзя проверить, сработал бы стоп. Нельзя понять, пробила ли бумага круглый уровень. Нельзя посчитать проскальзывание — вы считаете его от числа, которого не существовало.

данные же скорректированы пропорционально, то есть стоп 10% или 2*ATR уместен как для цены $50 так и для любой другой цены, хоть даже $0,1 — убыток в деньгах будет один и тот же, если сумма позиции одинаковая. То же самое и с проскальзыванием. Только круглый уровень проблематичен.
Федор Подпольный, есть, конечно, нюансы. Разрыв между датой отсечки по дивам и датой зачисления, налоговые последствия, влияние объявленных дивов на котировки. Иногда это важно. 
avatar
большое спасибо за работу. Удивило, что цены меняются задним числом, никогда не думал в эту сторону. Мне правда проще, я на валютном рынке работаю, акциями не торгую, правда насдак есть среди активов. Было бы здорово в статье увидеть в качестве пример два графика, тот который реальный и тот который исправленный с источниками — было бы вообще бомба. 
avatar

Спасибо. Идея с двумя графиками правильная, беру — это ровно та вещь, которую надо показывать, а не объяснять словами.

Механика «задним числом» простая и оттого неприятная: исправленный ряд пересчитывается назад при каждом новом дивиденде и сплите. Компания выплатила дивиденд сегодня — вся её история за тридцать лет сдвинулась вчера вечером. Вы вчера сохранили котировку, сегодня скачали ту же дату и получили другое число, при том что ошибки нигде нет.

На валютном рынке этого нет вовсе: там нет корпоративных событий, ряд не переписывается. Зато есть своя версия той же беды — разные котировки у разных источников на одну и ту же минуту и дырки в тонкие часы. Другая болезнь, но лечится тем же: сверкой двух независимых источников, а не доверием одному.

PrAct, при склейке валютных фьючерсов возникает похожая проблема. 
avatar

PrAct, да фигня это всё. Абсолютная.
Если работать не на тиках, качество котировок практически ни на что не влияет. Платные, бесплатные… НИРАЗУ не пользовался платными хотя бы потому, что они ничем не могут отличаться от тех, которые даёт брокер или ДЦ на реальном аккаунте.

Разница котировок не в этом — она зависит от брокера! От настроек его торгового сервера! Но считать котировки одного источника более правильными, чем котировки другого — это бред сивой кобылы на сносях!
Если про алго, то  робота надо настраивать на котировках брокера, который будет торговаться, а не на каких-то, млять, «платно-правильных».
Настроишь на платных, а торговать робот будет ...

Мама говорила:
«ЕШЬ ЧТО НА СТОЛЕ», типа соседские пирожные не для тебя.

Кстати, котировки могут быть идентичными,
НО у брокеров разные проскальзывания и другой спред...
ВОТ куда смотреть надо, если на мелких работать!

avatar
Спасибо, тольковая статья, можно у вас уточнить - автотест на тождество — это сравнение в исходной базе тикета со всеми поправками на сплиты и дивиденды с сырым торговым графиком и собственной поправкой на дивиденды и сплиты, указанные в базах SEC/EDGAR? Вопрос 2 — зачем править на дивиденды-не лучше ли это учесть в стратегии?
avatar

Почти, но с одной поправкой. Тождество замкнуто внутри ценовых данных: берём сырой, неисправленный ряд плюс ленту корпоративных событий (дивиденды и сплиты за период) и пересобираем из них полную доходность — она обязана сойтись с adjusted-рядом провайдера. То есть сверяются два независимых представления одного и того же. Разъехалось — значит где-то потеряна выплата или задвоен сплит. EDGAR у меня не для этого, там фундаменталка point-in-time, у неё своя задача.

По второму вопросу: нужны обе вещи, но они про разное. Правка ряда нужна, чтобы сигнал не видел ложного движения — в день отсечки сырая цена падает на размер дивиденда, и любая пробойная или моментум-логика честно читает это как обвал. Учёт в стратегии нужен для денег: дивиденд приходит на счёт, с задержкой и за вычетом налога.

Если делать только «в стратегии» — сигналы будут срабатывать на искусственных гэпах четыре раза в год по каждой бумаге. Если только правку ряда — потеряете денежный поток. У меня разведено: сигналы считаются на исправленном ряду, деньги — на сыром плюс события с реальной датой зачисления.

Робот Вася, извините за задержку — ваш вопрос уехал вверх по дереву, и я его вчера пропустил.

По первому: да, схема ровно такая. Берётся сырой ряд, отдельно — корпоративные действия из SEC/EDGAR (сплиты и дивиденды с датами), поправка накладывается на сырой ряд самостоятельно, и результат сверяется с тем adjusted-рядом, который отдаёт источник. Тест утверждает не «цифры совпали до знака», а что расхождение укладывается в допуск; всё, что вылезает, идёт в разбор поимённо — обычно это либо пропущенный сплит, либо дивиденд не с той датой.

По второму — вопрос хороший, и ответ у меня скорее «и то, и другое, но в разном месте». Учитывать дивиденды в стратегии можно и часто правильнее: тогда это отдельный денежный поток с датой экс-дивиденда, с налогом, и видно, сколько доходности приходит из тела, а сколько из выплат. Проблема не в этом, а в том, что бесплатные источники обычно отдают уже adjusted-ряд, где поправка вшита в цену задним числом и пересчитывается при КАЖДОМ новом дивиденде. То есть история меняется под вами: бэктест, прогнанный сегодня и через полгода на «тех же данных», даёт разные числа, и вы об этом не узнаете.

Поэтому у меня хранится сырой ряд плюс таблица корпоративных действий, а adjusted собирается на лету. Тогда стратегия сама решает, учитывать дивиденды или нет, а бэктест остаётся воспроизводимым — это и была вся цель возни. Плюс мелочь, на которой легко попасться при сравнении с индексом: total return и price return надо сводить в одной системе, иначе бенчмарк обыгрывается на ровном месте.

Что торгует «платформа» на 200 тыс $. Нефть? Опционы?

Если нет- все это нищенство. Убыточно
avatar

Пост не про доходность и не про размер счёта — в нём нет ни одной цифры прибыли, и это сознательно. Он про то, почему бэктест врёт, если под ним кривые данные.

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

Иван Недомолков, я задал другой вопрос. Что торгует платформа. У нас роботы стоят на фьючерсы — заходят с сигнала, идет далее набор и сброс позиции. Робот считает… это уже не скажу.
avatar

Wright_king, справедливо — на прямой вопрос я ответил в сторону. Исправляюсь.

Платформа торгует акции США, NYSE и NASDAQ. Портфельные факторные стратегии на дневных данных, ребаланс раз в месяц-квартал. Ни фьючерсов, ни опционов, ни интрадея — минуток в базе нет вообще, только дневные бары.

И сразу вторая часть, чтобы не выглядело скромничаньем: сейчас это paper-trading, реальных денег контур не крутит. Поэтому в посте и нет ни одной цифры доходности — их пока попросту нет.

Ваш класс задач другой. Фьючерсный робот, который набирает и сбрасывает позицию внутри дня, живёт на других данных и других рисках: там мои тридцать лет дневных баров не нужны вовсе, там нужен стакан и качество исполнения. Сравнивать нас по одной линейке смысла мало.

Иван Недомолков, акции никто не торгует кроме крупных фондов типа Сбербанк капитал или Black Rock.
Почему? Комиссии адские! Нужен свой брокер на бирже.

Вы сразу видно — любитель.
avatar
Алекс Убилава, 
Комиссии адские!

Прикольное утверждение, если учесть что сейчас почти у всех амер.брокеров вообще нет комиссии, а у остальных они чисто символические :)
Федор Подпольный, это у каких нет комиссий? И биржа бесплатно работает — электричество жжот ))). // символические это вы на 100 $ покупаете. На 100к купите.
avatar
Алекс Убилава, не понимаю, зачем писать чушь не владея предметом. Откройте сайт любого брокера и перейдите в меню «комиссии». Например: www.schwab.com/pricing
Федор Подпольный, где чушь то? И что за Шваб? Лол 😜.




Ну а то что вы НИКОГДА ОБЬЕМЫ В 50-100 тыс акций никогда не выставляли в стакан и не знаете как это делается — это и так ясно из ваших же суждений
avatar
Алекс Убилава, 
что за Шваб? Лол

Если что, это крупнейший амер.брокер :)

Совет — если что не знаете всегда можно воспользоваться ответом ИИ. Например, заходите на Яндекс и спрашиваете у Алисы: «у каких американских брокеров нулевые комиссии на акции».

Если не умеете, сразу привожу ответ:

Хорошая новость: сейчас действительно много американских брокеров предлагают нулевую комиссию за сделки с акциями (и часто с ETF). Я подобрала несколько вариантов, но сразу оговорюсь: «ноль» обычно касается именно акций — по другим инструментам (опционы, некоторые фонды) могут быть свои сборы. Поэтому перед открытием счёта советую детально изучить тарифы. money.usnews.com +2

Вот брокеры, где такая опция есть:

  • Charles Schwab. Один из самых надёжных вариантов. Здесь действительно нулевая комиссия за онлайн-сделки с акциями, ETF, опционами и взаимными фондами. money.usnews.com +1
  • TD Ameritrade. Тоже предлагает торговлю акциями без комиссии. Но важно: для опционов предусмотрена отдельная плата (около $0,65 за контракт). hawkinsight.com +2
  • Firstrade. Ещё один вариант с нулевой комиссией за акции, ETF, опционы и взаимные фонды. Плюс здесь часто нет комиссий за неактивность на счёте и минимального порога для открытия. hawkinsight.com +2
  • Robinhood. Стал одним из пионеров этой модели. Позволяет торговать акциями, ETF и некоторыми внебиржевыми бумагами без комиссии, в том числе в нерабочее время. money.usnews.com +1
  • Webull. Подходит для начинающих: нулевая комиссия за акции и ETF, нет требований к минимальному балансу. money.usnews.com +1
  • Public. Изначально строился как платформа для дробного инвестирования без комиссии. Сейчас тоже предлагает торговлю акциями и ETF без брокерской комиссии. money.usnews.com +1
  • Fidelity. В линейке брокера тоже есть опция нулевой комиссии за сделки с акциями. money.usnews.com +1
  • E-Trade. Перешёл на модель с нулевой комиссией за акции, ETF и взаимные фонды. Для опционов может быть отдельная плата, но её иногда можно снизить при активном трейдинге. money.usnews.com +1
Федор Подпольный, вы зачем мне тут понаписали таблицу, не ответив НИРАЗУ НА МОЕ УТВЕРЖДЕНИЕ — вы обьемы никогда не торговали. Закончим дискус. Ответ там в картинке вам приложил от «мало известного брокера на планете» 😜😁
avatar
Алекс Убилава,
Ответ там в картинке вам приложил от «мало известного брокера на планете»

И не заметили нулевой комиссии в первой же строчке? 
Федор Подпольный, ну поторгуйте 10 млн $ на лайт. 😁😁😁. Еще раз вам говорю — вы никогда обьемы не качали! Ваши торги — 100 тыс рублев без комиссии 😁😁😁
avatar
Алекс Убилава, вы правы, 10 млн$ на лайт я никогда не торговал.
моя платформа забраковала все 231 стратегии

А что означает забраковала?

1) Все стратегии оказались убыточные?
2) Все результаты оказались хуже результата индекса S&P500?
3) Были свои ожидания типа +50% годовых и они не сбылись?
4) Что-то другое?

Федор Подпольный, вариант 4.

Убыточность на истории ни при чём: на обучающем куске у стратегий всё выглядело прилично, иначе они бы до гейта не дошли. Гейт проверял другое — сохраняется ли преимущество на данных, которых стратегия не видела, и переживает ли оно поправку на множественность. Когда перебираешь 231 вариант, лучший показывает высокий шарп уже просто по теории вероятностей, и его надо дисконтировать — deflated Sharpe у Бейли ровно про это.

Ни одна не удержала результат вне обучающего окна после поправки. До сравнения с S&P500 дело поэтому не дошло: это следующий шаг, а первый никто не прошёл.

Иван Недомолков, а, теперь понял. То есть обучили сетку на каком-то интервале истории, получилось 131 прибыльная стратегия. Прогнали на следующем интервале — стратегии уже не показали тот результат который был. Ну это понятно, так и должно было быть, ведь они подогнаны под первый интервал.

Федор Подпольный, почти — только сетку никто не обучал, нейросетей там нет вовсе. 231 кандидат это перебор параметров внутри трёх семейств: моментум, возврат к среднему, пробой. Подгонка та же самая, просто руками.

И «так и должно было быть» — согласен. Обидное в другом: на словах это понятно каждому, а на глаз, по одной красивой кривой на обучающем куске, отличить подгонку от преимущества невозможно. Ради этого гейт и строился.

Вы какой-то товар сервис продаете? Может дадите ссылку? Лень читать такую простыню, а на сайте нет опции сжать через ИИ текст в пару предложений.
avatar

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

Сжато в два предложения: скачать 30 лет истории рынка — это вечер, а привести её в состояние, на котором бэктест не врёт, — полгода (сплиты, делистинг, ошибка выжившего, задним числом переписанные значения). После чистки из 231 стратегии гейт на новых данных не прошла ни одна — и это результат, а не провал: до чистки половина из них выглядела прибыльной.

Иван Недомолков, ясно, жаль. Значит ничего пока интересного в тексте нет. Я думал у вас уже что-то. А у вас это лишь как записки в блоге. Спасибо что сыкономили время на чтение.
avatar
добрый вечер )
примерно 15 лет назад был такой же душный и так же заморачивался в подходах к делу
убил кучу времени, наресерчил кучу знаний

а оказалось потом, что начну зарабатывать совершенно в другом )
avatar

Андрей К, добрый вечер ) Подозреваю, что иду ровно этим маршрутом: полгода чинил данные, и главный результат пока — понимание, чего делать не надо.

А в чём в итоге начали зарабатывать, если не секрет? Интересна как раз та часть, где «совершенно в другом».

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

поэтому это получился арбитраж
в ручной торговле — это просто горизонтальный уровень по правилу, если раз отскочило, то отскочит еще раз
avatar

Андрей К, и не поспоришь — самое простое чаще всего и самое живучее. Мой «душный» маршрут ровно туда и ведёт, только дорогой через грабли: сначала строишь сложное, потом полгода выкидываешь лишнее и остаёшься с горизонтальным уровнем ) За честный размен спасибо.

не понял, как выплата дивидендов компанией может исказить ее реальные внутридневные котировки, которые вы видите в выгруженных данных. Ну да, цена падает после record date — но она падает и на рынке, и в выгружаемых вами данных, разве не так?
Идею про включение разных компаний в индексы — вообще не понял. Как это в принципе повлияет на какую то стратегию? Вы же не индекс торгуете, а отдельные тикеры?

Гуру Хренов, по первому вы правы, и я это в посте смазал. Сам гэп на отсечке реальный, чинить его не надо. Беда в другом: бесплатные источники отдают не сырой ряд, а adjusted. После каждого нового дивиденда они домножают всю прошлую историю на новый коэффициент. Бар за 2011 год сегодня один, а через квартал будет другой. Прогоняешь бэктест в январе и в июне на одном и том же периоде, получаешь разные числа и сидишь гадаешь, что у тебя поехало в коде.

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

Про индексы вы поняли меня буквальнее, чем я написал. Речь не про торговлю индексом, а про то, откуда берётся список тикеров. Возьмёшь сегодняшний состав S&P 500 и погоняешь по нему стратегию за 20 лет — тестируешь только тех, кто дожил и попал в индекс. Вылетевшие и обанкротившиеся в выборку не попали вообще, а попавшие туда попали обычно ПОСЛЕ того, как выросли. Доходность выходит красивая и нереализуемая: в 2005 этот список знать было неоткуда. Нужен состав на каждую дату.

ну да, статистика возвратов учитывает дивиденды
а зачем вообще использовать «Бар за 2011 год », которые дают какие то источники, когда эти бары можно самому подсчитать на основе «сырых»котировок? А дивиденды на американском рынке все равно смехотворны, я бы их даже не учитывал, особенно — при краткосрочном трейдинге


Читайте на SMART-LAB:
Фото
Пять акций, которые выросли на 100% за месяц
Падение Индекса МосБиржи на 16% за первую половину июля и последующий такой же отскок создали условия для экстремального движения наиболее...
Фото
Рынок металлов распадается: кто выиграет в 2026 году?
Раньше драгоценные металлы вели себя синхронно: с 2022 года котировки золота, серебра и платины выросли кратно. Но к 2026 году рынок разделился. В...
Фото
Лекция №2 Сет спекулянта. Лонги и шорты акций.
Сегодня вышла вторая лекция из серии «Сет спекулянта. Лонги и шорты акций» В этой лекции мы разберём теоретическую базу второго робота....
Фото
НОВАТЭК: Отчет за 1-е полугодие 2026 - прибыль продолжает падать, но лучшее впереди, если не прилетит
НОВАТЭК отчитался за 1-е полугодие по МСФО, нормализованная чистая прибыль упала на 9% г/г  Пресс релизы максимально...

теги блога Иван Недомолков

....все тэги



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