Teoria do Fluxo Aleatório e FOREX - página 38

 

Estou anexando o código fonte do arquivo de cabeçalho lapack.mqh. Ele descreve as principais funções para calcular a matriz inversa.

Todos os comentários estão em inglês (extraídos de fontes da biblioteca LAPACK), acho que você vai entender.

Verifiquei a operação das funções mais de uma vez. Eu comparei seus resultados com os obtidos em Matlab. Até agora, eu não tive nenhuma crítica.

Aqui está o código do roteiro onde mostro um exemplo de como usar as funções 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);
}
Arquivos anexados:
lapack.mqh  10 kb
 

para Matemática

Você não será capaz de escrever um artigo (sobre a aplicação de Kalman). Se você quiser escrever algo, você tem que fazê-lo bem, e isso leva tempo.

Encontrei ali um link, com um exemplo simples mostrando como tudo funciona.

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

O exemplo é o mais simples - é uma estimativa de um valor constante. Mas a própria teoria permite que você opere com matrizes. E como eu disse (e dei um exemplo acima no ramo), você pode colocar os seguintes dados sobre cotações na matriz - preço, velocidade, aceleração, tempo de autocorrelação, etc. Você pode fazer isso não com apenas um par, mas todas as moedas de uma vez, adicionar correlação mútua lá e obter uma estimativa atual com todas as correlações e, o mais importante, prever ... (como no hardware de navegação, muitos sensores, satélites (leia-se moedas), muitas medidas (cotações), há correlação mútua e erros (ruídos) e tudo se move com sua própria velocidade e aceleração), e precisamos saber exatamente onde estamos agora (que seja USD) e onde está se movendo para lá coordenadas XYZ( + relacionadas, não relacionadas, esféricas, polares ...) temos em vez disso EUR/USD, GBP/USD etc.д.

Parece que tenho algo funcionando, mas passei mais de 3 meses trabalhando nele e ainda não consigo pegar todas as imprecisões do trabalho, e isso é apenas a análise de uma moeda. A matriz é 2*2. E se tomarmos 12 pares de moedas, para cada 3 equações, teremos que girar a matriz 36*36, que já é

Aqui está um exemplo de como a lacuna funcionou na segunda-feira.

Mas não consigo detectar erros de inicialização. Manualmente vejo que às vezes começa incorretamente, posso consertá-lo manualmente e chutá-lo para funcionar corretamente, mas não posso fazê-lo automaticamente e quero participar do campeonato com ele ((

 

Sim, ele tem se saído bem no intervalo. E sobre "Eu gostaria de competir com ele no campeonato ((" - essa é uma afirmação forte. Você acha que o Expert Advisor passará a barreira dos 5 minutos durante os testes desde o início de 2008 até agosto?

P.S. Aqui tentou ver nas Regras sobre esses 5 minutos. Não há nada. Embora pudesse ser claramente explicitado: "não mais que 5 minutos em um computador MQ com configuração de sucção e tal". Mas lembro que foi mencionado em tópicos separados do fórum.

 
Mathemat писал (а) >>

Sim, ele tem se saído bem no intervalo. E sobre "Eu gostaria de competir com ele no campeonato ((" - essa é uma afirmação forte. Você acha que o Expert Advisor passará a barreira dos 5 minutos durante os testes desde o início de 2008 até agosto?

P.S. Aqui tentou ver nas Regras sobre esses 5 minutos. Não há nada. Embora pudesse ser claramente explicitado: "não mais que 5 minutos em um computador MQ com configuração de sucção e tal". Mas lembro-me de ter sido mencionado em tópicos de fórum separados.

O indicador funciona rápido. Não pior que um MQ normal.

 

para Matemática

Aqui está um teorema, um teste de adequação.

"Teorema: Um processo é então e somente então adequado ao modelo,
"quando a falta de relação é ruído branco".
Nota: Isto só pode acontecer quando
O problema de qualidade é determinado pelo problema de extrapolação".

 
Encontrei uma coleção em DSP. Há também o Tikhonov V.I., ao qual me refiro com freqüência. Talvez alguém o considere útil http://dsp-book.narod.ru/books.html
 
É claro que isso virá a calhar. Tudo o que resta é encontrar o tempo para juntar tudo :)
 
Prival >>:

to Mathemat

Статью (по применению Калмана) видно не получиться написать. Если что то писать, то нужно делать это хорошо, а на это нужно время.

Нашел ссылку там, на простом примере показано как все работает.

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

Пример самый простой, оценка постоянной величины. Но сама теория позволяет оперировать с матрицами. А в матрицу как я говорил (и приводил пример выше по ветке) можно вложить следующие данные по котировкам – цена, скорость, ускорение, время автокорреляции и т.д. Можно это делать не с одной парой, а сразу все валюты, добавить туда взаимную корреляцию и получать текущую оценку с учетом всех взаимосвязей и что самое важное прогнозировать … (по аналогии с навигационной аппаратурой, куча датчиков, спутников (читать валют), куча измерений (котировок), есть взаимная корреляция и ошибки (шумы) и все это движется со своей скоростью и ускорением), и нам нужно точно знать где мы сейчас находимся (пусть будет USD) и куда он движется там координаты XYZ( + связанные, несвязанные, сферические, полярные …) у нас вместо этого EUR/USD, GBP/USD и т.д.

У меня кое-что вроде получилось, но потратил на это более 3-х месяцев, и до сих пор не могу отловить все неточности работы, и это только анализ одной валюты. Матрица 2*2. А если взять, 12 валютных пар, на каждую 3 уравнения, то надо будет вращать матрицы 36*36, а это уже ….

Вот пример работы, как отработался гэп в понедельник.

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

T3_mod. Faltam-me as citações antes do intervalo, Kalman é melhor em alguns lugares, mas são muito semelhantes. Acho que é possível criar uma máquina com uma vantagem estatística em pontos de inflexão, basta uma maneira diferente de apresentar os dados das citações.
 
FOXXXi >> :

...basta uma forma diferente de apresentar os dados da cotação.

Alguém já tentou construir uma escala com intervalos de tempo? Seria interessante olhar para ela.

 

Não há nada mais fácil se você usar MS XL.

Razão: