Моё первое техническое задание

Моё первое техническое задание
До того, как я начал изучать программирование, я пользовался готовыми программными решениями для разработки и тестирования торговых стратегий. Но по мере того, как мой опыт увеличивался, росли и запросы. Мне уже не хватало возможностей программ для тестов, которые вроде и предназначены для этого. Поэтому в какой-то момент я всё же решился написать техническое задание для программиста. Описать свою систему, кстати, просто даже полезно для самого себя. Я был удивлён, когда закончил, как много всего нужно было держать в голове. А некоторые моменты ведь могут и затереться в памяти спустя какое-то время. Когда есть полное описание системы можно в любой момент освежить память.

В итоге задание оказалось довольно сложным. Хоть я и выбрал для сотрудничества профессионалов, ничего не вышло. В какой-то момент возникло недопонимание и нам пришлось мирно разойтись. До этих событий я делал несколько попыток начать изучать программирование, но всегда мой мозг начинал "скрипеть" и я бросал это дело. Позже я понял почему это происходило. У меня не было чёткого представления того, что мне нужно сделать. Это ещё одна причина, почему полезно всё документировать.

Теперь, когда все основные сложности позади, я решил посмотреть, что я тогда написал. Какое было моё первое техническое задание? Конечно же сейчас я написал бы всё по другому. :) Я не стал вносить исправления под моё текущее понимание, как всё должно и может быть. Тем не менее я остался при мнении, что представленные методы для многих окажутся нужными и полезными. К тому же подобный подход может сделать Вашу торговлю прибыльной и более устойчивой. К этой статье стоит относится, как к шаблону технического задания для автоматизированной торговой системы.

***

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

Основная схема торговой системы

Далее каждая функция этого механизма будет рассмотрена подробно.


Автоматическое форвард-тестирование и авто-оптимизация торговых стратегий во время торговли. 

Так как форвард-тестирование подразумевает множество тестов, то, в общем, весь процесс может занять слишком много времени. Поэтому должны быть такие возможности, как выбор длительности оптимизации и отключение этой функции, что переводит оптимизацию в полный режим, если ресурсы позволяют сделать это быстро (по умолчанию на один тест выставлено 5 минут). Как в режиме реальной торговли, так и в режиме тестирования оптимизация производится автоматически после истечения указанного временного периода. То есть должна быть такая возможность, как выбор периодов по длительности для оптимизации/торговли (optimization/trading) в неделях/месяцах/годах. Заранее уже определены готовые шаблоны выборок для форвард-тестирования и торговли на выбор:

  • - W8 & W2 – восемь недель под оптимизацию и две недели под тест/торговлю.
  • - MN4 & MN1 – четыре месяца под оптимизацию и один месяц под тест/торговлю.
  • - MN8 & MN2 – восемь месяцев под оптимизацию и два месяца под тест/торговлю.
  • - Y1 & MN4 – один год под оптимизацию и четыре месяца под тест/торговлю.
  • - Y2 & MN6 – два года под оптимизацию и шесть месяцев под тест/торговлю.
  • - Y4 & Y1 – четыре года под оптимизацию и один год под тест/торговлю.

На рисунке ниже видно, что для оптимизации выбран период длительностью 8 месяцев (MN8) (жёлтый цвет), а для теста (Out of sample)/торговли (Trade) выбран период длительностью 2 месяца (MN2) (рыжий цвет/зелёный цвет). Каждый раз в конце периода теста, а также периода торговли все открытые позиции закрываются по текущим рыночным котировкам и все отложенные ордера удаляются. После окончания периода out of sample снова производится оптимизация на последних восьми месяцах по окончании, которой идёт период out of sample длительностью 2 месяца и так далее столько раз, сколько было указано в параметре - количество шагов форвард-тестирования/анализа (Count steps for test/analysis). По умолчанию в настройках значение 10, и далее в описании системы используется это значение.

Схема тестирования торговых стратегий

Например, если выбран шаблон W8 & W2, то форвард-тестирование нужно проводить от начала торговой сессии в момент открытия рынка, то есть в воскресенье в 21.00 по Гринвичу (время открытия торгов в Новой Зеландии). От этой точки отсчитывается восемь недель. В пятницу восьмой недели в конце торговой сессии в 22.00 по Гринвичу (время закрытия американской сессии) заканчивается участок первого шага оптимизации параметров торговой стратегии. После этого на двух неделях проводится тест от воскресенья в 21.00 до пятницы второй недели в 22.00. За 5 минут до закрытия торговой сессии в 21.55 все сделки, которые были открыты, закрываются принудительно, фиксируя текущие прибыли или убытки, и также удаляются все отложенные ордера.

