Главная » Дом » Семейный бюджет и инвестирование » Статьи про инвестирование » Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы

Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы

Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы

Самое главное отличие – это то, что моей системой может воспользоваться не только профессиональный программист, а любой желающий, с какой-то степенью владения английским языком. Он САМ может составить все запросы, произвести все вычисления легко и просто. При этом ему не нужно ждать помощи, не нужно звать более квалифицированного пользователя, не нужно никого просить, а все созданные им запросы будут ему понятны, т.е. его никто нигде не обманет, пусть даже ненароком.

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

Например мы говорим об общепринятых биржевых  данных  – биржевые сделки скомпрессированы за какой-то определенный период – «дневки», «часовки», «пятиминутки». Обычно, при работе с такими данными, вы знаете параметры бара только на тот момент, когда этот бар был закрыт. Однако, в реальном времени, когда вы работаете, вы видите формирующийся бар, вот уже возникает противоречие: вы реально работаете (принимаете торговые решения) в абсолютном, в текущем времени, а когда вы исследуете историю, вы видите данные только в определенные моменты времени (временные отсчеты).

Система, которую я представляю, позволяет стирать грань между историческими данными и данными в реальном времени. Вы задаете таймстемп (временной отсчет), который вас интересует, и получаете те данные, а также те вычисленные агрегаты на выбранный момент времени, как если бы вы делали свои вычисления в реальном времени в тот самый исторический момент. При этом «Модель Данных В Абсолютном Времени» гарантирует вам непротиворечивость вычислений.

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

 

Чем хорош такой подход?

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

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

Реплика из зала: Все это можно легко осуществить!

Не знаю, как это модно сделать, потому что когда я читал описание Easy Language, я не увидел даже намека на это дело. Может быть, вы мне потом расскажете, как это сделать. Хорошо, эта проблема снимается.

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

Нет разницы между историческими данными и реалтаймом. Что это значит? Это значит, что если вы, например, решили протестировать вашу торговую систему на дневках. В реальном времени зачастую возникает такая ситуация: Рынок близок к какому-то значению и сигнал, явно, будет. Может, не ждать конца формирования дневного бара, ведь цена может быть хуже текущей? Может, лучше сейчас сделать сделку? Так говорим мы себе. Но многие себе отвечают: нет, нет, я убедился, лучше по торговой системе дождаться закрытия дня. И на следующий день на открытии будете делать все, что запланировано. Но можно протестировать как обычно, на ценовой истории: можно лит принять решение раньше закрытия бара? Ведь можно опередить события. Если вам это нужно, то можно запустить тестирование более детальное, - систему, разработанную по дням (на дневных барах), протестировать по часам или по пятиминуткам. Вычисляя ваши сигналы именно такими, какими они были в промежуточных значениях времени. Рассмотрим иллюстрацию .Например 1998 год,. Есть Ваша МТС. Блок тестирования  задает время (например 1998-10-3-18:1305), модель данных рассчитывает вам состояние вашей торговой системы, транзакции, сигналы и т.п. которые возвращаются в блок тестирования и т.д.

При необходимости можно учитывать невозможность одномоментных событий. Например, информация с биржевого терминала попала в вашу систему анализа только через несколько секунд, далее вы выставили ордер еще через несколько секунд, таким образом можно вводить не очень негибкий параметр тестирования МТС как «проскальзывание» а задержку во времени выставления ордера, что более реально. Например на 10 секунд. Вы уходите от проблемы совершения сделок на закрытиях/открытиях, которые всегда сомнительны.

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

 

Далее. У вас может быть такая ситуация, как противоречивые сигналы. У вас есть какие-то параметры вашей торговой системы и при некоторых  параметрах ( например небольших стоп-лоссах и тек-профитах)  МТС делает на одном баре много сигналов, в том числе противоречивых (на открытие и закрытие позиций). Как следствие   приходится увеличивать параметры, выходить из интересующего вас диапазона параметров.

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

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

Можно использовать параметры торговой системы, которые приводят к противоречивым сигналам исполнения. Например, сигнал на покупку и на продажу на одном «классическом» баре, при  этом можно будет посчитать все случаи сигналов, а не констатировать тот факт, что они были.

 

 

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

Естественность взаимодействия

Желание принять торговое решение раньше периода закрытия очередного бара – можно оттестировать такого рода «оптимизацию».

 

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

Реализация МД “B+.Analysis”

 

Все, что нужно, это источник тиковых данных и  один из способов передачи информации. Например по DDE. Эта возможность реализована первой, потому что большинство программ умеют работать с ДДЕ. Может быть легко реализован какой-то другой механизм передачи данных – API-интерфейс, ODBS.

Настоящая Модель Данных реализована на объектном языке SmallTalk. Производительность труда при написании программ на объектном языке как правило выше, чем на процедурном, поэтому я предлагаю этот язык всем пользователям Модели Данных. Людям далеким от программирования  освоить скриптовый объектный язык значительно проще, чем Delphi или Си++.

 

Модель Данных предлагает эффективные вычисления. Если вы исследовали МТС на дневках, то данных было не много, так как дневок примерно 250 рабочих дней в году. А если вы хотите посмотреть историю с 1998 года на 5-минутных данных, то это будет значительный объем информации, но в нашей Модели Данных  это будет достаточно просто, вы будете получать интересующие вас данные как в реалтайме в тот момент, когда они вам нужны. Кроме того, вы можете проводить какие-то вычисления - складывать, умножать, интегрировать, производить объемные вычисления и все это не вызовет каких-либо сложностей или проблем. Все это очень эффективно реализовано, потому что все промежуточные вычисления кэшируются в памяти и каждое вычисление индексируется уникальным ключом, поэтому, если когда-то возникали аналогичные вычисления в другом блоке, то они уже будет подсчитаны и сохранены. Например, если у вас идет оптимизация системы, и меняются лишь некоторые параметры, то вычисления для стабильных параметров не будут каждый раз пересчитываться, т.к. они сохранены в памяти. Будут пересчитываться значения только зависящие от меняющихся параметров.

