d9e5a92d

Михаил Яковлевич Фитерман - Тренажер для трейдера



Михаил Яковлевич Фитерман - Тренажер для трейдера


Кандидат технических наук, доцент в Санкт-Петербургском государственном Горном институте (СПбГГИ). С 2004г применение математических методов моделирования и автоматического управления в макроэкономике. С 2007г - разработка методов, структуры и алгоритмов систем торговли на рынке Форекс. Для изучения поведения рынка пытаю съ применить теоретический аппарат теории автоматического управления и теории случайных процессов.

Любого трейдера можно считать вечным студентом. Действительно, можно освоить все сегодняшние достижения рыночной торговли и стать хорошим профессионалом, но все равно желательно повышать свой уровень и дальше. И нужно помнить, что торговля на рынке - это не работа, как утверждает реклама, а именно игра. Не случайно есть рыночный термин "стоп игра", но на рынке нет термина "конец работы". На рынке Форекс не работают, а играют, не зарабатывают деньги, а их выигрывают или проигрывают. Торговля на Форекс - это спекуляция, но честная спекуляция, без применения запрещенных приемов. Как и в искусстве, здесь можно показать себя и прославиться, как, например, в телевизионном шоу "кто хочет стать миллионером". Именно поэтому, а не только из-за денежного вознаграждения, трейдинг привлекает к себе все больше людей. Но как научиться трейдингу? Конечно, полезно сначала пройти курс обучения у академиков. Но далее нужно продолжать самому совершенствовать свои навыки. Известно, что в достаточно сложных профессиях, таких как, руководство армиями, управление летательными аппаратами, космическими аппаратами применяют учебу на тренажерах. Тренажер имитирует ваши действия и отклик на них окружающей среды. В наше время торговля на рынке трейдерами производится некоторой торговой системой, в которой многие действия автоматизированы. Но такие системы еще не тянут на звание робота. Да и в плане развития человеческой цивилизации этого не должно произойти. Ведь тогда рыночная торговля потеряет смысл игры и станет рутинным, не интересным занятием. В современной рыночной торговле даже с помощью автоматизированной системы трейдер еще очень даже может улучшить результаты торговли. Это объясняется тем, что рынок, как большое сообщество участников, действующих не согласованно, не подчиняется хорошо формализуемым законам, и нет единой универсальной модели поведения рынка. В ТСП такое поведение называется нестационарным. Поэтому автоматизированная система, построенная на какой-то модели рынка, может быть прибыльной в одних условиях, но убыточной в других. А распознать эти условия пока что может только человеческий интеллект. Но, тем не менее, в наше время торговля без автоматизированной системы, только на основе профессионального чутья рынка, обречена на неудачу. Именно поэтому торговать на рынке сегодня следует с помощью автоматизированной торговой системы. В ТАУ такой режим управления объектом, сочетающий действия автоматизированной системы и обслуживающего ее персонала называется режим советчика. А применительно к рыночной торговле такой режим естественно назвать работой с тренажером.

Сначала рассмотрим общие требования к торговой системе, чтобы она могла служить тренажером. Во-первых, такая система должна строиться и работать по строгому алгоритму и автоматически выполнять все процедуры торговой технологии. Сюда относятся как действия самой системы и трейдера, так и действия обслуживающего его брокера. Блок-схема такой типовой торговой системы была приведена в теме 1 данного учебного курса. Конструктивно тренажер представляет собой файл торговой системы, в котором запрограммированы все расчетные блоки системы в реальном времени. Во-вторых, в тренажере должна быть предусмотрена история системы за достаточно длительный период прошлого. В истории можно посмотреть результаты торговли в любой прошлый момент времени, включая как действия системы, так и отклик на них платформы брокера. В-третьих, должны быть возможны корректирующие действия трейдера в любом месте истории. Здесь имеется в виду изменения не действий системы по ее алгоритму, а изменения варьируемых констант такого алгоритма. Это относится к алгоритму прогноза и частично к алгоритму сделки. В автоматизированной торговой системе часть этих констант, например, период усреднения рыночной цены, может настраиваться автоматически (в блоке настройки системы),

