Ловушки тестирования и оптимизации
- 09 февраля 2018, 03:55
- |
- First
Очень интересно узнать, кто какие методы использует для для избежания подгонки (overfitting) системы.
Я лично ничего, кроме форвард тестирования для себя пока не нашёл. Поделитесь, если кто сталкивался и успешно использует подобные методы.
Что можете сказать про алгоритм бустинга AdaBoost?
Это значит что:
1) если на тестах нечто более сложное даёт результат лучше, а нечто более простое проигрывает, всё равно выбирай более простое. Оно в жизни будет наоборот =)
2) всё сложное, но без чего нельзя обойтись надо спрятать в «чёрный ящик» оттестить как следует и забыть — пусть там себе работает и на глаза не попадается (никаких внешних параметров).
3) больше чисел во время разработки! Больше всяких распределений и сводных таблиц. А затем выбирается самое сладкое на глазок и всё. Остаётся золото из шлака. Остальное — забыть.
Параметров может быть очень много, но они все должны быть такие, что бы не возможно было ничего оптимизацией испортить =). Пример: куча параметров по временным ограничениям + РМ + 1 ключевой параметр, от которого зависит «чувствительность». 1 раз на глазок подбирается и всё. Больше ничего и не надо.
Причём, пробовал я много раз всякие хитрые подходы с самооптимизацией и внутренней настройкой бота — фигня выходит. Всё что можно упростить — упрости =)
Упростить сложное можно только одним способом —
отрезать от него что-то… нужное.
От того, что все сложности не выведены в настройки, а зашиты внутрь (предварительно подогнанные «кучей весовых коэффициентов»), вы ничего не приобретаете, а наоборот — теряете возможность подкорректировать «подгонку» под текущий рынок.
Ещё суперкомпьютер загрузим, Грефа позавём, пусть расскажет нам про бигдата =)
Только сначала объясните чем современное прогнозирование погоды отличается от алготрейдинга.
А по сути разницы в алго не нашлись что сказать? Понимаю )
Как пример: вход даже на 1 контракт в топ ликвиднейших мировых инструментов создаёт глубокую обратную реакцию. Рынками манипулируют. Все данные по клиентам сливаются. Кукл существует. Есть куча закономерностей-ловушек, которые очевидны, существуют до момента пока кто-то не начнёт их торговать. Кого-то ловят, сливают. Как только попытки торговать это прекращаются — закономерность возвращается на место. Существует ещё множество глубочайших различий с погодными явлениями. Но в рамках камента никак не поместится этот разговор.
Хотите вместо доводов кидаться какашками? — Досвидос.
Fry (Антон),
>> «Есть куча закономерностей-ловушек, которые очевидны, существуют до момента пока кто-то не начнёт их торговать. Кого-то ловят, сливают. Как только попытки торговать это прекращаются — закономерность возвращается на место.»
Забавное видение знакомых вещей)). Не встречался с таким ещё, кажется. Когда есть темный слой — можно много теорий строить по поводу того, что там в темноте — может оно и так, конечно — хз.
Любой вход-выход в рынок порождает ответную реакцию котировок.
Классическая теория эффективных рынков что нам говорит?
Спрос и предложение определяют цену. То есть любая покупка по этой теории должна подталкивать цену вверх, а продажа — вниз. Чем больше объём, тем сильнее должно быть это влияние.
Что мы видим в реальных рыночных котировках?
Всё наоборот для мелких участников рынка (для ритейла интернет-трейдинга). Каждый вход в покупку против ММ вызывает обратную реакцию и цена падает на несколько пунктов. ММ самокотирует себе прибыль. Это движение является чистой воды манипуляцией. ММ-бот так поступает не со всеми. То есть ММ наверняка знает кто входит в рынок. Знает размер счёта, плечо, «точку боли» и т.п. ММ высаживает на стопы или маржин-колы всех слабых. Самый слабый вылетает первым. Самый слабый — это тот, кто больше всего нагрузил депозит. Так рынок и ходит мелкой и крупной рябью. Вы спросите: а как же взаимосвязь всех рыночных инструментов? А очень просто если подумать. Флуктуации на спрэдах между инструментами есть? Вот это и есть те самые манипуляции. Их даже численно можно заметить =)
Ведь как всё это устроено?
ММ существует для того чтобы обслуживать интересы самых крупных участников рынка. Чтобы крупняку не приходилось встречаться лицом к лицу с мелочью. Весь этот геморой с ритейлом ММ берёт на себя. Крупняк открывает свои позиции об ММ всегда на 99% уж точно. Далее задача ММ раскидать всё это дело по мелким контрагентам или найти встречного крупняка (что бывает редко). Это основная работа ради которой существует институт маркетмейкинга. Но для выполнения этой работы ММ предоставляются ключевые привилегии. Используя их ММ создаёт себе доход. Вот тут и открывается поле для «моих фантазий» =)
Хотя… Квантовая теория тоже не находила подтверждения, но по ней рассчитывали кучу практических вещей почти полвека. Практики пользовались, а теоретики приняли как аксиому =)
Да и в математике сама основа такая — сплошные аксиомы.
К сожалению, достоверно подтвердить мои размышления слишком сложно без супергеройских способностей (невидимость, прохождение сквозь стены, супер зрение и слух =).
Есть, конечно, случаи судебных разбирательств за манипуляции на рынке. Там собираются доказательства. Часто дела выигрываются. Штрафы правда смешные. Система работает.
Например, если не ошибаюсь, то Haim Bodek выиграл-таки дело о манипуляции ММ. Ничего с тех пор не изменилось. Собака лает, караван идёт.
Fry (Антон), Да, вопрос веры, я просто, если могу знать достоверно, не начинаю во что-то верить капитально (хотя немного конечно могу), просто вешаю ярлычок, что это гипотеза. Если гипотеза мне будет нравиться — могу в нее понемногу верить, но всегда буду помнить, что это всего-лишь гипотеза.
Кстати, аналогично я пометил все эти квантовые и прочие странно ощущающиеся с точки зрения здравого смысла теории)).
Это все фигня — тут главное — если внешние проявления начнут говорить, что походу представление о черном ящике ошибочное — легко пересмотреть свое представление о черном ящике, а не танцевать от веры.
имеет смысл все делать наоборот… ну например оптимизировать за последние лет 5… с 2012-2017гг а затем тестировать на более ранних данных 2007-2012гг
вообще алготрейдинг ничем не отличается от инвестирования… так же выбираем бумажки… и молимся чтоб динамика сохранилась
из этого следуем мораль… которую расписывать не буду… т.к грааль
1. Наличие трейдерской (не математической) ТС, основанной на логике проверенного ручного трейдинга.
2. Соответствие алго этой логике хотя бы процентов на 90.
3. Штучно-выборочная ручная проверка на соответствие робо-сделок этой логике.
Если открытие сделок строго в логике, если есть запас по основным показателям, такой подход долгосрочно спасёт на любом или почти любом рынке.
Для математических алгоритмов нужны какие-то крутые способы и ухищрения, в которых я не разбираюсь (даже в терминах плаваю когда читаю по этой теме). Решил написать потому, что считаю мой подход наилучшим, а здесь ничего подобного не встречал.
Главные недостатки моего подхода:
1. Не каждый алготрейдер является приличным трейдером, таким дорога в математику (у меня дорога наоборот :0) ).
2. Сложность полной формализации ручных методов.
Зато если удалось формализовать, тема тестирования решается элементарно.
Все мои ТС основаны на визуальной оценке графиков, оценке положения цены относительно мувингов и графических разметок + индикаторные сигналы.
Случайность при 13 летнем стаже Форекса?!...
Случайность — это скорее случайно подобранный математический алгоритм новичка. И таких алго здесь подавляющее большинство.
Не спорю, этот метод имеет право на жизнь, но… именно из этого вытекают все ваши сложности тестирования, к тому же не дающего гарантию, что результаты любого математического теста могут гарантировать хотя бы 50% того, что даст мне соответствие алго-сделок логике трейдинга.
Почему один смотрит на всё то, что вы описали и у него ничего не выходит, а у вас за 13 лет всё сложилось удачно? Значит дело в чем-то другом…
Вы чистый алго, я чистый ручной трейдер, даже ни одного языка программирования не знаю, колупаюсь в кубиках ТСЛаб. Поторгуйте 13 лет руками на форексе (и ИМЕННО на форексе), тогда вам легче будет понять о чем я написал.
Причем случайность?
Я её не отрицал! В казино тоже выигрывают!
Но мы же не это обсуждаем!
Причем «дело в чем-то другом»? Я и «другое» не отрицал! НО.
Когда читаю на СЛ про многолетний стаж всех присутствующих подряд, меня дурной смех разбирает — 99% этих «стажеров» продолжают работать на дядю, плюс еще может и бизнес имеют, а трейдинг у них два часа в неделю. Ну и сравнивают свои годы с моими… Умора...
А 15-17 часов в день без выходных и праздников первые три года не хотите? И сейчас весь день в терминале! Я за неделю набираю их «год»!
Вот и прочувствуйте для начала хотя бы эту разницу.
Соответственно, разработать систему можно двумя способами. Первый--силой ума. После раздумий и прикидок понимаем, что оно вот так. Тогда алгоритм пишется за одну минуту, он как правило прост и никаких форвард тестирований и ООS по сути не требует--там сразу видно, работает или нет. Второй--наоборот, идем от данных, ищем корреляции итд. Хороший, годный способ--но после нахождения нормальных корреляций (нормальных в математическом смысле, чтоб эквити хорошая и ООS хорошее и все такое) всегда надо вычленить эдж, понять откуда что берется. Если такое понимание есть, то опять же никакие ООS особо и не нужны, а итоговый продукт по степени изящества совпадает с первым способом.
smart-lab.ru/blog/186186.php
anatoly-utkin.livejournal.com/14058.html
Но это все не про проверку от переподгонки.
smart-lab.ru/blog/153193.php
smart-lab.ru/blog/194112.php
кстати, как голубой бейджик у Тимофея получить?
Бейдж не знаю, мне не говорили :)
Из быстрых? Котирование, например. Опционы берите, котируйте. Кстати, там и скорость особая не нужна, можно не hft даже. Алгоритмы там--да простейшие. Купил дешевле, продал дороже и так много раз. C#, transaq connector--и вперед. Из не hft интрадея--ну что вам сказать. Ну есть они. Давайте этим ограничимся. А то меня коллеги не поймут, бугога. Кстати, вот эта вся быстрая алготема и есть ловля блох имхо, потому что чрезвычайно чувствительна к сайзу.
камнем на дно, короче.
это самый простой вариант для отсейки.
другие колупаются 2-3 месяца, потом — камнем на дно. тут сложнее.
третьи могут жить по полгода. других у меня не было пока.
сейчас в работе только 2 робота, которые зарабатывают. одному нужна волатильность поменьше, второму текущая и выше.
обоим сейчас «от роду» порядка двух месяцев. хотя концепцию я придумал несколько лет назад, т.е. это «династия», подгонял прошлой весной-летом. осенью лакировал доп. «курвфиттингом», и 2 месяца назад снова оптимизячил.
возможно у меня просто такой слишком нетерпеливый темперамент. не многие роботы доживают до выхода из просадки. хотя концепция меняется слабо. только всякие бантики вокруг.