Модель данных для разработки торговых стратегий. А. Каленкович

Modiel_dannykh_dlia_razrabotki_torghovykh_stratieghii.jpg

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

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

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

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

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

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

Нет разницы между историческими данными и реалтаймом. Что это значит? Это значит, что если вы, например, решили протестировать вашу торговую систему на дневках. В реальном времени зачастую возникает такая ситуация: Рынок близок к какому-то значению и сигнал, явно, будет. Может, не ждать конца формирования дневного бара, ведь цена может быть хуже текущей? Может, лучше сейчас сделать сделку? Так говорим мы себе. Но многие себе отвечают: нет, нет, я убедился, лучше по торговой системе дождаться закрытия дня.

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

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

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

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

Прикрепленный файлРазмер
Modiel_dannykh_dlia_razrabotki_torghovykh_stratieghii.zip148.1 кб

Основы