Поиск
Профиль волатильности. Есть такой зверь и он не может не есть. Что бы его поймать, мы вернемся к нашей стратегии лимитных заявок. Если вы видели гениальный биржевой график (а они все гениальные, потому что простые), то должны были заметить, что там цена ходит не просто вверх вниз, но и еще направо (на лево не ходит). Это должно было натолкнуть вас на мысль, что в торговле и торговой системе должно присутствовать время. Вход в рынок и выход из него должен происходить с учетом того, сколько времени вы там будите. Когда вы интересуетесь свой зарплатой или зарплатой соседа, вам важно как часто такая зарплата платится. В нашей ТС мы смотрим на стодневную свечу. Это значит, что торгуем мы сто дней и рассчитываем свою зарплату за 100 дней. И если с этим ни кто спорить не будет, вернемся к распределению случайностей. Помните, мы брали сто свечей и строили колокол. Но вот проходит 50 дней, мы откидываем 50 свечей и наш колокол становиться уже. И если наша сигма за сто дней была 10% (отклонение от цены БА +-) то через 50 дней (остается еще 50 дней) наша сигма уже 7,5%, а через 99 дней она будет 1%. Допустим, по нашей ТС с лимитками мы определились работать в рамках одной сигмы. Сто дней 10% делим на 100 ордеров, шаг сетки у нас 0,1%. Проходит 50 дней и шаг сетки 0,75%, а на 99 день 0,01%. Но, если ставить отложки через каждые 100 рублей это куда не шло. А вот через каждый рубель, тут уже очко жим жим. Нам такой скальпинг не нужен. Если цена пройдет больше процента в день? Без отката. И как говорилось выше про очко, а оно не железное, его надо укрепить. Например, вставить бронзовую втулку. И естественной бронзовой втулкой является сетка поширше или пошерее. Но тем самым мы расширяем наш колокол распределения и увеличиваем нашу IV. И тут возникает такой эффект, как горизонтальная волатильность.
В этой статье мы рассмотрим, как правильно работать с историей цен в связке PostgreSQL и Python. Разберём, как хранить цены и ускорить их получение в Python.
Дополнительно приложен блокнот на IPython с исходным кодом и измерениями.
При переходе на Python я был вдохновлен удобством языка и огромным количеством готовых пакетов. Писать было легко и удобно, а работало все быстро. Но всё омрачало катастрофически медленное получение большого массива цен из базы данных (БД) в Python.
В статье показаны примеры для PostgreSQL, но материал будет полезен для любой БД, включая MySQL, при работе в связке с Python.
Мы будем работать с пакетами psycopg2 и numpy.