Быстрая проверка индикаторов и ТС

 

Всем привет.

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

Короче речь идёт о логике таких алгоритмов, выбить формулу(лы) у меня не получилось. Решил что здесь всем комьюнити можно решить эту задачу. Думаю это многим будет интересно, особенно новичкам.

Говоря более предметно, задача формулируется так: «Какое самое быстрое вычисление нужно произвести, что бы получить меру валидности торговой идеи?»

Ещё более предметно так: «Как получить быструю оценку предикторной силы индикатора или ТС, без тестирования?»

 

Я конечно понимаю что обычное тестирование это наиболее точный и адекватный способ проверки идей, но согласитесь очень медленный. Нужен этап предварительной, менее точной(на<10-20%) но гораздо более быстрой оценки(100-1000 раз, мне сказали) «качества» торгового алгоритма или индикатора.

Интересует прежде всего формула, или алгоритм, но можно и готовый код на mql, С++, C#

Заранее спасибо.

 
lucky_teapot:

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

Скорее всего Ваш знакомый специалист имел ввиду метод box-counting - это один из методов определения значимости входных факторов, который дает количественную оценку предсказуемости конкретных рядов. Я про него узнал из книги "Нейрокомпьютинг и его применения в экономике и бизнесе" А.А.Ежов, С.А.Шумский. (глава 7 стр. 141)

Подробный алгоритм описан в комментариях к статье.

Сам не использую. Методика показалась мне интересной, но с реализацией пришлось отложить, на всё времени к сожалению не хватает...

PS: Но эта методика скорее дает не оценку стратегии, а оценку входных данных которые она использует. ИМХО это одно и то же... 

 
papaklass:

Формулы наврядли Вам кто-нибудь скажет. Ведь по формулам будут открываться/закрываться позиции. Поэтому, только Вы сами должны свои идеи загонять в формулы и прогонять на данных.

Для получения данных нужны тики, из которых нужно сформировать бары нужного таймфрейма. Об этом неоднократного говорил hrenfx. В зависимости от того, нужны ли Вам тики внутри баров или нет, бары можно подготовить соответствующим образом. Такая подготовка баров (все тики/ OHLC) даст существенное увеличение производитедьности, но уменьшается точность.

Подготовка баров это немного другое.

К примеру есть индикатор или ТС, как математически оценить его прогнозный потенциал? Есть ли универсальный способ?

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

MigVRN:

Скорее всего Ваш знакомый специалист имел ввиду метод box-counting - это один из методов определения значимости входных факторов, который дает количественную оценку предсказуемости конкретных рядов. Я про него узнал из книги "Нейрокомпьютинг и его применения в экономике и бизнесе" А.А.Ежов, С.А.Шумский. (глава 7 стр. 141)

Подробный алгоритм описан в комментариях к статье.

Сам не использую. Методика показалась мне интересной, но с реализацией пришлось отложить, на всё времени к сожалению не хватает...

PS: Но эта методика скорее дает не оценку стратегии, а оценку входных данных которые она использует. ИМХО это одно и то же... 

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

В данном случае просто нужно дать оценку "качества" индикатору.

 
papaklass:

На мой взгляд, именно подготовка баров и даст существенное повышение быстродействия при оценке. Ведь для того, чтобы оценить потенциал индикатора или ТС, Вы должны прогнать его на истории. Так?

Если Вы ищите формулы без прогона по котировкам, т.е. какие-то универсальные математические формылы оценок черных ящиков (в нашел случае индикаторы/ТС), то даже не знаю существуют ли они вообще.

А где про это можно прочитать, про подготовку баров? Тыцните на линк плиз.

В общем то я стараюсь вообще уйти от концепций «бар», «свеча» и OHLC-подобные виды статистик. На моём небольшом опыте, ЕМА(60) от секундных баров(клосов), прореженное 1\60 даёт наиболее приемлемый минутный двухмерный ряд(бид аск). Какие то специфические манипуляции с отдельно OHLC на мой взгляд статистически несущественны.

А в данном случае вопрос о валидации закономерностей на рядах. Как понять что индикатор или ТС прогнозирует в приемлемом диапазоне.

"Прогон" то конечно, но это должно быть не медленнее индикатора средней сложности, к примеру что бы год минуток за 1\10 секунды обрабатывалось.

 
papaklass:

 Посмотрите высказывания hrenfx насчет подготовки баров. Мне сейчас трудно мысленно воспроизвести, где он по этому поводу высказывался. Попытался по поиску найти, но слишком много постов, в которых упоминается hrenfx. Компьютер завис на очередной странице. :)

lucky_teapot:

А где про это можно прочитать, про подготовку баров? Тыцните на линк плиз.

Здесь и здесь. Вторую ветку до конца дочитайте...

lucky_teapot:

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

В данном случае просто нужно дать оценку "качества" индикатору.

Не за что. Там книга про нейросети - но сам метод никак с ними не связан. Этот метод - альтернатива того, который Вам предлагает papaklass. Он нужен лишь:

Для того, чтобы определить "что индикатор или ТС прогнозирует в приемлемом диапазоне"
FastHistory
FastHistory
  • 2011.10.10
  • hrenfx
  • www.mql5.com
Увеличение скорости тестирования/оптимизации в разы и десятки раз. Нелинейное преобразование.
 

lucky_teapot:

Короче речь идёт о логике таких алгоритмов, выбить формулу(лы) у меня не получилось. Решил что здесь всем комьюнити можно решить эту задачу. Думаю это многим будет интересно, особенно новичкам.

Если мне не изменяет память, вы уже об этом сравнительно недавно спрашивали в другой теме. Но даже есле это были не вы то подобных тем тут валяется с десяток, даже статьи есть.

В нашем деле важно не алгоритм «выбить» у кого то, а самому уметь их придумывать. Все алгоритмы которые получены от кого то, тем более коллективные, априори нерабочие.

Я бы ещё понял если вам нужно было что то запрограммировать, рутинная часть, метод какой то не знали или синтаксис, а если алгоритм не можете придумать то это проблема более фундаментальная. Без обид. Раз такое спрашиваете, то не понимаете сути прогнозирования временных рядов, а если так, то нет шансов.

Советую отдать капусту в ДУ известному управляющему, или хэдж-фонд, если она конечно есть в должном для инвестирования объёме.

 

Alex_Bondar:

В нашем деле важно не алгоритм «выбить» у кого то, а самому уметь их придумывать. Все алгоритмы которые получены от кого то, тем более коллективные, априори нерабочие.


Если я правильно понял вопрос, то нужно начинать с правильной идеи, отвечающей поставленной задаче, например: стабильное получение прибыли. Все остальное ( формулы, индикаторы, тики и т.д. и т.п.) вторично.

Например мне очень помогла ТРИЗ ( теория решения изобретательских задач ). Но может быть есть и другой путь выхода на правильную идею.

 

Отлично!

Спасибо papaklass и MigVRN, за конкретную помощь, алгоритм и линки.

Alex_Bondar  и VNIK тоже спасибо, за абстрактные советы и предположения.

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

В общем довольно шустро было найдено 3 потенциально интересных версии, «box-counting» от MigVRN, метод с ZigZag от papaklass, надо только разобраться в формализации «сравнения», и третий корреляция с видящей будущее версией.

Теперь нужно попробовать это закодить и протестить.

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

И краундфандинг вполне может иметь место если кто готов приложиться помочь:)))

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

 
Поделитесь пожалуйста результатами, когда они будут. Хоть в общих чертах.
 
pronych:
Поделитесь пожалуйста результатами, когда они будут. Хоть в общих чертах.
ок
 
pronych:
Поделитесь пожалуйста результатами, когда они будут. Хоть в общих чертах.

Если это Вы мне адресовали, то да я поделюсь результатами.

Причина обращения: