Блог им. AIvanushkin
Все трейдеры торгуют мат ожидание (игра с преимуществом), и задача трейдера построить торговую систему, где мат ожидание будет всегда на его стороне. Не каждая сделает будет в плюс, но если мат ожидание выстроено честно, экстраполирует в будущее и трейдер себя не обманывает, (не надеется на авось), то на дистанции он всегда заберет деньги с рынка. Всегда.
В алгоритмическом трейдинге при создании автоматических торговых систем очень важен вопрос времени жизни торговых алгоритмов, т.е. способность найденного мат ожидания экстраполировать в будущее.
В условиях постоянно меняющегося рынка рано или поздно наступает момент, когда даже самый совершенный и прибыльный алгоритм начинает приносить убытки, поэтому мы сами определим время жизни алгоритма в одну неделю и будем создавать систему, которая будет давать положительный результат с еженедельной оптимизацией. Оптимизировать будем полным перебором всех параметров так как неизвестно сколько будет оптимизационных экстремумов, да и тестировать будем не отдельный инструмент или тайм фрейм, а все рабочие тайм фреймы и все торговые инструменты. Задача не из лёгких, но вполне выполнимая.
Форвард тест
Казалось бы, оптимизировали параметры и можно начинать торговать. Однако на этом процесс исследования еще не завершается. Теория и личный опыт показывают, что нужно обязательно дополнительно проверить полученные результаты на форвард тестировании, на дополнительной исторической выборке, причем диапазоны исторических выборок формируются таким образом, чтобы оптимизационных период и период для форвард теста следовали последовательно друг за другом и оптимизационный период был больше периода форвард теста.
Как правило после проверки по форвард тесту большая часть торговых стратегий выглядит уже не так привлекательно, как после оптимизации. Поэтому нет необходимости проверять на форварде стратегии, которые уже при оптимизации не показали положительного результата. Исходя из этого для форвард теста уместно и разумно использовать топ лучших исходов, полученных при оптимизации.
Если имеется система, которая по некоему алгоритму математически может найти лучшие параметры торговли и отторговать на следующем периоде времени мы получим достоверный результат работы, который не будет отличаться от торговли роботом в реальном времени. Так мы можем получить результат (график доходности) того, как бы работал робот в реале если бы, выбрали определённый метод оптимизации. В итоге мы оптимизируем только метод оптимизации (производную), сами модели входа и выхода нам не важны, они простые и не содержат никаких оптимизационных параметров.
Оговорки
При этом для достижения идентичности отработки стратегии в тестере с торговлей в реале есть некоторые оговорки которые нужно обязательно учесть: это то что точки входа и выхода не могут располагаться внутри бара, так как зачастую нельзя получить достоверные тиковые данные за большой промежуток времени да и оптимизация с учётом тиковых данных практически не выполним в силу необходимых вычислительных мощностей, так как мы говорим не о одном тесте, а о многочисленной комбинации пусть и простых моделей точек входа и выхода.
Правда, пользовался только тремя...
Можно подробней о чём речь, где и как ОБЪЕКТИВНО увидеть?
VladMih, очень просто: оценка матожидания, типа «средняя сделка», «средняя прибыльная сделка» и т.п. — это само по себе случайная величина, у которой есть своё какое-то распределение и (предположительно) свои какие-то матожидание и дисперсия. Можно прогнать стратегию в тестере на нескольких разных интервалах, записать результаты в табличку и прикинуть что получается.
А в тестерах если этого правда нет, я просто не знаю, у меня свой тестер, в нём есть ) то наверное потому, чтобы алготрейдеры-энтузиасты расстраивались уже после того, как запустят свои поделия поторговать в реале, а не до. Тем более же кому-то и повезёт, хотя бы какое-то время, пока «стратегия не сломается».
Хорошо вам жить — взял дисперсию и готово.
А ваше объяснение я более чем не понял.
«Покрутить стратегию на разных ТФ» — это то же самое, что покрутить несколько разных стратегий, особенно если с использованием фиксированных ТП и СЛ.
Вроде просто объяснил, что можно не понять? Правда если вы разные интервалы на истории от разных ТФ не отличаете, то лучше просто забейте )
Лучше не пишите, «забейте@, если не можете внятно написать.
Сорь, не в обиду — простое алаверды в ВАШЕМ стиле.
К тому же и в голову не могло прийти, что советуете изучить ТС на разной истории! Если и нужен кому-то такой совет, то видимо идиоту полному.
Я сейчас гоняю робота по минуткам на 10 летней истории подряд, не интервалами. Плюс смотрю форвард по последней истории — что не так делаю? Направьте меня на путь истинный.
PS: реально не отказался бы от совета чела, лучше меня знакомого с математикой, чувствую нехватку знания/понимания где какую формулу применить. В частности, для мувингов (адаптивные) хотел бы применить что-то типа параболы. Но...
Знаю чего хочу, не знаю как взять. «Вижу локоть...»
… и на следующей же строчке:
Без обид ))
Вот если вы разобъёте свою 10-летнюю историю на интервалы, условно, по три месяца — то у вас получится 40 интервалов. Посчитаете какой-то финрез по каждому интервалу, например в процентах или в чём удобнее, и получится выборка из 40 значений.
Дальше по этой выборке можно посчитать выборочное среднее и выборочную дисперсию и построить скажем 95% доверительный интервал, где-то внутри которого с 95% вероятностью любое число может быть матожиданием вашей системы за три месяца. При этом можно удивиться, что доверительный интервал для матожидания скорее всего будет включать 0, то есть содержать как положительные, так и отрицательные значения.
Если есть техническая возможность посчитать, то ещё лучше сделать выборку из результатов форвард-тестов, не из одного значения на последней истории, а по-чесноку, когда условно каждые три месяца тестируем как форвард той стратегией, которую настраивали по данным строго до него.
Что касается мувингов, то я с тех далёких пор, когда ещё пытался что-то писать в блоге, использую просто EMA, как мат модель фильтра высоких частот. Правда я их по-многу генерю, не по одной и не по две ) Другими не пользуюсь, для генерации фич в модельке этого прекрасно хватает.
Я вас услышал. Но то, о чем вы говорите, годится только для проверки готового робота. Для разработки, подбора фильтров и т.п. затрахаешься на каждый чох так проверять.
К тому же ну тупо нету у большинства робовладельцев софта, который вы сами себе соорудили чтобы ЕМАшки генерить неисчислимыми сонмами.
Да и с дисперсиями непросто.
Можно, конечно, выгружать результаты в Эксель и там обрабатывать, но геморно это, да и тоже… не каждый сумеет.
Спасибо, перечитал, правда отличный пост получился )
Январь 2019, я тогда ещё бухал! Эх! )
Но хоть я те буквы набирал скорее всего уже основательно захмелев, слишком сильно чтобы мочь работать, но ещё недостаточно для того, чтобы идти спать, я таки и там в конце не забыл написать про необходимость оценки доверительного интервала для матожидания.
Ну потому что это правда важно )
Респектыч, хотел бы пообщаться вживую, голосом, с терминалом.
Полагаю, может быть ВЗАИМОполезно.
А еще, честно говоря, хотелось бы посмотреть хоть одним глазком хоть одного вашего робота… тоже вживую. Дисперсию его пощупать...
Млять, реально нужна помощь. И я реально могу быть полезен.
Если услышите, конечно. Наработок куева туча.
Я пока предпочитаю общаться в текстовом виде и ритме, можно через личку.
Я противник пересечений, не лучший способ, но ТС такие работают.
________________
Ну, предпочитайте.
Я не особо и рассчитывал, неплохо зная вашу братию. Небожители )
не требующие контроля пробоя закрытием бара.
1. Пробой может закрыться хрен знает как далеко от уровня
2. Еще и бар открытия ордера даст на открытии гэп акуительный!
Положим, ваша ТС настолько крутая, что её это не волнует,
но люди в каждой сделке борятся за спред и им далеко до вас.
Дневки-недельки торговать — понятно. А на м1 вешаться? ))))))))) Приходится ценить каждый тик!