Во время реальной торговли оптимизация параметров торговых стратегий должна проводиться вне торговых сессий, то есть только по выходным дням в промежуток, начиная с пятницы в 22.00 и заканчивая в воскресенье в 21.00. Так же нужно учесть, что все торговые действия нужно начинать воспроизводить только после прихода первой котировки по каждому инструменту на открытии рынка иначе запросы будут отклоняться. Открытие рынка - это возобновление торговли после выходных, праздничных дней или после перерыва между торговыми сессиями.

Начало и окончание тестирования торговой системы

Если же для тестов или торговли выбран шаблон, периоды в котором измеряются в месяцах или в годах, то не всегда конец месяца будет суббота и воскресенье, так как происходит смещение. Поэтому в таких случаях программа проводит оптимизацию во время торговых сессий, если это происходит во время реальной торговли. Например, для форвард-теста выбран шаблон с периодами MN4 & MN1. Решено начать тест с первого февраля 2009 года. В этом случае начало месяца попадает на воскресенье, поэтому время начала теста в 21.00. От первого февраля отсчитывается 4 месяца, 31 мая получается конец периода для оптимизации. Следующий месяц июнь для теста (с 1 по 30 число включительно). Первое число июня в понедельник, поэтому тест начинается в 00.00. Последнее число месяца (30 июня) во вторник, поэтому все позиции закрываются и все отложенные ордера удаляются за 5 минут до начала следующих суток следующего месяца. Далее всё происходит аналогично со сдвигом в месяц. Но только в тех случаях, когда первое число месяца попадает на субботу, период оптимизации начинается в 21.00 второго числа месяца в воскресенье. Во всех остальных случаях период оптимизации всегда начинается в 00.00. Таким же образом учитываются последние числа месяцев и праздничные дни.  На рисунке ниже указаны разные ситуации:

Время и даты во время тестирования

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

Система рассчитывается на мультивалютную торговлю, поэтому все инструменты, которые выбраны в окне "Обзор рынка" участвуют в форвард-тестировании и в торговле. Механизм системы должен быть устроен таким образом, что в основном модуле содержатся условия, которые действуют на все подключенные к нему торговые стратегии.   Допустим, если просто включить программу в режиме торговли в первый раз и разрешить эксперту в торговом терминале торговать, то на экран выйдет сообщение:

Торговля не может начаться из-за отсутствия нужного количества статистических данных. Варианты решения:
 
  • - Попробуйте уменьшить значение в параметре "Количество шагов для форвард-тестирования/анализа".
  • - Проведите необходимое количество тестов, чтобы восполнить недостающее количество статистических данных.
  • - Удалите инструмент из окна Обзор рынка, по которому ещё не проводился до этого форвард-тест.

Это значит, что даже, если до этого и была проведена серия форвард-тестов на определённых инструментах, но в данный момент  в окне Обзор рынка присутствует инструмент, по которому форвард тест ещё  не проводился, то торговля не сможет начаться из-за отсутствия статистических данных именно для этого инструмента.

Окно Обзор рынка в торговом терминале MetaTrader 5



Автоматическое сохранение и чтение данных для принятия решений (анализ).

Во время тестирования торговой стратегии, а также во время реальной торговли происходит сохранение данных во внешний файл. Система принимает решение на основе этих данных в автоматическом режиме. Сохранение данных происходит каждый раз в конце теста/торгового периода, а принятие решений происходит каждый раз перед тем, как начнётся тест/торговый период. Последовательно это выглядит так:

Если статистических данных не хватает:

Схема оптимизации и тестирования торговой системы - Шаг 1

Если необходимое количество данных уже есть:

Схема оптимизации и тестирования торговой системы_Шаг 2

В программе должны быть пять разделов с параметрами, которые при вызове отображаются в виде диалоговых окон. Это разделы:
  • - Testing, Analyzing & Trading Parameters
  • - Money Managements Parameters
  • - Stop Trading Parameters
  • - Warning System Parameters
  • - List Financial Instruments

