<HELP> for explanation

Блог им. zweroboi

Тест системы на неслучайность

Собственно, опишу критерий, по которому я сделал вывод о пригодности систем на основе EMA для торговли фьючерсами на индекс РТС и пару доллар-рубль. Сами рассуждения никоим образом не привязаны к этим конкретным инструментам, вся концепция не выходит за пределы статистики, то есть ее можно применять для оценки моделей любых случайных процессов и котировок чего угодно.

Для простоты рассмотрим цену на инструмент как случайный процесс с дискретным временем. Например, можно взять среднюю цену того же фьючерса за минуту и считать её ценой фьючерса в эту минуту. От минуты к минуте цена случайным образом изменяется, то в большую, то в меньшую сторону.

Время: 10:20:30, 10:20:31, 10:20:32, 10:20:33, 10:20:34, 10:20:35...
Цена: 1000, 1001, 1002, 1000, 998, 998, 997...
Приращение: 0, 1, 1, -2, -2, 0, -1...

В контексте торговли нам как раз интересна последовательность приращений цены. Можно взять не арифметическую разность соседних значений, а логарифм их отношений, суть от этого не меняется. Ведь в чём заключается процесс торговли: по сути мы берем график, выделяем на нём отрезки времени путём совершения сделок, далее эти выделенные куски вырезаем, те что в шорт переворачиваем и склеиваем их все вместе обратно. Цель процесса — чтобы полученный таким образом новый график рос быстрее, а падал медленнее, чем исходный.

Далее, опять же для простоты, предполагаем, что наша система совершает сделки только в лонг. Для каждого отдельного приращения, в соответствии с правилами системы, известно, открыта в данный момент времени сделка, или нет. Таким образом, торговая система по определенным правилам разбивает общее множество всех случайных ценовых приращений за определенный период на две выборки — те, что «внутри» сделки и участвуют в росте эквити системы, и те, что «снаружи», и не участвуют.

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

По счастью, для целей проверки гипотезы о различии средних значений двух выборок давным-давно придуманы статистические тесты. Нам интересен тест Стьюдента, вернее его модификация для двух выборок разного размера с необязанными совпадать дисперсиями, известная также как тест Уэлча. Ссылка на англоязычную Википедию: goo.gl/CTa5Jc.

Внимание, формула:
Тест системы на неслучайность 
Здесь X1 и X2 с чёрточками — это средние значения, s1^2 и s2^2 — выборочные дисперсии, а N1 и N2 — количество элементов для первой и второй выборок, соответственно. Считаете эти параметры для каждой выборки, получаете конкретное значение t. Уже когда размеры обоих выборок составляют порядка нескольких десятков элементов, распределение значений t очень близко к нормальному с матожиданием 0 и дисперсией 1. Соответственно, чем больше абсолютное значение t для конкретной пары выборок, тем интереснее для нас та система, с помощью которой они были получены. Фактически, это количество «сигм», стандартных отклонений от матожидания нормального распределения для данной системы, показывающее вероятность того, что она ведёт себя на рынке случайным образом.

С увеличением периода тестирования и, соответственно, размеров выборок, у интересной системы критерий t постепенно растёт до интересных значений. Из практики и простого научного здравого смысла, начинаются эти значения где-то в районе шести (сигм). Системы с t меньше шести — скорее всего ни о чём. Те, о которых я писал в предыдущем посте, на EMAшках на минутках, дают порядка 8-9 сигм, и это только за период с середины марта для фьюча SiH5.

Вот так вот как-то так, умеющий читать да прочитает!
Всем профита (по мере сил).
 

а как вам не ЕМА а WMA?
avatar

Тихая Гавань

Тихая Гавань, что это, Windows Media Audio?
avatar

Zweroboi

Zweroboi, Weighted Moving Average
JMA точнее если уж так нравятся эти машки
avatar

AlexFox

AlexFox, а какая там формула?
avatar

Zweroboi

Дайте ему в профиль медальку «Профессор»
avatar

Герман Саич

прочитал всё, но понял только концовку )
avatar

Costa

Зачем Вы так поступили с моим мозгом? )
Владислав (Pilot), ноу пэин ноу гэин.
avatar

Zweroboi

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

Absourd

Absourd, если они разрушают неэффективности вместо того чтобы их использовать, то они ничего не зарабатывают.
Думаю, что дело обстоит чуть иначе. Они сначала неэффективности создают, затем играют на них, пока «число сигм" не упадёт ниже некоторого значения.
Мы же со стороны это наблюдаем, и если успеваем, то присоединяемся, проведя соответствующие вычисления, как автор.
avatar

MS

MS, они играют против неэффективности т.к. могут набрать там достаточную позу, а зная где будет слив стопов после набора поз можно понять где он будет крыться.
avatar

Absourd

Absourd, рушит идеи — это пытается заработать на них, тем самым снижая прибыльность системы?
avatar

V.V.

V.V., играя против какой либо системы ты набираешь нужный объем и сливаешь их по стопам, давая тем самым импульс на дальнейшее движение.
avatar

Absourd

Для построения прибыльной торговой системы не достаточно знать, что среднее значение изменяется со временем (оно действительно изменяется, и от этого построение системы становится только более трудным). Нужно уметь предсказывать, как именно изменяется это среднее. Как минимум, нужно уметь предсказывать будет ли средняя доходность завтра положительной или отрицательной.
avatar

Russian_Insider

finstrateg, тут цель понять случайно ты оказался в плюсе или нет. Вернее, какова вероятность того, что ты оказался именно в таком плюсе именно на таком графике совершенно случайно. А если оказался не в плюсе, то опять же, случайно так вышло или можно перевернуть систему и торговать по ней.
avatar

Zweroboi

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

BiTrader

BiTrader, сам я в Экселе такое не считаю, но для Вас нагуглил: www.usablestats.com/calcs/2samplet&sample=1
avatar

Zweroboi

1. На рынке все нестационарно и не нормально. А Стьюдент и вообще вся классическая статистика применима только к ЦПТ процессам.

2. Зачем сравнивать то, что внутри сделки с тем, что снаружи? Вроде, логично сравнивать среднюю сделку с нулем. Мы ж деньги хотим зарабатывать а не b&h обгонять.
avatar

anatolyutkin

anatolyutkin,

1. При тестировании на истории мы имеем дело с реализацией процесса, а среднее по случайной выборке стремится к нормальному независимо от формы распределения в самой популяции, в силу той же ЦПТ. В этом всё и дело, тут не вводится никаких искусственных предположений о нормальном распределении приращений цен, ибо это очевидно не так.

2. Чтобы отличить выигрышную систему от торгующей случайно на длинном тренде. Не знаю как Вы, а я хочу обгонять B&H, причём со страшной силой )) Иначе это не зарабатывание денег, а «шадринг», понравился мне этот термин.
avatar

Zweroboi

Zweroboi, 1. Результаты сделок не являются независимыми и малыми. Это по опыту. Точнее, про независимость не знаю, а вот про малость--точно. Собственно, 14й год с его взрывом волатильности на доллар-рубле тому пример. Поэтому распределение результатов сделок не нормально.

2. Это философский вопрос :) Я хочу денег--стабильно, и, как следствие стабильности, много. Плавная растущая эквити--вот цель, и испиленный с рисками в 100% b&h тут точно не конкурент и не бенчмарк.
avatar

anatolyutkin

anatolyutkin,

1. Да, очевидно, результаты сделок не распределены нормально, поскольку ценовые приращения внутри сделки не являются случайной выборкой. Система может выбирать периоды повышенной волатильности, и дисперсии приращений внутри и вне сделок могут существенно отличаться. Именно по этой причине используется критерий для выборок с неодинаковой дисперсией. Но его значение уже имеет нормальное распределение )

2. Я тоже хочу много денег )) Главное тут понимание оптимального направления в каждый момент времени, а как на этой основе пилить график и с какими объемами и рисками — это уже отдельная тема и свои ноу-хау.
avatar

Zweroboi

Zweroboi, Вот смотрите. У меня есть трендилка на si. Средняя сделка у нее до осени 2014 была что-то типа 100 рублей. Типичная сделка в районе 500 рублей. Дэйли фрейм. А потом она прокатилась от 45000 до 78000 одной сделкой. И эта одна сделка сразу неслабо изменила нафиг все средние. И что тут делать? Ясно же, что ваша и любая другая статистика из гауссова мира тут неуместна--ибо если одной сделкой меняются все средние--это печально. Точно также поменялись парой участков и «внешние» средние. В этих условиях средние просто неуместны.
avatar

anatolyutkin

