В этой статье рассмотрим сборку торговой системы в конструкторе программы NeuroShell DayTrader Professional (далее NSDT). В качестве примера соберём простую систему и затем протестируем её на нескольких символах одновременно.
Вход в позицию будет осуществляться по отложенным ордерам Buy Stop и Sell Stop, а выход по трейлинг-стопу. Если Вы не знакомы с типами отложенных ордеров, то лучше сначала прочитать статью Отложенные ордера. Описание средств управления и автоматизация рутины., в которой подробно излагаются основы. Здесь мы уже не будем подробно останавливаться на этом.
Настроим два торговых модуля. В одном будут условия для открытия только длинных позиций, а во втором только для коротких. Также будет показано, как оценить полученные результаты на графике средств (Equity), а так как тестирование будет производиться на нескольких символах, то для этого случая есть возможность посмотреть не только каждый результат на отдельном графике, но и все вместе (на общем графике средств).
После выбора откроется окно Trading Strategy Wizard (мастер для создания торговых систем), в котором нужно выбрать шаблон. Шаблоны можно сохранять для использования в дальнейшем. Это могут быть или уже готовые варианты торговых систем или тех, над которыми ещё ведётся работа. В нашем случае будем создавать всё с нуля, поэтому нужно выбрать вариант No Template:
И затем нажать кнопку Next для перехода к следующему этапу. После перехода диалоговое окно Trading Strategy Wizard примет такой вид:
Как видно на скриншоте выше, в торговом модуле есть шесть вкладок. Ниже приведено описание для каждой группы:
- Вкладки Long Entry и Short Entry. Здесь нужно указать условия для покупки и/или продажи. То есть сняв флажок напротив Generate a buy long или Generate a sell short можно вообще исключить покупки или продажи из торговой стратегии. В первом выпадающем списке, также напротив флажка, можно выбрать тип торгового приказа. На скриншоте выше показан вариант с рыночным ордером (market). В нашем примере будем использовать стоп-ордера (stop). Ниже приведён полный список типов, которые можно использовать:
А во втором выпадающем списке можно указать, сколько из условий должно исполниться, чтобы совершить торговую операцию. Список условий на скриншоте выше пуст, к нему вернёмся чуть позже.
- Вкладки Long Protective Stop и Short Protective Stop. В этих вкладках можно указать, что использовать для расчёта скользящего защитного стопа. Это может быть, например, минимум бара для длинных позиций или максимум для коротких позиций. Или можно присоединить любой индикатор, который Вы посчитаете нужным.
- На вкладках Long Exit и Short Exit можно создать условия для закрытия позиции. Всё точно также, как и во вкладках для отправки торговых приказов на открытие позиции.
Если список условий оставить пустым, то выйдет окно с предупреждением. То есть, хотя бы одно условие должно быть. Для того, чтобы создать условие, после исполнения которого будет производиться установка отложенного ордера, на вкладках Long Entry, Short Entry, Long Exit и Short Exit есть кнопка Add Condition(s)... Нажав на неё откроется окно (например, для создания условия для открытия длинной позиции) Select Long Entry Condition(s). В этом окне содержится список переменных и индикаторов, которые можно использовать для создания условия. Также можно использовать любой другой индикатор к списку которых можно перейти нажав кнопку Indicator.
Если же для того, чтобы установить отложенный ордер условий нет, то можно установить в список условий любую переменную. То есть, необязательно условие должно быть вида "если одно значение больше/меньше другого, то установить ордер". Для простого примера выберем в списке High (максимум бара) и подтвердим свой выбор нажатием кнопки OK.
Теперь нужно установить цену для отложенного ордера. Если в выпадающем списке в верхней части окна модуля уже выбран вариант stop (стоп-ордер), то в нижней части окна есть ещё одно поле для установки цены ордера, как это показано на скриншоте ниже (выделено красным прямоугольником).
Стрелкой показана кнопка, которая вызывает диалоговое окно Select Long Entry Stop Price. Это окно имеет такой же вид, как окно для установки условий для открытия и закрытия позиции (см. выше).
В качестве примера для установки отложенных ордеров будем использовать уровни индикатора Price Channel. Для ордеров Buy Stop это будет максимальный уровень ценового канала, а для ордеров Sell Stop - минимальный уровень канала. Нажав на кнопку Indicator в нижней части окна Select Long Entry Stop Price, откроется окно Indicator Wizard.
Сначала нужно выбрать категорию индикаторов. Индикатор Price Channel и его вариации находятся в категории Price Basic (см. скриншот ниже):
Перейдя в эту категорию в случае, если нужно установить цену для ордера Buy Stop, то выбрать нужно Price High (максимальные цены за указанный период), а для ордеров Sell Stop нужно выбрать Price Low (минимальные цены за указанный период).
И на последнем шаге можно установить параметры индикатора. На данном этапе это можно не делать, если нужно потом устанавливать диапазон периода для оптимизации.
После нажатия на кнопку Finished снова становится доступным окно торгового модуля, в котором уже после описанных выше действий, в поле Stop Price, находится индикатор Price High. Нажав на плюс (+) рядом с индикатором, откроется список и теперь можно установить диапазон для оптимизации периода индикатора, если это необходимо.
Двойной клик левой кнопкой мыши по параметру индикатора вызывает диалоговое окно для изменений. В данном случае нужно было изменить значения периода индикатора, то есть, установить диапазон для оптимизации от 1 до 20 (см. скриншот ниже).
Далее установим трейлинг стоп. Сделать это можно на вкладке Long Protective Stop для длинной позиции. Таким же образом, как описывалось выше, можно установить в качестве трейлинг-стопа любой индикатор, который посчитаете нужным. Для примера также установим индикатор ценового канала, только для сопровождения длинной позиции понадобятся значения нижней границы. Для оптимизации диапазон периода сделаем от 1 до 30.
Установим ещё условие для закрытия позиции в закладке Long Exit. Здесь используем тип ордера market. А закрытие позиции будет осуществляться по условию, когда текущая прибыль превысит заданное значение в пунктах. Для таких целей есть уже готовое условие, которое называется Price Target: Points. В списке индикаторов его можно найти в категории Trading Strategy: Exit Signals. Диапазон значений для оптимизации установим так, как это показано на скриншоте ниже. Так как все тестируемые символы имеют 5 знаков после запятой, то 10 пунктов будет равно значению 0.00100, а 1000 пунктов 0.10000.
Так как этот модуль предназначен только для открытия длинных позиций, то в закладках Short Entry и Short Protective Stop флажки нужно снять, если они там были установлены. Торговый модуль для длинных позиций готов и осталось только настроить тестер для оптимизации параметров, а затем и тестирования.
После нажатия кнопки Next откроется окно Trading Strategy Parameters, в котором можно посмотреть список текущих установленных параметров тестера (см. скриншот ниже):
Если нужно изменить настройки тестера, то нажав на кнопку Modify Trading Strategy Parameters откроется окно параметров с пятью вкладками (см. скриншот ниже). Если нужно, чтобы оптимизатор выбрал наилучшие параметры, а условия оставил именно так, как они установлены изначально, то на вкладке Rules нужно выбрать вариант Parameter Search.
Если нужно, чтобы полученные результаты исчислялись пунктами (приблизительно), то на вкладке Trading нужно установить значения так, как показано на ниже:
На других вкладках можно пока оставить значения по умолчанию. На вкладке Date установлено, что оптимизацию нужно проводить на всех имеющихся данных. Комиссию оставим равной нулю (вкладка Costs). А на вкладке Optimization установлен критерий оптимизации Maximize Return On Account.
Для каждого символа по умолчанию будут подбираться свои параметры, но можно сделать так, чтобы подбирались общие параметры для всех символов. По этому вопросу была написана статья Уменьшаем эффект подгонки и решаем проблему недостаточного количества котировок.
На следующем шаге, последовательно на каждом символе, запускается оптимизация параметров (это происходит в автоматическом режиме). В процессе теста отображается шкала прогресса и можно видеть, для какого символа в текущий момент производится оптимизация параметров. Также доступны статистические показатели результатов для каждого символа, которые можно после оптимизации настроить нажав кнопку Options. Для получения более детального анализа нужно нажать кнопку Detailed analysis.
После окончания оптимизации нажав на кнопку Finished откроется график, на котором отобразятся точки входа (синие треугольники с заливкой вверх) и выхода (синие треугольники без заливки вниз) из позиции. График будет выглядеть приблизительно так, как показано на скриншоте ниже:
Воспользовавшись инструментом для увеличения масштаба графика можно рассмотреть всё более тщательно. Ниже показан увеличенный участок графика для детального анализа совершения сделок:
Чтобы увидеть результат в виде графика средств нужно открыть список индикаторов из главного меню (Insert > New Indicator) и перейти в раздел Trading Strategy: System Information. В этом разделе есть индикатор средств и называется он System Equity: All Trades. У этого индикатора есть только один параметр, в котором нужно указать торговый модуль, по истории сделок которых нужно рассчитать график средств. После того, как всё настроено и нажата кнопка Finished на графике можно увидеть приблизительно вот такую картинку:
Точно так же можно создать торговый модуль для коротких позиций. После того, как это сделано, графики средств двух торговых модулей можно суммировать. Для арифметических операций в списке индикаторов есть раздел Arithmetic. Для суммирования двух рядов данных можно воспользоваться операцией Add, в модуле которого нужно указать два слагаемых.
В итоге на графике можно будет анализировать несколько графиков средств так, как это показано ниже (цвет, тип и толщина линий настраивается пользователем):
Есть ещё одна полезная возможность, которую рассмотрим в этой статье. Это индикатор, с помощью которого можно суммировать результаты всех символов, чтобы оценить общий результат. Для того, чтобы им воспользоваться, в списке индикаторов нужно перейти в раздел Chart Page Calculation и выбрать индикатор Chart Page Sum. У него только один параметр, в котором нужно указать, какие серии нужно сложить. В данном случае нужно объединить суммированные графики двух торговых модулей (белая линия на скриншоте выше). В итоге должно получится так, как показано на скриншоте ниже:
Всё настроено. Далее можно попробовать добавить комиссию и провести оптимизацию параметров, когда подбирается один набор параметров для всех символов. Но в этой статье мы не будем рассматривать эти вопросы.
В NeuroShell DayTrader Professional можно довольно быстро проверить множество простых идей и провести предварительные тесты. Но для более серьёзных тестов и разработки системы управления капиталом больше подходит торговая платформа Metatrader 4/5. Чем и займёмся в одной из будущих статей.
Вход в позицию будет осуществляться по отложенным ордерам Buy Stop и Sell Stop, а выход по трейлинг-стопу. Если Вы не знакомы с типами отложенных ордеров, то лучше сначала прочитать статью Отложенные ордера. Описание средств управления и автоматизация рутины., в которой подробно излагаются основы. Здесь мы уже не будем подробно останавливаться на этом.
Настроим два торговых модуля. В одном будут условия для открытия только длинных позиций, а во втором только для коротких. Также будет показано, как оценить полученные результаты на графике средств (Equity), а так как тестирование будет производиться на нескольких символах, то для этого случая есть возможность посмотреть не только каждый результат на отдельном графике, но и все вместе (на общем графике средств).
Если данные для работы ещё не готовы, то посмотреть, как их загрузить в NSDT можно в статье Загрузка исторических данных в NeuroShell DayTrader Professional. Далее я подробно опишу, как создавать и тестировать торговую стратегию.
Начнём с момента, когда данные уже загружены в программу. В моём варианте это дневные графики пяти валютных пар AUDUSD, EURUSD, GBPUSD, NZDUSD и USDCHF. Сначала нужно создать торговый модуль, в котором можно создавать условия для торговой стратегии и настраивать множество других опций. Для создания такого торгового модуля в главном меню в разделе Insert из выпадающего списка нужно выбрать вариант New Trading Strategy (см.скриншот ниже):
После выбора откроется окно Trading Strategy Wizard (мастер для создания торговых систем), в котором нужно выбрать шаблон. Шаблоны можно сохранять для использования в дальнейшем. Это могут быть или уже готовые варианты торговых систем или тех, над которыми ещё ведётся работа. В нашем случае будем создавать всё с нуля, поэтому нужно выбрать вариант No Template:
И затем нажать кнопку Next для перехода к следующему этапу. После перехода диалоговое окно Trading Strategy Wizard примет такой вид:
Как видно на скриншоте выше, в торговом модуле есть шесть вкладок. Ниже приведено описание для каждой группы:
- Вкладки Long Entry и Short Entry. Здесь нужно указать условия для покупки и/или продажи. То есть сняв флажок напротив Generate a buy long или Generate a sell short можно вообще исключить покупки или продажи из торговой стратегии. В первом выпадающем списке, также напротив флажка, можно выбрать тип торгового приказа. На скриншоте выше показан вариант с рыночным ордером (market). В нашем примере будем использовать стоп-ордера (stop). Ниже приведён полный список типов, которые можно использовать:
- - market - рыночный ордер. Открытие позиции производится на открытии нового бара после того, как условие исполнилось.
- - stop - отложенные стоп ордера Buy Stop (для покупки) и Sell Stop (для продажи).
- - limit - отложенные лимитные ордера Buy Limit (для покупки) и Sell Limit (для продажи).
- - stoplimit - отложенные стоп-лимит ордера Buy Stop Limit () и Sell Stop Limit (для продажи).
- - market close - рыночный ордер. Открытие позиции происходит на закрытии текущего бара.
А во втором выпадающем списке можно указать, сколько из условий должно исполниться, чтобы совершить торговую операцию. Список условий на скриншоте выше пуст, к нему вернёмся чуть позже.
- Вкладки Long Protective Stop и Short Protective Stop. В этих вкладках можно указать, что использовать для расчёта скользящего защитного стопа. Это может быть, например, минимум бара для длинных позиций или максимум для коротких позиций. Или можно присоединить любой индикатор, который Вы посчитаете нужным.
- На вкладках Long Exit и Short Exit можно создать условия для закрытия позиции. Всё точно также, как и во вкладках для отправки торговых приказов на открытие позиции.
Если список условий оставить пустым, то выйдет окно с предупреждением. То есть, хотя бы одно условие должно быть. Для того, чтобы создать условие, после исполнения которого будет производиться установка отложенного ордера, на вкладках Long Entry, Short Entry, Long Exit и Short Exit есть кнопка Add Condition(s)... Нажав на неё откроется окно (например, для создания условия для открытия длинной позиции) Select Long Entry Condition(s). В этом окне содержится список переменных и индикаторов, которые можно использовать для создания условия. Также можно использовать любой другой индикатор к списку которых можно перейти нажав кнопку Indicator.
Если же для того, чтобы установить отложенный ордер условий нет, то можно установить в список условий любую переменную. То есть, необязательно условие должно быть вида "если одно значение больше/меньше другого, то установить ордер". Для простого примера выберем в списке High (максимум бара) и подтвердим свой выбор нажатием кнопки OK.
Теперь нужно установить цену для отложенного ордера. Если в выпадающем списке в верхней части окна модуля уже выбран вариант stop (стоп-ордер), то в нижней части окна есть ещё одно поле для установки цены ордера, как это показано на скриншоте ниже (выделено красным прямоугольником).
Стрелкой показана кнопка, которая вызывает диалоговое окно Select Long Entry Stop Price. Это окно имеет такой же вид, как окно для установки условий для открытия и закрытия позиции (см. выше).
В качестве примера для установки отложенных ордеров будем использовать уровни индикатора Price Channel. Для ордеров Buy Stop это будет максимальный уровень ценового канала, а для ордеров Sell Stop - минимальный уровень канала. Нажав на кнопку Indicator в нижней части окна Select Long Entry Stop Price, откроется окно Indicator Wizard.
Сначала нужно выбрать категорию индикаторов. Индикатор Price Channel и его вариации находятся в категории Price Basic (см. скриншот ниже):
Перейдя в эту категорию в случае, если нужно установить цену для ордера Buy Stop, то выбрать нужно Price High (максимальные цены за указанный период), а для ордеров Sell Stop нужно выбрать Price Low (минимальные цены за указанный период).
И на последнем шаге можно установить параметры индикатора. На данном этапе это можно не делать, если нужно потом устанавливать диапазон периода для оптимизации.
После нажатия на кнопку Finished снова становится доступным окно торгового модуля, в котором уже после описанных выше действий, в поле Stop Price, находится индикатор Price High. Нажав на плюс (+) рядом с индикатором, откроется список и теперь можно установить диапазон для оптимизации периода индикатора, если это необходимо.
Двойной клик левой кнопкой мыши по параметру индикатора вызывает диалоговое окно для изменений. В данном случае нужно было изменить значения периода индикатора, то есть, установить диапазон для оптимизации от 1 до 20 (см. скриншот ниже).
Далее установим трейлинг стоп. Сделать это можно на вкладке Long Protective Stop для длинной позиции. Таким же образом, как описывалось выше, можно установить в качестве трейлинг-стопа любой индикатор, который посчитаете нужным. Для примера также установим индикатор ценового канала, только для сопровождения длинной позиции понадобятся значения нижней границы. Для оптимизации диапазон периода сделаем от 1 до 30.
Установим ещё условие для закрытия позиции в закладке Long Exit. Здесь используем тип ордера market. А закрытие позиции будет осуществляться по условию, когда текущая прибыль превысит заданное значение в пунктах. Для таких целей есть уже готовое условие, которое называется Price Target: Points. В списке индикаторов его можно найти в категории Trading Strategy: Exit Signals. Диапазон значений для оптимизации установим так, как это показано на скриншоте ниже. Так как все тестируемые символы имеют 5 знаков после запятой, то 10 пунктов будет равно значению 0.00100, а 1000 пунктов 0.10000.
Так как этот модуль предназначен только для открытия длинных позиций, то в закладках Short Entry и Short Protective Stop флажки нужно снять, если они там были установлены. Торговый модуль для длинных позиций готов и осталось только настроить тестер для оптимизации параметров, а затем и тестирования.
Если нужно изменить настройки тестера, то нажав на кнопку Modify Trading Strategy Parameters откроется окно параметров с пятью вкладками (см. скриншот ниже). Если нужно, чтобы оптимизатор выбрал наилучшие параметры, а условия оставил именно так, как они установлены изначально, то на вкладке Rules нужно выбрать вариант Parameter Search.
Если нужно, чтобы полученные результаты исчислялись пунктами (приблизительно), то на вкладке Trading нужно установить значения так, как показано на ниже:
На других вкладках можно пока оставить значения по умолчанию. На вкладке Date установлено, что оптимизацию нужно проводить на всех имеющихся данных. Комиссию оставим равной нулю (вкладка Costs). А на вкладке Optimization установлен критерий оптимизации Maximize Return On Account.
Для каждого символа по умолчанию будут подбираться свои параметры, но можно сделать так, чтобы подбирались общие параметры для всех символов. По этому вопросу была написана статья Уменьшаем эффект подгонки и решаем проблему недостаточного количества котировок.
На следующем шаге, последовательно на каждом символе, запускается оптимизация параметров (это происходит в автоматическом режиме). В процессе теста отображается шкала прогресса и можно видеть, для какого символа в текущий момент производится оптимизация параметров. Также доступны статистические показатели результатов для каждого символа, которые можно после оптимизации настроить нажав кнопку Options. Для получения более детального анализа нужно нажать кнопку Detailed analysis.
После окончания оптимизации нажав на кнопку Finished откроется график, на котором отобразятся точки входа (синие треугольники с заливкой вверх) и выхода (синие треугольники без заливки вниз) из позиции. График будет выглядеть приблизительно так, как показано на скриншоте ниже:
Воспользовавшись инструментом для увеличения масштаба графика можно рассмотреть всё более тщательно. Ниже показан увеличенный участок графика для детального анализа совершения сделок:
Чтобы увидеть результат в виде графика средств нужно открыть список индикаторов из главного меню (Insert > New Indicator) и перейти в раздел Trading Strategy: System Information. В этом разделе есть индикатор средств и называется он System Equity: All Trades. У этого индикатора есть только один параметр, в котором нужно указать торговый модуль, по истории сделок которых нужно рассчитать график средств. После того, как всё настроено и нажата кнопка Finished на графике можно увидеть приблизительно вот такую картинку:
Точно так же можно создать торговый модуль для коротких позиций. После того, как это сделано, графики средств двух торговых модулей можно суммировать. Для арифметических операций в списке индикаторов есть раздел Arithmetic. Для суммирования двух рядов данных можно воспользоваться операцией Add, в модуле которого нужно указать два слагаемых.
В итоге на графике можно будет анализировать несколько графиков средств так, как это показано ниже (цвет, тип и толщина линий настраивается пользователем):
Есть ещё одна полезная возможность, которую рассмотрим в этой статье. Это индикатор, с помощью которого можно суммировать результаты всех символов, чтобы оценить общий результат. Для того, чтобы им воспользоваться, в списке индикаторов нужно перейти в раздел Chart Page Calculation и выбрать индикатор Chart Page Sum. У него только один параметр, в котором нужно указать, какие серии нужно сложить. В данном случае нужно объединить суммированные графики двух торговых модулей (белая линия на скриншоте выше). В итоге должно получится так, как показано на скриншоте ниже:
Всё настроено. Далее можно попробовать добавить комиссию и провести оптимизацию параметров, когда подбирается один набор параметров для всех символов. Но в этой статье мы не будем рассматривать эти вопросы.
В NeuroShell DayTrader Professional можно довольно быстро проверить множество простых идей и провести предварительные тесты. Но для более серьёзных тестов и разработки системы управления капиталом больше подходит торговая платформа Metatrader 4/5. Чем и займёмся в одной из будущих статей.
Комментариев нет :
Отправить комментарий