Интерфейс и функционал программы можно сделать средствами программы Excel и программного языка VBA. Все функции и расчётные таблицы помещаются в одну книгу Automatic Trading System на разные листы (далее эта книга будет упоминаться, как рабочая книга). На рисунке ниже показано, как всё может быть реализовано:

Интерфейс торговой системы в Excel

В разделе Testing, Analyzing & Trading Parameters размещены три режима, которыми нужно пользоваться последовательно. Это режимы Test, Analysis и Trade. Далее каждый режим будет рассмотрен подробно.


Раздел Test.

В режиме Test все остальные разделы параметров не доступны. Нам нужно узнать прибыльность того или иного эксперта в пунктах, поэтому система управления капиталом и условия остановки торговли в режиме теста не применяются. Результаты сохраняются в файлы в чистом виде и будут считаться исходными данными, которые потом можно многократно использовать, применяя к ним различные методы управления капиталом и условия остановки торговли.

Панели с настройками для оптимизации и тестирования в Excel

  1. 1. В параметре Testing period указываем год, на котором мы хотим тестировать эксперта. Для каждого года будет создаваться отдельная папка. Подробно каталог будет описан ниже.
  1. 2. В параметре Optimization/Test (Trade) выбирается вариант для периодов оптимизации и теста/торговли.
  1. 3. В параметре Timeframe выбирается таймфрейм, на котором будет тестироваться эксперт.
  1. 4. В параметре Count steps for test/analysis  устанавливается количество шагов для анализа и принятия решений (по умолчанию 10).  В сочетании с двумя предыдущими параметрами  (например, 2009; W8 & W2;) это означает, что данные будут собираться за этот период с первого понедельника 2009 года (5 января). А также нужно, чтобы было определённое количество данных за 2008 год, а именно:

10 (шагов) * W2 (2 недели) = 20 (недель) W8 (8 недель для первой оптимизации) = 28 недель
5 января 2009 года – 28 недель = понедельник 23 июня точка начала первой оптимизации.

  1. 5. Параметр Optimize for  exactly (min) означает, что время оптимизации для одного теста (шага) ограничено временем. Установленное значение означает, что один тест будет длиться, например, не более 5-ти минут.
  1. 6. Параметр Count trading strategies означает, какое количество стратегий будет участвовать в тесте, анализе или в торговле. В режиме Test можно  тестировать только одну стратегию.  В остальных режимах можно использовать до 10 экспертов. 
  1. 7. В разделе Choice Trading Strategy (-ies)  в режиме  Test активно только первое поле ввода. Кнопка View используется для выбора эксперта, который  будет  тестироваться. 
  1. 8. После того, как все параметры настроены, нужно нажать кнопку Ready, которая означает, что в модуле всё готово для тестирования эксперта. Кнопка остаётся в зажатом состоянии до тех пор, пока не закончится тестирование. Также её можно отключить до начала тестирования кнопкой Cancel, которая находится рядом.

Далее нужно перейти в торговый терминал Metatrader 5.

Настройки тестера в MetaTrader 5

  1. 1. В тестере терминала нужно выбрать того же эксперта, который выбран в модуле. В самом начале тестирования стратегии сверяются на идентичность. В случае если директория и имя эксперта не совпадают в модуле и тестере, выходит сообщение о том, что тест не начнётся до тех пор, пока эксперты не будут идентичны. 
  1. 2. Не имеет значения, какой символ выбран в тестере, так как будут тестироваться все инструменты, которые выбраны в окне Обзор рынка.
  1. 3. Эксперт будет тестироваться на таймфрейме, который указан в тестере. Параметр проверяется на идентичность с аналогичной настройкой в модуле так же, как имена экспертов.
  1. 4. В списке Интервал нужно выбрать All period. Так как этот параметр выставляется  в модуле по годам. Должна быть доступна вся история котировок по инструментам.
  1. 5. Параметры Режима торговли выставляются в зависимости от условий тестируемого эксперта.
  1. 6. Начальный депозит выставляется условно в размере 10 000 $.
  1. 7. Кредитное плечо 1:100.
  1. 8. Режим оптимизации - Генетический алгоритм.
  1. 9. Критерий выбора наилучшего варианта - Balance max (максимальная прибыль). 
  1. 10. В списке Форвард-период  должен быть  выбран вариант No, так как этот режим определяется параметрами модуля.
  1. 11. После того, как в тестере терминала все настройки установлены, кнопкой Старт запускается тестирование и в первую очередь программа создаёт  каталог и файл, в который будут сохраняться данные этого теста. Если это первое тестирование, создаётся папка Statistical Data. Она содержит в себе папки для хранения данных каждой отдельной стратегии (Detached Trading Strategies)  и результаты анализа разных групп стратегий с применением системы управления капиталом и без него (Results Analysis Groups Trading Strategies). На схеме ниже показано, как настройки влияют на то, какие папки будут созданы, где они будут расположены, в какой папке будет создан файл, и какое имя ему будет присвоено:
