Комбинационный скальпинг: сделки из прошлого или повышение результативности будущих сделок

31 марта 2021, 19:30
Oleg Besedin
5
1 121

Видит Форекс, я не хотел этого, но мне пришлось стать скальпером. Мало того, я не хотел быть трейдером и, уж тем более, разработчиком автоматизированных торговых систем.  А зря! В итоге исследовательской работы получилась вечная технология, которую можно передавать по наследству детям, внукам, правнукам и другим пра-пра.  Только лишь бы не было "весь мир в труху". Лишь бы работали биржи.


О методе наглядно

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

Визуально это может выглядеть так:

Рисунок 1. Цифровое поле истории торгов

Рисунок 1. Цифровое поле истории торгов


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

О методе подробно

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

Рисунок 2.  Внедрение экспираций в систему разработки торговой системы

Рисунок 2.  Внедрение экспираций в систему разработки торговой системы


Пример:

Если протестировать на истории торгов, например, разворотную свечу "молот", то в каких-то случаях произойдёт предполагаемый разворот тренда и сделки будут прибыльными, а в других случаях всё наоборот - разворота нет и паттерн сработает в убыток.  Но, если тот же "молот" протестировать на одинаковую для всех ордеров дистанцию в пипсах и на 5 минут экспирации (т.е. на 5 минут с открытия ордера до принудительного его закрытия), на 6 минут, на 7 минут, на 8 минут и т.д.  То в итоге окажется, что, например, на 7-ой минуте (Рисунок 1) будут наилучшие результаты - тренд всегда разворачивался и не было ни одного сбоя паттерна. В этом случае необходимо найти отличия на графике у результатов 7-ой минуты со всеми остальными и описать это отличие в код.  Соответственно, можно сделать наоборот: найти отличия плохих результатов, формализовать их и запретить советнику открывать сделки по этим условиям.  В итоге советник сможет работать со следующими прогнозами результативности из года в год:


Рисунок 3. Результаты тестера стратегий (EURUSD, M1, лот минимальный)

Рисунок 3. Результаты тестера стратегий (EURUSD, M1, лот минимальный)


Математическая модель

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

Цифровые мерки (в пипсах) — это длина свечи, тело свечи и направление (цвет) свечи. Тени не участвуют.

Рисунок 4. Цифровые мерки (в пипсах) - это  длина свечи, тело свечи и цвет свечи.

Рисунок 4. Цифровые мерки (в пипсах) — это длина свечи, тело свечи и цвет свечи


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

«Длина свечи 1 и тело свечи 1 и Цвет свечи 1, 
длина свечи 2 и тело свечи 2 и Цвет свечи 2,
длина свечи 3 и тело свечи 3 и Цвет свечи 3»


Пример цифровых мерок комбинаций, снятых с прибыльных сделок, которые повторялись на истории торгов по одному и тому же торговому алгоритму, по одной экспирации и дистанции тейк-профита:

22.04.2009 03:23;R  31 - 26;G  13 - 3;G  21 - 11

07.10.2009 20:55;R  31 - 13;G  13 - 3;G  21 - 11

25.11.2011 19:48;R 22 - 2;G  13 - 3;G  21 - 11

07.06.2013 10:59;R  16 - 13;R  13 - 3;G  21 - 11

26.02.2019 18:35;R  22 - 9;G  13 - 3;G  21 - 11

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

22.04.2009 03:23;R  31 - 26;G  13 - 3;G  21 - 11

07.10.2009 20:55;R  31 - 13;G  13 - 3;G  21 - 11

25.11.2011 19:48;R 22 - 2;G  13 - 3;G  21 - 11

26.02.2019 18:35;R  22 - 9;G  13 - 3;G  21 - 11

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

R  (22-31) - (2-26);G  13 - 3;G  21 - 11

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

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

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


Пример прогнозируемой результативности советника с одной и той же базой комбинаций по годам:

2016


2017


2018


2019


2020

Рисунок 5. Пример тестирования советника с одной и той же базой комбинаций по годам.

Рисунок 5. Пример тестирования советника с одной и той же базой комбинаций по годам



Почему "скальпинг"?

Первоначальное название было: "комбинационный апгрейд" или "метод комбинационной модификации", "метод комбинационного апгрейда". Но, "Р - реальность" всё расставила на свои места.

