Блог им. valo13

А как вы отсеиваите бесперспективные идеи для своих роботов?

    • 13 февраля 2016, 17:52
    • |
    • valo
  • Еще

Наверное с  такой ситуацией сталкиваются многие алгоритмисты, дело в том  что генерация идей для алгоритмов, стала сильно опережать реализацию этих идей. Хотя я могу это объяснить тем что, маловато опыта в программировании…долго пишу-туплю, исправляю ошибки-туплю.

Я уже не сижу и не ломаю голову над тем, какую бы очередную стратегию придумать. Идей целый вагон, они возникают спонтанно, и я все их стараюсь записывать чтобы не забыть. Для того чтобы  реализовать ВСЁ ЭТО мне потребуется много времени.Это все хорошо, но есть одно но. После первых  тестов выяснилось что, 70% процентов идей это барахло полное, а из остальных 30%  что-то можно позаимствовать. Отсюда вытекает  то, что за 2 года торговли я практически ничего не понял, я наивно полагал что в рынке есть такие паттерны или закономерности или неэффективности (кому что ближе) которые дают вероятность  профита 80-90% при условии  TP/Sl =1/ 1. Тесты на истории показали мне рынок в совершенно ином свете, а еще в ином свете сам перед собой предстал Я…кретин… Хотя в конце концов наверно такие паттерны и образуются раз в пятилетку я не знаю, возможно, но только тогда и смысл в них теряется, или получается эдакий сверхнизкочастотный трейдинг но с высокой вероятностью ))) Ну да ладно, щас не об этом.

Собственно задача нарисовалась такая: необходимо как то фильтровать идеи. чтобы не тратить время на провальные страты.

Но как? Ведь на первый взгляд идея то граальная и все они такие пока не формализуешь.

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

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

А как вы выходите из положения? Кто сталкивался?

★6
60 комментариев
Да, я сталкиваюсь с этим частенько. В итоге решил, что программировать буду только в кайф, а не «побыстрее бы запустить робота».
В деньгах нуждаюсь не настолько остро.
avatar
Ярик, да мне программирование в принципе в кайф, так как новая стезя для меня. Каждый раз ставится новая задача, требующая больших знаний и усилий чем прежняя. Но выхлоп от этих усилий должен быть, а получается порожняк)
avatar
Я алгоритмами занимаюсь меньше года, и тоже очень часто зависаю на «перспективных» идеях, которые в итоге не приносят ничего, кроме уймы потерянного времени. Причем все это проверялось на разных рынках и таймфреймах. Для себя сделал следующие выводы:
— Нужно делать «предтесты» на паре инструментах тройке инструментов, если нет результата, то не пытаться его вымучить из другого инструмента. Хотя есть примеры, где системы работали на Америке, но плохо работают на российском рынке)
— Нужно определить четкие параметры по котором система проходит предтест, — средняя сделка, профит фактор и т.д. если не проходит то и нечего оптимизировать — систему в топку.
— Идеи должны быть как можно более простыми, не нужно усложнять и строить  сложные системы, ничего стоящего из этого, по крайней мере на первых порах не получится Достаточно чтобы в пуле работали простые системки, которые использовали общий  депозит, но не толкались друг с другом локтями.  
avatar
Антон Ш, у меня так и получается, со всем выше сказанным соглашаюсь, особенно последний пункт. Если система имеет много параметров, нет гарантии что они взаимосвязаны и  в купе повышают мат ожидание, просто получается реже вход и снижается динамика эквити, пока что я других выводов ненатестировал)
avatar
Не отсеивай идеи вообще. ВСЕ проверяй! Самая бредовая может оказаться граальной. По себе сужу)) Литры кофе тебе в помощь)
avatar
Kaiman, ну просто откладывать на тот момент когда идеи под иссякнут)
avatar
Есть концепция портфеля роботов, например торгового флетового и контртрендового, а также их ротация
avatar
Иван Тишевской, Фонтаном? Ротация? Подробнее если можно)
avatar
valo, Подробнее о ротации?  Ротация это снятие с торгов при определенных условиях 
avatar
Иван Тишевской, а теперь понял) 
avatar
Иван Тишевской, хорошая концепция, только большого депо требует… в портфеле должны быть представители всех классов, тренд, контртренд, боковик, пробойники. Плюс диверсификация по тикерам и брокерам.
avatar
все от стратегии зависит, тренд или контртренд, пробой, ложный пробой… таймфрейм и т.д., много нюансов
avatar
vladkot, сколько параметров в алгоритме в среднем у вас?
avatar
valo, 2-3
avatar

Делать роботов легко. :)

Так как есть системный подход:

1.Берем инструмент. Например, фьючерс на Доллар (Si).

2.Исследуем его на предмет поведения: трендовый/флэтовый.

3.Исследуем его на предмет способа входа: по импульсу, по тренду, по тренду с отката, по тренду с отката на импульсе.

4.Исследуем его на предмет сопровождения сделки: стоп-лосс и тейк-профит, трейлинг стоп, стоп и реверс,  выход по времени.

После получения характеристик получаем набор техник торговли.

Например, трендовый, импульс, стоп-лосс и тейк-профит.

Всё!

Дальше остается взять из запасников соответствующие техники и собрать их в 1 торговую систему.

Остается:

-оттестировать её на истории (Wealth-Lab) на 1 контракте.

— определиться, устраивает или нет;

— если устраивает, найти оптимальные параметры для индикаторов с учетом системы Управления капиталом;

— если и это устраивает, то переводить в тестовую торговлю. Можно на демо счете. Для выявления явных глюков.

После недельки тестов на демо можно перевести на боевой счет. На 1 контракт. До получения по 2-3 входа/выхода по каждому правилу.

Если ОК, то — в реальную торговлю с выделением запланированного объема депо.

Сложности только в подборе и тестировании техник — занимает очень много времени. Рутина...

 

 

avatar
IgorMushtriev, легко) когда есть много наработок)
avatar

valo, 

Я запустил 1 робота в реальную торговлю в ноябре 2014. Просто дали теорию, код, показали как настроить, поставить.

Но, потом наступило время упорного труда. Учебы.

 

 

Хотя, если честно, начать торговать под руководством хорошего товарища очень просто. Мне просто повезло :)

avatar
IgorMushtriev, а в чем пишите?
avatar

Добрый день, valo, 

Пишу на C# в Visual Studio + Resharper.

Тестирую в Wealth-Lab.

Торгую в TSLab.

avatar
IgorMushtriev, Какими инструментами исследуете «трендовость» рынка? На глазок или есть какие мат. методы.
И как исследовать способ входа. Это надо стратегию закодить и сравнивать. Или как то иначе?
avatar

Добрый день, Karim, 

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

Я учусь в Финансовой лаборатории. Нам там дали.

вот профиль одного из наших наставников — Дмитрия Власова. http://smart-lab.ru/profile/VDV/

Сайт, где есть информация chechet.org

avatar
Отсеиваем потом и кровью, блеяать!
Бабёр-Енот, хахахах) ну так что делать чтоб тратить меньше пота крови и бабала?))
avatar

про переоптимизацию — умный текст...

Существует еще одна проблема: каждый раз, когда вы делите систему на два или более состояния, вы по определению сокращаете количество наблюдений в каждом состоянии. Чтобы проиллюстрировать это, представьте, что каждый из 37 классификаторов в моей IWM-системе имеет лишь 2 состояния – лонг или кэш. Тогда существует 2^37 = 137 млрд. возможных состояний системы. Напомним, что статистическая значимость зависит от числа наблюдений, таким образом, уменьшение количества наблюдений на состояние в системе снижает статистическую значимость наблюдаемых результатов для каждого состояния, а также для системы в целом. Например, возьмем дневную торговую систему с 20-летней историей тестирования. Если вы разделите 20 лет (~5000 дней) на 137 млрд. возможных состояний, каждое состояние будет иметь в среднем всего 5000/137 млрд. = 0,00000004 наблюдения на состояние! Очевидно, что 20 лет истории не достаточно, чтобы быть уверенным в этой системе; вам потребуется период тестирования более 3 млн. лет, чтобы получить статистический уровень значимости.

 

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

Хорошо сказал...
т.е для оценки бота если 0 параметр оптимизации требует 1000сделок… 1 параметра 2000… 2 параметра 4000… 3 параметра 16000… при этом надо учитывать что выбор бумаги+выбор таймфрейма= 2 параметра оптимизации

т.е. афтору надо придумывать ботов без параметров оптимизации либо 1 параметр...

avatar
ves2010,  я не готов был к такому. Я сохраню этот коммент чтобы через годик прочитать, когда подрасту)))
avatar

Добрый день, ves2010, 

Я стараюсь делать системы с 1-2, максимум 3 параметрами.

Тест провожу на истории 3 года.

Тест должен содержать порядка 200 сделок в год. Всего получается не более 600-700, но не менее 500.

Переоптимизация систем.

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

В этом году решил проводить оптимизацию поквартально. По окончанию жизни фьючерсов. (торгую Си и Евро)

Ротация.

Это целая наука. Надо отслеживать 

— серию убыточных сделок. Если превышает показанную на истории — 1-й звоночек.

— максимальную просадку. Если превышает показанную на истории на 20% — снимаем с торгов.

Но у меня получается так — как только появляется новая система с показателями лучше, чем у стоящей, ставлю новую.

Депо небольшое. Не хватает средств на всех роботов :(

avatar
IgorMushtriev, имхо тестить надо за максимально возможный срок… лично проверял своих ботов аж от 2000года
avatar

ves2010, не факт

Для получения валидной выборки достаточно получить 10-20 сделок на каждое правило. Если у меня 1 правило на вход и 1 на выход — достаточно 50 сделок в год. Я беру 200 сделок.

 

avatar
IgorMushtriev, я как то написал контртрендового бота и протестил от 2010года по 2016… вроде все было ок… можно торговать… но потом решил сделать стресс тест на 2008ом и увидел эпический слив… желание торговать этот бот отпало напрочь... 
avatar
ves2010, суть уловил конечно, я сам скептически отношусь к трейдерам которые обкладываются индикаторами, фибоначами, разлиновывают все сопротивлениями и поддержками. Если нет взаимосвязи между фильтрами с какого хрена они вместе повысят вероятность положительного исхода? Получается что набор индикаторов это просто букет из суеверий.
avatar
ves2010,  т.е для оценки бота если 0 параметр оптимизации требует 1000сделок… 1 параметра 2000… 2 параметра 4000… 3 параметра 16000… при этом надо учитывать что выбор бумаги+выбор таймфрейма= 2 параметра оптимизации

т.е. афтору надо придумывать ботов без параметров оптимизации либо 1 параметр...

Чем обоснованы такие цифры не совсем понял? Зачем так далеко заглядывать в тесте на истории? 
avatar
valo, дык то матстатистика диктует… для получения достоверной статистики надо 10000 сделок… тогда с вероятностью 99% каждая новая сделка будет внутри этой статистики...
для статистики 1000 сделок вероятность того что сделка будет внутри статистики 97%
для статистики 100 сделок 90%… т.е каждая 10ая сделка будет загадочным сюрпризом…

это если предположить что процесс нормальный либо эргодический (типа лучший случай)… мне такой подход не нравится поэтому тестю на максимально возможном интервале данных
avatar
ves2010, наверное отбраковываете не как я 70 процентов а все 95??)))
avatar
Результаты теста Si M1 месяц. На нефти М5 и Ри Н1  результаты еще лучше. Написан на заказ. Сам пока только разбираюсь в алго. Ваше мнение. Чего ожидать в реале?
avatar
Poker, я так понял вопрос направлен к ves2010?)
avatar
valo, Ко всем))?? Нужно мнение холодной головы, а то начинаю воображать золотые горы.
avatar
Poker, ты выкладывай, а мы посмотрим и всё тебе расскажем — жмется ли у нас очко такого бота на реал ставить, али наоборот — радостно трепещет и брыжжет радостью))
Бабёр-Енот, Хитрый ты зверь)))
avatar
Poker, я это… кхе… мягкий и пушистый, если чё))

 Это Форекс.

я торгую Фортс. 

Форекс начал осваивать месяц назад. 

Поэтому ничего сказать не могу.

С Форексом у меня пока ситуация такая: на участке истории графики супер, на тестовом участке — флэт или слив.

(Эмуляция форвардного анализа)

avatar
IgorMushtriev, для таких вещей есть кроссвалидация
avatar
IgorMushtriev, хы сделок изначально мало… 3000 минимум
avatar
даже не знаю, на мой взгляд тестирование на истории это очень вредная штука времени много отнимает толку мало. единственное что имеет значение это продумать выход если пошло не так.

а если появилась гениальная идея, открываю квик и торгую руками, на мелком счете. долго матерюсь неудобству за то стразу понимаю какой робот должен быть. есть прибыль значит можно кодить, нет — думаю новую :-)
avatar
Алексей, Ну почему, история может сразу отсеить в край провальные страты, во вторых как без тестирования определить правильность написанного кода? Я когда написал первый вариант робота  загоняю его в тестер и смотрю, а так ли он вообще сделки открывает? Еще ни разу не было так, что  всё сразу заработало))) Хотя это уже мои проблемы как программера) Так что без бэктестинга никуда, уж точно вредного ничего нет) 
avatar
valo, ошибки реализации могут быть настолько хитрожопыми, что могут служить основой основной прибыли итоговой реализации))
Бабёр-Енот, главное прибыль получать, а каким образом это уже не так важно)
avatar
valo, хахаха — так ты тоже купил бубен и делаешь кровавые жертвоприношения темным богам?
valo, да я сам начинал с тестов на истории, подгонке параметров и т.д. но в итоге как позу реальную открываешь, рынок идет наоборот :-) так как думаю каждая сделка влияет на общую картину.  в итоге после долгих мучений ушёл в арбитраж и опционы, управлять позой можно и практически всегда понятно что стряслось и что сделать что бы исправить положение.
avatar
Алексей, переоптимизация это беда, тут согласен)  
avatar
Алексей, Кст ава у вас огонь XDDD
avatar
valo, сам тащусь, посмотришь и никакой лось не страшен :-)
avatar
У каждого алгоритма есть внутренние ошибки, которые
а) сразу не видно
б) ведут к потери времени и денег.
Теория графов.
avatar
Ой ребят а 35000 параметров в системе как вам? И это не какие-то 30% годовых ))) все на завод!
Zweroboi, днем завод, вечером трейдинг  ;-)
avatar
Точно так же как и автор справляюсь. С той лишь разницей что я ищу кряк для системы сразу же как только она появилась. И так было изначально и во всех аспектах жизненных… скажу честно что жить это мешает и седых волос прибавляет изрядно… но так есть. В любой идее моделирую самые неблагоприятные ситуации и только получив устойчивый показатель двигаюсь дальше.
avatar
Growex, В любой идее моделирую самые неблагоприятные ситуации и только получив устойчивый показатель двигаюсь дальше. 
А как иначе? Если затеял стройку нужно  знать какие нагрузки выдержит фундамент. 
avatar
valo, ну а толку от этого занятия, в материальном выражении, все равно больше не становится, разве что мозги работают и цель кажется еще ближе. Но опять же только кажется :)
avatar
Growex, да согласен, но цель не отдаляется, одну цель еще не успеваешь достичь, а на горизонте уже следующая)так и живем)
avatar

теги блога valo

....все тэги



UPDONW
Новый дизайн