Блог им. VladMih

Оптимизация/переоптимизация роботов: сколько должно быть параметров?

    • 28 сентября 2015, 09:53
    • |
    • VladMih
  • Еще

Робот без параметров

 Когда начал осваивать роботостроение в ТСЛаб и общаться с биржевиками ММВБ, наткнулся на откровение, что робот должен иметь как можно меньше оптимизируемых параметров: "желательно 1-2 параметра, а в идеале НИ ОДНОГО".

Блин, «ржунимагу». Ладно бы  это  сказал один человек, но ведь целый хор поёт эту «песнь о трейдинге»… Уже так надули в ухи, что я и сам начал сомневаться — может они правы, а я за 10 лет не смог ума набраться? Давайте попробуем разрулить этот вопрос — мне просто интересно, реально так думают все подряд или это мне так  везет на интересных людей?..

Для начала определимся с понятиями

  • Робот и ручная ТС (торговая система) — это синонимы (кроме «автоматизма»), и там, и там торговля «алгоритмическая», ибо система  это и есть алгоритм;
  • "Параметры" — переменные величины,  являющиеся частью ТС и влияющие на её результативность.

Ручной трейдинг

Открываю я график со своей ТС, что я вижу? Блин, да график я и вижу! Это потом уже начинаю разбираться что показывают мои индикаторы или где находятся различные элементы Price Action, а сначала вижу то, что называется «текущее состояние рынка». Вижу есть ли серьезные  движения, или может быть сильно зафлетило, или гепнуло пока спал… И всё это параметры, многие из которых мы отмечаем «на автомате», даже не задумываясь. Но они ЕСТЬ и их надо учитывать в трейдинге! Иначе наторгуешь… Т.е. по большому счету всё это (и это не один пункт) желательно добавить к понятияю «параметры». И они переменные, замечу скромно… Ну, вас же волнует при какй степени и продолжительности флета вы будете принимать сигналы? Значит только на этом уже 2 параметра  — текущая волатильность и количество баров!Кого-то возможно заинтересует еще и «профиль тренда» — опять же сколько баров и пунктов прошла цена от разворота. Ну и т.д. и т.п. 

ММВБ и Форекс

На форексе большинство считает, что хорошая ТС должна работать на любом инструменте, ибо все инструменты работают по одним РЫНОЧНЫМ законам, а не по законам одного инструмента. «Законы одного инструмента» — это нюансы использования на нём той же ТС, которая работает и на других инструментах. Разница лишь в том, например, что амплитуды движений разные и это не позволяет устанавливать везде одинаковые жесткие тейки и стопы. Но это жесткие, а если в процентах? Конечно, и на форексе мало кто обладает ТС, работающими везде и всегда. Но ТС, работающая на «группе инструментов» — это такая же привычная вещь, как поздороваться с соседом.

У биржевиков же столкнулся с тем, что в порядке вещей ТС под один инструмент! И один таймфрейм… Я сейчас не хочу спорить об этом, но замечу, уважаемые биржевики, что это также параметры! В количестве ДВУХ штук.

Считаю, что имеем уже не меньше двух параметров. Тогда что имеют ввиду те, кто делая робота под один инструмент/таймфрейм говорят о ТС без параметров? «Подогнали» под один инструмент и один таймфрейм, да еще и под один кусок рынка и… Они «не оптимизируют»… А исключение вечёрки? А отбрасывание первых баров для исключения гепов открытия? Это тоже не оптимизация?

Хорошо, а стоп и тейк «отрегулировать» надо? Это тоже два параметра, а то и четыре, ибо разные они могут быть для покупки и продажи. 

А если робот делает 2-3 типа входов (ордеров), то четыре надо умножить на количество типов входов… Это уже сколько параметров.

В общем, хоть я и мог бы еще продолжить, думаю, что вы уже поняли мою растерянность, ибо у меня и «без параметров» (я ж никакие индикаторы не вспоминал!) получается немало параметров. Поэтому прошу объяснить про что это — «система без параметров»? Желательно без понтов, по человечески. А еще лучше — приведите пример ТС с 1-2 параметрами (совсем без параметров просить не осмеливаюсь).

★12
64 комментария
рынок переменчив и робот соответственно тоже. Есть инструменты которые более менее ходят вместе и робот может быть один. Есть фишки которые стреляют в связи с малой ликвидностью, есть которые долго и нудно растут и еще во времени они могут поменяться местами — стоп лоссы и тейки тоже меняются.
avatar
ICEDONE, об этом я и в посте написал. Стопы и тейки в параметры не будем засчитывать. Давайте без них обсуждать.
avatar
VladMih, стопы и тейки тоже влияют на подгонку.
avatar
Николай Скриган, согласен,
но я даю фору «безпараметрщикам» )
avatar
Да держи, не жалко. Совсем без параметров: покупаешь дешево, продаешь дорого.
avatar
Ни сколько.
avatar
Yuri Chebotarev, пример, пожалуйста!
avatar
VladMih, бросаете монету и ставите стоп.
avatar
Все зависит от торговой системы и параметров входа.
Но оставлять вводимые параметры даже для себя, даже в самописанных советниках (роботах) стараюсь как можно меньше.
В МТ4 сталкивался с тем, что вводимые параметры менялись или исчезали в процессе работы советника, что приводило к неприятным моментам. Такие ордера имели меджики, которые советник не отслеживал и которые зависали, пока я их не обнаруживал.
avatar
Translator, не вижу большой разницы оставили вы их или зафиксировали, предварительно настроив.
Если правильно вас понял…
avatar
VladMih, Константы компилируются вместе с кодом.
Входные параметры доступны для изменения из панели запуска советника.
Вполне вероятно, могут быть доступны с серверной части при установке там соответствующих плагинов.
avatar
Translator, если вы под оптимизируемыми параметрами имеете ввиду только те, что доступны во внешних настройках робота, тогда и я могу сделать ТС без параметров.
Предварительно оптимизировав пару сотен этих самых параметров.

Интересно, остальные апологеты «неоптимизации» тоже имеют ввиду этот приёмчик? )
avatar
VladMih, В обоих метатрейдерах оптимизируются только входные, изменяемые параметры.
avatar
Translator, конечно.
Но вы меня не поняли, перечитайте.
avatar
VladMih, Извините, но ваш вопрос из области схоластики.
Я же исхожу из конкретики и собственного опыта.
avatar
Стопы и тейки -типичная переподгонка.
Машковский Евгений, убили ))
avatar
1-2 Вполне нормально. Еще важно, что бы при изменении величины параметра на 1 доходность резко не возрастала и не падала, что может свидетельствовать о переподгонке.
avatar
kbrobot.ru, может.
А может и наоборот — свидетельствовать о том,
что это самый главный параметр.
avatar
Параметров должно быть ровно столько сколько необходимо для оптимизации системы. Т.е в этом вопросе нужно четко разделить системы на адекватные и неадекватные. Неадекватные системы при любом количестве параметров будут убыточными. Для адекватных же все с точностью до наоборот. Ну а понятие адекватности системы придет с опытом.
avatar
SECRET, сдаётся мне, что с вами мы совпадаем.
avatar
А как вам лемма о 3 среднеквадратичных отклонений. Простая система. Оптимизировать ну если только вы лемму превратите в теорему. Это я не скажу, ноу-хау.
avatar
Jkrsss, Ваша лемма еще ни систеММа. Насколько я понимаю (не вникал глубоко), это всего лишь способ получения канала. А что с ним делать? — вот тут у вас и начнут появляться «лишние» параметры.
avatar
VladMih, Лемма как раз и определяет действие, а не только создание канала. Проблема в математике знаете или нет. А оптимизировать системы это как раньше решали дифференциально интегральные уравнение только численно. Пока не нашли правила решений.
П.С. В идеале вы должны математически доказать игру камень, ножницы, бумага. Кто решит найдет систему не требующую оптимизации.
avatar
Под термином Минимальное кол-во параметров имеется ввиду независимость системы от пере-оптимизации. То-есть ваша ТС должна автоматически рассчитывать максимальное кол-во переменных, при этом всегда правильно, и лишь те которые она рассчитать не может вы можете задавать вручную, при этом ТС должна быть гибкой к изменению данных параметров, ибо вы их не можете менять в режиме онлайн.
avatar
Алексей С, очень хорошо сказано!
Но если копнуть глубже, то в алгоритм можно заложить автооптимизацию любого количества параметров.
avatar
Надо отличать параметры вычисляемые и оптимизируемые. Вычисляемые можем вообще не считать, а с оптимизированными вопрос не в количестве, а в целевых функциях. В общем случае, если целевые функции две: доходность и максимальная просадка, то и с одним оптимизируемым параметром можно нарваться на переоптимизацию.
avatar
А. Г., абсолютно согласен и речь только об оптимизируемых (не вычисляемых) параметрах. НО, чуть выше я написал о возможности сделать оптимизируемые вычисляемыми.
Вплоть до того, что робот сможет «на лету» менять параметры основных индикаторов. В мувинговой ТС, например, менять период МА в зависимости от текущей волатильности. В этом случае параметр отнесём к неоптимизируемым (вычисляемым)?

Интересный поворот заставили сделать последние 2 комментария. )
avatar
VladMih,

Если между периодом МА и волатильностью одна фиксированная функция, то нет оптимизируемых параметров. Но эта функция тоже может иметь и оптимизируемые параметры и сама быть таковой, если смотрим системы с разными функциями и отбираем лучшие.
avatar
А. Г., даже если одна — её ведь всё равно надо оптимизировать! Ни один закон не устанавливает какая именно должна быть волатильность, чтобы тупо жестко установить её раз и навсегда для любого инструмента… Тем более, что для разных ТС она требуется разная — кому-то нужен трендовый рынок, кому-то боковик определенной амплитуды. В общем, пока рассуждаем теоретически, всё просто, но как только начинаешь решать этот вопрос в приложении к конкретному алгоритму, выплывает еще несколько параметров, которые приходится учитывать.
avatar
VladMih,

Я как бы подразумевал, что функция вычисления(!) «волатильности» не является оптимизируемым параметром. А если Вы и эту функцию подбираете, то это уже оптимизируемый параметр.
avatar
А. Г., если стратегия по-разному работает на разной волатильности (в принципе любая), то почему это «по умолчанию» не оптимизируемый параметр?
avatar
VladMih, все правильно Владимир. Обойтись совсем без параметром практически невозможно. Пример могу привести входим в 17:00 если вчера с 14:00 до 18:00 был рост. Держим позицию два часа. Т.е. все жестко определено и не оптимизируется (условия взял рандомным образом). С рассчитываемыми параметрами тоже сложность, как правило делая расчетные параметры в формулу расчета так или иначе все равно зашиваются некоторые оптимизируемые параметры которые потом фиксируется и принимаются как констаны, получается, что то вроде скрытых оптимизируемых параметров.
avatar
Artyom_KO, +100500 )
avatar
VladMih, но это и не плохо, как я сказал позже. Главное что бы отношение кол-ва сделок к количеству оптимизируемых параметром было как можно лучше. Если оптимизируемых параметром всего 2-а а сделок 10 за год то это гораздо хуже чем 10 оптимизируемых на 300 сделок за тот же год. 1/5 и 1/30.
Рад вас видеть в рядах смартлабовцев. Мы с вами как то в ВК спорили))) ДУмаю с вашим опытом вы и как роботостроитель-алготрейдер состоитесь.
avatar
Купить первый попавшийся инструмент и держать его пока не надоест))) Здесь только случайность и никаких параметров.
avatar
Система без параметров. Например имеем два численных значения (назовём их индикаторами). Фаза Луны, которая при помощи хитрых математических вычислений даёт нам цифру от -1 до 1, назовём его i1. И, к примеру, индекс смарт-лаба. Который принимает значения от -2 до 2, назовём его i2. Без параметров сигнал на покупку или продажу будет A=i1+i2 с условием что покупаем при A>1 и продаём при A<-1 (без стопов и тейков). Вот система без параметров. Если хотим оптимизировать, то можем попробовать ввести весовой кофиэциент к одному из индикаторов и погонять на тестах. Так появляется один параметр и/или менять правило продажи и покупки (1,-1) менять на (0.5,-0.5) к примеру, так вводим второй параметр и т.д. В идеале мы должны найти и то и другое, которое будет давать максимальный профит при любых раскладах, тогда эти переменные превратятся в константы и перестануть быть параметрами оптимизации и мы получим опять систему без параметров.
avatar
stitrace, когда предварительно оптимизированный параметр загоняется в константу, это самообман. Он ведь ОПТИМИЗИРОВАН!
avatar
VladMih, так это уже вопрос терминологии. Вы же проводите какие то вычисления, когда проектируете стратегию? Что эт оптимизация или создание стратегии? Короче это всё риторика, для меня параметры это отдельная сущность. Чаще всего оптимизируемые параметры в стратегии это какие то величины зависимость которых от текущего состояния рынка не ясна. Именно в этом я вижу смысл утверждения, что таких параметров дожно быть как можно меньше. Если параметр понятен и ясно отчего зависит его величина, то он становится динамически вычисляемым или константой, тоесть прекращает быть оптимизируемым.
avatar
stitrace, «как можно меньше» — это однозначно.
Я о другом — чтобы не доводить «меньше» до абсурда, до нуля.
avatar
VladMih, до нуля можно))) это не абсурд. Если есть такая система то почему нет? Есть у меня и такие.(не скажу что они такие уж сверх стабильные) Другое дело что большинство систем по своему определению подразумевают оптимизируемые параметры (к примеру как только подразумеваем индикаторы)… И это нормально. У меня так-же есть определенные критерии к примру к фильтрам. Если фильтр (а это как минимум 1н оптимизированный параметр а то и два) дают улучение соотношения прибыль/риск на x% а кол-во сделок уменьшется не более чем на y% то фильтр имеет место быть, если улучшение незначительно, т.е. менее x% то фильтр в топку. НО система должна работать и без фильтра. Как же не использовать два доп оптимизированных параметра если фильтр даст качественное улучшение и по прибыли и по просадке и сделок не так много «съест»… ТАк что это тонкая грань! К стати да! Важный момент в примитиве система как правило и содержит не более 3-х параметров т.е. её основная суть… и если в таком примитиве она работает, то только тогда уже дорабатываем…
avatar
Господа, кто шутит или кто не понимает, обращаюсь к вам.

