Forex Strategy Builder — инструкция по созданиию и автоматизация торговых стратегий. |
Главная » Бесплатные курсы Форекс для новичков » Forex Strategy Builder — инструкция по созданиию и автоматизация торговых стратегий.

Forex Strategy Builder — инструкция по созданиию и автоматизация торговых стратегий.

Forex Strategy Builder при помощи этой программы вы научитесь создавать свою собственную стратегию торговли на форекс, а также сможете её автоматизировать.

1. Инструкция по установке Forex Strategy Builder.

Forex Strategy Builder — это платформа, которая позволяет создавать и тестировать торговые идеи, а также генерировать советники. Здесь есть подробная информация. Я использую платную версию, вы можете взять ознакомительную на месяц, либо попробовать бесплатную.

Я прекрасно понимаю, что едва ли кто-то будет платить за программу сразу, поэтому дальше рассматриваю инструкцию для бесплатной версии. Скачайте её и установите.

Бесплатная версия хотя и имеет некоторые ограничения, её функционала вполне достаточно для заработка. После установки сделаем настройки программы.
Заходим в History Center (ищите в меню вверху):


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

Выбираем Data Download, затем часовой пояс (Москва, +3) и нажимаем Download.

После окончания загрузки переходим во вкладку Control Panel:


В General — отмечаем закрывать позицию при наступлении Margin Call и использовать низшие периоды для более точного тестирования.

Переходим в Account:


Валюта — USD, стартовый депозит — $1000, плечо — 1 к 300. Во время обучения используйте эти параметры, позже вы поставите данные своего счета.

Я предпочитаю делать тесты на этих данных, так будет проще масштабировать на более крупные счета. Помните про плечо: поставить меньше, чем у вас на счете можно, а вот больше — будет ошибкой.

Следующая вкладка — Symbols.

Здесь можно посмотреть спецификации каждой пары. Менять ничего не нужно, разве что сделайте спред более близким к рабочему на вашем счете (по умолчанию 2 пункта, можно увеличить до 2.8 — у большинства брокеров едва ли будет хуже).

Теперь заходим в Data Horizon:

Укажите параметры, как на картинке.

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

И на само тестирование тоже выделяем хотя бы год (лучше полтора). Слишком длинный горизонт будет ошибкой (рынок меняется, и далеко не факт, что прибыльная тогда стратегия будет полезна спустя 3-4 года).

В примере я хочу оставить год на проверочное тестирование в MetaTrader с качеством 99% (период с 1.10.2014 по 10.10.2015). Обратите внимание, что для таких тестов у вас должны быть котировки хотя бы за месяц до стартовой даты (некоторые стратегии требуют ещё больше истории для входа в сделку).

Получается, что финишная точка тестирования в FBS — 1 октября 2014, значит, стартовая будет 1 февраля 2013 (имеем полтора года для генерации идеи). Слишком старые котировки не стоит брать: уйдёт больше времени на анализ, и нет гарантии, что алгоритмы продолжат работать в настоящем.

Поэтому я выбираю следующую систему:

На отрезке полтора года генерирую торговую идею, оптимизирую её и сохраняю.

Затем тестирую в MetaTrader на другом интервале (минимум, год).

Если всё хорошо, запускаю тестирование в MetaTrader на интервале до 5 лет.

Выгружаю результаты тестов в Myfxbook и там анализирую отчеты.

Если стратегия показывает положительную динамику, робот ставим на центовый счет (проверяем исполнение сделок), и уже после этого добавляем в портфель.

Главное — не сделать подгонку под историю. Поэтому мы генерируем идею на одном интервале, проверяем на другом (независимом), а делаем итоговый прогон на ещё большем (общем для первых двух), чтобы вычислить, насколько толковой является идея.

Не стремитесь генерировать стратегию на больших интервалах — вы подстроите её под историю. Для проверки идеи достаточно 6-9 месяцев. Остальные пригодятся вам для стресс-анализа и независимого (от вашего вмешательства и оптимизации) тестирования в другой программе.

Следующая вкладка — Acceptance Criteria.

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


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

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

На этом настройка закончена. Перезапустите программу.

2. Рабочие поля.

Мне нравится Forex Strategy Builder тем, что она позволяет довольно быстро набросать торговую идею и проверить её за считанные минуты. Вы удивитесь, сколько идей можно создать с её помощью. Разберём пример.

Нажмите New Strategy.


Далее вверху включите торговый период M15 и валютную пару EURUSD. Метод прогнозирования — пессимистичный.


