Блог им. neophyte

SWT-метод: робот пошел в детский сад.

SWT-метод: робот пошел в детский сад. 
23 сентября, вконец вымотанный агрессивной ручной торговлей, я задумался: А может все-таки построить робот?

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

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

Что меня останавливало, так это отсутствие под рукой грамотного программиста, которому я доверяю, и длительный процесс неизбежных корректировок и доработок, поскольку как все реализовать в автомате я и сам до конца не представлял. Это при удачном варианте с выбором программиста.
При неудачном выборе исполнителя оставался вариант с расходами и продуктом, который ни в малейшей степени не соответствует первоначальным ожиданиям, а скорее всего вообще не будет работать.
Поэтому пришлось вспомнить старое правило: «Хочешь сделать быстро и правильно — делай сам!»

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

С роботом задача немного сложнее… Однако не боги горшки обжигают. Я вспомнил знакомого канадского лесоруба, который до 30 лет шастал по лесам, а потом ему это надоело и он решил стать программистом. И стал. И стал зарабатывать в несколько раз больше, чем имел, когда рубил лес. Конечно, он не супер-пупер специалист, но не обязательно быть звездой. Достаточно уметь делать необходимую работу.
И я решил делать сам.

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

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

Робот покинул ясельную группу и хоть и не вышел из детсадовского возраста, но уже вполне самостоятелен.
Ему нужно только задать извне размер реального кредитного плеча, ограничивающего риски торговли, размер риска на сделку и количество однотипных позиций, которые можно открыть по торговым сигналам.
Основываясь на этих параметрах и параметрах рынка робот может рассчитать волатильность инструмента и с учетом результатов расчета определить объем сделки при заданном риске, рассчитать размер и расположение ордеров стоп-лосс и тейк-профит и адаптивного трейлинг-стопа, ежели таковой будет использоваться. В общем случае использование трейлинг-стопов уменьшает риски торговли, но за счет значительного снижения прибыльности, так что тралить или не тралить — вопрос открытый. За все приходится платить.

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

Сегодня немного поэкспериментировал по необходимому уровню детализации движений рынка при определении торговых сигналов и по оптимизации риска.
Программа изначально делалась для торговли трендов недельного цикла — в системе обозначений SWT-метода — локальный тренд.
Рабочим таймфреймом для уточнения точек входа предполагался таймфрейм М1. Но в ходе тестов и первоначальной эксплуатации робота выяснилось, что это не очень удачный выбор: избыток торговых сигналов быстро загружает максимально возможный объем позиции. При этом основная часть объема оказывается открытой с опережением и не по лучшим ценам, а лучшие сигналы, поступающие в дальнейшем, игнорируются из-за достижения предельной загрузки торгового счета.

Результаты сравнительного анализа  работы робота на таймфреймах М1 М5 и М15 приведены на рисунках внизу.
Период тестирования —  01.08.2015-13.10.2015.
Инструмент — EURUSD.
Ограничения по кредитному плечу — не более 1:50.
Робот торгует и восходящие и нисходящие движения по локальному тренду. Направление трендов старших уровней иерархии не учитывается.
Параметры торговой стратегии на всех таймфреймах неизменны. Единственный параметр, с которым мы немного поиграли — это риск на сделку.

Сравнительный анализ тестов показывает, что по первому впечатлению оптимальным таймфреймом для работы робота является М5. Насколько можно доверять этому факту — жизнь покажет.
Повторюсь, что торгуемый тренд не зависит от выбора таймфрейма — это всегда тренд недельного цикла, назависимо от того, на какой график сброшен робот..
Таймфрейм в некоторых пределах определяет алгоритм выбора точек входа в рынок, изменяясь на таймфреймах от М1 до М15. Для таймфреймов старше М15 точки входа в рынок тоже не зависят от выбора таймфрейма и определяются графиком масштаба М15.

SWT-метод: робот пошел в детский сад. 

SWT-метод: робот пошел в детский сад. 

SWT-метод: робот пошел в детский сад. 





Всем Удачи!!!

SWT-метод. Теория и практика применения
Параметры волн SWT-метода
★4
11 комментариев
Название поста прикольное
avatar
Marcello, учимся…
avatar
Мне бы так, за 2 недели уже смочь «написать первую, еще корявую, но уже полностью работоспособную модель прототипа, которая могла открывать и закрывать сделки по нужному алгоритму» :)
Терпения Вам)
avatar
Art Riddim, я старый больной человек. :)
У вас и возможностей и времени впереди больше :)
avatar
Николай Скриган, видимо где-то я не туда свернул, раз молодой и крепкий, а мозгов не хватает)))
Здоровья Вам!
avatar
Art Riddim, терпение и труд. Я над своим проектом работаю лет 12. :)
Хотя если занимаешься тем, что нравится, это трудно назвать работой.
avatar
Подход на мой взгляд очень правильный,
очень смущает тест по ценам открытия. Как результаты по другим моделям? по минутным барам или по всем тикам?

Так же важно, что тестер в МТ дает НЕ ВЕРНЫЕ результаты ввиду того что изначально писАлся для форекс контор, а не для реального рынка с реальными контрагентами.
Андрей Иванушкин, картинки красивые, но я примерно представляю им реальную цену. :)
В тесте по тикам примерно то же самое. Считает долго, поэтому после ряда проверок экспресс тестирование провожу по барам. Да и в советнике у меня идет контроль бара и сделки производятся по цене открытия бара, следующего за сформировавшимся сигналом. Так что здесь особого подвоха ожидать не приходится.
Разница в тестах на тиках и по барам есть. За счет того, что тестер активирует стопы и тейки по внутренним ценам баров.

Тестер в целом дает адекватный результат. Проверка в режиме визуализации показывает полное соответствие сделок с торговым алгоритмом. Кроме того, аналогичное моделирование проводилось на Метасток. Результаты совпадают в рамках погрешности задания спреда (в тестере МТ4 и в Метастоке спред моделируется по разному). И вообще, я очень высокого мнения о тестере МТ4. Ругают его те, кто злоупотребляет оптимизацией.
У меня нет оптимизируемых параметров. Единственное, что я определяю, это критические риски (уровень загрузки капитала), после которых советник склонен к краху. Уровень достаточно высок. Можно работать с реальным плечом 1:50 при риске на сделку до 50%. По крайней мере в тестах так.

P.S. Мне более важныы результаты теста в реальном времени.
avatar
Николай Скриган, вижу суть понимаешь, я только предупредить, удачи!
Вам бы кач-во моделирования подтянуть… оно вообще n/a, это плохо. Желательно 90% сделать.
avatar
Максим Дмитриевский, в этом режиме качество не аттестуется. Потому что нет аттестуемого параметра. А на тиках 90%
avatar

теги блога neophyte

....все тэги



UPDONW
Новый дизайн