В посте я пытался поднять вопрос, касающийся РЕАЛЬНО РАБОТАЮЩИХ торговых систем, а не про теоретическую возможность торговать без параметров типа «купи и держи», генерации случайных чисел и тому подобной ереси.
avatar
VladMih, все определяется количеством степеней свободы. Я немного примитивно это считаю как отношение: кол-во сделок/количество параметров. Важно что бы сделок было много я беру отношение не менее чем 30/1 на истории в 2-а года истории (т.е. 40/1 еще лучше). Понятно что чем больше история тем больше сделок… Данные отношения я взял просто из опыта… т.е нет какого-либо научного обоснования, что отношение должно быть именно таким.
avatar
Artyom_KO, как ориентир можно принять, но это не убивает причину дискуссии — ведь подразумевается, что больше 2-х параметров не должно быть на БЕСКОНЕЧНОМ количестве сделок. )
avatar
VladMih, это в идеале)))) Но если в нашем распоряжении было бы бесконечное кол-во сделок то такой параметр как кол-во оптимизируемых параметров нас бы не интересовал. Можно было бы и 40 и 50 параметров если они дают устойчивый результат на интервале в бесконечно большом кол-ве сделок.
avatar
Artyom_KO, всё относительно. Если взять хотя бы 10 лет, а не 2, как у вас выше — уже разговор другой. Если этот же период взять на тиках — уже разговор… третий. А если иметь ввиду NFT…
avatar
Можно ли считать переоптимизацией и подгонкой следующий подход?:
— В системе 5 оптимизируемых параметров
— Параметры подбираются в ходе портфельного бэктестирования для 250 инструментов одновременно на 10-летней истории.
avatar
bealtrader,
вижу так...
1 если для каждого из 250ти параметры индивидуально то подгонка… если для всех одинаковые то тоже подгонка ибо это обычная торговля пакета где вместо одной бумаги несколько...
2 надо максимум 2 параметрпа полюбому т.к тогда можно графически видеть результат
3 единственный вариант это делать отдельно проверку на переоптимизацию… т.е брать параметры не с потолка а дополнительно исследовать их на стабильность в зоне +-20%
avatar
жаль я в отпуске… а тоб скинул ссыль на шикарную стаью по теме… вкрате смысл в том что каждый параметр оптимизации требует увеличение интервала тестирования вдвое… т.е на 1ом парамете нам надо собрать статистик4у по 10000 сделкам… на 4ех параметрах это уже требует статистики из 160 000 сделок…
avatar
ves2010,
параметры подбирались общие для всех 250 инструментов.

