Постов с тегом "разработка алгоритма": 27

разработка алгоритма


Робот на базе логики кластерного анализа (Market Profile)

История создания мной данного робота начиналась в 2017 году, изначально было понятно, что для работы данного алгоритма придётся  пережимать  огромные массивы тиковых данных. По воле судьбы меня свели с одним программистом который взялся за создание и разработку данного проекта. Написание велось на языке С#. Речь о том, чтобы написать подобный алгоритм ТСлабовскими кубиками отпал после беседы с Родионом из Русалго (кстати учился у него программированию пока он не пропал). Вообщем программист писал на С# для Метатрейдера. О боже Метатрейдер! Написав алгоритм, столкнулись с массой проблем, начиная с того, что в метаке не вышло пережимать тиковые данные в кластера с нужным фреймом, потом затруднения с оптимизацией и перепросчёте за несколько дней, краш репорты при сборе кластеров за несколько месяцев, вообщем всё хреново, инфраструктура не подходила ни Метатрейдеровская ни ТСлабовская, программист положил болт на шкаф и умыл руки. Параллельно с этим я конечно думал, что походу меня кинули и всё он там написал и запустил, но как на самом деле я конечно никогда не узнаю. Вообщем прошло время, вопрос оставался открытым, по скольку сам я нифига ни шарю в программировании да и времени нет уже разбираться, было решено найти компанию которая сможет реализовать данный проект. Поковырявшись в интернете и списавшись с порядка 5ю разработчиками, за проект взялись только двое. Удивил разброс цен на один и тот же объём работ, ИТ услуги конечно это прям бескрайнее поле в этом отношении. Вообщем за проект взялся Юрий Дернов из РОБОКОММЕРЦ. Открытием для меня стал тот факт, что у них вообще своя собственная платформа, то есть разработчик пишет роботов под свой же софт и конечно же знает как он устроен и всё в одной экосистеме.

( Читать дальше )

Супер ускорение расчета индикаторов

Когда-то давно я занимался распознавание образов и использовал такую вещь как интегральное представление изображения. И на самом деле этот же метод применим и в алготрейдинге, например для быстрого расчета SMA, или сбора статистики винрейта за указанный период. 

Например, был ценовой ряд из 6-ти элементов:

1.104, 1.102, 1.105, 1.106, 1.103, 1.101 

Найдем его интегральное представление (начнем с нуля):

0.0, 1.104, 2.206, 3.311, 4.417, 5.52, 6.621

Чему будет равно SMA за последние 3 элемента? Достаточно посчитать разницу: 6.621 - 3.311 и разделить ее на 3.

SMA(3) = (6.621 - 3.311)/3 = 1.103

Убедимся, что SMA(3) найдено верно. 

(1.106 + 1.103 + 1.101)/3 = 1.103

Таким образом можно найти SMA с любым периодом, совершив всего навсего одну операцию вычитания и одну операцию деления. Это позволит гораздо быстрее получить набор значений индикаторов типа SMA, RSI, STD_DEV.
Вроде все хорошо, НО НАДО ПОМНИТЬ, что если использовать тип данных с плавающей точкой, то у нас будет накапливаться ошибка. Поэтому ценовой ряд лучше сначала преобразовать в целочисленный тип. Для этого достаточно для 5-ти значных котировок умножить цену на число 100 000.

В случае с подсчетом винрейта необходимо иметь два ряда, один для удачных сделок, другой для убыточных. Оба ряда преобразуются в интегральное представление, дальше по аналогии находим две суммы за выбранный период, после чего уже можно и винрейт посчитать.




Рисование графиков в С++

Однажды мне нужно было отрисовать пару графиков в консольной программе, написанной на С++. Можно было решить эту проблему двумя способами:
  1. Сохранить график в файле и нарисовать его в экселе или другой софтине, м.б. даже в онлайн рисовалке
  2. Рисовать график прямиком из программы
Первый способ мне не подходил, так как я проводил тестирование алгоритмов, и лишней возней с копированием данных заниматься не хотелось. Второй способ имеет множество решений, но увы я не нашел быстрого решения, чтобы библиотека для рисования не требовала целую кучу зависимостей. Обычно библиотеки для рисования из С++ программы хотят OpenCV или питон с матлабом. Еще как вариант я знаю SFML и ImGUI. Вопрос — нафига столько всего нужно для обычного графика, если по сути нужен OpenGL и все. Решил исправить эту проблему и набросал header-only С++ библиотеку, которая работает в отдельном потоке и способна рисовать графики зависимостей X от Y и тепловые карты. Из зависимостей библиотека требует FreeGLUT.

( Читать дальше )

Разница между HFT на фьючерсах и акциях

    • 04 сентября 2016, 12:06
    • |
    • uralpro
  • Еще

Разница между HFT на фьючерсах и акциях

Статья из блога Jonathan Kinlay, в которой есть очень правильные наблюдения, относящиеся к высокочастотным стратегиям.

 Один талантливый молодой разработчик пришел ко мне с интересной кривой прибыльности высокочастотной стратегии, которую он создал на фьючерсах E-mini (рисунок в заглавии).

Очевидно, что он использовал технику мани менеджмента, так любимую многими разработчиками алгоритмов на фьючерсах. Я предложил ему посмотреть, как будет чувствовать его стратегия при торговле тысячным лотом E-mini, при падении рынка на 20 пунктов. Внутридневная просадка в 100 000$ может сделать такой алгоритм гораздо менее привлекательным. С другой стороны, если вы уже заработали миллионы долларов на стратегии, то можете не особо беспокоиться по этому поводу.

Более важная критика техник мани менеджмента состоит в том, что они обычно очень зависимы от ценового пути. Если вы начали торговать довольно близко к одному из периодов просадки, которые почти незаметны на графике, это может привести к катастрофическим последствиям для вашего торгового счета. Единственный путь избежать этого — это протестировать стратегию сотни и тысячи раз с использованием моделирования Монте-Карло. Такой тест может ясно показать, что риск разорения гораздо выше, чем это следовало из одного бэктеста. 



( Читать дальше )

Простое преимущество в SPY

    • 13 августа 2016, 09:00
    • |
    • uralpro
  • Еще

strat

Статья из блога "Trading with Python" об элементарной стратегии, которая демонстрирует последовательный подход к разработке алгоритмов.

Недавно я прочел пост на сайте turingfinance.com "Как стать квантом".  Вкратце, он описывает научный подход к созданию торговых стратегий. Для меня, наблюдение за данными, обдумывание модели и формирование гипотезы является второй натурой, как это и должно быть для любого хорошего инженера.

В данной статье я собираюсь показать такой подход по шагам, которые нужны для разработки стратегии.

Давайте возьмем наиболее популярный инструмент — S&P 500 ETF «SPY». Начнем с наблюдений.

Обзор данных

Мне кажется, что большую часть времени в СМИ говорят об обрушении рынков (больших потерь в течение нескольких дней), умалчивая о значительном росте, который следует за ними.



( Читать дальше )

Алгоритмический подход к созданию стратегий.Часть 1

    • 10 апреля 2016, 11:58
    • |
    • uralpro
  • Еще

Interview-with-a-Quant-Part-1-980x423

Статья с аггрегатора Quandl Resource Hub.

Quandl взял интервью у старшего менеджера по алгоритмическим стратегиям одного из больших хеджевых фондов. Мы говорили о создании торговых стратегий — от абстрактного представления рынка до конкретного воплощения в стратегию с оригинальной предсказательной способностью.

Можете вы рассказать, как создаются новые торговые стратегии?

Все начинается с гипотезы.Я предполагаю, что может существовать взаимоотношение между двумя инструментами, или появился новый инструмент на рынке, набирающий популярность, или возник необычный макроэкономический фактор, который влияет на микроструктурное поведение цены. Затем я записываю уравнение — или создаю модель, если вам угодно — с целью описания этого взаимоотношения. Обычно это некое уравнение процесса, показывающее изменение переменных во времени, со случайным (статистическим) компонентом.



( Читать дальше )

Помощь в написании робота

Господа, если у кого то есть готовая стратегия, но нет опыта написать для неё алгоритм — робота, готов предложить сотрудничество. Если кому интересно — пишите в личку.

....все тэги
UPDONW
Новый дизайн