Блог им. valo13
Наверное с такой ситуацией сталкиваются многие алгоритмисты, дело в том что генерация идей для алгоритмов, стала сильно опережать реализацию этих идей. Хотя я могу это объяснить тем что, маловато опыта в программировании…долго пишу-туплю, исправляю ошибки-туплю.
Я уже не сижу и не ломаю голову над тем, какую бы очередную стратегию придумать. Идей целый вагон, они возникают спонтанно, и я все их стараюсь записывать чтобы не забыть. Для того чтобы реализовать ВСЁ ЭТО мне потребуется много времени.Это все хорошо, но есть одно но. После первых тестов выяснилось что, 70% процентов идей это барахло полное, а из остальных 30% что-то можно позаимствовать. Отсюда вытекает то, что за 2 года торговли я практически ничего не понял, я наивно полагал что в рынке есть такие паттерны или закономерности или неэффективности (кому что ближе) которые дают вероятность профита 80-90% при условии TP/Sl =1/ 1. Тесты на истории показали мне рынок в совершенно ином свете, а еще в ином свете сам перед собой предстал Я…кретин… Хотя в конце концов наверно такие паттерны и образуются раз в пятилетку я не знаю, возможно, но только тогда и смысл в них теряется, или получается эдакий сверхнизкочастотный трейдинг но с высокой вероятностью ))) Ну да ладно, щас не об этом.
Собственно задача нарисовалась такая: необходимо как то фильтровать идеи. чтобы не тратить время на провальные страты.
Но как? Ведь на первый взгляд идея то граальная и все они такие пока не формализуешь.
Каждая новая идея казалась мне гениальной потому-что при визуальном тестировании я смотрел только на профитные исходы, а то что страта выдает лосей также исправно, я очень упрямо игнорировал, тупо не всматриваясь в реальную картину. Я попросту опускал такой ненужный труд как поиск слабых мест в страте. Пробоины попросту заполнялись чрезмерным оптимизмом.))) Сейчас я себе такого не позволяю, так как идеи все более изощреннее, более комбинационные и требуют код гораздо сложнее чем раньше.
Теперь перед реализацией в код мне нужно очень щепетильно проверить основной принцип на наличие пробоин, дыр, темных пятен, подводных камней, пуха и перьев. Для себя я твердо усвоил, что поиск слабых мест задача первостепенная. В эту же задачу входит моделирование ситуаций наиболее неблагоприятных для этого алгоритма.
А как вы выходите из положения? Кто сталкивался?
В деньгах нуждаюсь не настолько остро.
— Нужно делать «предтесты» на паре инструментах тройке инструментов, если нет результата, то не пытаться его вымучить из другого инструмента. Хотя есть примеры, где системы работали на Америке, но плохо работают на российском рынке)
— Нужно определить четкие параметры по котором система проходит предтест, — средняя сделка, профит фактор и т.д. если не проходит то и нечего оптимизировать — систему в топку.
— Идеи должны быть как можно более простыми, не нужно усложнять и строить сложные системы, ничего стоящего из этого, по крайней мере на первых порах не получится Достаточно чтобы в пуле работали простые системки, которые использовали общий депозит, но не толкались друг с другом локтями.
Делать роботов легко. :)
Так как есть системный подход:
1.Берем инструмент. Например, фьючерс на Доллар (Si).
2.Исследуем его на предмет поведения: трендовый/флэтовый.
3.Исследуем его на предмет способа входа: по импульсу, по тренду, по тренду с отката, по тренду с отката на импульсе.
4.Исследуем его на предмет сопровождения сделки: стоп-лосс и тейк-профит, трейлинг стоп, стоп и реверс, выход по времени.
После получения характеристик получаем набор техник торговли.
Например, трендовый, импульс, стоп-лосс и тейк-профит.
Всё!
Дальше остается взять из запасников соответствующие техники и собрать их в 1 торговую систему.
Остается:
-оттестировать её на истории (Wealth-Lab) на 1 контракте.
— определиться, устраивает или нет;
— если устраивает, найти оптимальные параметры для индикаторов с учетом системы Управления капиталом;
— если и это устраивает, то переводить в тестовую торговлю. Можно на демо счете. Для выявления явных глюков.
После недельки тестов на демо можно перевести на боевой счет. На 1 контракт. До получения по 2-3 входа/выхода по каждому правилу.
Если ОК, то — в реальную торговлю с выделением запланированного объема депо.
Сложности только в подборе и тестировании техник — занимает очень много времени. Рутина...
valo,
Я запустил 1 робота в реальную торговлю в ноябре 2014. Просто дали теорию, код, показали как настроить, поставить.
Но, потом наступило время упорного труда. Учебы.
Хотя, если честно, начать торговать под руководством хорошего товарища очень просто. Мне просто повезло :)
Добрый день, valo,
Пишу на C# в Visual Studio + Resharper.
Тестирую в Wealth-Lab.
Торгую в TSLab.
И как исследовать способ входа. Это надо стратегию закодить и сравнивать. Или как то иначе?
Добрый день, Karim,
Есть инструмент, позволяющий определить трендовость инструмента.
Я учусь в Финансовой лаборатории. Нам там дали.
вот профиль одного из наших наставников — Дмитрия Власова. http://smart-lab.ru/profile/VDV/
Сайт, где есть информация chechet.org
про переоптимизацию — умный текст...
Существует еще одна проблема: каждый раз, когда вы делите систему на два или более состояния, вы по определению сокращаете количество наблюдений в каждом состоянии. Чтобы проиллюстрировать это, представьте, что каждый из 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 параметр...
Добрый день, ves2010,
Я стараюсь делать системы с 1-2, максимум 3 параметрами.
Тест провожу на истории 3 года.
Тест должен содержать порядка 200 сделок в год. Всего получается не более 600-700, но не менее 500.
Переоптимизация систем.
В прошлом году проводил ежемесячно. Но, заметил, что после оптимизации система первые сделки сливает, потом отрабатывает.
В этом году решил проводить оптимизацию поквартально. По окончанию жизни фьючерсов. (торгую Си и Евро)
Ротация.
Это целая наука. Надо отслеживать
— серию убыточных сделок. Если превышает показанную на истории — 1-й звоночек.
— максимальную просадку. Если превышает показанную на истории на 20% — снимаем с торгов.
Но у меня получается так — как только появляется новая система с показателями лучше, чем у стоящей, ставлю новую.
Депо небольшое. Не хватает средств на всех роботов :(
ves2010, не факт
Для получения валидной выборки достаточно получить 10-20 сделок на каждое правило. Если у меня 1 правило на вход и 1 на выход — достаточно 50 сделок в год. Я беру 200 сделок.
т.е. афтору надо придумывать ботов без параметров оптимизации либо 1 параметр...
Чем обоснованы такие цифры не совсем понял? Зачем так далеко заглядывать в тесте на истории?
для статистики 1000 сделок вероятность того что сделка будет внутри статистики 97%
для статистики 100 сделок 90%… т.е каждая 10ая сделка будет загадочным сюрпризом…
это если предположить что процесс нормальный либо эргодический (типа лучший случай)… мне такой подход не нравится поэтому тестю на максимально возможном интервале данных
Это Форекс.
я торгую Фортс.
Форекс начал осваивать месяц назад.
Поэтому ничего сказать не могу.
С Форексом у меня пока ситуация такая: на участке истории графики супер, на тестовом участке — флэт или слив.
(Эмуляция форвардного анализа)
а если появилась гениальная идея, открываю квик и торгую руками, на мелком счете. долго матерюсь неудобству за то стразу понимаю какой робот должен быть. есть прибыль значит можно кодить, нет — думаю новую :-)
а) сразу не видно
б) ведут к потери времени и денег.
Теория графов.
А как иначе? Если затеял стройку нужно знать какие нагрузки выдержит фундамент.