Схема каталога для сохранения данных

На схеме видно, что в папке Detached Trading Strategies создана папка 01 - Trading Strategy - Moving Average. Это папка эксперта. Ей присвоен номер 01, так как предполагается, что  это первый тест. Каждый раз, во время тестирования новой стратегии, создаётся папка с именем эксперта, которой присваивается порядковый номер.

В папке с именем эксперта создана папка 01 - W8 & W2. Это папка периодов для оптимизации/теста (торговли). На схеме видно, какой параметр влияет на имя папки. Так как используется не календарь для выбора периодов, а готовые шаблоны, то у каждого шаблона свой порядковый номер для соблюдения последовательности по возрастанию длительности периодов.

В папке 01 - W8 & W2 создаётся папка M5. Она относится к таймфрейму, на котором будет производиться тестирование. Синими стрелками показано, какие параметры сверяются на идентичность.

Далее, в папке, которая указывает таймфрейм, создаётся папка Results of Tests. В ней распределяются результаты тестов по годам. На схеме показано, что создана папка, указывающая 2009 год (Reports - 2009), а также параметр, который влияет на это.

В каждой папке указывающей год, создаются папки тестируемых инструментов. На схеме приведён пример, как было создано восемь папок по числу инструментов в окне Обзор рынка в терминале Metatrader. В каждой папке символизирующей свой инструмент сохраняются результаты тестов в формате Excel. Каждый файл (отчёт) может выглядеть, например, так, как показано ниже:

Пример отчёта истории торговли

Из этих отчётов будут браться данные для дальнейших расчётов.

Исходя из вышеперечисленных  настроенных параметров и с учётом того, что было выбрано 8 инструментов для тестирования, будет проведено 288 тестов, по 36 отчётов (файлов) в каждой папке символизирующей свой инструмент. Оптимизация будет длиться  24 часа.

C * (S W2) = (288 * T) / H = 24
S – параметр Count steps for tests/analysis.
W2 – количество 2-ух недельных участков в году (26).
C – количество инструментов в окне Обзор рынка.
T – параметр Optimize for exactly (min).
H – количество минут в одном часу.

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

После того, как тестирование завершено, все результаты сводятся в один файл (Result – 2009.xlsm), который сохраняется в папке Result of Testing. Каким образом данные представлены в этом файле подробно показывается в пункте Автоматический выбор инструментов для торговли.



Analysis.

В режиме Analysis  становятся  доступными  разделы Money Managements Parameters и Stop Trading Parameters. Также открывается возможность включить в анализ несколько торговых экспертов. В каждом диалоговом окне есть своя кнопка Apply нажатие, на которую приводит в действие тот или иной механизм для расчётов.

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

Панели с настройками для оптимизации и тестирования в Excel


Анализ данных с использованием системы управления капиталом.


Прежде чем начать анализ данных нужно настроить параметры.  Каждый параметр раздела Money Management Parameters и сама система по управлению капиталом будут подробно описаны в пункте Управление капиталом. Сейчас следует отметить только то, что, чтобы запустить анализ по управлению капиталом, в диалоговом окне нужно установить флажок напротив Use Money Management, выбрать экспертов данные, которых нужно проанализировать, указать необходимые параметры и нажать на кнопку Apply.

Панель с настройками системы управления капиталом в Excel

Допустим, была выбрана одна торговая стратегия. После нажатия кнопки Apply создаётся папка System Money Management в той же директории, где находится папка Result of Testing той торговой стратегии, которую мы отметили для анализа. Если ранее к этой стратегии система управления капиталом уже была применена, то из файла в этой папке данные просто считываются.

Папка Result of Testing находится в папке того таймфрейма, который будет указан в параметрах выбранного эксперта.

