neophyte
neophyte личный блог
15 октября 2015, 11:29

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-метода
11 Комментариев
  • Marcello
    15 октября 2015, 12:04
    Название поста прикольное
  • Art Riddim
    15 октября 2015, 12:42
    Мне бы так, за 2 недели уже смочь «написать первую, еще корявую, но уже полностью работоспособную модель прототипа, которая могла открывать и закрывать сделки по нужному алгоритму» :)
    Терпения Вам)
      • Art Riddim
        15 октября 2015, 14:00
        Николай Скриган, видимо где-то я не туда свернул, раз молодой и крепкий, а мозгов не хватает)))
        Здоровья Вам!
  • Андрей Иванушкин
    15 октября 2015, 16:01
    Подход на мой взгляд очень правильный,
    очень смущает тест по ценам открытия. Как результаты по другим моделям? по минутным барам или по всем тикам?

    Так же важно, что тестер в МТ дает НЕ ВЕРНЫЕ результаты ввиду того что изначально писАлся для форекс контор, а не для реального рынка с реальными контрагентами.
      • Андрей Иванушкин
        16 октября 2015, 09:46
        Николай Скриган, вижу суть понимаешь, я только предупредить, удачи!
  • Fillio
    15 октября 2015, 16:12
    Вам бы кач-во моделирования подтянуть… оно вообще n/a, это плохо. Желательно 90% сделать.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн