Блог им. FineLogin

Почему на бектесте +100%, а в реале -100%?

    • 06 февраля 2021, 17:40
    • |
    • GOLD
      Популярный автор
  • Еще
Глядя на графики, ты замечаешь, что сегодняшний график похож на вчерашний, а вчерашний похож на позавчерашний. График за текущий месяц похож на график за прошлый месяц. А график за прошлый год мало чем отличается от графиков за предыдущие годы.

И тут тебе в голову приходит гениальная идея:

Нужно придумать несколько торговых стратегий и протестировать их на исторических данных! Торговать нужно по стратегии, которая покажет максимальный профит с минимальной просадкой с учетом комиссий и проскальзываний! Ура!

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

Через год ты получаешь убыток -100%. Как так??? Что за муда$кий рынок????

Мой дорогой друг, спешу тебя утешить. Рыночек меняется. Хотя выглядит на графике всегда одинаково. Сравни графики звуковых колебаний:

Так выглядит песня «Мент» (Сектор Газа):
Почему на бектесте +100%, а в реале -100%?

Так выглядит песня «What Can I Do» (Smokie):
Почему на бектесте +100%, а в реале -100%?

Если увеличить масштаб этих графиков, то выглядят они — хрен отличишь. Но торговая стратегия, протестированная на Менте не будет работать на What Can I Do. Более того, торговая стратегия, протестированная на первой половине Мента, не будет работать на второй половине. И наоборот. Почему? Потому, что внутри песен все меняется, а сами песни -  вообще разные. Это понимают даже 5-летние девочки.

И ты уже спросишь — что делать??? И я тебе отвечу — тестируй свои стратегии методом WFT. Если ты будешь честно и кропотливо тестировать алгоритмы данным методом, то гарантирую, что ни один из них не покажет удовлетворительный результат. А через пару лет упорных трудов ты сделаешь научно-обоснованный вывод:
Почему на бектесте +100%, а в реале -100%?

Предупреждаю, на пути к этому выводу ты встретишь много людей, утверждающих обратное. Гони их ссаными тряпками))
★4
87 комментариев
ПРосто надо на реале тестировать а не на истории)))

avatar
Байкал, ашыбаитись)… тестирование стратегий в реале подобно обучению обезьяны метанию настоящих гранат… 100% смертность гарантирована))
avatar
$100, любую стратегию можно сделать прибыльной за счет управления капиталом
avatar
Capital Man, можно на пальцах, как можно так сделать прибыльной стратегию с отрицательным матожиданием?
avatar
bstone, на пальцах не получится, управление капиталом нужно знать
avatar
Capital Man, ну я так и думал…
avatar
Capital Man, Стратегию с отрицательным матожиданием никакое управление капиталом прибыльной не сделает. Не дурите народ.
avatar
vitalt, думайте как хотите
avatar
Capital Man, 

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

это называется схоластика.
avatar
$100, нет это больше аксиома 
avatar
ГРААЛЬ палите?) в своё время так и сделал. Солидарен с автором.
avatar
Мастер спорта, это грааль на тему как перестать мечтать и сливать бабло))
avatar
Херня всё это, про «рынок меняется». У рынка есть всего две фазы — консолидация (флэт) и перенос этой консолидации на другой ценовой уровень ( тренд). От этого и надо плясать . 
avatar
Anest, добро пожаловать на кладбище депозитов таких плясунов))

Картинки по запросу "кладбище"
avatar
$100, у меня боты на этом кладбище только ямы копают :) Так, что я там давно представлен.
avatar
Рынок хаотичен. И технический анализ работает не стабильно
Саханов Виталий, на малых таймфреймах рынок симметричен, а не хаотичен… это сильно разные вещи))

на больших таймфреймах рынок всегда куда-то движется… вопрос — куда и как долго))
avatar
$100, а что значит симметричен? На малых таймфреймах.
avatar
Саханов Виталий, ага, подброс монетки тоже работает нестабильно
avatar
what… can I doooo, what… can I doooo — я разгадал тайну загадочных точек со сниженной волатильностью) 
avatar
Replikant_mih, а я вспомнил почти сразу) В памяти человека хранится много информации, о которой ты не помнишь, пока не придет момент)
avatar
И что конкретно такое WFT и как его делать? По ссылке ничего конкретного
avatar
Igr, walk forward test. Делается очень просто: оптимизируешь на первой половине данных, потом тестируешь на второй половине. Это практически полностью отсеивает тупую подгонку под тестовые данные, а в этом и заключаются 99% всех народных алгоритмических «стратегий».
avatar
bstone, респект за краткость, помноженную на толковость))
avatar
bstone, Ииии в чем прикол-то, я то думал что все так тестируют, оптимизируют по первой половине, а потом прогоняют по второй для проверки. Разве нет?
 И общем есть довольно много трендовых алгоритмов, которые показывают нормальную прибыль в этом случае, с Шарпом от 1 до 2.5
