Добрый день, коллеги!
Хочу поделиться с теми из вас, кому это интересно, простой, но полезной фичей.
Не секрет, что все алготрейдеры в том или ином виде используют подгонку для получения рабочих стратегий.
Кто-то делает это в лоб и надеется, что полученный методом curve-fitting алгоритм будет работать в будущем.
Кто-то дополнительно делает
WTF WFT тесты и отбраковывает плохих кандидатов.
Кто-то просто использует моделирование для подбора оптимальных параметров системы.
Во всяком случае мне неизвестна ни одна алгоритмическая ТС вообще без параметров.
Ниже я расскажу, как отличить
пруху от собственной гениальности потенциально проявившую себя закономерность от простого результата подгонки
1. Тестируем алго в достаточно большом окне (лично я использую 500000+ баров)
2. Тестируем алго в окне вдвое большего размера (1000000+ баров)
Если результат вырос в 2 раза (примерно) — возможно, наша ТС эксплуатирует некую стабильную закономерность
Если в 1.5 раза (примерно, точнее в sqrt(2)) — скорее всего, это тупо результат подгонки
Если вырос еще меньше — в мусор и побыстрее
Ну и (я не выделял этого отдельно) в моих алго, работающих на минутных барах, результаты ТС на достаточно длинных участках одинакового размера примерно одинаковы.
Все просто
С уважением
Как говорят в МГИМО © Анекдот
С уважением
Но лично я не запускаю в продакш ТС, не оттестированную на 1.5 млн. баров
С уважением
С одним и тем же массивом данных, но смещенным?
С уважением
Ну т.е. вход — он же выход
С уважением
вообще все проблемы переоптимизации не решаются а легко и просто обходятся…
Разжевать можете?
С уважением
т.е ты делаешь тест как бы на перевернутых данных....
либо просто отзеркаль данные начало-конец и верх-низ и тестируй…
1. У меня системы реверсивные — т.е. шорт всегда меняется на лонг и наоборот
2. Я пробовал реверс актива (замена EURUSD на USDEUR, ну или BTCUSD на USDBTC) — результаты идентичны
Что я делаю не так?
С уважением
т.е для шорта у тя как раз и будут случайные данные
1. на ДУ подбираем параметры
2. на другом ДУ проверяем результат, пусть будет P1
3. на третьем ДУ перепроверяем результат, пусть будет P2
Есть закономерность, если P1 == P2
Но то, что я предложил, еще проще
И да — если доха выросла в 3 и более раз — это тоже плохо, просто означает удачную подгонку на 2-й половине длинного интервала.
С уважением
Но я написал в заголовке «простой способ».
В реале да — иногда рынки меняются. Но это происходит нечасто.
На росс. фонде 24.02.22 — реальный перелом микроструктуры цены.
На крипте 2 перелома — в середине 21 и в январе 23.
На форексе с 2015 (после всем попавшим известной истории с USDCHF) лично мной и моими алго ни одного перелома не диагностировано.
Я не умею это лечить. Но мои алго подстраиваются под новую реальность рынка за 6 мес. примерно. Главное, чтобы за эти 6 мес. не успели много слить. На крипте слива вообще не было, росс. рынок я не торгую.
С уважением
Прошу разжевать, если нетрудно
С уважением
Но (для достаточно длинных интервалов) то, что сейчас описали Вы, лично я подгонкой не считаю.
С уважением
Напоминаю, что WFT — самый надежный способ лишить иллюзий инфантильного мужчину, мечтающего разбогатеть игрой на бирже.
Любой пост про WFT вызывает крики боли и волны ненависти на смартлабе.
… и внушить ему новые иллюзии )))
ну не везде можно таким способом подтверждать. Результат работы стратегии = функция от поведения временного ряда (по крайней мере для трендовых стратегий без шорта это точно так!). Соответственно, если на «аут оф сэмпл» ряд имеет отличную результативность чем на «ин сэмпл» то это ничего страшного, так как надо смотреть на «альфу» к инструменту/рынку. Стабильность альфы — главный критерий.
А то что написано в топике справедливо, но лишь для реверсных стратегий на небольших колебаниях (как правило распределение сделок для таких стратегий скошено вправо и имеет высокий Шарп (как минимум на тестах).
С уважением!
Поэтому написал «простой способ»
И «по моему мнению»
С уважением
по сути прав выше $100 это экспресс WFT. Для пущей проверки робастности параметром стратегии можно сгенерировать временной ряд, перемешав данные в случайном порядке типа бутстрапинга и прогнать на этих данных стратегию n раз, если результат будет отличаться от тестов на исходном ряде — сразу вопрос к такой стратегии.
С уважением!
нам же нужно найти параметры для поиска паттерна/паттернов, а так вы просто сводите на нет всю работу
это дополнительная проверка системы, этим способом можно легко исключить эффект подгонки параметров под временной ряд. К тому же если немного раскрыть вопрос, то методов «перемешивания» может быть много это не обязательно перемешивание каждой точки, перемешивать можно кусками, например взять данные за 18 лет и перемешивать в случайном порядке отрезки равные году, кварталу и т.п. (в таком случае паттерны останутся на месте в большинстве случаев) плюс можно сделать перемешивание с повторениями и без таких — вариантов вагон! Ограничение только фантазия и уровень подготовки.
С уважением!
но мой взляд, ошибочна в алгоритмах поиска паттернов
в том же время, я убежден, что любой индикатор — это формализация алгорима поиска паттерна, поэтому...
ну вообщем дело ваше
Интересно, а вообще много людей проверяют стратегии на рядах 500к+ ?
Что — то мне подсказывает, что — нет.
Реально тестирую на 1.5 млн.
Просто я деньги на этом зарабатываю и неплохие.
Так что считать закономерностью то, что проявило себя на 10000 или даже на 50000 баров, лично мне ссыкотно.
Но, как говорится, каждый сам платит за свои развлечения.
С уважением
я тестирую на 1млн, дальше не иду тк за 2 года рынок точно меняется
Опрос бы провести, было бы любопытно…
это только на кастомных системах возможно, уважаемый Мальчик buybuy это проделывает на matlab, я на R запускал максимум 2,3 млн — очень тормозит… пробовал скормить это TsLab = завис сразу!
С уважением!
К примеру — он умудряется открывать лимитку по цене Open (шутка не для всех)
Да, с переходом на Матлаб 4 года назад темпы моих исследований и сроки разработки новых систем изменились на порядок.
Правда, нужно уметь писать векторизованный код.
С уважением
про тестер в TsLab: подходит для начального уровня и это с лихвой покрывает потребности 95% юзеров (мои личные ощущения). Сам уже лет 7 как ничего не тестирую в лабе, только свой код на R. Векторные вычисления — без них никуда.
С уважением!
Я вроде написал «простой метод»
Сложные публиковать не хочу и не буду
Могу предложить в тему анекдот про 2-х HR-ров
Хотите?
С уважением
Значит Путин-то молодец! Значит НАТО сосёт вместе со своим рипером! Значит война скоро закончится очередной победой российского оружия!
Значит добрая половина дельфийских оракулов смартлаба — панические пи#####лы!))
Да х@й с ним, с этим Артемовском
В WWW2 бои за такие мелкие Артемовски даже дикторы не озвучивали
Правильнее заранее понять, что будет завтра и как жить дальше
Я считаю (IMHO), что понял это одним из первых, поэтому расстроился
Но с НГ перестал расстраиваться и стал жить на позитивной ноте
Т.к. мне понятно, что п@здец уже наступает, и я не в силах что-то изменить
С уважением
Это были эмоции
Больше их не будет
Ну я надеюсь так
С уважением
Если это из-за телевизора — тогда точно к доктору
Если это личное — то вполне нормально
В конце года исполнится 10 лет, как я воюю с большой чеченской семьей. Давно бы победил, но их, сцуко, много и плодятся они как тараканы...
С уважением
Из этих источников я вчера узнал, что вулкан Шевелуч выбросил в атмосферу гигантский объём вулканического перпла, видимый с орбиты. Может быть это тот самый украинский вулкан мести, что мстит Путину за угнетение Мальчика byu-byu на смартлабе?) Может быть теперь Мальчик byu-byu больше не будет byu-byu, а станет sell-sell (но только не на moex)?))
Что из этого всего является фактом?
Кириенко и Ко отстроили грандиозную систему пропаганды. А лучшая пропаганда — та, которая немного похожа на правду.
Лично я получаю информацию из российских и украинских телеграм-каналов (минимум цензуры), потом складываю и делю пополам.
Ну и вообще, про происхождению я ученый, так что априори неплохо умею работать с источниками.
Сам я ТВ не смотрю, но супруга включает регулярно. Заявляю — если бы я не знал, что происходит на самом деле, буквально через неделю начал бы ненавидеть хохлов лютой ненавистью.
Но в реале это не так. И мои товарищи, воюющие в зоне СВО, это подтверждают. Главное — всегда оставаться человеком. Ну, или пытаться.
С уважением
С уважением
Но я их патриотческую хню не читаю
Только документальные недалеко от ЛБС
В наших телегах тоже патриотической хни хватает
Но есть разумные и взвешенные каналы
А истина — она, как всегда, примерно посередине
С уважением
Но на бесконечно большой выборке я всегда выигрываю...
А как дожить до финального результата пока не знаю...
С уважением
А хорошая ТС или алго не нуждается в тестировании на прошлом.
А почему она тогда может называться хорошей ТС?
Просто потому, что Вы так решили?
С уважением
P.S. За 29 лет исследований разнообразных рынков мне удалось найти определенное количество стабильно работающих закономерностей. И почти все из них «дикие» (на пальцах не объяснишь)
Закрытая инфа — это Грааль, ессно
Латенси и биржевые правила меняются регулярно
Все это чисто IMHO, конечно
С уважением
Вообще это неверно. Если мы тестируем на ОС ровно один раз — то результат на ОС — это и есть реалистичная оценка перформанса системы, R = (результат на ОС) / (результат на бэктесте) — некая оценка стабильности системы, 1 — R — «доля оверфита», скажем так.
Если тестируете на ОС больше одного раза — то там уже более сложная математика пошла, зависящая от того, что конкретно делаете.
С уважением
Как по мне — результат на двойном окне меньше примерно 1.5 (и ниже) — переподгонка на первой половине окна
Результат примерно 3 (и выше) — переподгонка на 2-й половине окна
Результат около 2 — заявка на найденную закономерность
Потом, конечно, все это нужно проверять и перепроверять
И да, я исхожу из аксиомы, что доходность ТС на достаточно длинном окне фиксированной длины примерно одинакова (у меня так получается). Если это условие не выполнено — пост можно не читать.
С уважением
Пост можно тогда и не писать, это вообще что-то очень частное, мало имеющее отношения к реальности, и ни на что не обобщаемое.
Все ТС так работают на окне 500000+ баров
И вообще — пост не про машинное обучение, а про ручной поиск закономерностей
Которые потом следует формализовать (если получится)
С уважением
Вы уже сделали подгонку произвольной величины, дальше какое там соотношение перформанса на первой/второй части истории — не так важно. В реальной торговле это все будет либо как-то работать, либо как-то не работать, чисто наудачу.
Причем очень и очень успешно
Тут нужно сделать еще одну важную поправку (я не писал про нее явно, думал, будет понятно из количества баров) — я работаю только на мелких ТФ.
Для работающих на дневках топик также можно не читать
С уважением
2. Проверяем на истории от 3-х до 9 месяцев.
Если результат примерно одинаков, то потенциально все ОК.
Такой подход стоил мне 2+ битка 4 года назад )))
С тех пор я поумнел
Ну или мне так кажется...
С уважением
Ждем твоего запуска на Бинанс
С уважением
Пока переключился с похожей системой на Si. Вроде, по тестам все ничего, но как-то маловато будет. Если удастся нарулить поболе, то мож и на реал пойдет. Пока неинтересно.
У Бинанса единственный плюс — это конская (пока) ликвидность
Но с твоими сотнями тестовых долларов есть гораздо более хорошие, стабильные и программно-удобные варианты
1. BitMEX
2. Deribit
3. OKX
С уважением
Я ж писал — проблемы с вводом/выводом не решены, а как их решать ХЗ.
1. На Бинансе САМЫЕ высокие комиссии в отрасли (ну, кроме Coinbase)
2. Ввод я тебе решу за 5 мин
3. С выводом тоже могу помочь
С уважением
Несерьезно как-то.)
1. Ввод тебе нужен раз, ну м.б. 2
2. По выводу дам комфортный кейс (ну только если ты лям грина выводить не собрался) — я в нем вообще не нужен
С уважением
Тест — 3 месяца, ТФ — 1 минута, 1 фьючерс.
Чистыми где-то 3200 р будет.
Полное г..., пустые хлопоты в казенном доме.)
И просадки небольшие
А кто мешает увеличить плечо?
С уважением
Как ты собираешься уменьшить ГО? Это фьючерсы МОЕХ, однако.
Красиво то красиво, только толку с нее ноль.)
Если система работает стабильно, плечо м.б. оплачено кредитными деньгами
Мультипликатор, епть)
С уважением
ГО — 13000 р. 3000 р в квартал с фьючерса (13000 р) — слезы. Сколько бы этих фьючерсов не было.
Ну, 10-15 фьючерсов я куплю без ухудшения системы. Дальше это масштабировать не получится. 10 тыщ/месяц — несерьезно.
В общем, как ни умножай, толку не будет.
16 /70000=0.02% всего средняя...
С валютными парами никогда не получалось договориться. Отродясь ничего путного не получалось.)
Какой должна быть деградация на out of sample — вопрос интересный.
Имеется ввиду полная переоптимизация под новое окно?Однако ожидал от автора злобного матана, а тут какая-то интуитивщина, с квадратным корнем. «Так и я могу!» © Промокашка
С уважением
P.S. Злобного матана у меня нет. Функан и алгебра.
А чего бы корень из двух это фигня? По-моему это норм ваще.
И чего так всех тянет в Oos тесты?!
У вас там, наверное, свои какие-то ценности, в этих алготрейдингах.
Под корень из 2-х курве фиттингом вытягивается все...
Даже случайное блуждание...
С уважением
P.S. Никого не тянет в тесты. Но, пока у ТС остается хотя бы 1 настраиваемый параметр, тесты необходимы
Мальчик buybuy, в целом, мы можем сказать, что нормальная, не оверфитнутая модель обладает плохим IS, и требовать от нее не худшего OOS. Вроде бы в условиях избыточных данных (относительно требований валидации модели) логично. С оговорками, конечно, но — логично.
Одна проблема — где взять столько данных
Возможно можно использовать это как критерий переоптимизации — если мы имеем статистически качественный OoS при многократно более качественном IS, так, что заданный критерий не выполняется, то система слишком сложна и нуждается в редуцировании. Опять с оговорками, но можем.
Мальчик buybuy, я боюсь, что СБ может данный критерий и в 5000 утянуть. Если совершенно не смотреть на IS тест и брать что попало )
То есть такое дело… требующее массы оговорок.
У Вас есть пример стабильно работающей системы без параметров?
У меня за много лет работы главное достижение — 1.5 параметра
(целое число со знаком)
С уважением
P.S. Правда, я не использую никаких гипотез относительно формирования ценового ряда — исключительно феноменологический подход
С уважением
В OOS отсутствует условие аддитивности при объединении интервалов
С уважением
Да, еще бывает полезно проверить, не заглядывает ли стратегия в будущее, перемешав случайно приращения, таким образом получив случайное блуждание.
Но она базируется на тезисе, что тренды есть
Лично я считаю, что трендов нет
С уважением
Если мат. ожидание не стабильно, это лишний повод задуматься.
Причем сравнивать надо не эквити, а количество сделок. Если оно кардинально не уменьшается, значит Ваша система не может отличить рынок от случайного блуждания. А это не лечится.