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

 
Maxim Dmitrievsky #:

Исследовано.

https://www.mql5.com/ru/articles/18324

В этой серии статей советник представляет из себя управление позициями на основе полученных внешних сигналов.

Получение сигналов для МО-варианта - ONNX, для человека - EX5-библиотека, скомпилированная только из mq5-кода.


Три определения.

  1. Размер в байтах сигнальной библиотеки человека - Human_Signal_Size;
  2. Размер в байтах ZIP-сжатой сигнальной МО-библиотеки - ML_Signal_Size.
  3. Размер в байтах ZIP-сжатой обучающей выборки - Data_Size.

double Koef1 = ML_Signal_Size / Human_Signal_Size;
double Koef2 = ML_Signal_Size / Data_Size;

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

[Удален]  
fxsaber #:

В этой серии статей советник представляет из себя управление позициями на основе полученных внешних сигналов.

Получение сигналов для МО-варианта - ONNX, для человека - EX5-библиотека, скомпилированная только из mq5-кода.


Три определения.

  1. Размер в байтах сигнальной библиотеки человека - Human_Signal_Size;
  2. Размер в байтах ZIP-сжатой сигнальной МО-библиотеки - ML_Signal_Size.
  3. Размер в байтах ZIP-сжатой обучающей выборки - Data_Size.

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

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

Например слона можно описать тремя признаками или 50000000000 признаками. Какая модель больше подогнана? Нет ответа, потому что не введен критерий подогнанности. Допустим, по виду фарша из слона обе модели не смогут предсказать слона. 
[Удален]  
Maxim Dmitrievsky #:

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

Волны Эллиотта как раз их разные структуры описывают.

Потом даже эконофизику придумали, не знаю в каком она сейчас состоянии.
Придумал как исследовать такие структуры посредством МО. Написал несколько подходов, но ещё остались варианты. Как замена старой гипотезы эффективного рынка, мультифрактальная выглядит интересней. Есть специальные пакеты для проверки гипотезы. Перечитываю Мандельброта даже для этого, чтобы освежить.
 
Maxim Dmitrievsky #:
Придумал как исследовать такие структуры посредством МО. Написал несколько подходов, но ещё остались варианты. Как замена старой гипотезы эффективного рынка, мультифрактальная выглядит интересней. Есть специальные пакеты для проверки гипотезы. Перечитываю Мандельброта даже для этого, чтобы освежить.

Скрестить Мандельброта с МО - весьма интересный подход. У него, помнится, была генерация ценового фрактала с помощью трёхчастного генератора.

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

[Удален]  
Aleksey Nikolayev #:

Скрестить Мандельброта с МО - весьма интересный подход. У него, помнится, была генерация ценового фрактала с помощью трёхчастного генератора.

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

Постараюсь что-нибудь показать в скором времени, чего напридумывал :)
 
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.