Статью было бы интересно посмотреть, если не затруднит — скинь плиз, когда будет возможность.
avatar
bealtrader, тогда делай так… у тя 5 параметров… берешь тестирповщик комиссы=0… и делаешь тест по каждому параметру на интервале +-20% от выбранного значения… затем смотришь изменение доходности… доходность должна быть 100% положительная и не падать более чем в 2 раза от максимума
avatar
ves2010,
спасибо, интересный подход, попробую потестить. Только почему комиссы=0?
avatar
bealtrader, комиссы =0 и проскальзывания =0… иначе искажается результат оптимизации сильно… часто сразу видно что убыточные варианты гораздо стабильнее и интереснее профитных… ну а если ставить комиссы и проскальзывания такого уже не увидишь
avatar
ves2010, во! Это логично!
Хотя я бы не рассуждал так прямо «в лоб», всё-таки и от системы зависит, и от степени влияния на неё того или иного параметра. Но «в общем» если, то действительно можно говорить о такой взаимосвязи.
avatar
вариант бота без параметров оптимизации ваще — это пробй хая-лоя предыдущего дня
avatar
ves2010, это вход без параметров, а не бот без параметров. Войти — это полдела максимум. Войти можно вообще в любом месте. )
avatar
VladMih, дык для пробоя хая-лоя предыдущего дня вход=выход… берешь тестировщик и тестишь на си, сбере и газпроме… шикарно работает во втором-третьем эшелоне
avatar
ves2010, пока более важных задач выше крыши, но, если честно, в планах есть нечто подобное. )
Вот только биржа в планы пока не входит.
avatar
ves2010, в такой системе период, за который считате пробой, и есть параметр. В Вашем примере это 1 день.
avatar
Teoretik, день это всегда день… а 2 дня это уже не то…
avatar
ves2010, а 3 дня — это совсем не то...
А 20 дней — это вообще «черепашки» :0)
avatar
Какое хорошее обсуждение получилось ))

По мотивам вопроса Автора поста: мне кажется, любое категоричное суждение к вопросам системостроительства неприменимо.
То есть для определенного класса систем без множества параметров не обойтись и они не зло сами по себе. Для другого класса систем — другое отношение и к количеству и к смысловой нагрузке параметров.
Кстати, выбор рабочего таймфрейма — тоже параметр. В этом смысле VES2010 прав: день — это всегда день. А вот все остальное — это уже подбор.
avatar
Андрей Аурис, я Квика почти совсем не знаю.
Щас гляну, может достаточно будет знаний ТСЛаба.
avatar

теги блога VladMih

....все тэги



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