ランダムフロー理論と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
 

数学に

カルマンの応用について)記事が書けなくなる。何かを書こうと思ったら、うまくやらなければならないし、時間もかかる。

そこに、その仕組みがわかる簡単な例のリンクがありました。

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

この例は最も単純なもので、定数値の推定値です。しかし、理論そのものは、行列を操作することができます。そして、私が言ったように(上の枝に例を挙げました)、相場に関する次のようなデータ、つまり価格、速度、加速度、自己相関時間などを行列に入れることができるのです。これは1つのペアだけでなく、 、すべての通貨を一度に行うことができます。そこに相互相関を追加し、すべての相関を持つ現在の推定値を取得し、最も重要なのは、予測することです...(ナビゲーションハードウェアのように、多くのセンサー、衛星(通貨を読む)、多くの測定値(引用符)、相互相関とエラー(ノイズ)があり、それはすべて独自の速度と加速度で移動)、我々は今どこにいる(それが米ドル であることができます)正確に知る必要があり、それはそこにXYZ 座標(+関連、非関連、球状、極...)我々は代わりにEUR / USDGBP / USD などを持って移動されている。д.

何か動作するようになったようですが、3ヶ月以上費やして、まだすべての不正確な作業をキャッチすることができず、それも1つの通貨の分析だけです。行列は2*2です。そして、 12通貨ペアとすると、3つの方程式ごとに、36*36の行列を回転させなければならず、これはすでに......です。

ここでは、月曜日に行われたギャップの事例を紹介します。

しかし、初期化エラーが捕らえられない。手動だとたまに起動がおかしくなるのがわかるので、手動で修正してキックすればちゃんと動くようになるのですが、自動でできないので、これで選手権に参加したいです((

 

そうですね、彼は隙間時間によくやっていますね。そして、「チャンピオンシップで競い合いたい(( 」についてですが、これは強気な発言ですね。2008年初めから8月までのテスト期間中、Expert Advisorは5分足の壁を通過すると思いますか?

追伸:その5分間について、ルールズで調べてみました。何もないんです。明確に綴ることができたが。「このような構成のMQコンピュータでは、5分以内に終了します。でも、掲示板の別スレッドで紹介されていたのを覚えています。

 
Mathemat писал (а)>>

そうですね、彼は隙間時間によくやっていますね。そして、「チャンピオンシップで競い合いたい(( 」についてですが、これは強気な発言ですね。2008年初めから8月までのテスト期間中、Expert Advisorは5分足の壁を通過すると思いますか?

追伸:その5分間について、ルールズで調べてみました。何もないんです。明確に綴ることができたが。「このような構成のMQコンピュータでは、5分以内に終了します。でも、別々のフォーラムのスレッドで紹介されていたのを覚えています。

インジケーターの動作が速い。通常のMQと同じ速さです。

 

数学に

ここで定理、妥当性の検証を行う。

"定理:あるプロセスは、そのときだけ、モデルに適切である。
"無関係 "が "ホワイトノイズ "になるとき。
注:この現象は以下の場合にのみ発生します。
品質問題は外挿問題で決まる。"

 
DSPでコレクションを見つけました。また、私がよく紹介するティホノフV.I.もいる。もしかしたら、誰かが役に立つかもしれないhttp://dsp-book.narod.ru/books.html
 
もちろん、重宝しますよ。あとは、時間を見つけて、すべてを組み立てるだけです :)
 
Prival >>:

to Mathemat

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

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

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

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

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

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

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

T3_modです。変曲点でのスタッツの優位性を持ったマシンを作ることは可能だと思いますが、引用データの見せ方が違うだけです。
 
FOXXXi >> :

...ただ、見積もりデータの表示方法が違うだけです。

刻みの時間間隔でスケールを作ってみた人はいますか? 見てみると面白いかもしれませんね。

 

MS XLを使えば、もっと簡単なことはない。