avatar
Sergeyka, да, есть много таких алгоритмов, только трендов таких очень мало и в конечном итоге все сводится к угадайке, а продолжился ли тренд, подходящий алгоритму, или он уже поломался. А лучше ли это гадания вручную? Если же у вас много выживающих после WFT, то смотрите в сторону портфельной теории. Только с вычислением достоверной корелляции беда все равно.
avatar
bstone, ну с натяжкой можно сказать что угадайкой, точнее угадайкой основанной на статистическом анализе, хотя если взять тот же прогноз погоды на длительные периоды времени(больше одного дня) то это тоже статистическая угадайка, однако ж весь мир пользуется этим и весьма неплохо. Кроме того если актив был трендовым на длительном периоде времени, маловероятно что он резко перестанет быть трендовым, а это значит, что в худшем случае трендовые алгоритмы будут потихоньку угасать, принося каждый год все меньше и меньше прибыли, если торгуемый актив начнет «протухать», то есть время выключить робота и перейти на другой актив или подготовить другую стратегию, будет достаточно.
avatar
bstone, код робота это и есть результат гадания в ручную.
код то ручками пишешь.
и да, это статистически ставка на группу исходов.

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

раз в месяц занести и купить (или продать если есть понимание) — это максимум что можно делать руками последние лет 10.

avatar
bstone, потом получаешь то что проходит WFT, даешь ему следующий кусок новых данных и… опять плюешься потому что тест не проходится либо из-за малого дохода либо из-за убытка
avatar
MoneyHarvester, именно так, что только подтверждает изложенную автором поста истину :)
avatar
Igr, коротко поясню:

Традиционный бэктест — это последовательность двух итеративных процессов обработки исторических  данных OHLCV:

1. процесс выбора оптимального алгоритма
2. процесс выбора оптимальных параметров алгоритма

WFT (Walk-Forward Test) - это последовательность трех итеративных процессов обработки исторических  данных OHLCV:

1. процесс выбора оптимального алгоритма
2. процесс выбора оптимальных параметров алгоритма
3. процесс эмуляции реальной торговли

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

Например:

1. Вы создали акуенный алгоритм, генерирущий профит за период с 2017 по 2019 годы
2. Вы подобрали акуенные параметры (и/или переключатели) для этого алгоритма, с которыми он показывает выдающиеся результаты
3. Вы обрабатываете созданным алгоритмом с подобранными параметрами незнакомые данные (данные за произвольный период 2020 года)

Результат, как правило, плачевный.

Однако, если результат вас устраивает, то вы сдвигаете тест WHT на произвольный период и повторяете его.

Результат, как правило, плачевный.

Однако, если результат вас устраивает, то вы сдвигаете тест WHT на произвольный период и повторяете его.

Результат, как правило, плачевный.

И так — много раз…
avatar
Знаком с подобной проблемой. Мне кажется, что все зависит от алгоритма, как Вы обрабатываете OHLCV. Во первых, это должен быть  как можно меньший интервал, т.е минутки. 
Во вторых, вы должны быть честными сами с собой. Если в Вашем алгоритме Вы все время покупаете по Low, а продаете по High,  то Ваш алгоритм скорее всего будет давать хорошую прибыль.  Но в реальной жизни естественно так не бывает  и Ваш алгоритм вполне вероятно уйдет в минус.
Конечно,  идеально  проверять свои алгоритмы не на минутках, а на тиках. Но где бы их взять. Находил такие данные на https://www.tickdata.com/ — но там очень все дорого.

avatar
LevNNN, метод WFT — это холодное лезвие бритвы, лишающее взрослого мужчину детских иллюзий относительно возможности заработать на гениальной и/или дисциплинированной  обработке данных OHLCV.