Во-первых: Скальпинг (от англ. scalping — снимать скальп, срезать верхнюю часть). Предлагаемый метод не меняет и не заменяет существующие торговые системы и алгоритмы, а лишь позволяет срезать некую часть "айсберга - макушки" этих систем, чтобы оголить их цифровые внутренности и раскрыть их результативный механизм.

Во-вторых: увы, на данный момент времени, метод может распространять свою силу и эффективно работать только внутри торгового дня и на малых дистанциях в пипсах. И причина эта в истории торгов. Рынок подходит абсолютно любой, хоть акции или фантики TumbaUmba Ltd, но важна история торгов. Чем длиннее архив, тем качественнее отбор. Самый подходящий вариант – это валютный рынок. К сожалению, у Форекс было историческое событие, которое сделало бесполезной большую часть архива котировок. Это переход дилинговых центров в 2009 году с четырёхзначного на пятизначное квотирование, т. е. переход брокеров на котировки с пятью знаками после запятой, так называемый «пятизнак». Вся прежняя история торгов оказалась за бортом. А для метода оказалась пригодной история лишь с 2009 года.

Вот этот исторический момент перехода с "четырёхзнака" на "пятизнак":


Рисунок 6. Исторический момент смены котирования у одного из брокеров (20 - 23 февраля 2009 г.). Над свечами указаны размеры длины в пипсах.

Рисунок 6. Исторический момент смены котирования у одного из брокеров (20 - 23 февраля 2009 г.).
Над свечами указаны размеры длины в пипсах


Что не так? Почему не годятся котировки «четырёхзнака»?
Всё просто. Представьте, что в мире до 2009 года не было миллиметров.  Метры были, сантиметры были, а миллиметров не было.  Любой миллиметр округляли либо до нуля, либо до сантиметра.  Прикольно?  Грубо говоря так и было на Форекс: свечей длиной в 15 миллиметров не существовало, а на графике их отображали длиной ровно 1 или 2 сантиметра.  Ух, какая точность цифровых мерок! (сарказм)


В итоге, на данный момент для обработки истории актуальны лишь последние свыше 4 400 000 минут любого инструмента Форекс.  И представьте себе, из этих 4-х миллионов баров пока полный охват статистики лишь у свечей с самым распространенным размером длины (от 5 до 40 пипсов) и у дистанций "гарантированного" тейк-профита от 5 до 15 пипсов. Дальние дистанции тейк-профита и большие размеры свечей имеют значительные пробелы в своей статистике из-за короткой истории торгов. Т.е. архив котировок последнего десятилетия ещё только в самой начальной стадии пригодности для технологии.  Некий начальный минимум, который нормально охватывает лишь начальные цифровые мерки комбинаций свечей и дистанций.

Рисунок 7. Приблизительное соотношение роста «гарантированных» дистанций тейк-профита с естественным  течением и пополнением истории торгов

Рисунок 7. Приблизительное соотношение роста «гарантированных» дистанций тейк-профита с естественным течением и пополнением истории торгов


Пройдёт 10 лет и полноценный охват будет у свечей длиной 50 пипсов и у дистанций в 20 пипсов. Ещё 10 лет и пробелы исчезнут у 60-ти пипсовых свечей и более длинных дистанций. И так с каждым десятилетием торгов. Именно поэтому метод пока годится лишь для скальпинга. По длинным дистанциям торговли слишком много тёмных пятен и шума в архиве котировок. Нет, можно, конечно, делать выборку на дистанцию тейк-профита в 1000 пипсов (100 пунктов), но результативность апгрейда торговой системы будет такая же, как и без него.  Наглядно о чём речь продемонстрирует следующий разрез (состав одной из баз комбинаций):

Pips Combinations


 10  12 384
 20  4 045
 30  2 768
 40  820
 50  236
 60  76
 70  24
 80  12
 90  7
100  3
110  1
120  0

Т.е. после 100 пипсов пока ещё пустота. Слишком мало статистики.  А верхние цифры означают следующее, что из всей имеющейся истории торгов, в более чем 4 400 000 минут,  12 384 комбинаций из них на дистанции тейк-профита в 10 пипсов ни разу не стали убыточными.  Это как в примере про пушку:  4 400 000 раз стрельнули минусовыми зарядами на расстояние в 10 пипсов и ни разу не попали в 12 384 построек из плюсов. На расстоянии в 20 пипсов осталось стоять уже лишь 4045. А на расстоянии в 60 пипсов из 4 400 000 выстрелов промахнулись лишь 76 раз.


