랜덤 흐름 이론과 FOREX - 페이지 38

 

lapack.mqh 헤더 파일의 소스 코드를 첨부합니다. 역행렬 계산을 위한 기본 함수를 설명합니다.

사실, 모든 주석은 영어로 되어 있습니다(LAPACK 라이브러리의 소스 코드에서 가져옴).

기능은 여러 번 테스트되었습니다. Matlab에서 얻은 결과와 결과를 비교했습니다. 지금까지는 불만이 없습니다.

다음은 lapack.mqh 함수로 작업하는 예를 보여주는 스크립트 코드입니다.

 // Скрипт для демонстрации работы с функциями обращения квадратной матрицы.
//
#include < lapack . mqh >
//
#define n 4 //размерность матрицы
//+------------------------------------------------------------------+
//| Основная функция скрипта                                              |
//+------------------------------------------------------------------+
int start ()
{
    double a [ n ][ n ] ;
    int info , ipiv [ n ] ;
    string sM ;
//
// Заполняем матрицу
    a [ 0 , 0 ] = Close [ 0 ] ; a [ 0 , 1 ] = Close [ 1 ] ; a [ 0 , 2 ] = Close [ 2 ] ; a [ 0 , 3 ] = Close [ 3 ] ;
    a [ 1 , 0 ] = Close [ 4 ] ; a [ 1 , 1 ] = Close [ 5 ] ; a [ 1 , 2 ] = Close [ 6 ] ; a [ 1 , 3 ] = Close [ 7 ] ;
    a [ 2 , 0 ] = Close [ 8 ] ; a [ 2 , 1 ] = Close [ 9 ] ; a [ 2 , 2 ] = Close [ 0 ] ; a [ 2 , 3 ] = Close [ 1 ] ;
    a [ 3 , 0 ] = Close [ 2 ] ; a [ 3 , 1 ] = Close [ 3 ] ; a [ 3 , 2 ] = Close [ 4 ] ; a [ 3 , 3 ] = Close [ 5 ] ;
//
// Сохраняем матрицу для отображения
    sM = MatrixPrint ( a , n , n ) ;
//
// Вычисляем LU-разложение матрицы
    dgetf ( n , n , a , ipiv , info ) ;
    if ( info < 0 ) return ( 0 ) ;
    else if ( info > 0 ) { Print ( " U( " , info - 1 , " , " , info - 1 , " ) is exactly zero. Inverse can not be computed " ) ; return ( 0 ) ; }
//
// Вычисляем обратную матрицу, заданным LU-разложением
    dgetri ( n , a , ipiv , info ) ;
//
// Сохраняем обратную матрицу для отображения
    sM = sM + MatrixPrint ( a , n , n ) ;
//
// Выполним обратную операцию для проверки результатов вычислений
//
    ArrayInitialize ( ipiv , 0 ) ;
//
// Вычисляем LU-разложение обратной матрицы
    dgetf ( n , n , a , ipiv , info ) ;
    if ( info < 0 ) return ( 0 ) ;
    else if ( info > 0 ) { Print ( " U( " , info - 1 , " , " , info - 1 , " ) is exactly zero. Inverse can not be computed " ) ; return ( 0 ) ; }
//
// Вычисляем обратную матрицу, заданным LU-разложением
    dgetri ( n , a , ipiv , info ) ;
//
// Сохраняем матрицу для отображения
    sM = sM + MatrixPrint ( a , n , n ) ;
//
// Выводим на экран результат работы
    Comment ( sM ) ;
//
   return ( 0 ) ;
}
//+------------------------------------------------------------------+
//| Функция преобразования матрицы в строку для вывода на экран                    |
//+------------------------------------------------------------------+
string MatrixPrint ( double array [][] , int r , int c )
{
   int i , j ;
   string sComment = "" ;
//----
   for ( j = 0 ; j < r ; j ++ )
   {
      sComment = sComment + " \n " ;
      for ( i = 0 ; i < c ; i ++ ) sComment = sComment + DoubleToStr ( array [ j , i ] , 4 ) + " " ;
   }
   sComment = sComment + " \n " ;
//----
   return ( sComment ) ;
}
파일:
lapack.mqh  10 kb
 

수학 으로

기사 (Kalman의 응용 프로그램)를 작성할 수 없습니다. 뭔가를 쓴다면 잘해야 하고, 시간이 걸립니다.

나는 거기에서 링크를 찾았습니다. 간단한 예는 모든 것이 어떻게 작동하는지 보여줍니다.

http://www.navgeocom.ru/gps/kalman/

가장 간단한 예는 상수 값의 추정입니다. 그러나 이론 자체를 통해 행렬을 사용할 수 있습니다. 그리고 매트릭스에서 내가 말했듯이(그리고 위의 스레드에서 예제를 제공함) 가격, 속도, 가속도, 자기 상관 시간 등의 데이터를 따옴표로 묶을 수 있습니다. 한 쌍 이상으로 이 작업을 수행할 수 있습니다. 모든 통화를 한 번에 추가하고 거기에 상호 상관 관계를 추가하고 모든 관계와 예측해야 할 가장 중요한 것을 고려하여 현재 평가를 얻습니다. 측정값(따옴표), 상호 상관 관계와 오류(노이즈)가 있으며 모두 고유한 속도와 가속도로 움직입니다. 그리고 우리는 우리가 현재 어디에 있는지( USD 로 하자) 그리고 어디로 움직이고 있는지 정확히 알아야 합니다. XYZ 좌표( + bound, unbound, spherical, polar ...) 대신 EUR / USD , GBP / USD 가 있습니다. 등.