Проектирование любой стратегии мы начинаем с составления базовых условий (раздел Editor, слева).

Сначала идут входящие параметры (их мы задали в настройках сразу для всех стратегий) и часть только что.


Проверяем, чтобы верно был указан Chart (пара и период), диапазон тестирования (с 2013 по 2014 годы), стартовый депозит и плечо. Всё верно? Смещаемся в центр.

Здесь видим структуру нашей будущей стратегии. Это — рабочий каркас, на который мы примерим нужные индикаторы.

Description — это поле позволяет записать вашу торговую идею (заметка для вас, чтобы потом было легче отыскать стратегию).

Strategy Properties — это условия стратегии, здесь мы задаём размер позиции (в лотах или процентах), условия добавления к позиции (и размеры добавки или снижения), общие Stop Loss и Take Profit, установку безубытка (Break even) и условия умножения объёма (мартингейл).

При нажатии на этот блок открываются детальные настройки и поля для ввода.

Я убеждён, что при генерации торговых стратегий, следует использовать фиксированный объём. Никаких процентов (это введёт вас в заблуждение). Поэтому сразу укажем следующие параметры:


У нас депозит $1000, поэтому я задаю стартовый объём — 0.05 лота, а максимальный — 0.1 (робот не откроет суммарную позицию больше этого размера).

Добавление и уменьшение я не включаю.

Переходим к SL, TP, BE и мартингейлу. Здесь я задаю следующее:


Это — первоначальные данные, сырые. Дальше я смогу их настроить уже под конкретные условия. Внизу нужно нажать Ok, чтобы параметры были приняты.

Теперь поговорим про сам скелет стратегии.

В Forex Strategy Builder используется 3 блока для генерации — установки (мы его только что разобрали), условия входа и условия выхода. Для условий входа есть возможность вводить уточняющие фильтры. Похожие фильтры можно добавлять и к условиям выхода (зависит от самого триггера).

Справа есть ещё одно большое поле — это результаты, которые программа получает по нашей стратегии.

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

Первый пункт вам уже знаком — именно его мы задали в общих настройках.

Теперь мы можем быстро оценить, соответствует ли данная стратегия нашему фильтру (для меня это быстрый анализ). Вариант два: не соответствует (Not fulfilled) и подходит (fulfilled). Ответ отрицательный — нет сделок, мы ещё не построили стратегию.

Net Balance — чистый баланс по результатам торговли по изучаемой стратегии за выбранный период (полтора года).

Intrabar scanning — accomplished.

Система проверяет качество стратегии на наличие проблем: если сканирование не было выполнено, это повод усомниться в качестве результатов. Общее правило — в результатах не должно быть ошибок и сомнений (они отмечены оранжевым цветом).

Ambiguous bars — количество баров в истории, которые не позволяют однозначно трактовать сделки. Их быть должно быть очень мало (в идеале — 0).

Max consecutive losses — количество убыточных сделок подряд. Чем меньше таких полос, тем меньше система зависит от краткосрочных трендов. Нам нужна гибкая стратегия, а не подгонка под случайные колебания.

System quality number — качество системы, условная единица.

Помогает быстро сравнивать разные стратегии между собой: ниже 1.5 — у вас получился мусор; от 1.6 до 2 — не ахти, но работать можно; от 2.1 до 2.5 — средний уровень; от 2.6 до 3 — толковая стратегия; от 3.1 до 5 — отличный инструмент; от 5.1 — вы нашли что-то очень крутое (но сначала трижды проверьте на ошибки).

Практика показывает, что системы с качеством 2+ приносят стабильный доход.

Не гонитесь за высокими оценками, к сожалению, это ещё не гарантия, что система применима к реальности (и не факт, что вы не её подогнали под историю).

С системами, качество которых равно нолю связываться не стоит.

Sharpe Ratio — условный показатель, стремитесь, чтобы у системы он был хотя бы 0.2 и выше.

Max stagnation — период застоя в днях.

Это значит, что ваша стратеги топталась на месте. Чем короче этот отрезок, тем лучше. Обращайте внимание на ситуации, когда система имеет долгую стагнацию, а затем делает сверх-прибыль на коротком участке (или наоборот). Это — плохой знак, похоже, что вы просто присели на удачный кусок тренда, который в будущем может не повториться. А система в реальности — мусорная, тратит ваше время.

Executed orders — число сделок за все время тестирования. Стремитесь, получить хотя бы 30 сделок (чем больше выборка, тем более достоверная статистика).

Win/loss ratio — соотношение прибыльных и убыточных сделок.

Чем оно выше, тем лучше. По статистике myfxbook, прибыльные долгосрочные стратегии выдают 53% и более. С другой стороны, если у вас 90%+ — это опасный знак. Скорее всего, вы подстроили свою стратегию под историю.

Time in position — время, которые вы проводите в рынке.

Здесь важен баланс: слишком низкий процент — значит, у вас мало сделок, чтобы делать выводы о качестве стратегии; слишком высокий — вы рискуете поймать форс-мажор. Оптимально: от 30 до 60%.

Другие параметры очевидны.

Особое внимание уделяйте Max equity drawdawn — максимальная просадка по свободным средствам за весь период. По-хорошему, она должна укладываться в 35-40%. Не забывайте, что мы только проектируем стратегию, в реальности (а тем более — в будущем) всё сложится по-другому. Поэтому вам нужен хороший запас прочности. Если же система еле-еле умещается в просадку 50+, что ждёт её на рынке?

Отсюда прошу вспомнить правило о доходности и просадке (полученное из отчетов myfxbook): если мы говорим о предельной просадке 40%, то средняя рабочая просадка ожидается на уровне 20%, а средний доход в месяц — до 10%.

Я лично стараюсь проектировать стратегии, дающие не более 7-8% в месяц. Это создаёт дополнительную защиту для депозита и не позволяет обманывать себя. Меньше ожидания, меньше риск.

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

3. Создаём стратегию.

Я хочу, чтобы советник (а в результате мы получим свой советник, открывающий сделки по созданной стратегии) открывал сделки при пересечении скользящих средних. Для этого я задаю следующие условия.

Работаем с блоком открытия: Bar Opening — мы входим в сделку при открытии нового бара.

Нажимаю Add an Open Logic Condition. Слева открывается окно: сверху строка поиска, чуть ниже данные для ввода в конкретный индикатор. Мне нужно пересечение скользящих средних, в FSB предусмотрен специальный индикатор — Moving Average Crossover. Ввожу в строке поиска moving и выбираю его.


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

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

Я выбрал следующие данные:


Внизу нажимаем Ок.

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

4. Используем оптимизатор.

В Forex Strategy Builder встроен свой оптимизатор стратегий.

С его помощью мы попробуем подобрать показатели для нашего индикатора. Для этого переходим во вкладку Optimizer (слева в меню, под Editor), далее выбираем Settings:

Оптимизацию выполняем по критерию максимально доступного Win/loss ratio.

И там же возле Settings есть параметр Out of Sample — ставим 30% OOS (это создаст вариативность и не позволит нам подогнать индикатор под историю).

В центральном поле выбираем параметры, которые надлежит оптимизировать, а также начальные значения, конечные и шаг.

Сейчас мы работаем только со скользящими (другие параметры не трогаем, смещение у скользящих тоже не считаем).

Когда параметры задали, нажмите Start внизу страницы:


Forex Strategy Builder последовательно пройдётся по возможным комбинациям и выдаст оптимальные решения в той же таблице, где мы вводили исходные.

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

И, кроме того, теперь вы знаете, как пользоваться оптимизатором (это пригодится для шлифовки прибыльных стратегий в будущем).

Итак, после оптимизатора имеем все те же периоды. А график стратегии всё также идёт вниз.

Что делать?

Очевидно, что сама стратегия пока не то что сырая, она в принципе сливная. Её нужно доработать. Каким образом?

Для этих целей в FSB есть генератор.

5. Генератор стратегий.

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

Заходим в Generator (ниже Editor). Рядом вверху находим следующее меню:


Заходим в Common и делаем следующие настройки:


Таким образом, мы разрешаем генерировать сделки в двух направлениях, использовать Stop Loss, Take Profit и Break Even (это безубыток) с допустимым диапазоном от 30 до 150 пунктов (для каждого, безубыток до сотни), а также учитывать до двух индикаторов, как на открытии сделки, так и при выходе из неё.

Мы выбрали May use — может, но не обязан. Обратите внимание, что в итоговых стратегия мы можем столкнуться, например, со Stop Loss = 300 или больше пуктов. Почему так происходит? Всё просто: мы не задаём генератору жёстких рамок.

Нажимаем Ок и переходим к Settings и заполняем, как здесь:


Выбираем приоритетный фильтр — Win/loss ration, время поиска — 5 минут (если не ленитесь, поставьте 25 минут, результатов будет больше).

Жмём Ок.

Out of Sample — 30% OOS.

После этого в центральном поле нажимаем замок на нашем индикаторе пересечения скользящих — теперь генератор будет использовать его в качестве основы, подбирая варианты.


Когда это выполнили, нажимаем Start внизу страницы.

Прогресс вы можете наблюдать там же — на шкале. Дождитесь окончания (кнопка изменит свой цвет с красного на зелёный).

Результаты работы генератора собираются в хранилище. Зайдите в него с помощью вкладки в верхней части меню программы:

6. Коллекция стратегий.

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

Сортировка по знакомому нам Win/loss ratio. Показываем лучшие 100 стратегий.

Все стратегии должны отвечать нашему критерию соответствия.

Минимальный коэффициент Шарпа — 0.30. Минимальное качество стратегии — 1.6 (пограничное). Win/loss — не менее 0.54 (54% выигрышных сделок). Минимальный профит-фактор — 1.

Когда мы активировали эти фильтры, программа предоставит только те стратегии, которые им отвечают. Это здорово экономит время на обработку полученных данных.

У меня вышло 3 варианта.


Смотрим на их графики: очевидно, что вторая стратегия имеет существенные проблемы, её убираем.

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

Поэтому мой выбор — верхняя стратегия. Её кривая лучше всего укладывается в понятие нормального роста (без сильных скачков, равномерно, выглядит наиболее естественно).

Откроем её в новом окне.


Исходная стратегия серьёзно изменилась: теперь сделка открывается по новой логике (часовой High для покупок и Low для продаж), в сам параметр генератор тоже внёс оптимальные настройки. Кроме этого, изменился и принцип выхода из сделок — логика закрытия позиции по Stop Loss = 467 пунктов.

Вам не кажется, что это слишком круто? Четыреста шестьдесят семь пунктов убытка? Фишку сечём.

Следующая интрига — генератор позволил себе чуть подкрутить условия стратегии: вы видите, что он добавлял 1 лот к позиции? И лот на разворотах. Неслабо.

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

Я лично не уверен, что добавляя 1 лот при депозите $1000, можно рассчитывать на успешную торговлю в долгосрочном плане.

Корректируем.

Теперь подумаем, как привести в чувство конский стоп.

Заходим в Optimizer, в настройках выбираем оптимизацию по качеству торговой системы — нам нужно, чтобы система имела жизнеспособность на дистанции, а большой стоп вряд ли этому способствует).

Оптимизацию проводим только по величине Stop Loss.


Запускаем, ждём, и видим, что лучший размер — 30 пунктов. Уже лучше: для M15 подходит.

Почему нельзя было сразу генерировать стратегии с упором на качество (а не на win/loss)? Попробуйте сделать и так, и так (затем сравните результаты).

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


C одной стороны — мы за полтора года получили 50% прибыли, при этом просадка меньше 20%. Многим понравится эта стратегия, особенно вот это периодическое превышение средств над балансом. Стратегию сохраним, на всякий случай.

С другой — я хочу более гладкую стратегию, да и прибыль должна быть повыше.

Поэтому мы сделаем замену слабого звена — вместо выхода по Stop Loss я поставлю выход по Stop Limit (выбираете блок и перебором находите ту логику, которая влияет на график).

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

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

В рамках логики Stop Limit мы выходим из сделки либо при получении Stop Loss, либо Take Profit. Хорошо, теперь закинем эти данные в оптимизатор и найдём прибыльную комбинацию:


SL = 150 пунктов, а TP = 60. Слабовато, но не при Win/loss 91%. Ожидание будет отличным. Хотя я и не люблю такие сладкие данные.

Теперь посмотрим на график стратегии с новой логикой: уже лучше?


А вот и нет. Посмотрите: большая часть прибыли получена в начале пути и за счет нескольких резких рывков. Это — скорее стечение обстоятельств, а не заслуга стратегии (повторных подвигов на поздних этапах не видно). Кривая не выглядит нормальной, подъём неестественный, мы идём не в ту сторону.

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

Выходит, что вариант с выходом по Stop Loss (на 30 пунктов) был пока лучшим.

Но не настолько, чтобы я им торговал.

В подобных ситуациях я удаляю все стратегии из хранилища, захожу в Editor и заново настраиваю параметры стратегии в Forex Strategy Builder (продолжение на следующем уроке).


Комментариев нет к записи “Forex Strategy Builder — инструкция по созданиию и автоматизация торговых стратегий.”

  • Оставьте первый комментарий - автор старался

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: