Вещий сон алготрейдера.

18 февраля 2026, 21:34
fxsaber
0
29

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


Существование прибыльной торговой системы.


Говоря про прибыльную торговую систему, необходимо ставить цель: какую хочется получить прибыль и к какой дате.
Человек конечен, поэтому существование даты получения прибыли разумно. Размер прибыли тоже важен, т.к. стратегия Buy&Hold может принести прибыль, но, наверное, не всегда удовлетворительную не только по размеру, но и по психологическим ощущениям.

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

Итак, для разговора про прибыльные торговые системы важны три показателя: конечная дата, размер конечной прибыли и стабильность ее получения с момента запуска ТС.

Да, мы не усложняем рассуждения разговорами о начальном капитале, его загрузками, возможной нехватке ликвидности и т.д. У нас все в виртуале - адекватные (без читинига и кривых ценовых данных) бэктесты в Тестере.

Т.е. мы хотим, чтобы на демо-счете сделки всегда совпадали с бэктестом и мат. ожидание превосходило реальные потенциальные издержки: комиссии, проскальзывания, частичные исполнения, реджекты, свопы.

Ну вот столько ввОдных приходится учитывать или игнорировать, чтобы просто только начать рассуждать о прибыльных ТС.

Ну а теперь попробуем ответить на вопрос, существуют ли прибыльные ТС. Для этого поставим задачу: должна быть стабильная (на глаз) прибыль с 2026 по 2046 год. А вот ее размер пока упустим.

Наверное, через ваши руки прошло много ТС, но все они выброшены в мусорку. Однако, с высокой вероятностью, все они прибыльные!


Доказательство.


Представим, что вам дали архив котировок за следующие 20 лет. Вы не можете их посмотреть, как и не можете увидеть сделки бэктеста на них. Но вот делать бэктесты и видеть кривую прибыли - можете! В общем, есть что-то, что не дает вам реинженирить из такой возможности историю котировок. В остальном - свобода.

Невозможность видеть котировки будущего - это из нашей реальности. Делать на них такой бэктест - это не совсем о знании будущего.

Вы не знаете, обманули ли вас или нет. Все ли эти 20 лет соответствуют будущему или только часть. Поэтому действуете аккуратно и осторожно.

У вас есть настоящая история за предыдущие 10 лет. И вы впервые в раздумьях, а нужна ли она вам...


Что делать?


Вроде, просто, но жадность (назовем это чувством совершенства) требует взять все доступные ТС и начать оптимизировать их на 20-ти годах будущего. Вы хотите на выходе красивую кривую прибыли с высоким значением в конце. Как сделать красоту? Конечно, через соответствующий критерий оптимизации для эвристического алгоритма поиска. Но вы сталкиваетесь с дилеммой: чем красивее кривая, тем меньше прибыль на конце. Помните, что нужна осторожность. Может, "заработать" за первый год много, рискнув? Или, может, риск значительно снизить, но "заработать" через 10 лет, а то и все 20? Непростое решение.

Тестер-оптимизатор, как на зло, еще показывает не один хороший набор входных параметров, а целую тучу. Какой выбрать?
И тут вы вспоминаете про 10 лет прошедшей истории. И на всякий случай делаете оптимизацию на интервале 10+20 лет. Снова получаете кучу хороших вариантов, но становится спокойнее что ли.

Понятно, что почти любая ранее забракованная ТС даст хороший результат. Т.е. она прибыльная для вас. Надо только знать нужные значения входных параметров.


Типы ТС.


Что делать с сеточными ТС и мартингейлами? Быстро смекаете, что сеточник можно представить, как портфель ТС, где каждая ТС отвечает за свое колено/доливку. У нас есть 20 лет будущего, зачем тогда торговать портфелем таких ТС, когда эффективнее использовать только одну? Поэтому переходите на ТС, которая имеет всегда не более одной сделки для открытой позиции.

И это видится, вроде, разумным...

Входные параметры ТС.


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

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

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

Машинное обучение.


А почему бы не использовать МО? Обмануться и создать ТС через МО на основе 20 лет будущего вы себе не даете из соображений, что степеней свободы у такой ТС будет почти бесконечно. Т.е. случайное попадание в прибыль имеет нулевой шанс. Поэтому МО натравливаете на 10 лет имеющегося прошлого. А готовую модель уже оптимизируете на 20 годах будущего.

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

Поэтому решаете все же остаться не с black-box, а с классикой в виде алгоритмической ТС, у которой степени свободы более осознаваемы.


Случайность.


А что, если будущие 20 лет - случайность? Или там есть какие-то закономерности? Если есть, то хотелось бы почаще на них нарываться, чтобы спокойнее было.

Вы оптимизируете только за первый год и получаете в среднем 1000 сделок. Оптимизируете за первые два года, и на выходе - 1500 сделок. Три года - 2100 сделок. И видите, что чем больше лет в интервале оптимизации, тем меньше частота сделок. И вам приходит в голову мысль, что некой мерой случайности может быть скорость понижения частоты сделок при увеличении интервала оптимизации. Чем выше скорость - тем больше случайности в ряду (+ ТС).


На время улетаете в предположение, что так можно отличить СБ-ряд (случайное блуждание - нет закономерностей) от реального ценового ряда. И снова спускаетесь на землю.


Закономерность.


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

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

Фильтр.


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

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

Реализуете эту идею.



Пересечение.


... и вы проснулись.