Если вы не инфант и не лудоман, то попробуйте его обязательно. Он вернет вас на землю и сохранит вам кучу денег.
avatar
$100, Я немного не про это говорил.   То что Вы говорите и так очевидно.   
avatar
LevNNN, «этот архив тиковых данных на многие гигабайты. Миллиарды тиков.»
www.mql5.com/ru/articles/7113
Лови это хорошая статья по оптимизации и автор приложил базу тиков на которой проводил тесты
avatar
Действуйте как ваш процессор. Билл и те кто создавал процессоры компьютеров очень умные люди. Они знают как предсказывать будущее.
avatar
GAURANGA, не могли бы вы пояснить смысл сказанного?.. уж больно непонятно))
avatar
$100, процессор который стоит на вашем планшете, телефоне, пк и т.д очень умный. Он предсказывает ваши действия заранее, по вашему поведению. Допустим, вы зашли туда-то у процессора есть ии который подгружает будущее окно заранее… то бишь предугадывает ваш следующий ход действий. Так и наш ум строен. Он пытается дорисовать будущую картину… на основе этой инфы и строили процессоры
avatar
GAURANGA, хоссподи… где вы такого наслушались?.. у Моргенштерна??))
avatar
$100, вы о чем ?
avatar
GAURANGA, о том, что процессор предсказывает))

скорее всего, вы имели в виду алгоритмы обработки действий пользователя в сети, о которых много пишут красивые сайты с нарядными картинками… это не связано с алгоритмами обработки команд в процессорах))
avatar
$100, когда начинаете писать игры вам становится все ясно… процессор обрабатывает огромное количество процессов которое вы ему даете. И главная задача процессора предугадать ваши будущие действия, чтоб минимизировать отдачу данных. Одним словом, за счет предсказывания будущего и происходит увеличение скорости процессора. Разумеется не только это важно…
avatar
GAURANGA, нет никакого предсказания… процессору некогда заниматься этой херней))

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

Поганые журналисты назвали эту логику предсказанием и растащили этот сказочный образ по неокрепшим детским умам))
avatar
$100, сейчас напишу доступным языком. Когда вы выкладываете пост. Вы уже четко понимаете что у смарт лаба есть система, после 4 лайков пост выходит на главную страницу. Так вот, процессор учитывает такие системы и заранее загоняет в кэшь будущие ваши действия. Допустим вы каждый день делаете одни и те же процессы, зачем процессору что-то новое придумывать если вы и так ходите по одной дороге, ездите на той же машине и т.д. Гляньте видос ниже. Хотя бы 10 минут.
avatar
$100, на основе ваших предпочтений процессор и обрабатывает будущий сценарий событий. Как это сложно понять? Нравится вам красивые места смотреть в сети, будут вам их показывать хоть круглые сутки. Нравится по есть, будут еду рекламировать. Такая же память есть и на бирже.
avatar
$100, branch prediction — вполне себе технический термин, без всяких журналистов ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D0%BE%D0%B2
avatar
$100, 
avatar
Поздравляю. Вы достигли дзена и теперь можете смотреть на всех верующих как на холов. Отдельно рекомендую посмотреть htf.
avatar
gluhov, htf — эээт чо?))
avatar
Eugene Bright, этот алгоритм хотя бы уже можно изучить... 
avatar
Eugene Bright, вероятность существования некоей неизменной функции, способной выжимать из 10-летнего потока данных OHLCV регулярный профит, стремится к нулю… но не равна нулю.

Другое дело — живой человек, говорящий о регулярном профите посредством активного трейдинга в течении 10 лет. Попробуйте найти людей, говорящих в Интернете о своих доходах за 10 лет. Вы обнаружите, что все они — инфоцыгане.
avatar
$100, а как же Резвяков он в 2019 опять несколько лямов поднял, да и семинар у него недорогой всего лишь 60 тыс.р.(
avatar
ANTI_Finsov, так вы тоже говорите, что подняли. Тогда на собственных семинарах и поднимите.
avatar
bstone, скинь ссылку где я это говорю. В рамках своего проекта я наоборот стараюсь минимизировать зависимость людей от рынка путём автоматизации торговли. А также возможности не торговать реальными деньгами.
avatar
ANTI_Finsov, это не утверждение было, а совет, епта :)
avatar
$100, «неизменной функции» Это называется спред, но это не охлк
avatar
ещё в 13 году с пацанами думали написать робота комиссионщика то есть тот который будет зарабатывать хотя бы на комиссию бирже — тот ещё гемор был
avatar
Жери, на самом деле, не так сложно написать алгоритм, генерирующий  100% годовых на интервале 10 лет с учетом всех потерь. Более того, если такой алгоритм натянуть на разные инструменты, то он покажет вполне симпатичную просадку. Я это делал неоднократно и радовался, как ребенок.