anatolyutkin, может быть уместны, может быть неуместны, главное чтобы работало, верно? Как у меня работает один из элементов приёмки систем, я описал. Для систем на дэйли фреймах при описанном подходе нужно много данных, с захватом двухтысячных точно. И тогда средние от одной сделки, дыже такой жирной, уедут не сильно. А даже если и уедут, то пускай, но только в правильную сторону )
avatar

Zweroboi

а как мне быть с образованием 8классов / 1974г/,
avatar

Владислав

И еще. Si--трендовый. На это есть причины. И поэтому трендовые системы, в частности, трендовухи на скользящих средних работают хорошо. Это и без t распределений известная вещь.
avatar

anatolyutkin

anatolyutkin, это да, а на каком ещё инструменте предложили бы проверить?
avatar

Zweroboi

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

V.V.

V.V., Трендовость и тренд--разные вещи. Ясно видимый тренд не является обязательным следствием трендовости, более того--тренды есть и на нетрендовых процессах. Поэтому трендовухами можно торговать и инструменты без четко видимых трендов--главное, чтобы трендовость была.
avatar

anatolyutkin

Все проблемы нетрендовости решаются с помощью крнл
avatar

Arsen G

а где период то ЕМА написан?? или я не там читал?)
avatar

Егор Реутов

Всего два вопроса: 1) какое значение теста будет у системы с достаточным числом степеней свободы, чтобы пропустить все отрицательные приращения и оставить все положительные? 2) насколько это запредельное число сигм будет гарантировать такие же характеристики системы в будущем?
avatar

bstone

bstone,
1) Речь о системе, которая переподогнана под конкретный набор исходных данных? Разумеется, для такой системы значение теста будет просто космическим. С другой стороны, вероятность случайно выбрать именно данную конкретную систему из всего множества подобных с таким же числом степеней свободы будет исчезающе малой.
Поэтому:
2) Для переподогнанной системы не будет гарантировать нинасколько. А если мы создаем набор из нескольких тысяч систем и находим среди них такие, которые чисто случайно появляются с вероятностью одна на миллиард, причём не одну а пару десятков, то в них уверенности уже будет побольше.
avatar

Zweroboi

Zweroboi, вот именно, подгонка системы с большим числом параметров — это тоже в своем роде результат «с вероятностью один на миллиард» :)
avatar

bstone

bstone, вот представьте, что множество всех возможных систем — это колода карт. Из неё можно вытащить пикового туза наугад с какой-то вероятностью, можно посмотреть все карты и честно его найти, а можно даже не искать и просто нарисовать самому. Когда колода размером с земной шар, последнее сделать проще всего. Вот это и называется подгонка.
avatar

Zweroboi

Zweroboi, в вашем примере результат случайного вытаскивания туза пик из колоды и результат его поиска полным перебором колоды одинаков, но вы почему-то считаете, что если вам этот туз выпал случайно, то он какой-то особенный :)
avatar

bstone

bstone, вы ничего не поняли. Тузы самые обычные. Но если они случайным образом появляются чаще, чем должны, то можно сделать соответствующие выводы о самой колоде.
avatar

Zweroboi

Zweroboi, протестую :) Тест Стьюдента можно интерпретировать в разрезе достоверности различия средних значений выборок, но уж никак нельзя по нему судить о качественной природе этих различий! Вы максимизируете функцию среднего и не важно, перебрали ли вы в данном случае все пространство параметров, или случайно нашли несколько наборов, дающих хороший результат. И тот и другой вариант — это «подгонка» под конкретный ряд.
avatar

bstone

bstone, а в чём, по-Вашему, заключается отличие между подгонкой и оптимизацией? Или Вы два этих понятия не различаете?
avatar

Zweroboi

Zweroboi, «подгонка» для меня в данном случае является синонимом оптимизации. Просто чаще используется среди алготрейдеров. Тут можно пространно порасуждать об оптимизации и переоптимизации, но применительно к торговле это все одно и тоже. Вы находите какие-нибудь различия?
avatar

bstone

bstone, разумеется, как минимум одно принципиальное.
avatar

Zweroboi

С увеличением периода тестирования и, соответственно, размеров выборок, у интересной системы критерий t постепенно растёт до интересных значений. Из практики и простого научного здравого смысла, начинаются эти значения где-то в районе шести (сигм). Системы с t меньше шести — скорее всего ни о чём. 
***
Вот так вот как-то так, умеющий читать да прочитает!
Не умеющему читать (не математику) можно на пальцах?
Комменты не перечитывал, если надо — осилю. )
avatar

VladMih

VladMih, да там и так вроде на пальцах, что именно непонятно могу ответить на конкретные вопросы.
avatar

Zweroboi

при расчете сигм Вы какие берете средние?
avatar

SergeyJu

SergeyJu, не совсем понял вопрос. В посте речь о средних приращениях цены за одинаковые промежутки времени, соответственно есть среднее приращение, когда мы в сделке и когда нет. Цены я считаю сам из тиков как VWAP за 1с )
avatar

Zweroboi

Zweroboi, понял, среднее Вы считаете раздельно по двум подвыборкам и вычитаете при расчете дисперсии.
А если система имеет 3 состояния — лонг, шорт, аут, Вы считаете 3 статистики?
Я понял так, что Вы по тикам считаете секундные бары и на их основе строите системы. И при расчете этих статистик бары тоже секундные или более медленный таймфрейм. И вообще, о какой примерно частоте сделок идет речь при работе на секундных барах?
Я работаю на минутках.


avatar

SergeyJu

SergeyJu, если система имеет три состояния, то котируется считать лонг и шорт отдельно, как будто у нас две системы — одна лонг и одна шорт. Соответственно считаем 4 средних: лонг, шорт+аут, шорт, лонг+аут, и сравниваем первое со вторым и третье с четвёртым.

Бары я не считаю, для каждой секунды считается одна цена — VWAP (volume-weighted average price). Секундный интервал нужен для того, чтобы набрать нужное для анализа количество исходных точек данных — это порядка неск сот тысяч для одного инструмента. С частотой сделок это связано чуть менее, чем никак, она настраивается через, например, периоды используемых индикаторов, которые по этим секундным средним ценам считаются.

Вообще система сама по себе трендовая, соответственно чем длиннее средняя сделка (выловленный тренд), тем лучше.

avatar

Zweroboi

Zweroboi, а средние за секунду лучше, чем закрытия секунд?
Несколько сот тысяч секунд, это два-десять торговых дней. Неужели расчет по секундам дает дополнительный плюс к расчету по минутам. Или для Вас важна скорость реакции?
Я тоже торгую трендследящие системы. И у меня вполне обычно, что группа однородных систем с чуть-чуть разными параметрами входи в рынок (выходит) 10-20 минут. 
avatar

SergeyJu

SergeyJu, я не проверял, но думаю средние за секунду и закрытия секунд будут работать примерно одинаково. В принципе, и 10 секунд и может даже минута тоже, но с точки зрения количества вычислений на этапе построения модели разницы нет, поэтому я просто выбрал более надёжный и заведомо более точный вариант. Ведь ниоткуда же не следует, что минутные интервалы должны начинаться строго в 00 секунд по часам? Да и оно как-то спокойнее, когда аналитика приходит реалтайм, а не раз в минуту )

Например я ещё могу захотеть из любопытства построить модельку для последнего месяца и сравнить с годом, что там у них есть общего а чего нет и т д. Короче, самый универсальный таймфрейм )
avatar

Zweroboi

Zweroboi, тогда еще логичнее брать не тики, а аски-биды :)
Кстати, более устойчивая конструкция, особенно для ликвидных, но не слишком ликвидных активов. 
В общем-то я хочу перейти со временем в более быстрый таймфрейм, но не по тем соображениям, что у Вас.
avatar

SergeyJu

SergeyJu, не факт. Я предпочитаю тики, потому что по этим ценам реально были сделки и объёмы. А биды и аски — то, что они видны совсем не гарантирует, что они ещё есть там где они были, мы ж почти как астрономы в этом смысле )
avatar

Zweroboi

Zweroboi, я когда-то строил индекс широкого рынка корпоративных облигаций. По бид-аскам он получался устойчивым и более-менее адекватным. По тикам — нет.
avatar

SergeyJu

SergeyJu, понятно, но индекс это всё-таки чуть другое. И в облигациях наверняка не так много сделок как на фьючах
avatar

Zweroboi

Zweroboi, на облигах было много случаев, когда за день ни одной сделки. При этом аск-бид могли стоять вполне адекватные.  Поэтому индекс на сотне и более тикеров оказывался устойчивым. Все облигации, кроме ОФЗ у нас или неликвид или полуликвид. Точно также я строил индекс РТС2. В принципе, нормальная тема для медленных торговых систем.
avatar

SergeyJu


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

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

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