Прочитал пост
smart-lab.ru/blog/121566.php, жизненно, решил тоже поделиться.
Торгую ботом около 2.5 лет большой пакет стратегий на RI и GZ таймфреймы 5, 15, 60. Бот в виде Quik + самописная программа + MySQL. Поскольку это требует скромных ресурсов, то все отлично работает на виртуальном сервере (покупаю за 400р/мес). Скорости от бота не требуется. Алгоритм отлажен так чтобы не требовать контроля.
Сумма сейчас 3 ляма из них 1.5 честнозаработанных. За первые 1.5 года напилил больше 100%. Затем, где-то в мае прошлого года рынок испортился и эквити ушла в горизонталь. Сейчас есть позывы к нормализации рынка, но лето может все испортить. С другой стороны есть новые данные с рынка и на них уже готовы новые стратегии, которые не плохо работали бы если бы да кабы. Будем посмотреть.
Стратегии непосредственно руками не разрабатываю, использую самописный тестер на исторических данных и генетический алгоритм для поиска стратегий. Оптимизатор выбирает несколько правил из набора доступных, а также подбирает параметры каждого правила. Набор доступных правил кодирую сам по мотивам всяких статей и собственным соображениям. Сигналы на вход и выход есть комбинация правил. Плюс также есть варианты выхода по времени и Stop Loss, параметры эти и еще более другие подбираются алгоритмом. В общем руками стратегии не ковыряю, смотрю только эквити из тестера. Иногда смотрю какие правила и какие парамеры используются. Оптимизирую на старых данных, кусок самых свежих использую для отбраковки переоптимизированных. Естественнос стремлюсь уменшать число параметров, так что в последнее время ограничиваюсь двумя правилами, что дает информационную емкость перебираемого пространства 30-40 бит.
Тестер написан так чтобы работать максимально быстро, может быть где-то в ущерб точности. Зато прошел проверку сравнением с реалом, так что доверяю. Одна оптимизация занимает 10-30 часов (генетика требует очень много прогонок). На доступных оптимизаторах наверное результата не дождался бы, но у них и задачи другие.
В процессе оптимизации смотрю эквити лучших стратегий, а также выборочно не самых лучших. Все равно из-за эффекта подгонки максимизация на первой выборке не есть самоцель. Те стратегии, что хорошо себя ведут на основном и проверочном участке откладываю. Накопил уже наверное несколько сотен стратегий. По мере поступления новых данных с рынка смотрю на их поведение и тут самое важное смотреть как торгует на совсем свежих данных. Понравившимся доверяю бабло. Фактически получается 3 набора данных: для оптимизации, для отбора после оптимизации и последний перед принятием решения. По простой логике вроде 2 участка это достаточно: на первом крутая подгонка, а на втором вроде как влияния подгонки нет. Но как-то поймал себя на мысли, что отбор из нескольких вариантов по результатам разглядывания эквити это тоже оптимизация! Ну может и слабенькая, но есть, и от нее не скрыться. Демон подгонки хитер и изворотлив, надо бдить.
Вот в кратце и все.
ЗЫ: для тех кто хочет почитать на тему, советую «Энциклопедию торговых стратегий»
Но! Если нужно реализовать минимальную задержку (мне пока не надо), лучше читать по DDE. Есть код на дельфи который робастно делает такое чтение, опробовал его, но еще не обкатал в работе за ненадобностью.
forex-profi.com/book/221-d-kac-d-makkormik-enciklopediya-torgovyh-strategiy.html
Сам люблю алгоритмическую торговлю. Ни какого влияния эмоций на трейдинг, правда пока использую режим торгового советника — программа дает рекомендации, а сделку осуществляю сам.
Парочку правил можно в студию? :)
Серьезно пробовал для Forex несколько лет назад. Ничего хорошего не получилось. Подгонка. Хорошо не торговал, просто посмотел на свежих данных. С тех пор правда копилка правил подросла и еще кое-какие улучшения, может еще попробую. С Forex мне кажется проблема в том что цена резко двигается а потом флет. На резких движениях спреды обычно раздвигают и нет уверенности что все это можно адекватно смоделировать.
Есть которые не плохо торгуют время большее, чем на котором они тестировались и проверялись. Вот пример эквити стратегии для RI и GZ одновременно i051.radikal.ru/1305/21/1978c8ea3e91.gif. Хотя и они в последнее время дают пологую эквити на нашем болоте. Из наблюдений вижу рынок с 2008г. заметно поменялся.
Черная верхняя это сумма двух нижних — для RI и GZ
Сам пока не использую БД, внутри алгоритма достаточно
массивов, а статистику собираю в текстовики.
Определённые неудобства есть, плэтому рассматриваю
комбинацию C#+Postgree. Но у меня вопрос по потенциальной
производительности такой комбинации, если БД уходит за гиг.
Трейдилка же использует БД весьма слабо, хотя таблиц в схеме штук 20. При старте программы она все что надо грузит из таблиц в память, строит индексы в памяти и дальше БД особо не требуется. Обработка данных делается в памяти без SQL по принципу «курсорных циклов». Где надо данные проиндексированы. Компоненты MIDAS в Delphi позволяют это делать без специальных усилий и мне кажется в целом получилось отличное решение. Время от времени накопленные изменения сбрасываются в БД, но если БД не доступна, то сбросятся позже. Единственное место требующее живой БД это связка с квиком по ODBC, но когда ни будь переделаю ее на DDE.
Сейчас есть отличная вещь — sqlite, возможно вам подойдет.
«трейдилка» работает быстро и нагружать её не вижу смысла,
скорее ещё бы много повыкидывал. Но при этом сделать 2-х
компонентную систему: «трейдилка»+«анализатор».
И вот «анализатор» я бы нагрузил.
чтобы можно было ручками повертеть историю, посмотреть,
но чтобы параллельно он делал обсчёт и выдавал «разжёванную»
статистику в «трейдилку». Что-то вроде терминала,
но с моими индикаторами.
тебе подходит иногда по времени столько же, сколько
создать своё. Пока не вижу решения под свои наработки.
Хочу с домашней машины робота на удаленный сервер посадить. Спасибо.
vpsnow.ru/#plans
ровно 10 евро, выгоднее платить WME
www.burstnet.eu/winvps.shtml
тут вроде как дешевле, но еще возьмут НДС и еще чего-то там. Но все равно чуть выгоднее.
Бридинг — от англ «to breed», у генетиков дословно подразумевается как разведение/производство поколений. Продукт генетического алгоритма — продукт бридинга. )
когда-то найденные стратегии снова не оптимизирую (если об этом), просто ищу новые стратегии с учетом более новых данных. Ведь структура стратегии это тоже вполне себе параметр, значит не логично его фиксировать, а остальные параметры пересматривать. Заново начинаю гонять оптимизацию как правило после того как сделаю какие-то доработки или появится идея какие настройки поменять. Тогда гоняю чтобы оценить влияние изменений.
По поводу бриндинга: что имелось в виду под параметрами бриндинга и как они связаны с фитнес-функцией? В вопросе явно прозвучала связь, но уловить смысл не могу.
Фантастика! Блестящая идея!