Но… вероятность генерации прибыли на незнакомых данных (т.е. на реальном рынке) стремится к нулю))
avatar
Eugene Bright, ааа… такого пи$дежа в инете — как говна))
avatar
$100, вот прочел Ваш, коллега, с позволения сказать, «комментарий», и понял, что, действительно, говна в инете — что в городской канализации. Но это место не для меня.
avatar
5 копеек. Наперсточники двигают цену в максимальное скопление стопов, об этом многие знают, но есть еще второй момент ММ видит даже где он сможет высадить маржинальщиков. Все привыкли думать  что ММ поддерживает цену и создает волу в стакане, но что если это не все его полномочия. Что если одна из его задач, не только в снятии стопов, а еще и в том чтобы  создавать капканы для тех кто торгуют  без стопов. Зачем?
А чтобы до экспирации гнать одну сторону   на маржинколы, а после другую. Кто бы что не говорил, а я скажу так, мы с «каталами» пытаемся играть в покер, где наши карты обернуты «лицом»  к ним, а их карты «рубашками» к нам.
А если это все таки так, то становится понятно почему, у простых трейдеров, даже самых гениальных, шансы быть всегда на гребне волны, чрезвычайно мизерны. Вот поэтому в трейдинге как и в жизни, супер успешные люди, говорят что на первом месте всегда должна присутствовать  удача,
а лишь потом все остальное, труд, знания и  мышление миллиардера .
Всего лишь мысли вслух.
avatar
Boris, мои 5 копеек забудьте про «катал» «ММ» «Кукла» и тд
avatar
technic, В смысле, «забудьте»? А я понял, Вы наверное из тех, кто верит в честные  выборы, справедливый суд и честную власть, угадал?
avatar
Boris, а вы из тех кто верит в Деда мороза, точно знаю не гадаю)) в каких то базовых книгах по теме рынка, кажется Маги рынка Швагера, есть разъяснения почему нельзя отождествлять рынок с чем либо
.. 
Сложновато для вас да? Легче верить во всякую чушь
avatar
technic,

Эта «чушь» может объяснить многое на графике и не только.  Но я ведь и не претендовал на истину, в отличии от Вас.
Я привык думать своей головой, а не чужой. Не создавайте кумиров, вот что я всегда помню.
 Ведь:Истина едина, заблуждение многолико, а правда у каждого своя.

PS: Эйнштейн тоже противоречил теориям Теслы и что, кто в итоге оказался прав?
avatar
А нехер на одном и том же алгоритме ехать всю дорогу. Даёт деньги — вперёд. Перестал — в топку, берём новый, который даёт.
avatar
KoHqpaT, предложите, пожалуйста, вменяемую реализацию оценки алгоритма на предмет «дает/недает деньги»))
avatar
$100, допустим такая:
1. прогон в тестере на полугодовой истории. Итоги прогона(доходность, просадка etc.) вас устроили. Идем на реал.
2. Месяц торгуем — итоги иные, но устраивают. Торгуем второй месяц.
3. Хоп, итоги не очень, скажем около ноля или убыток в рамках риск-менеджмента. Анализируем результат, выясняем причину неудачи. Если причина техническая — устраняем и в бой, если причина концептуальная — алгоритм в топку.

Как то так…
avatar
KoHqpaT, кхм… WFT сэкономит вам кучу денег и времени:

1. прогон 6 месяцев в тестере 
2. тест на следующем месяце

если данные ОК, то сдвигаем WFT на 1 месяц и повторяем

1. прогон 6 месяцев в тестере 
2. тест на следующем месяце

если данные ОК, то сдвигаем WFT на 1 месяц и повторяем

1. прогон 6 месяцев в тестере 
2. тест на следующем месяце

если данные ОК, то сдвигаем WFT на 1 месяц и повторяем

1. прогон 6 месяцев в тестере 
2. тест на следующем месяце

и так повторяем — 20-30 раз

если совокупная эквити за 20-30 месяцев — ОК, то начинаем торговать

Но...

Уверяю вас… получить приемлемую эквити за 20-30 тестовых циклов WFT (каждый длинной в 1 месяц) оооооочень сложно))
avatar
$100, решительно не понимаю вашего тезиса про «сэкономит вам кучу денег и времени» — в моем варианте нет, или почти нет, потерь денег. А про время так вообще не вкурил. Что значит «1. прогон 6 месяцев в тестере 
2. тест на следующем месяце»? Прогнали и торгуем на реале месяц? И так 20-30 раз? Да вы в своём уме ли? 
avatar
KoHqpaT, автор имел в виду прием, когда на длинном участке исторических данных отрезки бэк-теста и форвард-теста располагают попеременно таким образом, что формируется частичное наложение одного на другое, и такими вот «шагами» (отсюда Walk-Forward — шагай вперед) все двигается вперед. Этот прием можно справедливо назвать стресс-тестом, особенно для систем, где больше одного настраиваемого параметра.
avatar
Friendly Deep Space, спасибо за пояснение, но эта вся «красота» не имеет решительно никакого значения, если алгоритм не приносит денег на реале, в работе на боевом счете. В топку все тесты на истории, кроме одного, первого, отладочного. Они нахер не нужны, ибо история не повторяется.
Как я уже писал выше — есть на реале результат — торгуем дальше. Нет — меняем алгоритм.
avatar
KoHqpaT, в таком случае (история не повторяется) в топку и статистический анализ и все другие анализы, и первые прогоны отладочные, для поиска явлений, которые в последствии планируете эксплуатировать) Предлагаю сразу открывать реал и на ходу рубить шашкой)
avatar
Friendly Deep Space, вы через чур категоричны. Быть реалистом и самоубийцей — это не одно и то же. Зачем же ломиться с неведомо каким алгоритмом на врага? Читайте выше, я же написал: полгодика бэк-теста, если ок, то на реал… не ок — ищем тот, что ок. Не надо вот этого максимализма юношеского.
avatar
KoHqpaT, я просто не рассуждаю штампами типа «история не повторяется») Если она действительно не повторяется, применительно к алготорговле в целом, то этому должны быть объяснения и доказательства, и в этом случае нет никакого смысла делать бэктесты и потеть в исследованиях. А если таки она все же повторяется, тогда можно и нужно делать исследования, бэктесты, искать то, что будет эксплуатироваться, либо отсеивать ошибочно принятое за неэффективность. Вроде бы все просто)
avatar
Friendly Deep Space, история не повторяется «свеча в свечу», но законы движения цены как действовали в прошлом, так будут действовать и в будущем и, соответственно, бэк-тесты нужны, чтобы отладить ваш алгоритм хотя бы так, чтобы он в 6 случаях из 10 «попадал» в движение — всё, более ничего не надо. 
avatar
Не согласен с тезисом на картинке: нет ГЛАВНОГО — начальной суммы и желаемого среднемесячного дохода.  5 млн. руб. — 100 тыс. руб. вполне реально.  
avatar
А. Г., понимаете какое дело… если чел смог заработать/украсть 5 млн. руб., то зачем ему заниматься трейдингом играть с акулами?.. не разумнее ли прокачивать способность зарабатывать/красть деньги?
avatar
$100,  ну можно придумать тысячу причин, по которым человек не хочет или не может продолжать ту деятельность, посредством которой он заработал эти 5 млн.
avatar
Если стратегия состоит из набора индикаторов, подогнанных под прошлое, то в будущем такая стратегия, естественно, будет неэффективной. Но существуют и совершенно другие методы построения страт, имеющих более выраженную связь с реальностью. Классический пример — торговля по паттернам. Так вот, такие страты не умирают мгновенно, в том числе на форвард тестах и в реале, даже когда рынок меняется. И даже более того, умершие когда то страты через какое то время могут возродиться с прежней эффективностью. Именно так ведут себя страты, эксплуатирующие реальные рыночные закономерности и рыночные неэффективности.
avatar
Reznor, я тестировал паттерновые алгоритмы… на линейных бэктестах худ-бедно рыба есть… на WFT — хер с маслом((

Как только Вы освоите WFT, то сразу перестанете мечтать о паттернах и теханале
avatar
$100, если вы не смогли поймать рыбу в определенном водоеме, то это не означает, что ее там нет.
avatar
6 лет официально веду статистику одного счета на смартлабе. Стратегии берут данные из OHLCV. И ничего, живу с рынка. Да и инвесторы не бедствуют) Другое дело что я постоянно слежу за алгоритмами, и из года в год меняю слабые звенья. Сейчас 24 робота в торговле, раньше начинал с 6. 
avatar

теги блога GOLD

....все тэги



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