Блог

Алготрейдинг

17 Мая 2017
Оптимизация расчета средних

При разработке торговых алгоритмов и индикаторов, например таких как Simple Moving Average или SMA, зачастую требуется выполнить расчет среднего значения некоторого показателя, например цены, за некоторый период времени. При этом количество значений, которые участвуют в расчете, может варьироваться от нескольких единиц до нескольких сотен или даже тысяч.

Читать далее

3 Мая 2017
boost::circular_buffer как более быстрый контейнер для входных данных

У любой торговой платформы существует потребность в специальных структурах, позволяющих хранить оперативно поступающие данные в определенной последовательности. По сути, это очереди FIFO (first in, first out) с заранее определенным размером и доступом по индексу. По мере поступления новых данных они записываются в конец очереди, а если очередь уже заполнена, старые данные удаляются. Такие очереди, например, используются для хранения временных баров, данных для индикаторов, графиков и т.д.

В настоящее время в нашей торговой платформе QuantPro Studio для этих целей используется std::deque, имеющий всю необходимую функциональность — запись в начало или в конец, доступ по индексу, последовательная итерация. Для возможности контроля наполнения очереди до заданного предела мы реализовали свой класс-обертку, который в общем виде выглядит примерно так (большинство методов опущены для краткости):

Читать далее

27 Мар 2017
Переход с boost::unordered_map и boost::unordered_set на std::unordered_map и std::unordered_set

С того времени, как мы перешли на Visual C++ 2015, прошло больше года. До сих пор мы использовали  boost::unordered_map и boost::unordered_set, и они себя вполне хорошо зарекомендовали. Однако, наконец-то, дошли руки протестировать их реализацию из стандартной библиотеки нового компилятора.

Читать далее

Профессиональный трейдинг с QuantPro

Оптимальное соотношение между доходностью и риском