나는 일종의 성공했지만, 나는 그것에 3개월 이상을 보냈고 여전히 작업의 모든 부정확성을 포착할 수는 없으며 이것은 단지 하나의 통화에 대한 분석일 뿐입니다. 매트릭스 2*2. 그리고 취하면 12개의 통화 쌍, 각 3개의 방정식에 대해 행렬 36 * 36을 회전해야 하며 이는 이미 ....

다음은 월요일에 갭이 어떻게 작용했는지에 대한 예입니다.

그러나 어떤 식 으로든 초기화 오류를 잡을 수 없습니다. 때때로 잘못 시작되는 것을 수동으로보고 손으로 모든 것을 고칠 수 있고 올바르게 작동하도록 걷어차지만 기계에는 방법이 없지만 실제로 챔피언십에 참가하고 싶습니다 ((

 

예, 그는 격차를 잘 해소했습니다. 그리고 "그와 함께 챔피언십에 참가하고 싶다((" - 강력한 단어다. 2008년 초부터 8월까지 테스트할 때 EA가 이 필터의 5분 장벽을 넘을 것이라고 생각하는가?)

추신: 여기에서 이 5분 동안 규칙을 살펴보려고 했습니다. 아무것도 없습니다. "이러한 구성을 가진 MQ 컴퓨터에서 5분 이상"이라고 명확하게 말하는 것은 가능합니다. 그러나 이것은 포럼의 별도 스레드에서 논의된 것으로 기억합니다.

 
Mathemat писал (а) >> 를 썼습니다.

예, 그는 격차를 잘 해소했습니다. 그리고 "그와 함께 챔피언십에 참가하고 싶다((" - 강력한 단어다. 2008년 초부터 8월까지 테스트할 때 EA가 이 필터의 5분 장벽을 넘을 것이라고 생각하는가?)

추신: 여기에서 이 5분 동안 규칙을 살펴보려고 했습니다. 아무것도 없습니다. "이러한 구성을 가진 MQ 컴퓨터에서 5분 이상"이라고 명확하게 말하는 것은 가능합니다. 그러나 이것은 별도의 포럼 스레드에서 논의된 것으로 기억합니다.

표시기가 잘 작동합니다. 일반 승용차보다 나쁘지 않다

 

수학 으로

다음은 적합성 테스트인 정리입니다.

"정리: 프로세스는 그때서야 모델에 적합합니다.
잔차가 백색잡음일 때.
참고: 이것은 다음과 같은 경우에만 발생할 수 있습니다.
품질 문제는 외삽 문제로 정의됩니다."

 
DSP에서 선택 항목을 찾았습니다. Tikhonov V.I도 있습니다. 내가 자주 언급하는. 누군가가 도움이 될 것입니다 http://dsp-book.narod.ru/books.html
 
물론 유용할 것입니다. 모든 것을 마스터 할 시간을 찾는 것만 남아 있습니다. :)
[Deleted]  
Prival >> :

수학 으로

기사 (Kalman의 응용 프로그램)를 작성할 수 없습니다. 뭔가를 쓴다면 잘해야 하고, 시간이 걸립니다.

나는 거기에서 링크를 찾았습니다. 간단한 예는 모든 것이 어떻게 작동하는지 보여줍니다.

http://www.navgeocom.ru/gps/kalman/

가장 간단한 예는 상수 값의 추정입니다. 그러나 이론 자체를 통해 행렬을 사용할 수 있습니다. 그리고 매트릭스에서 내가 말했듯이(그리고 위의 스레드에서 예제를 제공함) 가격, 속도, 가속도, 자기 상관 시간 등의 데이터를 따옴표로 묶을 수 있습니다. 한 쌍 이상으로 이 작업을 수행할 수 있습니다. 모든 통화를 한 번에 추가하고 거기에 상호 상관 관계를 추가하고 모든 관계와 예측해야 할 가장 중요한 것을 고려하여 현재 평가를 얻습니다. 측정값(따옴표), 상호 상관 관계와 오류(노이즈)가 있으며 모두 고유한 속도와 가속도로 움직입니다. 그리고 우리는 우리가 현재 어디에 있는지( USD 로 하자) 그리고 어디로 움직이고 있는지 정확히 알아야 합니다. XYZ 좌표( + bound, unbound, spherical, polar ...) 대신 EUR / USD , GBP / USD 가 있습니다. 등.

나는 일종의 성공했지만, 나는 그것에 3개월 이상을 보냈고 여전히 작업의 모든 부정확성을 포착할 수는 없으며 이것은 단지 하나의 통화에 대한 분석일 뿐입니다. 매트릭스 2*2. 그리고 취하면 12개의 통화 쌍, 각 3개의 방정식에 대해 행렬 36 * 36을 회전해야 하며 이는 이미 ....

다음은 월요일에 갭이 어떻게 작용했는지에 대한 예입니다.

그러나 어떤 식 으로든 초기화 오류를 잡을 수 없습니다. 때때로 잘못 시작되는 것을 수동으로보고 손으로 모든 것을 고칠 수 있고 올바르게 작동하도록 걷어차지만 기계에는 방법이 없지만 실제로 챔피언십에 참가하고 싶습니다 ((

T3_mod. 공백 앞에 따옴표가 충분하지 않습니다. 어떤 곳에서는 Kalman이 더 잘 작동하지만 매우 유사합니다.
[Deleted]  
FOXXXi >> :

... 견적 데이터를 다른 방식으로 제시하기만 하면 됩니다.

진드기가 도착한 시간에 따라 간격이 있는 저울을 만들어 보신 분 계신가요? 한번 보시면 재미있을 것 같습니다.

 

MS XL을 사용하면 이보다 더 쉬운 것은 없습니다.