<HELP> for explanation

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

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

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

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

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

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

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

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

ММВБ и Форекс

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

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

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

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

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

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

 

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

ICEDONE

ICEDONE, об этом я и в посте написал. Стопы и тейки в параметры не будем засчитывать. Давайте без них обсуждать.
VladMih, стопы и тейки тоже влияют на подгонку.
Николай Скриган, согласен,
но я даю фору «безпараметрщикам» )
Да держи, не жалко. Совсем без параметров: покупаешь дешево, продаешь дорого.
avatar

bstone

Ни сколько.
Yuri Chebotarev, пример, пожалуйста!
VladMih, бросаете монету и ставите стоп.
Все зависит от торговой системы и параметров входа.
Но оставлять вводимые параметры даже для себя, даже в самописанных советниках (роботах) стараюсь как можно меньше.
В МТ4 сталкивался с тем, что вводимые параметры менялись или исчезали в процессе работы советника, что приводило к неприятным моментам. Такие ордера имели меджики, которые советник не отслеживал и которые зависали, пока я их не обнаруживал.
avatar

...

Translator, не вижу большой разницы оставили вы их или зафиксировали, предварительно настроив.
Если правильно вас понял…
VladMih, Константы компилируются вместе с кодом.
Входные параметры доступны для изменения из панели запуска советника.
Вполне вероятно, могут быть доступны с серверной части при установке там соответствующих плагинов.
avatar

...

Translator, если вы под оптимизируемыми параметрами имеете ввиду только те, что доступны во внешних настройках робота, тогда и я могу сделать ТС без параметров.
Предварительно оптимизировав пару сотен этих самых параметров.

Интересно, остальные апологеты «неоптимизации» тоже имеют ввиду этот приёмчик? )
VladMih, В обоих метатрейдерах оптимизируются только входные, изменяемые параметры.
avatar

...

Translator, конечно.
Но вы меня не поняли, перечитайте.
VladMih, Извините, но ваш вопрос из области схоластики.
Я же исхожу из конкретики и собственного опыта.
avatar

...

Стопы и тейки -типичная переподгонка.
Машковский Евгений, убили ))
1-2 Вполне нормально. Еще важно, что бы при изменении величины параметра на 1 доходность резко не возрастала и не падала, что может свидетельствовать о переподгонке.
avatar

kbrobot.ru

kbrobot.ru, может.
А может и наоборот — свидетельствовать о том,
что это самый главный параметр.
Параметров должно быть ровно столько сколько необходимо для оптимизации системы. Т.е в этом вопросе нужно четко разделить системы на адекватные и неадекватные. Неадекватные системы при любом количестве параметров будут убыточными. Для адекватных же все с точностью до наоборот. Ну а понятие адекватности системы придет с опытом.
avatar

SECRET

SECRET, сдаётся мне, что с вами мы совпадаем.
А как вам лемма о 3 среднеквадратичных отклонений. Простая система. Оптимизировать ну если только вы лемму превратите в теорему. Это я не скажу, ноу-хау.
avatar

Jkrsss

Jkrsss, Ваша лемма еще ни систеММа. Насколько я понимаю (не вникал глубоко), это всего лишь способ получения канала. А что с ним делать? — вот тут у вас и начнут появляться «лишние» параметры.
VladMih, Лемма как раз и определяет действие, а не только создание канала. Проблема в математике знаете или нет. А оптимизировать системы это как раньше решали дифференциально интегральные уравнение только численно. Пока не нашли правила решений.
П.С. В идеале вы должны математически доказать игру камень, ножницы, бумага. Кто решит найдет систему не требующую оптимизации.
Под термином Минимальное кол-во параметров имеется ввиду независимость системы от пере-оптимизации. То-есть ваша ТС должна автоматически рассчитывать максимальное кол-во переменных, при этом всегда правильно, и лишь те которые она рассчитать не может вы можете задавать вручную, при этом ТС должна быть гибкой к изменению данных параметров, ибо вы их не можете менять в режиме онлайн.
Алексей С, очень хорошо сказано!
Но если копнуть глубже, то в алгоритм можно заложить автооптимизацию любого количества параметров.
Надо отличать параметры вычисляемые и оптимизируемые. Вычисляемые можем вообще не считать, а с оптимизированными вопрос не в количестве, а в целевых функциях. В общем случае, если целевые функции две: доходность и максимальная просадка, то и с одним оптимизируемым параметром можно нарваться на переоптимизацию.
avatar

А. Г.

А. Г., абсолютно согласен и речь только об оптимизируемых (не вычисляемых) параметрах. НО, чуть выше я написал о возможности сделать оптимизируемые вычисляемыми.
Вплоть до того, что робот сможет «на лету» менять параметры основных индикаторов. В мувинговой ТС, например, менять период МА в зависимости от текущей волатильности. В этом случае параметр отнесём к неоптимизируемым (вычисляемым)?

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

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

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

stitrace