В созданную папку копируется файл того года, который мы выбрали для анализа (например, Result - 2009). В таком случае скопированному файлу присваивается имя MM – 2009. Из таблицы удаляются все значения. Далее программа в рабочей книге исходными данными заполняет таблицу в листе Calculation MM и после расчёта заносит полученные значения в таблицу файла MM - 2009. Далее данные отображаются в аналогичной таблице в рабочей книге в листе Calculation Results, а на диаграмме листа Main Module отображается результат.
Если же было выбрано несколько экспертов, то в их папках происходят аналогичные действия.
До того, как начать анализ нужно указать, на каких тайм фреймах тестировалась каждая отдельная торговая стратегия. Для этого используются переключатели, которые позволяют установить для каждого эксперта свой тайм фрейм, что служит указанием программе, из какой папки брать данные для анализа. Посмотреть результат каждой торговой стратегии после применения системы управления капиталом отдельно можно, просто щёлкая по переключателям напротив экспертов или по счётчику, который расположен в рабочей книге в листе Calculation Results. Эти два вида переключателей залинкованы, то есть производят идентичные действия.

Таблица данных с результатами тестов в Excel



Анализ данных с применением рейтингового выбора торговых стратегий.

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

Чтобы провести анализ с чистыми данными нужно снять флажок напротив Use Money Management, выбрать экспертов, которые будут участвовать в рейтинге или если в списке уже есть загруженные эксперты флажками отметить нужные. Также у каждого эксперта, если это необходимо выбираются тайм фреймы, на которых они тестировались. Чтобы начать анализ нужно нажать кнопку Apply в диалоговом окне Testing, Analyzing & Trading Parameters. После того, как расчёты будут произведены, результат можно будет наблюдать на диаграмме листа Main Module. То есть будет видно, что бы было, если бы торговля велась определённым набором экспертов.

Чтобы провести анализ с данными после применения системы управления капиталом флажок напротив Use Money Management снимать не нужно. Данные в этом случае будут браться из файлов, которые были созданы в результате применения системы управления капиталом к исходным данным.

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


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

Так как анализ проводится по закрытым сделкам, опция Virtual Stop Loss (p) в режиме Analysis недоступна, так как нельзя сымитировать плавающий убыток, который появляется во время открытой позиции.

Чтобы начать анализ в разделе параметров Stop Trading Parameters нужно установить флажок напротив Use Condition Stop Trading. Если установить флажки напротив опций Local Max. Drawdown (p) и Account Max. Drawdown %, то расчёт будет произведён используя их значения. На диаграмме в свою очередь будет отражён результат, показывающий то, что бы было, если бы в торговле использовались такие уровни для остановки торговли. Если же флажки напротив этих опций сняты, то в итоге можно увидеть результат торговли, как есть. То есть без условий остановки торговли.

Панель с настройками остановки торговли до следующего периода

Данные для этого вида анализа берутся из исходных файлов или из файлов, которые были созданы в результате применения к исходникам системы управления капиталом. Выбор, какие данные нужно использовать происходит путём снятия/установки флажка в диалоговом окне Money Management Parameters напротив Use Money Management.

Все подробности по условиям остановки торговли содержит пункт Условия остановки торговли.


Trade.

В режиме торговли должны быть включены разделы Money Management Parameters и Stop Trading Parameters. То есть их можно и отключить по желанию. Но если нажать на кнопку Ready, что скажет программе, что мы готовы к торговле, выйдет сообщение. Действительно ли мы хотим начать торговлю без той или иной функции. И выбор ответа "Yes" и "No".

Также все настройки должны быть настроены правильно. Это относится к параметрам Testing period, Optimization/Test (Trade), Timeframe и Count steps for Test/Analysis. Так как именно эти настройки указывают, куда будут сохраняться результаты торговли, которые потом же будут служить статистическими данными в торговле, и именно на их основе будет приниматься решение, какими инструментами торговать, и какую торговую стратегию использовать. После того, как всё настроено, нужно нажать кнопку Ready и перейти в торговый терминал для того, чтобы разрешить советникам торговать.


Автоматический выбор инструментов для торговли. 

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

Заполнение таблицы для результатов теста из отчётов

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


Автоматический выбор торговой стратегии для торговли.

