О моем подходе к созданию роботов

5 ноября, 2013

В основе моего подхода к созданию торговых роботов лежат две основных аксиомы:

1) Алгоритмы работы торговых роботов принципиально отличаются от торговых стратегий, которые использует человек.

 2) Успешно торгующий на бирже трейдер не способен вербально описать свой алгоритм торговли.

 ——————————

Теперь рассмотрим некоторые вопросы,  мой взгяд на которые не совпадает с широко известными из литературы.

————————————

Как известно, первичными на рынке являются параметры сделок , такие как цена, объем и время совершения.

Все остальные преобразования первичных параметров,

такие как свечи и индикаторы ,

сжимают (фильтруют) первичную информацию ,

поэтому эти методы искажают адекватное восприятие рынка.

—————————————

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

—————————————

  НЕМНОГО О СВЕЧАХ

Свой рассказ начну с широко применяемого графического изображения под названием «свеча«.

Свеча — это графическое изображение пяти индикаторов.

При этом множество сделок, совершенных на заданном тайм фрейме, заменяются значением этих индикаторов.

Самое удивительное, что эти индикаторы не имеют точного значения времени их возникновения.

Если обозначить

шаг дискретизации оси времени как T,

номер дискретого отсчета — K

и текущее значение времени -t,

то для К-ой свечи получим следующее определение параметров свечи:

OPEN  — цена  первой сделка, которая произойдет в интервале  (K-1)*T <t<= K*T;

CLOSE — цена последней сделки , которая произойдет в интервале  (K-1)*T <t<= K*T;

HIGH — максимальная цена сделок , в интервале  (K-1)*T <t<= K*T;

           LOW — минимальная цена сделок , в интервале  (K-1)*T <t<= K*T;

          Volume — суммарный объем всех сделок, в интервале  (K-1)*T <t<= K*T;

Причем, все параметры К-ой свечи, кроме OPEN, могут быть вычислены лишь в момент времени t>K*T.

——————————-

Таким образом,

1) При тестировании стратегии мы не можем совершить сделку в моменты времени HIGH, LOW,CLOSE,

так как время этих событий нам не только неизвестно,

но и сами значения мы узнаем лишь после совершения последней сделки свечи.

А когда эта сделка произойдет, мы узнаем лишь в начале следующей свечи.

2) Вместо точного значения первичных параметров множества сделок,

момент и значения которых мы знаем точно,

свеча отображает нам некоторые выборочные значения, момент появления которых нам неизвестен.

       Что же из этого следует?

Следует признать,

что в случае совершения при тестировании сделок по параметрам свечи в моменты времени раньше начала следующей свечи,

мы искажаем историю,

так как наши сделки будут совершены до момента ,

когда мы будем знать параметры свечи по которым совершим сделку.

    Насколько важно соблюдения правила совершения сделки на следующей свече?

Есть такое научное понятие «Эффект бабочки«.

ВикиПеди:  Эффект бабочки — термин в естественных науках,

обозначающий свойство некоторых хаотичных систем:

незначительное влияние на систему может иметь большие и непредсказуемые последствия где-нибудь в другом месте и в другое время.

Детерминированно-хаотические системы чувствительны к малым воздействиям.

В хаотическом мире трудно предсказать, какие вариации возникнут в данное время и в данном месте,

ошибки и неопределённость нарастают экспоненциально с течением времени.  

Эдвард Лоренц  (1917—2008) назвал это явление «эффектом бабочки»:

бабочка, взмахивающая крыльями в Айове,  может вызвать лавину эффектов,

которые могут достигнуть высшей точки в дождливый сезон в Индонезии

(«эффект бабочки» вызывает и аллюзию  к рассказу 1952 года Р. Брэдбери «И грянул гром»,

где гибель бабочки в далёком прошлом изменяет мир очень далекого будущего.у).

«Небольшие различия в начальных условиях рождают огромные различия в конечном явлении…

Предсказание становится невозможным»( А.Пуанкаре по: Хорган, 2001).

———————————-

Так вот, я считаю, что совершение подобных  сделок — вызывает «Эффект бабочки»

и искажает исследуемую историю так, что получаемые результаты не обладают предсказывающим свойством.  

————————————-

