Избранное трейдера Reznor
Существует ошибочное мнение, что трендовые системы зарабатывают на движениях. Это не совсем точное выражение. На движениях меньше нескольких волатильностей реального таймфрейма (что это такое «реальный таймфрейм системы» – чуть ниже) трендовые системы как раз и не забатывают, а либо в нуле, либо в минусе, размер которого грамотная трендовая система и призвана ограничивать.
Что такое реальный таймфрейм для любой системы, не только трендовой? Это время в 2-3 раза меньше среднего времени в позиции. Для простейших систем «вошел-вышел» реальный таймфрейм вычисляется легко, для систем с пирамидингом и(или) усреднением – чуть сложнее, но это тоже возможно.
Что такое волатильность таймфрейма? Это стандартное отклонение приращения цены в %. Точное значение мы его не знаем, но можем оценить через выборочное стандартное отклонение с некоторым «окном». Выбор «окна» расчета – это тоже интересный вопрос. Маленькое «окно» — большая ошибка, большое «окно» — увидим изменения в реальной волатильности с большой задержкой. Надо искать «золотую середину», например, использовать два «окна» или другие «танцы с бубнами».
– Привет! В предыдущий раз, ты рассказывал про дата-сервис, про отдельный слой доступа к данным. Расскажи теперь про сами сущности и репозитории. При помощь чего ты вытягиваешь данные из таблиц?
– Ок. Если необходимо сохранять сделки и статистику, или откуда-то брать исторические котировки для тестов, то неплохо использовать БД. Но, как с ней общаться? Есть несколько способов. В C#, есть например традиционный ADO.NET, но речь пойдёт не о нём. В прошлый раз мы отделили работу с БД от бизнес-логики, это уже очень здорово, но можно пойти дальше! Есть способ общаться с самой БД на достаточно абстрактном уровне, инкапсулируя детали формирования самих запросов. Такой способ лучше вписывается в концепцию объектно-ориентированного проектирования, и называется он ORM (object relation mapping).
– Хм, я что-то слышал про ORM. У меня сложилось неоднозначное ощущение, вроде, есть целое сообщество, кто против них (OrmHate), и считает это антипаттерном. Все эти дополнительные уровни абстракции, и вообще, они наверно дико тормозные?
Перевод статьи из блога tr8dr, кое-что из основ для HFT торговли.
Алгоритмы высокочастотной торговли можно разделить на следующие категории:
1. Различные формы маркет мэйкинга (вероятно самый большой процент)
2. Заработок на действиях других участников рынка или на микроструктуре рынка
3. Краткосрочный арбитраж
4. Алгоритмы исполнения больших заявок
Также среднесрочные стратегии подразделяются на:
1. Следование за трендом (если есть достаточно сильный импульс)
2. Следование за циклами (продажа/покупка в точках разворота высокоамплитудных ценовых циклов)
3. Долгосрочный арбитраж
Если сфокусироваться на алгоритмах маркет мэйкинга и следования тренду/циклам, то понимание ценового режима и ценовой функции очень важно.
Режим
Мы должны определять текущий ценовой режим для того, чтобы понимать, где мы можем применять стратегию маркет мэйкинга, а где следование тренду или циклам.