Система принятия решений отталкивается от статистических данных за последние десять шагов вне оптимизационных выборок (out of sample). Главный критерий выбора инструментов - максимальная чистая прибыль. Если анализ показывает убыток, то есть, если кривая баланса в результате расчетов, ниже нуля, то торговля по этой торговой стратегии прекращается до начала следующего торгового периода (шага) и так продолжается до того момента, пока кривая не окажется выше нуля за анализируемый период.

Ниже схематически и пошагово рассмотрен пример.

Допустим, для тестирования было выбрано 8 валютных пар. В каждом ряду (каждый шаг, параметр Count steps for tests/analysis) значения суммируются и отображаются в столбце справа (столбец SUM). Значения из столбца SUM последовательно суммируются в столбце ADD. По значениям столбца ADD справа строится график. Автоматически в ряду choice флажками отмечаются валютные пары, которые отрицательно влияют на кривую баланса и таким образом исключены из расчётов, то есть их результат не будет учитываться в тесте, а если это режим торговли, то по ним не будут осуществляться сделки до конца торгового периода. На рисунке ниже видно, что флажками отмечены инструменты USDCHF и USDJPY. Одиннадцатый ряд Trade 01 показывает нам период торговли. Суммирование значений этого ряда, кроме значений тех инструментов, которые были исключены из торговли, показывает достоверный результат тестирования торговой системы в конце торгового периода. В данном примере результат получился 652 пункта прибыли.

Результаты тестов с участков Out of Sample

На следующем шаге теста либо торговли, если это уже режим торговли, снова анализируются результаты всех данных последних десяти шагов независимо от того, были ли исключены из торговли какие либо инструменты или нет. На рисунке ниже показано, каким образом происходит сдвиг окна двухмерного массива значений. По критерию выбора инструментов (максимальная чистая прибыль) на этот раз были исключены из торговли четыре валютных пары (EURJPY, EURUSD, USDCHF, USDJPY). Результат торговли составил -51 пункт.

Таблица с результатами тестов в Excel

На рисунке ниже рассмотрен пример, в каком случае торговля приостанавливается. Точно также анализируются данные за последние десять шагов, только на этот раз мы видим, что все валютные пары в конечном итоге ниже нуля. Это лучше видно на графике, на который указывает стрелка, протянувшаяся от того массива данных, которые на нём и рассчитывались. В такой ситуации торговля не ведётся весь торговый период и результат соответственно ноль пунктов.

Общий результат тестирования

Допустим, проведя ряд тестов по восьми инструментам, мы решили добавить ещё один, два или даже более инструментов. В этом случае в директорию, в зависимости от установленных параметров, просто добавляется папка (-ки), а в таблицу автоматически добавляется столбец (-цы)  нового (-ых) инструмента (-ов). Постепенно таким образом можно собрать данные по очень большому количеству инструментов и можно прийти к выводу, что какие нибудь из них нужно исключить из торговли. Количество торгуемых инструментов зависит от того, как настроены параметры в разделах Money Management Parameters и Stop Trading Parameters.

При добавлении новых символов таблица результатов расширяется

Если было решено исключить из торговли, какие нибудь инструменты, то это делается в диалоговом окне List Financial Instruments:

Список финансовых инструментов на пользовательской панели в Excel

В списке этого раздела отображаются все инструменты, которые выбраны в окне Обзор рынка. Из торговли или анализа можно исключить любой инструмент просто сняв флажок, перерасчёт происходит автоматически. Но пока инструменты находятся в окне Обзор рынка, их данные продолжают собираться. Это значит, что параметры экспертов будут автоматически оптимизироваться для этих инструментов тоже, но они не будут принимать участие в выборе инструментов для торговли и в таблице Statistical Data в листе Calculation Results столбцы с их значениями скрываются.

 
Автоматический выбор торговой стратегии для торговли.

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


Автоматический выбор инструментов для торговли.

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

В режиме Analysis, а также в режиме Trade данные для принятия решения берутся из файлов выбранных экспертов (Result – (год).xlsm). В режиме Trade эти данные поступают в таблицу рабочей книги в листе Rating of Experts, и каждый шаг происходит обновление. Для визуальной оценки всё отображается на графике. Из файлов данные берутся в столбце ADD.

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

Перенесение данных на общий график результатов

Во время реальной торговли, когда торгует один эксперт, все остальные ведут виртуальную торговлю и результаты сделок тоже записываются в файлы.


Управление капиталом. 

Управление капиталом ведётся для счёта в целом. Согласно так называемой Фиксировано-пропорционной тактике Райана Джонса, для того, чтобы к уже имеющемуся количеству лотов прибавить ещё один, каждый из уже имеющихся должен "заработать" некое кол-во пунктов (последнее Джонс назвал "дельтой"). Например, если у нас есть депозит в 300 долларов, и мы торгуем 1 минилотом, определив дельту равной, допустим, тем же 300 долларам, то мы перейдем на 2 минилота, когда наберем (имеющимся 1 минилотом) 300 долларов. Увеличение количества лотов до 3-ёх произойдет только, когда теперь уже 2 минилота заработают (каждый) по дельте 300 долларов. То есть переход с 2-ух минилотов на 3 будет, когда мы к имеющимся 600 долларам добавим ещё 2 х $300 = $600, т.е. при $1200, с 3-ёх на 4 минилота при депозите в $1200 + ($300 х 3) = $1200 + $900 = $2100 и т.д. Таким образом, "по мере роста числа контрактов сумма, необходимая для приобретения очередного количества контрактов, увеличивается пропорционально", откуда и название тактики.

В случае просадки  уменьшение количества лотов должно осуществляться не на тех уровнях депозита, на которых мы добавляли лоты, а "раньше". Например, если переход с 3-ёх минилотов на 4 имел место после того, как каждый из 3 минилотов набрал по 300 долларов и, соответственно, депозит вырос с $1200 до $2100 (на $900), то обратный переход с 4-ёх минилотов на 3 можно производить, как только мы потеряем некий  процент.  Например, это будет 50%  от размера предыдущей "ступеньки". То есть, в последнем случае, $900. Короче говоря, с 3-ёх на 4 переходим, когда к $1200 прибавим $900, а обратно, с 4 на 3, когда от $2100 потеряем $450 (1/2 $900) (т.е. при $1650). Такая "ставка снижения" призвана "затормозить" просадку депозита при просадке. В диалоговом окне Money Management Parameters это значение определяется параметром Reverse transfer%. Значение можно установить от 0 до 100%.

На рисунке ниже показана таблица, в которой производятся расчёты этого метода прежде, чем произойдёт сохранение в файл (-ы). Параметры, которые были выбраны в диалоговом окне Money Management Parameters, отражаются и в этой таблице. Кроме этих параметров в таблице есть ещё один – Deposit (начальный размер депозита). Выставляя разные значения, на диаграмме сразу же будет отображаться результат и можно понять, какого размера депозит нужен для той или иной тестируемой торговой стратегии.

Применение системы управления капиталом

Максимальный объём загрузки депозита участвующего в торговле определяется количеством инструментов. Поэтому изначально должно быть принято решение по скольким инструментам одновременно будет идти торговля и все остальные параметры должны настраиваться, учитывая этот момент.


Условия остановки торговли. 

Уровни остановки торговли (отдельно для каждого эксперта) определяется максимальной просадкой депозита, которую готовы допустить. Уровень просадки определяется анализом всего тестируемого периода для каждой стратегии отдельно. Поэтому этот период должен быть максимальным для каждой стратегии. Желательно на всём периоде имеющихся исторических данных. Например, торговая стратегия №1 по результатам тестирования с 2000 года по 2010 год показала максимальную просадку 2500 пунктов, значит, в параметрах этой стратегии в опции Local Max.Drawdown нужно установить такое значение, которое мы готовы выдержать в реальной торговле. Если во время торговли превышается этот уровень, то торговля по этой торговой стратегии приостанавливается на текущий торговый период и ”эстафета” передаётся той стратегии, которая в данный момент считается действующей, стоит первая в рейтинге и не имеет плавающий убыток на уровне своей максимальной просадки. По окончании торгового периода снова проводится анализ статистических данных всех стратегий в списке, как это описывалось выше и, если результаты анализа положительные для остановленного эксперта, то торговля по нему снова начинается, опять же в зависимости от того, какое место в рейтинге он занимает. Как уже говорилось, уровень остановки торговли для каждой торговой стратегии своё, исходя из собственной статистики этой торговой стратегии. Это настраивается так же, как и другие параметры для каждого эксперта, то есть, меняя переключатели напротив каждого эксперта в списке диалогового окна Testing, Analyzing & Trading Parameters. Также должно быть условие остановки для счёта в целом. Этот уровень определяется параметром Account Max. Drawdown% и исчисляется в процентах.

Панель с настройками остановки торговли до следующего периода

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

Совокупный результат теста

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

Остановка торговли происходит следующим образом. Если плавающий убыток доходит до уровня максимальной просадки счёта, который установлен в параметрах включаются виртуальные стоп-лосс ордера. Эти ордера не видны брокеру. Закрытие, если цена коснулась виртуального ордера, происходит с рынка. В торговом терминале виртуальные ордера обозначаются горизонтальными красными линиями. Если в торговой стратегии используются свои стоп-лосс ордера, то они продолжают оставаться на своих уровнях независимо от виртуальных ордеров. Первым сработает тот ордер, которого цена коснётся первым. Если же произошёл выход из зоны максимальной просадки, то виртуальные ордера отключаются и торговля переходит в обычный режим. Если же после того, как сработал стоп лосс, кривая депозита продолжает снижаться, торговля приостанавливается. На рисунке ниже показано, как приблизительно будет отличаться результат между обычной торговлей (красная кривая), которая ведётся на основе статистических данных за последние 10 шагов и торговлей, в которой включено условие остановки торговли (синяя линия). В параметре Local Max. Drawdown (p) установлено значение 300. Также не учитывается управление капиталом.

Результат с включенным режимом Stop Trade

На приведённом рисунке показана идеальная модель. В действительности результат будет отличаться скорее в худшую сторону. И будет иметь место постепенное снижение депозита в неудачные периоды, но не такое стремительное, как если не использовать это правило вообще.
Правило виртуального ордера действует и на локальную максимальную просадку для каждого эксперта и на максимальную просадку счёта в целом. Уровень виртуальных ордеров устанавливается в пунктах.


Система оповещений.

В режиме торговли (Trade) становиться доступным раздел системы оповещений. В диалоговом окне Warning System Parameters можно настроить три вида оповещений: Text message, Auditory message и View information in Trade Terminal.

Панель с опциями системы текстовых и звуковых оповещений

Text message. Отправка экспертом сообщений на Email / SMS / ICQ с возможностью включения/отключения каждой отдельной функции.
Отправка сообщений на почтовый адрес, на мобильный телефон или на какой либо клиент для общения происходит только в экстренных случаях. Экстренными случаями считаются такие ситуации, как:

  • - Достижение уровня допустимой локальной максимальной просадки, какой либо торговой стратегии.
  • - Достижение уровня допустимой максимальной просадки счёта и соответственно остановка торговли системы в целом.
  • - Отключение электричества в случае чего произошёл переход на резервное питание.
  • - Обрыв связи и её автоматическое восстановление с присутствием в отчёте информации, сколько по длительности отсутствовала связь.

Auditory message. Звуковые сигналы с возможностью включения/отключения каждой отдельной функции.

Звуковыми оповещениями сопровождаются те же ситуации, которые указаны выше, то есть при отправке экспертом текстовых сообщений. Но кроме тех ситуаций есть ещё ряд событий, которые сопровождаются звуком:

  • - Открытие позиции.
  • - Выход из позиции с положительным результатом.
  • - Выход из позиции с отрицательным результатом.
  • - Окончание форвард-тестирования торговой стратегии.
  • - Остановка торговли в конце торгового периода, которая последовательно сопровождается звуковыми оповещениями по пунктам:
  1.    - Выход из всех открытых на текущий момент позиций.
  2.    - Удаление всех отложенных ордеров.
  3.    - Начало оптимизации параметров всех подключенных торговых стратегий в автоматическом режиме.
  • - Начало нового торгового периода.

View information in Trade Terminal. Отображение необходимой информации в окне терминала. Возможность включения/отключения этой функции.

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

  • - Инструменты, на которых есть открытые позиции.
  • - Каким лотом идёт торговля в текущий момент.
  • - Совокупный объём позиций (лотов).
  • - Какая позиция в плюсе/минусе.
  • - Когда происходит момент оптимизации торговых стратегий.
  • - Какая торговая стратегия торгует на данный момент.
  • - Какой установлен уровень максимальной просадки на текущий момент.
  • - Во время форвард-тестирования торговых стратегий отображение общего количества тестов, сколько тестов уже завершено и сколько тестов ещё осталось.


Комментариев нет :

Отправить комментарий