stitrace, когда предварительно оптимизированный параметр загоняется в константу, это самообман. Он ведь ОПТИМИЗИРОВАН!
VladMih, так это уже вопрос терминологии. Вы же проводите какие то вычисления, когда проектируете стратегию? Что эт оптимизация или создание стратегии? Короче это всё риторика, для меня параметры это отдельная сущность. Чаще всего оптимизируемые параметры в стратегии это какие то величины зависимость которых от текущего состояния рынка не ясна. Именно в этом я вижу смысл утверждения, что таких параметров дожно быть как можно меньше. Если параметр понятен и ясно отчего зависит его величина, то он становится динамически вычисляемым или константой, тоесть прекращает быть оптимизируемым.
stitrace, «как можно меньше» — это однозначно.
Я о другом — чтобы не доводить «меньше» до абсурда, до нуля.
VladMih, до нуля можно))) это не абсурд. Если есть такая система то почему нет? Есть у меня и такие.(не скажу что они такие уж сверх стабильные) Другое дело что большинство систем по своему определению подразумевают оптимизируемые параметры (к примеру как только подразумеваем индикаторы)… И это нормально. У меня так-же есть определенные критерии к примру к фильтрам. Если фильтр (а это как минимум 1н оптимизированный параметр а то и два) дают улучение соотношения прибыль/риск на x% а кол-во сделок уменьшется не более чем на y% то фильтр имеет место быть, если улучшение незначительно, т.е. менее x% то фильтр в топку. НО система должна работать и без фильтра. Как же не использовать два доп оптимизированных параметра если фильтр даст качественное улучшение и по прибыли и по просадке и сделок не так много «съест»… ТАк что это тонкая грань! К стати да! Важный момент в примитиве система как правило и содержит не более 3-х параметров т.е. её основная суть… и если в таком примитиве она работает, то только тогда уже дорабатываем…
Господа, кто шутит или кто не понимает, обращаюсь к вам.

В посте я пытался поднять вопрос, касающийся РЕАЛЬНО РАБОТАЮЩИХ торговых систем, а не про теоретическую возможность торговать без параметров типа «купи и держи», генерации случайных чисел и тому подобной ереси.
avatar

VladMih

VladMih, все определяется количеством степеней свободы. Я немного примитивно это считаю как отношение: кол-во сделок/количество параметров. Важно что бы сделок было много я беру отношение не менее чем 30/1 на истории в 2-а года истории (т.е. 40/1 еще лучше). Понятно что чем больше история тем больше сделок… Данные отношения я взял просто из опыта… т.е нет какого-либо научного обоснования, что отношение должно быть именно таким.
Artyom_KO, как ориентир можно принять, но это не убивает причину дискуссии — ведь подразумевается, что больше 2-х параметров не должно быть на БЕСКОНЕЧНОМ количестве сделок. )
VladMih, это в идеале)))) Но если в нашем распоряжении было бы бесконечное кол-во сделок то такой параметр как кол-во оптимизируемых параметров нас бы не интересовал. Можно было бы и 40 и 50 параметров если они дают устойчивый результат на интервале в бесконечно большом кол-ве сделок.
Artyom_KO, всё относительно. Если взять хотя бы 10 лет, а не 2, как у вас выше — уже разговор другой. Если этот же период взять на тиках — уже разговор… третий. А если иметь ввиду NFT…
Можно ли считать переоптимизацией и подгонкой следующий подход?:
— В системе 5 оптимизируемых параметров
— Параметры подбираются в ходе портфельного бэктестирования для 250 инструментов одновременно на 10-летней истории.
avatar

alwheye

bealtrader,
вижу так...
1 если для каждого из 250ти параметры индивидуально то подгонка… если для всех одинаковые то тоже подгонка ибо это обычная торговля пакета где вместо одной бумаги несколько...
2 надо максимум 2 параметрпа полюбому т.к тогда можно графически видеть результат
3 единственный вариант это делать отдельно проверку на переоптимизацию… т.е брать параметры не с потолка а дополнительно исследовать их на стабильность в зоне +-20%
жаль я в отпуске… а тоб скинул ссыль на шикарную стаью по теме… вкрате смысл в том что каждый параметр оптимизации требует увеличение интервала тестирования вдвое… т.е на 1ом парамете нам надо собрать статистик4у по 10000 сделкам… на 4ех параметрах это уже требует статистики из 160 000 сделок…
avatar

ves2010

ves2010,
параметры подбирались общие для всех 250 инструментов.

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

ves2010

ves2010, это вход без параметров, а не бот без параметров. Войти — это полдела максимум. Войти можно вообще в любом месте. )
VladMih, дык для пробоя хая-лоя предыдущего дня вход=выход… берешь тестировщик и тестишь на си, сбере и газпроме… шикарно работает во втором-третьем эшелоне
ves2010, пока более важных задач выше крыши, но, если честно, в планах есть нечто подобное. )
Вот только биржа в планы пока не входит.
ves2010, в такой системе период, за который считате пробой, и есть параметр. В Вашем примере это 1 день.
Teoretik, день это всегда день… а 2 дня это уже не то…
ves2010, а 3 дня — это совсем не то...
А 20 дней — это вообще «черепашки» :0)
Какое хорошее обсуждение получилось ))

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

bocha

Андрей Аурис, я Квика почти совсем не знаю.
Щас гляну, может достаточно будет знаний ТСЛаба.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP