Всем привет!
Некоторое время назад я активно занимался HFT, но по ряду причин был вынужден сменить класс активно развиваемых стратегий. Всвязи с этим решил формализовать и опубликовать подход, на основе которого я разрабатывал стратегии, неплохо работавшие на российских рынках.
Предлагаемая к обсуждению статья расчитана, как минимум, на опытных трейдеров с хорошим знанием математики:
https://dl.dropboxusercontent.com/u/79808150/impact-limits.pdf
upd: Пример кода, осуществляющего оптимальную расстановку ордеров в стакане:
dl.dropboxusercontent.com/u/79808150/proto-opt-place.cpp
p.s. Это мой первый пост на Smart-Lab'е
В статье профиль стакана задается функциями {q+(t;p);q-(t;p)}, см. часть 1.1. В коде используется лишь одна сторона стакана, которая инициализируется в начале функции main() и хранится в структуре типа t_ob.
Если убрать все биды и аски — в некоторых случаях будет проблематично использовать модель. Тем не менее, даже в случае пустого стакана или отсутствия одной из его сторон можно что-нибудь придумать.
До конца не разобрался еще с ->score и ->ord_sim, возможно в них ответ.
Переписал пример на перле, мне так проще разбираться, чем c++, хоть ваш код и очень хорошо написан: gist.github.com/anonymous/6790771
Если роботов с подобным алгоритмом в стакане больше одного — скорее всего оба будут работать в ноль.
Управление позицией — это отдельный элемент стратегии. Тестируйте разные варианты и выбирайте лучший.
Стопы в этом алгоритме не предусмотрены, опять же — это отдельный элемент стратегии, который нужно тестировать.