На этом я заканчиваю первую часть своей заметки, в следующей я попробую осветить вопрос «Стоп-заявки и их место в торговых роботах»

 ——————————

«Многие вещи нам непонятны не потому,

что наши понятия слабы;

но потому, что сии вещи не входят в круг наших понятий.»

CUDA — инструмент для торговых роботов

30 октября, 2013

    Сегодня, графические процессоры( GPU ) значительно быстрее, чем центральные процессоры (CPU) компьютеров, и эта ситуация не изменится в ближайшие годы.

Более того, разрыв между GPU и CPU продолжает увеличиваться, как это было на протяжении последних  лет.

Что можно сделать со всем этим резервном мощности?
Крупные игроки рынка, как известно, раньше всех воспользовались графическими процессорами для выполнения Near-Time тяжелого анализа рисков, ранее доступного только на ежедневной основе.

На данный момент ведутся работы по ценообразованию опционов, анализу рисков и алгоритмической торговле с использованием CUDA. Результаты этих работ впечатляют.

Bloomberg, со штаб-квартирой в Нью-Йорке с офисами по всему миру, является одним из ведущих финансовых организаций услуг. Одина из его услуг — моделирование рисков и определения цены CMO / CDO корзин для своих клиентов.

Компания использует мощный алгоритм для вычисления больших объемов данных и предоставления информации о ценах на основе моделирования.

При использование обычных процессоров, эти расчеты заняли бы 16 часов, что неприемлемо.

Блумберг внедрили  вычеслительную систему GPU NVIDIA Tesla в своем центре обработки данных и  CMO / CDO приложения для запуска на архитектуре CUDA.

Результаты не заставили себя ждать.

Большие расчеты, которые затянулись на часы в CPU-кластере, теперь выполняются за считанные минуты; а небольшие вычисления, которые выполнялись ранее за  20 минут, теперь выполняются за несколько секунд.

new-1

 

 

 

 

 

 

 

 

Основные приложения в сфере вычислительных финансов на базе CUDA

НППО ОПИСАНИЕ
Murex Анализ рисков (MACS)
MATLAB® Математика параллельных данных(MATLAB PCT, MDCS)
Quantifi Solutions Портфельный риск, (Quantifi Risk),кредитный риск(Quantifi Counterparty Risk)
Numerical Algorithms Group Генератор случайных чисел
Wolfram Mathematica Анализ символьных вычислений(Mathematica)
Streambase Обработка сложных событий(StreamBase CEP Engine)
Risk Management Solutions Анализ страхования от несчастных случаев
Hanweck Associates Ценообразование опционов(Volera)
SciComp, Inc Ценообразование деривативов(SciFinance)
Xcelerit Набор разработчика на GPU для C++,предназначенный для метода Монте-Карлои других численных методов.
Arrayfire Библиотека функций GPUдля C, C++, FORTRAN

Заявленные клиенты в финансовом секторе

  • Проект JP Morgan Chase «Использование GPU для расчета рисков» признан инновационным в области банковских технологий
  • PathWise от Aon Benfield использует преимущества работы с GPU в Standard Life
  • Bloomberg использует GPU для ускорения расчета цен на облигации
  • BNP Paribas использует Tesla GPU для вычисления ценовых производных инструментов

 

ПО по вычислительным финансам для CUDA

  • CUDA SDK содержит примеры кодов для генераторов случайных чисел и моделей ценообразования опционов и дериватов по методам Монте-Карло, Блэка-Шоулза и биноминальному методу с помощью SciFinance
  • Программирование на CUDA в Mathematica
  • Код геренатора псевдослучайных чисел Вихря Мерсенна от авторов MT
  • Подсистема оценки опциона в режиме реального времени от Hanweck
  • 3D визуализация рыночных данных от Aqumin
  • Анализ рисков с помощью CUDA от Exegy Ticker Plant
  • Модель рынка LIBOR, метод Монте-Карло
  • Level 3 Finance
  • Библиотека PricingCatalyst по ценообразованию и хеджированию от QuantCatalyst
  • Ускоренные торговые решения от OnEye (Австралия)
  • Arbitragis Trading
  • Поддержка GPU вычислений в программе для статистических расчетов R
  • Ускорение MATLAB