Главная » Дом » Семейный бюджет и инвестирование » Статьи про инвестирование » Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы
Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы
Самое главное отличие – это то, что моей системой может воспользоваться не только профессиональный программист, а любой желающий, с какой-то степенью владения английским языком. Он САМ может составить все запросы, произвести все вычисления легко и просто. При этом ему не нужно ждать помощи, не нужно звать более квалифицированного пользователя, не нужно никого просить, а все созданные им запросы будут ему понятны, т.е. его никто нигде не обманет, пусть даже ненароком.
Под свободным манипулированием данными я подразумеваю ситуацию когда у вас нет ограничений на то какие, данные, из каких источников и в какие временные отсчеты вам доступны.
Например мы говорим об общепринятых биржевых данных – биржевые сделки скомпрессированы за какой-то определенный период – «дневки», «часовки», «пятиминутки». Обычно, при работе с такими данными, вы знаете параметры бара только на тот момент, когда этот бар был закрыт. Однако, в реальном времени, когда вы работаете, вы видите формирующийся бар, вот уже возникает противоречие: вы реально работаете (принимаете торговые решения) в абсолютном, в текущем времени, а когда вы исследуете историю, вы видите данные только в определенные моменты времени (временные отсчеты).
Система, которую я представляю, позволяет стирать грань между историческими данными и данными в реальном времени. Вы задаете таймстемп (временной отсчет), который вас интересует, и получаете те данные, а также те вычисленные агрегаты на выбранный момент времени, как если бы вы делали свои вычисления в реальном времени в тот самый исторический момент. При этом «Модель Данных В Абсолютном Времени» гарантирует вам непротиворечивость вычислений.
|
Оперируя в абсолютном времени мы можем строить агрегаты включающие в себя различные инструменты с различных торговых площадок, с различными периодами дискретизации и вычислять непротиворечивым образом любые агрегаты в том числе в любой исторический момент, что позволит исследовать и, как следствие использовать более тонко, поведение торговой системы в реальном времени, а не в отдельные избранные моменты |
Чем хорош такой подход?
Можно смешивать данные из разных источников (бирж с разными сессиями, разных инструментов и вычисляемых агрегатов), с различными параметрами в той или иной мере определяющих периодизацию данных.
Я не знаю точно, что позволяет 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
Модель данных для разработки торговых стратегий. Новый подход – вычисления в абсолютном времени: новые возможности и перспективы, торговля, форекс, система, цена, Алексей Каленкович, диапазон
- Учимся считать риски и доход12.01.2016 3056
- Как создать для себя идеальную инвестиционную стратегию27.08.2009 3058
- Последний рубеж11.08.2009 3057
- Самостоятельное инвестирование11.08.2009 3058
Добавить комментарий через сайт
Добавить комментарий через Facebook