но может и подбираться вручную. Таким образом, автоматизированная торговая система как тренажер позволяет варьировать константы ее алгоритма и ручные действия трейдера в любом месте ее истории. Это накладывает специфические требования к языку программирования торговой системы. Есть множество так называемых языков программирования реального времени. Применительно к алгоритмам рыночной торговли наиболее подходящими языками являются MQL4 и MQL5. Все такие языки реального времени очень экономны в части ресурсов программного обеспечения, но имеют существенный общий недостаток для создания тренажера. Процедуры, запрограммированные этими языками недостаточно наглядны, а для наглядности результатов расчетов приходится специально программировать графики этих вычислительных процедур. Но есть общеизвестное другое средство программирования вычислительных процедур - это язык Excel, который предусмотрен в любом пользовательском компьютере. Я думаю, что любой пользователь компьютера знаком с этим языком. Расчетные файлы на Excel напротив абсолютно наглядны. Единственный недостаток этого языка программирования в том, что все расчетные процедуры занимают место, пропорциональное длине временного интервала расчетов. Таким образом, на Excel нельзя сделать расчетную программу, которая бы производила расчеты сколько угодно реального времени, т. е. могла бы работать бесконечно. Иначе говоря, на Excel невозможно программировать циклические процедуры, повторяющиеся неограниченное время. Это возможно только языками реального времени. Но, к счастью, сегодняшние возможности вычислительных ресурсов и необходимой для этого памяти современных компьютеров вполне перекрывают требуемые ресурсы торговых систем с достаточно большой памятью торговли. Именно по этим соображениям я программирую свои торговые системы на языке Excel. Что же касается программирования процедур, которые должны работать неограниченное время, в Excel предусмотрены программы в реальном времени, которые программно согласованы с вычислительными файлами на Excel. Такие процедуры в Excel называются макросами. В частности, в моих торговых системах применяется макрос "данные" для обновления данных из платформы брокера и макрос "настройка" для автоматической настройки констант алгоритмов.

Что бы продемонстрировать работу файла торговой системы рассмотрим простейшую систему System_34. Эта система была приведена на моем сайте . Файл состоит из нескольких частей, которые называются листами. В System_34 предусмотрено 6 листов:

• "мод EUR". На этом листе запрограммированы основные блоки системы: блок прогноза, блок сделки, блок прибыли.

• "итоги". На этом листе выведены основные показатели торговли за ее историю, такие как "настраиваемые константы", "итоговые результаты", "фиксированные константы", "платформа".

• "данные". Здесь регулярно обновляются входные рыночные данные: котировки EURUSD60, объемы торгов, их дата и время. Здесь же фиксируются открытые сделки (дата, тип и объем сделок).

• "котировки". На этом листе данные из платформы брокера, получаемые в строковом формате (на листе "ввод"), преобразуются в числовой формат Excel. Из листа "котировки" расчетные данные передаются в лист "данные".

• "ввод". На этот лист выводятся данные из платформы в строковом формате данных. Эти данные передаются в лист "котировки".

• граф". На этом листе программируются графики исходных и промежуточных величин файла: котировки, прогнозируемые величины - середина и границы коридора цен, моменты открытия/закрытия сделок.

В файле предусмотрена история торговли на 2000 тайм фреймов (часов). На всех листах время отсчитывается от самого старого момента t=2000, до текущего момента времени t=1. Каждый лист файла - это квадратная таблица. По вертикали отсчитывается время t, а по горизонтали располагаются переменные величины файла. Они указываются в шапке каждой

таблицы. На листе "мод EUR" исходные данные для расчетов (зеленое поле) получаются из листа "данные". Внизу таблицы в строках 2005 - 2012 для всех переменных рассчитываются за всю историю средние значения, стандартные отклонения, количество чисел, минимум и максимум, суммарный доход от сделок, а также гарантированная просадка. По этим данным на листе "итоги" рассчитываются итоговые показатели. Они фиксируются и запоминаются в таблице ниже, с указанием даты, времени и данных из платформы брокера.

Ввод текущих данных из платформы брокера автоматизируется частично. Сначала из платформы с помощью опции "файл -» сохранить как" очередная порция данных автоматически запоминается в файл под названием "EURU SD60" в компьютере. Эту опцию вызывает пользователь. Имя папки для этих данных также выбирает пользователь. У меня это папка "Торговля с GrandCapital", в которой хранится и файл торговой системы System_34. После обновления данных пользователь открывает в окно оба файла: EURUSD60 и System_34. Для передачи данных из файла EURU SD60 в лист "ввод" в файле System_34 пользователь вызывает на выполнение макрос "данные". Этот макрос автоматически преобразует строковый формат данных файла из платформы брокера EURUSD60 в числовой формат Excel и передает их в лист "данные". В результате все данные в System_34 автоматически обновляются и пересчитываются. На этом же листе для удобства дублируются (вручную) дата, тип и объем последней открытой сделки под шапкой "платформа". Затем новые итоговые данные на листе "итоги" можно запомнить в историю в таблице ниже. Для этого массив от строки 4 до строки последних запомненных данных копируется значениями на одну строку ниже (строку 5).

В файле System_34 предусмотрена автоматическая настройка констант алгоритма системы. Эти константы выделены на листе "итоги" зеленым цветом. Настройка производится по максимуму итогового показателя эффективности торговли "месячный % прибыли" методом полного перебора варьируемых констант алгоритма. Этот показатель формируется как отношение суммарной прибыли системы в пересчете на период 1 месяц к сумме гарантированной просадки системы и залога на торговлю. Важно, что этот показатель уже учитывает риск торговли. Риск торговли оптимален, когда указанная сумма не превышает заложенного трейдером депозита. Для сравнения рядом (на одну ячейку выше) выводится отношение месячной прибыли системы к депозиту в процентах. Настройку системы целесообразно периодически повторять, чтобы отслеживать нестационарность рынка.

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

Фитерман Михаил Яковлевич

Кандидат технических наук, доцент СПБГГИ(ТУ) (Горный институт)





Содержание раздела