Обсуждение статьи "Угловой анализ ценовых движений: гибридная модель прогнозирования финансовых рынков"

 

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

Что такое угловой анализ финансовых рынков? Как использовать углы движения цен и машинное обучение для точного прогнозирования с точностью 67? Как совместить регрессионную и классификационную модель с угловыми признаками и получить работающий алгоритм? Причем тут Ганн? Почему углы движения цен являются хорошим признаком для машинного обучения?

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

Взгляните на обычный график EURUSD. Что вы видите? Линии и бары? А теперь представьте, что каждый сегмент между двумя последовательными точками образует определённый угол с горизонтальной осью. Этот угол имеет точное математическое значение. Положительный угол означает восходящее движение, отрицательный — нисходящее. Чем больше угол, тем круче движение цены.

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

Автор: Yevgeniy Koshtenko

 

3 публикации подряд, я поражаюсь, "у дураков мысли схожи" :-)

делаем примерно одно и то-же, одновременно и независимо 

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

про Гана скриншотить не буду, но по моему убеждению - там всё неплохо и там угол=типичная волатильность естественных циклов.
интуитивно,по личному опыту и обладая тем что под рукой, Ган вывел то что вывел. зато объективнее чем MACD :-)

 
а 24 бара это просто пример?
 

И еще вопрос, если сможете ответить.

При выгрузке результатов в ONNX и реализации советника возникла проблема. При передаче данных с размерностью {1,31} в первую классификационную модель проблем нет, получаю значения

2025.04.22 19:47:28.268 test_gann (ORDIUSDT,M5) directionUpDn = 1   directionStrength=0.44935011863708496


, а вот при передаче этих же данных во вторую модель получаю все время ошибку: ONNX: parameter is empty, inspect code '›°‚˜ :àh½5E' (705:10). Ни один из передаваемых параметров не равен 0. 

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 0, input_matrix[0][i] = -12.92599868774414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 1, input_matrix[0][i] = -12.92599868774414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 2, input_matrix[0][i] = -42.55295181274414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 3, input_matrix[0][i] = 72.71257781982422

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 4, input_matrix[0][i] = 74.29901123046875

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 5, input_matrix[0][i] = -61.42539596557617

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 6, input_matrix[0][i] = 56.164878845214844

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 7, input_matrix[0][i] = -80.11347198486328

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 8, input_matrix[0][i] = 79.91580200195312

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 9, input_matrix[0][i] = -48.93017578125

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 10, input_matrix[0][i] = 80.48663330078125

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 11, input_matrix[0][i] = -79.71015930175781

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 12, input_matrix[0][i] = -45.92404556274414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 13, input_matrix[0][i] = -82.36412048339844

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 14, input_matrix[0][i] = -56.164878845214844

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 15, input_matrix[0][i] = -10.630552291870117

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 16, input_matrix[0][i] = 62.323272705078125

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 17, input_matrix[0][i] = 13.0

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 18, input_matrix[0][i] = 10.0

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 19, input_matrix[0][i] = -12.92599868774414

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 20, input_matrix[0][i] = -61.48434829711914

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 21, input_matrix[0][i] = -36.735313415527344

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 22, input_matrix[0][i] = -23.80649185180664

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 23, input_matrix[0][i] = 0.3333333432674408

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 24, input_matrix[0][i] = 6.955999851226807

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 25, input_matrix[0][i] = 0.029581977054476738

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 26, input_matrix[0][i] = -0.5281187295913696

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 27, input_matrix[0][i] = 0.4025301933288574

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 28, input_matrix[0][i] = 420.0

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 29, input_matrix[0][i] = 641.6666870117188

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) i = 30, input_matrix[0][i] = 0.6545454263687134

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) ONNX: parameter is empty, inspect code '›°‚˜ :àh½5E' (705:10)

2025.04.22 19:39:38.482 test_gann (ORDIUSDT,M5) Ошибка выполнения: 5805

Может поможете с ошибкой (просторы интернета не помогли)




 

в нетроне сама модель отображается нормально

Файлы:
 

Метрики для bar назад = 60, вперед = 30

 

Train Accuracy: 0.9200 | Test Accuracy: 0.8713 | GAP: 0.0486

Train F1-score: 0.9187 | Test F1-score: 0.8682 | GAP: 0.0505


На коротких дистанциях CatBoost ничего хорошего не дает, модель переобучается

 
При выполнении кода требует установку seaborn:
import seaborn as sns