Итак. Всем привет. Прочитал я эту статью о сезонности на рынках и мне стало интересно.
Я взял котировки дневок с 1971-х годов и как в статье рассчитал средние движения за каждый день в году на всех этих годах. То есть, например, для даты 23.07 я сложил все диапазоны от открытия до закрытия и разделил на количество торговых дней, получив среднее арифметическое за все годы. Затем сделал так для каждой даты среднего года и нарисовал его график:

Я так понял, что чем резче движение, тем лучше, поэтому я написал сова, который просто открывает и закрывает сделки по указанным в настройках датам. Затем визуально, глядя на график среднего года, по каждой паре выписал даты, где был сильный движ, в какую сторону и где он заканчивался. Эти даты я и вбивал в советник. По некоторым парам вышло отлично, по некоторым ничего так, по каким-то совсем никак. И вот что получилось (тест с мм):

Тем не менее, сезонность на многих парах есть. И было бы неплохо ей пользоваться.
Я нормализовал движения среднедневные с помощью функции экселя НОРМАЛИЗАЦИЯ(). Это дало лучшую резкость графика.
Какие еще идеи есть? Ну, во-первых, на график среднего года можно накладывать разные индикаторы, чтобы отобрать лучшие участки. Есть ли в этом смысл? Пока не знаю. Осцилляторы пробовал - не катят. Вот так машка выглядит:

Это не совсем обычная машка, это TEMA (triple exponential moving average) с периодом 14. Она меньше всего отстает от цены и аккуратней ложится.
Можно выбирать куски по машке - по пересечениям.
Короче, я подумал, что привязка к конкретным датам - это не правильно. Переделал на дни года (365-6):

Потом я подумал, что смотреть только среднее движение в день неправильно. Ведь из 10 лет конкретный день 9 раз может закрыться чуток бычьим и 1 раз очень медвежьим, а в итоге среднее движение будет например 10+...+10-300=-210, то есть в среднем получили медвежий день. Косяк. Тогда я сделал отдельно график разницы количества бычьих и медвежьих дней. То есть бычьих 20, медвежьих 45, итоговая свеча на 25 "пунктов" вниз:

Потом я подумал - это тоже не совсем то. Ведь из 20 бычьих из предыдущего примера 19 могут быть сильно бычьими, а из 45 медвежьих ни одной с сильным движем. Тогда я тупо взял и перемножил разницы с движениями. Но если направления не совпадали, я писал 0:

А потом я сложил все вместе и получилось вот что:

И тут я подумал, а что если делать так - если все три линии в определенный номер дня растут, пишем 1. Если все падают - 1. Если расколбас - 0. И вот что получилось:

Так уже намного проще определять закономерности, как-то виднее все становится. Типа как ренко получилось. В итоге если график вниз, значит реально вниз, если вверх - значит вверх. А вот если ноль, то неизвестно куда - может на +100500 пунктов, а может примерно в нуле день закрыт. Короче - когда линия горизонтально, значит мы ничего не знаем, закономерности нет никакой и может в эти дни случиться что угодно.
В итоге остается только вычленить красивые максимально длинные отрезки в одном направлении максимально без горизонтальных участков и проверить каждый из них на истории в МТ4. Если зависимость сохранилась, значит хорошо, используем. Если нет - значит выкидываем отрезок.
Дальше алгоритм был такой. Я находил прямые отрезки (более менее) и забивал их в советник. Выставлял обе даты на оптимизацию (плюс минус 2-3 дня). То есть определили мы дату входа как 34 день года, поставили начало 31 примерно, шаг 1, стоп 37. Если оптимизация получилась лучше, чем было, оставлял и приступал к следующему участку. Почему оптимизация нужна? Не всегда визуально точно можно момент входа/выхода определить. Поэтому плюс минус пара дней - это нормально. Оптимизацию я проводил на периоде 2000-2017. Что дальше? По завершению этого крайне муторного процесса я провел тест фикс лотом 0.1 и получил неплохой результат:

И я подумал: надо бы посмотреть, как с мм будет. Риск в % не подходит тут, так как стопы очень длинные приходится делать (1500 старых пунктов). Поэтому я выбрал вариант 0,01 лота на каждую тыщу на депозите и такой вариант мм отлично вписался:

На обработку одной пары у меня ушло часа четыре...
Если кто заинтересован в подобном эксперименте, прошу помочь подготовить сеты. Подробный алгоритм я выложу по запросу.
Так. Тут бот и сеты на все пары, которые получились.
Вот тесты:
Фикс лот 0,1 с 2000 года

ММ 3% риск с 2000 года

В принципе, прикольно идет так. Вопрос - насколько похоже будет в реале. Ну, по идее должно примерно напоминать тест :d
В общем-то, слишком уж хороша картинка получается. Поэтому гложут определённые сомнения. Но если на демке будет походе на тест, это будет здорово. И тогда можно будет лопатить спреды, сначала в виде двух пар, потом и в виде трёх-четырёх. Просто работа немалая, если окажется, что подход работает, тогда можно будет и заняться.
Индикатор, как использовать в торговле. Например, вы решили открыть бай по фунту. Запускаете индикатор, двигаете две вертикальные красные линии на тот промежуток, который вас интересует, и видите:

А значит с вероятностью 70% ваша покупка обернется лосем.

Мониторинг в Роботесте
Старт: 19.02.2018 версия 1.4.3
deposit10000; pairs: CHF/JPY, GBP/USD, EUR/NZD, EUR/USD, AUD/JPY, EUR/GBP, EUR/JPY
Сеты к версиям 1.4

SeasonTrap.rar
SeasonalTrade_1.1.mq4
SeasonTrap_1.2_Silentspec.rar
SeasonTrap_1.4.1.mq4
Season_Trap_1.4_sets.zip
SeasonTrap_1.4.3.mq4



