Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3737

[Удален]  
Полезная теоретическая выдержка из вводной части:

Множества Жюлиа как аналогия "конкретных сценариев развития рынка"

Для каждого конкретного значения c (т.е. для каждой точки на "ландшафте Мандельброта") мы получаем свое уникальное множество Жюлиа. Это множество описывает динамику итераций для данного c: какие начальные точки z0​ останутся ограниченными (принадлежат заполненному множеству Жюлиа) и к каким аттракторам они сойдутся, а какие "убегут" в бесконечность.
Каждое конкретное множество Жюлиа для заданного c (который, в свою очередь, представляет собой "текущее состояние рынка" или "набор преобладающих параметров") может быть аналогией поведения рынка в этот конкретный момент времени или в данном "рыночном режиме".
  • Если c находится внутри множества Мандельброта (например, в одной из "луковиц" периода 3), то соответствующее множество Жюлиа будет связным и будет иметь притягивающие орбиты. На рынке это может означать, что, несмотря на кажущуюся сложность, существуют определенные "притягивающие" уровни, цены или циклы, к которым рынок постоянно возвращается или вокруг которых он колеблется. Это могут быть сильные уровни поддержки/сопротивления, средние значения, к которым цена стремится вернуться (т.е. реверсия к среднему).
  • Если же c находится вне множества Мандельброта, соответствующее множество Жюлиа является несвязным ("пылью Фату") и не имеет притягивающих орбит (кроме бесконечности). Это может быть аналогией крайне нестабильных или "взрывных" рыночных условий, когда цена не имеет никаких "якорей", стремится в бесконечность (например, гиперболический рост или коллапс), а любые малые возмущения приводят к непредсказуемому и радикально отличающемуся поведению. Любые торговые стратегии, основанные на "возврате к среднему", в таких условиях терпят крах.

[Удален]  
Таким образом, сколько бы маргинальный промптус не строил "иерархию структур в разных масштабах", всегда найдется более глобальный неучтенный масштабный фактор. А поскольку промптус отрицает важность статистики, то эти факторы будут постоянно лупить его по щекам. 
 
Осмелюсь спросить, все эти умные мысли на языке mql пытался кто-нибудь выразить?
[Удален]  
Inquiring #:
Осмелюсь спросить, все эти умные мысли на языке mql пытался кто-нибудь выразить?
Делал и скидывал в этой теме в архиве, 50 тысяч лет назад, попробуйте найти. 
 
Inquiring #:
Осмелюсь спросить, все эти умные мысли на языке mql пытался кто-нибудь выразить?
Он там костыль собрал

Вроде как форвард такой



Корявый, но хотя бы проявляет попытки стабилизации на дистанции
[Удален]  
Ivan Butko #:
Это обучение с подкреплением. 
Да, возможно, это хороший метод. Я пытался сказать немного о другом. Кроме того, что сам рынок можно поделить на несколько секторов, или как говорит Максим, режимов. 

Например, по месту текущей цены в тренде:
- на острие тренда, 
- откат тренда, 
- возврат из отката. 

Также сама сделка может быть открыта и закрыта в двух вариантах: по направлению тренда или против. Ну и закрыта она может быть либо в прибыли, либо в убытке. 

Итого имеем 6 состояний при открытии сделки и 12 состояний при закрытии. Очевидно невыгодные состояния можно сократить, в зависимости от стратегии. И для каждого из этих состояний должен быть свой анализатор, основанный на найденных ранее закономерностях. Будет этот анализатор собственным мозгом, жёсткими правилами ветвления в коде, нейросетью, или смешано - тут варианты на выбор.
 
То есть ведение сделки, это более сложное действие, чем открыл и забыл. И обучение соответственно, сложное. По-простому не взлетает, будем усложняться) 

 
Aleksei Stepanenko #:
То есть ведение сделки, это более сложное действие, чем открыл и забыл.

Вопрос лишь в том - в принципе формализуемо ли это в виде какой-то числовой функции. Например, в виде зависимости уровня стопа от цены и/или значений каких-то индикаторов.

Если да, то это в принципе возможно сделать в рамках МО. Если же речь о неограниченном полёте фантазии (неопределённом наборе используемых данных и способов закрытия сделок), то МО вряд ли применимо.

[Удален]  
Конечно, каждая закономерность должна давать на выходе да/нет с вероятностью>0.5. Иначе это всё не имеет смысла для длительной торговли
[Удален]  
6 состояний входа и 12 состояний выхода - это общая схема, которая описывает все возможные варианты.
Для конкретной стратегии это количество можно сильно сократить, чтобы не увязнуть в проклятии размерности. 
Например, для торговли на откате по тренду одно состояние входа:
- откат текущего тренда, направление сделки по тренду.
Для выхода из сделки подходят 4 состояния:
- движение на острие тренда по направлению сделки, сделка очевидно в плюсе,
- возврат из отката тренда, который движется по направлению сделки, нам интересно, только когда сделка в плюсе,
- откат тренда, который движется против сделки, тут два варианта: сделка в плюсе и сделка в минусе, чтобы иногда удачно выскочить из убыточной сделки с меньшим минусом.
Остальные состояния не выгодны, поскольку приводят к убыточной сделке. В этих состояниях ничего не предпринимаем и ждём.
Если что-то пошло не так - сработает стоп.
И так для любой стратегии. Есть в этом большой плюс: не входим и не выходим там, где не предусмотрено стратегией. Обработать 1+4 состояний, вместо 6+12 уже значительно проще, и уменьшает риск подгонки под историю.
Как-то так
[Удален]  

Заставил-таки работать ML на низких ТФ (здесь 5-и минутки EURUSD), форвард с 2025. Долго же мучился из-за низких скоростей обучения. Нашел обходные маневры :)

Еще надо на тики как-то перейти будет, как завещал Сабер. Головоломка серьезная.

Файлик кто хочет потестить. У меня уже праздники начались, не до этого :) По этой же причине мог где-то накосячить.

Статистика ошибок по часам, в боте лучшая модель (час 0)

Iteration: 0, Cluster: 0
R2: 0.9678626340659742
Iteration: 0, Cluster: 1
R2: -0.5447192261946558
Iteration: 0, Cluster: 2
R2: -0.7413142233465053
Iteration: 0, Cluster: 3
R2: -0.7660350578598544
Iteration: 0, Cluster: 4
R2: -0.7393956301369173
Iteration: 0, Cluster: 5
R2: -0.81466783528003
Iteration: 0, Cluster: 6
R2: -0.5328809526022955
Iteration: 0, Cluster: 7
R2: -0.4819371579645384
Iteration: 0, Cluster: 8
R2: -0.7194667685923652
Iteration: 0, Cluster: 9
R2: 0.036910760744729876
Iteration: 0, Cluster: 10
R2: -0.7410474652199799
Iteration: 0, Cluster: 11
R2: -0.23225385299559764
Iteration: 0, Cluster: 12
R2: -0.057876213851149605
Iteration: 0, Cluster: 13
R2: -0.11052210424152764
Iteration: 0, Cluster: 14
R2: 0.6999765381754814
Iteration: 0, Cluster: 15
R2: -0.041169637019330185
Iteration: 0, Cluster: 16
R2: 0.36503834380802713
Iteration: 0, Cluster: 17
R2: 0.33122571568647363
Iteration: 0, Cluster: 18
R2: 0.4300055781420823
Iteration: 0, Cluster: 19
R2: 0.6345313486858764
Iteration: 0, Cluster: 20
R2: 0.049646596894408423
Iteration: 0, Cluster: 21
R2: -0.42441372859884796
Iteration: 0, Cluster: 22
R2: -0.7335582640680249
Iteration: 0, Cluster: 23
R2: -0.9366929805616558