Недостатки метода

  1. Обработка истории торгов
    С одной стороны истории пока мало, но, с другой стороны, даже с тем архивом, который доступен, не всё так просто. 4 400 000 единиц тестирования — это тестирование на истории по цифровой мерке какой-либо одной длины свечи. А самые "ходовые" свечи в торгах сейчас – от 5 до 40 пипсов.  Соответственно, полноценная выборка по истории происходит по всем их длинам (35 циклов от 5 до 40): 


    4 400 000 * 35 = 154 000 000 раз. 

    И это только по направлению Buy. Столько же операций обработки надо сделать и по направлению Sell. А ведь главное необходимо добавить переборы экспираций, допустим, поминутно 30 минут.  Получается всего:


    154 000 000 * 30 *2 = 9 240 000 000 операций.

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

  2. Периодическое обновление базы комбинаций
    С течением торгового времени история котировок меняется и дополняется. Соответственно, могут изменяться результаты и корректироваться комбинации цифровых мерок. Поэтому базу комбинаций необходимо периодически обновлять. Речь идёт о периодичности в неделях или месяцах.

  3. Зависимость от поставщика истории торгов
    Это самый главный недостаток. У метода абсолютная зависимость от истории торгов. У каждого брокера свой поставщик котировок или своя "кухня". Единой истории нет. Поэтому база комбинаций успешных сделок будет работать только у того брокера, у которого и взята его история торгов. 


    Вот наглядная иллюстрация результатов тестирования одной и той же базы комбинаций у разных брокеров:

    №1: Результаты тестирования у брокера, история торгов которого легла в основу базы комбинации

    №2: Сторонний брокер


    Рисунок 8. Наглядная иллюстрация результатов тестирования одной и той же базы комбинаций у разных брокеров (с 2018.06 по 2021.03, EURUSD, М1). Первый пример: брокер, история торгов которого легла в основу базы комбинаций. Второй пример: сторонний брокер


    Рисунок 8. Наглядная иллюстрация результатов тестирования одной и той же базы комбинаций у разных брокеров (с 2018.06 по 2021.03, EURUSD, М1).
    Первый пример: брокер, история торгов которого легла в основу базы комбинаций. Второй пример: сторонний брокер


  4. Соответственно, также абсолютная зависимость от инструмента торгов
    Например, база комбинаций выявленная с EURUSD не будет совместима с работой на AUDUSD или любой другой паре. И наоборот.



Заключительная часть

Несмотря на простоту идеи предлагаемый метод не прост. Главную сложность представляет реализация обработки объёмных данных. Другой неприятной особенностью является зависимость от брокера (его истории торгов) и чувствительность к спреду инструмента торгов. Несмотря на то, что с помощью метода можно увеличить результативность любой торговой системы – это не Грааль. Пока ещё не Грааль. Увы, минусовые сделки бывают, потому что история торгов ещё слишком мала и имеет пробелы, которые будут заполняться только в будущем. Между тем, это "вечная" технология, которая работает на любом финансовом рынке, где можно получить доступ к истории торгов. При этом с каждым новым годом или десятилетием результативность базы комбинаций только повышается, а количество комбинаций растёт.

 

Бонус для тех, кто прочитал статью до конца

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

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

Так вот, оказывается, существуют "гармоничные" цифры этой балансировки. И это не цифры Фибоначчи, Ганна или какие-то ещё. Похоже это какие-то свои согласованные значения движений и корректировки курса на рынке Форекс.

Цифры отклонений и балансировки (в пипсах):

37.5 
75
112.5
150
187.5
225

Подтверждение тому, что EURUSD основа для корректировки остальных пар, дало следующее исследование: если по торговому алгоритму (любому) открывать ордера в произвольном времени и месте флета внутри дня, то курс в большинстве случаев сначала уходит на некоторое отклонение, но затем корректируется обратно к месту открытия. И именно у EURUSD это отклонение обычно не превышает 37.5 пипсов, и только иногда доходит до 75 пипсов и выше. У остальных пар эти отклонения не стабильны и зачастую зашкаливают выше стандартного отклонения в 37.5 пипсов. В общем, самое уверенное поведение по этим значения только у EURUSD.  Остальные зависимые пары ведут себя "нервознее".

Также эти цифры отвечают за целевое движение курса внутри дня. 225 пипсов – это стандартная расчётная единица для одного движения до цели в день (в одну сторону).  Бывают движения в 4-5 единиц в день (в одну сторону), т.е. 900 – 1125 пипсов. В основном, 2-3 единицы целевого движения в день.

На графиках цифры целевого движения ведут себя следующим образом:



А теперь тоже самое, но с полной раскладкой значений:



Ещё пример: 



И тоже самое, но с полной раскладкой значений:



Для дневного и недельного таймфреймов стандартная расчётная единица целевого движения равна:  

37.5 * 60 минут = 2250 пипсов

Что гармоничным образом, включает в себя 10 расчётных единиц целевых движений на минутных таймфреймах (2250/225).

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

Спасибо за внимание!

Последние комментарии | Перейти к обсуждению на форуме трейдеров (5)
Aleksandr Masterskikh
Aleksandr Masterskikh | 31 мар 2021 в 20:52

Похоже, эти таинственные 3 свечи накануне входа, о которых говорит автор - это обычный фрактал, который и является начальной поддержкой локального тренда.

А значит именно этот фрактал и является основой некоторой прибыльности сделок. И никакой мистики!

Maxim Dmitrievsky
Maxim Dmitrievsky | 31 мар 2021 в 20:59
похоже, что нельзя тестировать такие стратегии на сгенерированных тиках
Aleksandr Masterskikh
Aleksandr Masterskikh | 1 апр 2021 в 16:19
Maxim Dmitrievsky:
похоже, что нельзя тестировать такие стратегии на сгенерированных тиках
Я тоже так считаю, в том числе потому, что при поиске закономерности используются абсолютные значения амплитуды свечей и их частей. Это некорректно, так как на разных таймфреймах эти величины, естественно, будут разные из-за разного масштаба. А нужен поиск закономерностей, то есть относительных, а не абсолютных соотношений.
Daniil Kurmyshev
Daniil Kurmyshev | 2 апр 2021 в 12:33
Статья понравилось, все грамотно и по полочкам, автору спасибо!

Последнее время очень мало качественных статей, коротко и по делу)

С предыдущими комментариями согласен, нужны относительные единицы измерения, например проценты или провести нормализацию свечей от 0 до 1 с запасом относительно максимальной с запасом

Тогда, возможно удастся найти саму закономерность без жёсткой привязки к символу и его масштабам.
Zhongquan Jiang
Zhongquan Jiang | 7 апр 2021 в 14:54
where is the demo code?
Прочие классы в библиотеке DoEasy (Часть 69): Класс-коллекция объектов-чартов Прочие классы в библиотеке DoEasy (Часть 69): Класс-коллекция объектов-чартов
С этой статьи начнём разработку класса-коллекции объектов-чартов, который будет хранить в себе список-коллекцию объектов-чартов с их подокнами и индикаторами в них, и даст возможность работы с любыми выбранными чартами и их подокнами, или сразу со списком из нескольких чартов одновременно.
Прочие классы в библиотеке DoEasy (Часть 68): Класс объекта-окна графика и классы объектов-индикаторов в окне графика Прочие классы в библиотеке DoEasy (Часть 68): Класс объекта-окна графика и классы объектов-индикаторов в окне графика
В статье продолжим разрабатывать класс объекта-чарта. Добавим к нему список объектов-окон графика, в которых в свою очередь будут доступны списки индикаторов, размещённых в них.
Советы профессионального программиста (Часть I): Хранение, отладка и компиляция кодов. Работа с проектами и логами Советы профессионального программиста (Часть I): Хранение, отладка и компиляция кодов. Работа с проектами и логами
Советы профессионального программиста о методах, приемах и вспомогательных инструментах, облегчающих программирование.
Шаблон проектирования MVC и возможность его использования Шаблон проектирования MVC и возможность его использования
В статье рассматривается распространенный шаблон MVC, возможность, плюсы и минусы его применения в программах на MQL. Его суть в том, чтобы "разделить" имеющийся код на три отдельных компонента: Модель (Model), Представление (View) и Контроллер (Controller).