Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

IncMatrix.mqh - библиотека для MetaTrader 4

Просмотров:
3055
Рейтинг:
(9)
Опубликован:
2012.08.11 09:51
Обновлен:
2014.04.21 14:55
\MQL4\Include\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Набор функций для решения матриц.

Матрица задается в одномерном массиве, подряд: элементы первой строки, второй и т.д. Последние два элемента массива определяют размер матрицы: число колонок и число строк.

Пример:

double m[]={1,2,3,
4,5,6,
2,3}; // Матрица из двух строк и трех колонок.

Функции библиотеки:

  • void MxSetSize(double & aA[],int aRows,int aCols) - Установка размера матрице aA, aRows - количество строк, aCols - количество колонок;

  • void MxSetValue(double & aA[],int aRow,int aCol,double aValue) - Установка значения (Value) элемента матрицы aA, расположенного в строке aRow и колонке aCol;

  • int MxGetSize(double & aA[],int & aRows,int & aCols) - Возвращает количество элементов матрицы aA, по ссылка возвращает: aRows - количество строк, aCols - количество колонок;

  • int MxGetRows(double & aA[]) - Возврат количества строк матрицы aA;

  • int MxGetCols(double & aA[]) - Возврат количества колонок матрицы aA;

  • double MxGetValue(double & aA[],int aRow,int aCol) - Получение значения элемента матрицы aA, расположенного в строке aRow и колонке aCol;

  • void MxCopy(double & aFrom[],double & aTo[]) - Копирование матрицы из масива aFrom в массив aTo;

  • bool MxCheckForAdd(double & aA[],double & aB[]) - Поверка подходимости двух матриц по размерам для сложения (полня эквивалентность по высоте и ширине);

  • bool MxCheckForMult(double & aA[],double & aB[]) - Поверка подходимости двух матриц по размерам для умножения (к-во столбцов матрицы aA равно ко-ву строк матрицы aB);

  • bool MxCheckIsSq(double & aA[]) - Поверка является ли матрица квадратной;

  • void MxAddNum(double & aA[],double aNum,double & aR[]) - Прибавление числа aNum к матрице aA, результат (матрица) возвращается по ссылке в маcсиве aR;

  • void MxMultNum(double & aA[],double aNum,double & aR[]) - Умножение матрицы aA на число aNum, умноженная матрица возвращается по ссылке в маcсиве aR;

  • void MxAddMx(double & aA[],double & aB[],double & aAB[]) - Сложение матриц aA и aB, результат возвращается по ссылке в aAB;

  • void MxMultMx(double & aA[],double & aB[],double & aAB[]) - Умножение матрицы aA на матрицу aB, результат возвращается по ссылке в aAB;

  • void MxT(double & aA[],double & aT[]) - Транспонирование матрицы aA, транспонированная матрица возвращается по ссылке в aT;

  • void MxMxAA(double & aA[],double & aAA[]) - Получение матрицы алгебраического дополнения. aA - исходная матрица, aAA - алгебраическое дополнение (возвращается по ссылке);

  • bool MxB(double & aA[],double & aB[]) - По ссылке возвращает обратную матрицу aB от матрицы aA, сама функция возвращает true при существовании обратной матрицы или false, если обратной матрицы не существует;

  • void MxTriangle(double & aA[],double & aT[]) - По ссылке возвращает треугольную матрицу aT от матрицы aA;

  • void MxM(double aA[],int aRow,int aCol,double & aM[]) - Получение минора от матрицы aA по строке aRow и колонке aCol, минор возвращается по ссылке в массиве aM;

  • double MxDefM(double & aA[],int aRow,int aCol) - Возвращает значение определителя минора матрицы aA по строке aRow и колонке aCol;

  • void MxMxM(double & aA[],double & aM[]) - Получение матрицы миноров (матрица со значениями определителей миноров). aA - исходная матрица, aM -матрица с определителями миноров (возвращается по ссылке);

  • double MxDef(double & aA[]) - Возвращает значение определителя матрицы aA;

  • int MxRank(double & aA[]) - Возвращает ранг матрицы aA;

  • int MxRankDRC(double & aA[],double & aDef,int & aRow,int & aCol) - Возвращает ранг матрицы aA и по ссылкам возвращает: aDef - значение определителя, aRow, aCol - строка и колонка минора с определителем не равным 0;

  • void MxCopyCol(double & aFrom[],double & aTo[],int aFromCol,int aToCol,double & aR[]) - Копирование колонки с индексом aFromCol из матрицы aFrom в матрицу aTo в колонку с индексом aToCol, результат возвращается по ссылке в aR;

  • void MxCopyRow(double & aFrom[],double & aTo[],int aFromRow,int aToRow,double & aR[]) - Копирование строки с индексом aFromRow из матрицы aFrom в матрицу aTo в колонку с индексом aToRow, результат возвращается по ссылке в aR;

  • void MxAppendCol(double & aA[],double & aC[],double & aR[]) - Расширение матрицы aA путем добавления к ней колонки aC, результат возвращается по ссылке в aR;

  • bool MxSystemKramer(double & aK[],double & aY[],double & aX[]) - Решение системы уравнений методом Крамера. aК - матрица коэффициентов (квадратная), aY - столбец значений, aX - строка результатов;

  • bool MxSystemInverse(double & aK[],double & aY[],double & aX[]) - Решение системы уравнений через обратную матрицу. aК - матрица коэффициентов (квадратная), aY - столбец значений, aX - строка результатов;

  • bool MxSystemGauss(double & aK[],double & aY[],double & aX[]) - Решение системы уравнений методом Гаусса. aК - матрица коэффициентов (квадратная), aY - столбец значений, aX - строка результатов;

  • int MxSystemCheck(double & aK[],double & aY[]) - Проверка системы уравнений. aК - матрица коэффициентов (квадратная), aY - столбец значений. Возвращаемое значение: -1 - нет решений, 0 - одно решение, 1 - бесконечное множество решений;

  • void MxAlert(double & aA[],int aDigits=2,string aCaption="") - Вывод всей матрицы в одном алерте. aA - матрица, aDigits - количество знаков после запятой, aCaption - заголовок сообщения;

  • void MxAlert2(double & aA[],int aDigits=2,string aCaption="") - Вывод матрицы в алерт построчно, сроки выводятся снизу вверх, затем, заголово, т.е. в окне алерта матрица нормально ориентирована: заголовок сверху, затем строки по порядку;

  • void MxAlert1Str(double & aA[],int aDigits=2) - Вывод массива матрицы строкой в алерт.

Скрипт sMatrix.mq4 - это пример использования библиотеки для решения системы линейный уравнений методом Крамера, обратной матрицы и Гаусса.

Pamm-Index Pamm-Index

Торговля индексами: Platinum, Gold, GoldP2.

Пипсовщик pips4.0 Пипсовщик pips4.0

Пипсовщик с ненавязчивыми проявлениями мартина, точнее долива в зависшую позицию.

History History

Отображает на графике совершенные сделки (подобно тестеру).

History Draw History Draw

Советник содержит функции, которые в процессе торга отрисовывают историю сделок как в тестере стратегий.