Схема использования Модели Данных

 

Одной из особенностей системы является то, что в базе данных вы можете хранить не только биржевую информацию, но и свою собственную, например, информацию по бумагам в вашем портфеле – блок «Небольшие Базы данных в формате XML». И вы можете проводить какие-то расчетные операции не только между этими данными, но и с биржевыми данными. Ваши собственные данные работают в этой же моделе. Реализован единый подход к данным. Вы можете пользоваться биржевыми данными из внешнего источника, а свои данные хранить у себя на диске, например для поддержания приватности ваших данных. Модель Данных представляет все данные и ваши и внешние в едином виде, в единой форме.

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


Пример работы моей программы на РАО ЕЭС - «часовка».

 

К вопросу о возможных любых периодах. Пример двухдневного периода для РАО ЕЭС.

Здесь же можно вычислить веса, коэффициенты, задать любые периоды.

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

Формула написана на предлагаемом скриптовом языке и вполне прозрачна для понимания даже без комментариев: определяются два параметра base- базовый актив и per – целочисленный параметр.

«(base high highest:per) roundTo: 0.1».   - base  в данном случае часовки  РАО ЕЭС, per – равно 5 (см. на графике )

данный индикатор округляет наивысшее за 5 баров значения high  до 0.1 (10 копеек).

 

Сейчас накопление данных происходит из Quik. Вся информация по фондовой секции ММВБ. Исторические данные с 1998 года скачивались отдельно. Тиковые данные хранятся на SQL-сервере.

На данный момент система есть, модель данных работает, индикаторы есть, интерфейс есть. Далее я собираюсь сделать некую обвязку для тестирования торговых систем. По сути, она у меня уже есть, первая реализация была еще 1996 году, которая позволяла эмулировать торговлю с возможностью оптимизации до 20 параметров.

В настоящее время мы исследуем варианты применения и дальнейшего развития системы

 

 

Вопрос:

Все-таки, чем отличается Модель Данных от обычной SQL-базы? В чем отличие Ваших данных от обычной тиковой базы данных?

Ответ:

От тиковых баз данных отличий нет.

 

 

Вы бары пришиваете к абсолютному  времени или к фиксированному, т.е. «часовки» привязаны у вас к 14:00, 15:00 и т.д. или «часовки» привязаны к хвосту данных?

Обратимся к скрину из программы. Здесь стоит дата 26.09.2003 17:11:16. В это время была вот такая цена, вот такой бар. Так же, как и в любой другой торговой системе. Вы можете задать историю на любой момент времени с точностью до секунд и получите ситуацию именно такую, какой она была в тот момент.

 

 

Т.е. Вы привязываетесь к абсолютному времени?

Да.

 

 

Как сказал смешной и великий Ремарк, - думаю, эти слова помогут нам быстрее понять друг друга, - «Надо смотреть в обратную сторону». Начало координат временной оси было последний момент времени. И дальше рождается идея, очень простая,  - время идет влево и Вы начинаете выстраивать бар от этого момента времени и у Вас не бывает ситуаций, когда бар не закрыт, он все время закрыт.

А зачем? Но если Вам будет нужно, я Вам это сделаю.

 

 

Я понимаю.

Почему Вас тогда не устраивает TradeStation?

Как я уже говорил, не устраивает именно тем, что на меня накладывают сильные ограничения по тому, с какими данными и как я могу работать. Может быть, конечно, кому-то моя система и напоминает TradeStation.

И все-таки, в чем же основное отличие Вашей Модели Данных от TradeStation и ей подобных?

Самое главное отличие – это то, что моей системой может воспользоваться не только профессиональный программист, а любой желающий, с какой-то степенью владения английским языком. Он САМ может составить все запросы, произвести все вычисления легко и просто. При этом ему не нужно ждать помощи, не нужно звать более квалифицированного пользователя, не нужно никого просить, а все созданные им запросы будут ему понятны, т.е. его никто нигде не обманет, пусть даже ненароком. Задача Модели Данных – избавить пользователя от ошибок. Здесь все просто и понятно. Пользователю просто нужно знать, что он хочет, а реализовать это задача Модели Данных. В любой момент времени он может изменить параметры и характеристики. Причем, для всех данных, будь то данные из Quik или его собственные, накопленные, скажем, в Excel, все эти данные можно представить в ЕДИНОМ виде, произвести операции в единОМ стандарте, смешать данные с разных площадок, с разным временем.

Модель Данных помогает избавиться от такой проблемы, как проскальзывание, т.к. здесь реализована функция задержки по времени.

С удовольствием разместим Ваши статьи и материалы с указанием авторства. Ждем их на почту Late-maestro@ukr.net

Обсудить «Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы» на Форуме

Алексей Каленкович
15.05.2009  3056 Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы, торговля, форекс, система, цена, Алексей Каленкович, диапазон

Система Orphus
Прокомментируете?

Добавить комментарий через сайт

Введите сумму чисел с картинки

родители, дети, Киев

Добавить комментарий через Facebook