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

 
Maxim Dmitrievsky #:
Постараюсь что-нибудь показать в скором времени, чего напридумывал :)
Надеюсь на статью - почитаем, вдохновимся на новые подвиги на граальном фронте )
 

Для информации новое для машинного обучения в MQL5:

  • MQL5: Добавлен оператор матричного умножения @. Он работает по правилам линейной алгебры и позволяет умножать матрицы и векторы, а также выполнять скалярное произведение векторов.

    Матричное умножение (матрица × матрица)
    matrix A(2, 3);
    matrix B(3, 2);
    matrix C = A @ B; // Результат: матрица C размером [2,2]
    Матричное умножение (матрица × вектор)
    matrix M(2, 3);
    vector V(3);
    vector R = M @ V; // Результат: вектор R из 2 элементов
    Матричное умножение (вектор × матрица)
    matrix M(2, 3);
    vector V(1, 2);
    vector R = V @ M; // Результат: вектор R из 3 элементов
    Скалярное произведение (вектор × вектор)
    vector V1(1, 3), V2(1, 3);
    double r = V1 @ V2; // Результат: скаляр
  • MQL5: Добавлен параметр ddof в методы Std, Var и Cov. Он определяет число степеней свободы, которые вычитаются из делителя при вычислении стандартного отклонения. Для Std и Var параметр по умолчанию равен 0, для Cov — 1.

    Как влияет ddof:

    • По умолчанию ddof=0, и стандартное отклонение вычисляется для всей совокупности (population standard deviation).
    • Если ddof=1, то используется выборочное стандартное отклонение (sample standard deviation), что корректирует оценку для конечной выборки (используется в статистике при работе с подмножеством данных).

  • MQL5: Добавлены новые методы OpenBLAS:

    Вычисление собственных значений и собственных векторов

    • EigenTridiagonalDC — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием алгоритма «разделяй и властвуй» (LAPACK-функция STEVD).
    • EigenTridiagonalQR — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием QR-алгоритма (LAPACK-функция STEV).
    • EigenTridiagonalRobust — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием алгоритма MRRR (Multiple Relatively Robust Representations) (LAPACK-функция STEVR).
    • EigenTridiagonalBisect — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием алгоритма бисекции (LAPACK-функция STEVX).
    • ReduceToBidiagonal — приводит общую вещественную или комплексную матрицу размером m×n к верхней или нижней бидиагональной форме B с помощью ортогонального преобразования: Q**T * A * P = B. Если m≥n, то B является верхней бидиагональной матрицей, иначе — нижней бидиагональной. (LAPACK-функция GEBRD).
    • ReflectBidiagonalToQP — генерирует ортогональные матрицы Q и P**T (или P**H для комплексных типов), определяемые методом ReduceToBidiagonal при приведении вещественной или комплексной матрицы A к бидиагональной форме: A = Q * B * P**T.  Q и P**T представляют собой произведения элементарных отражателей H(i) или G(i) соответственно. (LAPACK-функции ORGBR, UNGBR).
    • ReduceSymmetricToTridiagonal — приводит вещественную симметричную или комплексную эрмитову матрицу A к трехдиагональной форме B с помощью ортогонального преобразования подобия: Q**T * A * Q = B.  (LAPACK-функции SYTRD, HETRD).
    • ReflectTridiagonalToQ — генерирует ортогональную матрицу Q, которая представляет собой произведение n-1 элементарных отражателей порядка n, возвращаемых функцией ReduceSymmetricToTridiagonal.

    • LinearEquationsSolution — вычисляет систему линейных уравнений с квадратной матрицей коэффициентов A и несколькими правыми частями.
    • LinearEquationsSolutionTriangular — вычисляет систему линейных уравнений с квадратно-треугольной матрицей коэффициентов A и несколькими правыми частями.
    • LinearEquationsSolutionSy — вычисляет систему линейных уравнений с симметричной или эрмитово сопряженной матрицей A и несколькими правыми частями.
    • LinearEquationsSolutionComplexSy — вычисляет систему линейных уравнений с комплексной симметричной матрицей A и несколькими правыми частями.
    • LinearEquationsSolutionGeTrid — вычисляет систему линейных уравнений с симметричной или эрмитово сопряженной положительно определенной матрицей A и несколькими правыми частями.
    • LinearEquationsSolutionSyPD — вычисляет систему линейных уравнений с общей (несимметричной) трехдиагональной матрицей коэффициентов A и несколькими правыми частями.
    • LinearEquationsSolutionSyTridPD — вычисляет систему линейных уравнений с симметричной трехдиагональной положительно определенной матрицей A и несколькими правыми частями.
    • FactorizationQR — вычисляет QR-разложение общей матрицы размера m на n: A = Q * R (LAPACK-функция GEQRF).
    • FactorizationQRNonNeg — вычисляет QR-разложение общей матрицы размера m на n: A = Q * R, где R — верхнетреугольная матрица с неотрицательными элементами на диагонали (LAPACK-функция GEQRFP).
    • FactorizationQRPivot — вычисляет QR-разложение общей матрицы размера m на n с перестановкой столбцов: A * P = Q * R (LAPACK-функция GEQP3).
    • FactorizationLQ — выполняет LQ-разложение общей матрицы размером m на n: A = L * Q (LAPACK-функция GELQF).
    • FactorizationQL — выполняет QL-разложение общей матрицы размером m на n: A = Q * L (LAPACK-функция GEQLF).
    • FactorizationRQ — выполняет RQ-разложение общей матрицы размером m на n: A = R * Q (LAPACK-функция GERQF).
    • FactorizationPLU — вычисляет LU-разложение общей матрицы A размером m на n с использованием частичного выбора ведущего элемента и перестановок строк (LAPACK-функция GETRF).
    • FactorizationPLUGeTrid — вычисляет LU-разложение общей (несимметричной) трехдиагональной матрицы A размером n на n с использованием частичного выбора ведущего элемента и перестановок строк (LAPACK-функция GTTRF).
    • FactorizationLDL — вычисляет разложение для вещественной симметричной или комплексной эрмитовой матрицы A с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана (LAPACK-функции SYTRF и HETRF).
    • FactorizationLDLSyTridPD — вычисляет разложение симметричной положительно определенной (для вещественных данных) или эрмитовой положительно определенной (для комплексных данных) трехдиагональной матрицы A (LAPACK-функция PTTRF).
    • FactorizationCholesky — вычисляет разложение для вещественной симметричной или комплексной эрмитовой положительно-определенной матрицы A (LAPACK-функция POTRF).
    • FactorizationCholeskySyPS — вычисляет разложение Холецкого с полным выбором ведущего элемента (complete pivoting) для вещественной симметричной (или комплексной эрмитовой) положительно полуопределенной матрицы A размером n на n (LAPACK-функция PSTRF).

  • MQL5: Добавлена функция и метод Random для заполнения случайными значениями векторов и матриц. Случайные значения генерируются равномерно в заданном диапазоне.
    static vector vector::Random(
      const ulong   size,       // длина вектора
      const double  min=0.0,    // минимальное значение
      const double  max=1.0     // максимальное значение
       );
    
    static matrix matrix::Random(
      const ulong   rows,       // количество строк
      const ulong   cols        // количество столбцов
      const float   min=0.0,    // минимальное значение
      const float   max=1.0     // максимальное значение
       );
  • Документация по MQL5: Основы языка / Операторы / Оператор произведения матриц
    Документация по MQL5: Основы языка / Операторы / Оператор произведения матриц
    • www.mql5.com
    Оператор @ в языке MQL5 реализует матричное умножение по правилам линейной алгебры. Он позволяет выполнять произведение матриц, векторов и...
     
    Renat Fatkhullin #:
    Для информации новое для машинного обучения в MQL5:

    Спасибо!

    Планируется ли когда-нибудь сделать сортировку матриц/векторов?

    [Удален]  
    Aleksey Nikolayev #:
    Надеюсь на статью - почитаем, вдохновимся на новые подвиги на граальном фронте )
    Там примерно что-то наподобие генераторов с разным кол-вом изломов, через анализ симметричных структур (зеркально перевёрнутых). То есть у генератора есть центр (аттрактор) и ветви в прошлое и будущее, которые часто симметричны. Поиск таких структур через корреляцию/энтропию. Структур много, поэтому обобщение с помощью МО. Первые результаты немного порадовали, но надо причесть код и подход. 
    Проблема с подглядыванием сначала была, потом я от нее избавился, и все равно получилось лучше, чем при классических подходах классификации ВР, когда ряд воспринимается слева направо и в нем ищутся какие-то корреляции.
    Основная суть этой теории же в том, что ВР имеет долгую память и более старые наблюдения могут влиять на будущее поведение сильнее, чем самые новые.
     

    This is an interesting book: chaos and fractals in financial markets by j. orlin grabbe  https://www.scribd.com/document/49383020/Chaos-Fractals-in-Financial-Markets

    https://en.wikipedia.org/wiki/James_Orlin_Grabbe

    Chaos & Fractals in Financial Markets | PDF | Chaos Theory | Attractor
    Chaos & Fractals in Financial Markets | PDF | Chaos Theory | Attractor
    • www.scribd.com
    Chaos and Fractals in Financial Markets, index to articles, by J. Orlin Grabbe. Problems and answers. Hazardous world. Coin flips and Brownian motion. Coastlines and Koch curves. Jam session. Gamblers, zero-sets, and fractal mountains. Futures trading and the gambler's ruin problem.
     
    Вроде бы подходящая математика для скальпинга. МО туда тоже вроде бы можно прикрутить. Популярное изложение подхода пока не попадалось.
    Hawkes Models And Their Applications
    • arxiv.org
    This largest section examines the newer variants of Hawkes which were not originally covered in our book (Laub et al., 2022) . We will define each process and describe the key innovations that they bring, and (space-permitting) say some words (and mainly supply references) for each processes’ inference, simulation, theoretical results, and so...
    [Удален]  

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

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

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


    [Удален]  
    МО просто обобщает сигналы по наборам разных паттернов. Ещё могут быть похожие паттерны с противоречащими сигналами, это тоже предстоит ещё отдельно обработать :)
    [Удален]  
    Ещё могут быть подобия в разных масштабах (мультифрактальные), их тоже надо дополнительно искать. Например, длина одного 100 баров, а другого 50, но они очень похожи. Тогда через пропуски или интерполяцию выравнивать длины.
     
    Получается поиск шаблона на продолжение тренда, а не всякие там двойные вершины, головы/плечи и т.п., которые уже давно не работают. Только тренд - твой френд))