Язык торговых стратегий роботов(LTSR) ч.2

6 мая, 2016

Немного теории

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

События характеризуются своими признаками(параметрами).

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

Заявки содержат информацию о намерениях биржевых игроков.

Сделки содержат информацию об изменении рыночных позиций игроков.

Совершаемые роботом сделки приводят к изменению его позиции.

Введем следующее определения позиции.

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

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

Если в результате наших торговых сделок наша позиция положительная , то она называется Long, если отрицательная — Short, если нулевая — то вне рынка.

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

Таким образом, конечная цель стратегии — увеличение собственного капитала.

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

 

Таким образом, в самом общем случае, нам надо взять на некотором интервале времени совершенные на бирже сделки(выставленные заявки) и путем каких-то, пока не известных нам преобразований над признаками этих событий, вычислить некоторое число (сигнал), которое однозначно указывало бы нам на одно из трех действий — купить, продать, ждать.

Признаки событий

Все события хранятся в истории tHS, которая содержит определение и значения событий. Определение события состоит из описания первичных и вторичных признаков.

Обязательным признаком события является момент (время ) его наступления, либо момент  ожидания его наступления.

Все моменты времени наступления всех событий хранятся в календаре tDT.

Первичными будем называть такие признаки (параметры) событий, значения которых присущи событиям изначально и созданы извне.

Т е это признаки событий, которые даны нам свыше, т е с биржи.

Вторичные признаки — это результат любых функциональных либо интегральных преобразований первичных признаков.

Функциональное преобразование — это создание нового признака с помощью некоторой масштабирующей функции.

Интергальное преобразование — это создание нового признака  путем суммирования функционально преобразуемой временной последовательности первичных признаков.

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

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

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

продолжение следует …

Язык торговых стратегий роботов(LTSR) ч.1

4 мая, 2016

В этой заметке я начинаю сказ о своем языке программирования торговых стратегий роботов- Language of trade strategies robots (LTSR).

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

Универсальные языки, такие как С++,С# содержат много абстракций и предназначены для программирования любых задач. Изучение и применение их на практике является сложным и длительным процессом.

Скриптовые языки, такие как LUA, MT,AFL более просты в изучении.

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

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

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

Но проблема в том, что описание таких действий , как правило , носит умозрительный, субъективный характер.

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

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

Язык, который я разрабатываю ,  направлен на устранение перечисленных выше проблем.

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

 

продолжение следует …