вторник, 11 февраля 2020 г.

Все-таки это не бред.

"SWT-метод. Бред какой-то..."
Под таким заголовком я опубликовал небольшую заметку около месяца назад.
В ней были описаны результаты тестирования кода канальной торговой стратегии. Запустил тест на коротком интервале и был шокирован.
Я много тестирую, но добиться такого можно только с подгонкой под историю, чем я принципиально не занимаюсь.
Запустил тест на годичном интервале. Шок от результата, показанного на рисунке, стал еще больше.


Начал разбираться в чем причина и выяснилось, что это результат банальной ошибки. От усталости я что-то напутал в логике торгового алгоритма, причем напутал так, что не мог понять, что этот алгоритм делает.
Хотел добиться определенного результата, логичного и понятного, а получил неизвестно что. Сидел, чесал затылок, находясь в полном ступоре. Мозги плавились от непонимания. Но делать нечего, надо разбираться.

Непонимание было в том. что сделано. Я даже выбросил код, потому что пользоваться тем. чего не понимаешь, чревато большими неприятностями.
Вправил мне мозги киевлянин, родом из Белоруссии, Геннадий Мазур, очень хороший человек и отличный программист, который помогал мне своими консультациями, когда я только начинал писать коды.
Кстати, Геннадий - автор одного из самых популярных среди форексников торговых роботов.
-"Ты и Грааль так когда-нибудь выбросишь, только потому что не поймешь, как он работает", - сказал Геннадий.


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

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

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

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

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

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

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

В общем, смотрите сами:

Риски высоковаты, единственное ограничение - кредитное плечо счета и уровень стоп-аут 60%. Но это все-таки стресс-тест. И тут все сделано по правилам и никаких логических ошибок и просчетов. А при реальной торговле риски можно и уменьшить.

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

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

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