リアルタイム予測システムのテスト - ページ 19

 
grasn >> :

もう少ししたら、予測の実現確率を推定することができるようになるだろう。質問 - どのような相関関係のことをおっしゃっているのでしょうか?

予測システムの品質を何らかのポイントで評価できるようなものという意味です。2つのシステムを取り上げて、それぞれのシステムを点数で評価し、点数を比較して「こっちの方が○○だ」と言えるようにね。

一般的には、このような推定をより正確に行うにはどうしたらよいかを考えるのが面白いのですが......。

相関係数が真っ先に思い浮かびました。こんな感じ。

数年前に歴史をさかのぼります。

1時間ごとに履歴でシステムを動かし、予測を構築し、履歴との相関をカウントしていく

そして、その平均的な相関がシステムのスコアとなる。

また、予測実現の確率は、どのような手法に基づいて推定しているのでしょうか?


 

各時間区間での数学的期待値という不思議なパラメータを試してみたいと思っていたのですが、なかなか時間が取れませんでした。計算方法はいたって簡単で、価格水準と対応する発生頻度の積の合計である。確率はシステムの初期確率状態から取得される。


パラメータを全くテストしていないので、何とも言えません。しかし、スポーツの面白さのために:15分、EURUSD、現在の瞬間から1日の予測。

状態のベクトル(ちょっと場違い)。


時間区分に期待される効果(1時間枠-15分)




確率的に可能なレベル(あるいはあまり可能性がないレベル)。



 

toLord_Shadows

Переименовали ветку. Теперь уже не игра, а тестирование, и кончились прогнозы.

予測はまだ始まっていない、ウォーミングアップの段階という意味で :o)) 参加する :o))


toshtoba

予測システムの品質を何点かで評価できるようなものという意味です。一般に、このような推定をどのように行うかを考えるのは興味深いことである。

このような格付けは、昔から選手権で考案されていた。実は、獲得したポイントの数なのだ。私は追加することができます - MMを適用せずに - モデルのみ動作します。要は、何のためのポイントなのか?何が言いたいのか?

数年分の履歴を見て、1時間ごとにシステムを動かすと、予測が構築され、履歴との相関が計算されるのです。そして、その相関の平均値がシステムスコアのようなものです。

相場は決して繰り返さないし、3期ごとの予想の相関を計算すると、「似たような」状況がたくさん出てくる。しかし、係数は何も言いません。

また、予測の実施確率を推定するために、どのような方法を用いていますか?

2つの意味で。

(1)カウント毎に予測を行い、その性能を評価する。その後、頻度が計算され、それが判明した場合、より複雑な分析が行われ、予測とモデルとは無関係に現在の状況に頻度を関連付けるために行われます

(2)第2の方法は、より理論的なもので、モデル自体に存在するものである。

 

ハッピーボイスデー!!!!happy happy our victory day!!!:о)))

ただ、1.3331レベルを少し逃しただけで、あとは問題ないです。さて、EURUSDの不思議な状況です。以下は、情報エントロピーの「マップ」の計算結果です。

最大エントロピーの原則を念頭に置くと、1.3445程度の水準まで引き戻すことが予想されますが、他方、ダイナミックモデルでは1.3756まで上昇する可能性が不可欠となります(思い起こせば、私はこの価格水準を統計上のものと考え、その周囲に価格が「集中」することにしています)。ですから、最も合理的なのは、月曜日に取引を開始するのではなく、15分ずつ10~20回ほど読み込んで待つことです :o)


同僚の皆さん、いかがでしょうか。月曜日の予定・目標をお持ちの方はいらっしゃいますか?


ISSUE

(1) MQLを学び始め、MathCAD用のとてもクールな:o)「データ取得」スクリプトを作りました。

extern int diapason = 7000;


int start()
{
double process[];

GetHistoryProcess(process, diapason);
CreateFlowData(process);

return(0);
}


void GetHistoryProcess(double signal[], int window)
{
int n;
int i;

double y[];

ArrayResize(y, window);
ArrayInitialize(y, 0.0);

ArrayResize(signal, window);
ArrayInitialize(signal, 0.0);

i=0;

for(n=0; n<=window-1; n++)
{
y[i]=(High[window-n-1]+Low[window-n-1])/2.0;
i=i+1;
}

ArrayCopy(signal, y, 0, 0, WHOLE_ARRAY);

return(0);
}


void CreateFlowData(double process[])
{
int i;
int N;
int Handle;

string FILE="data.csv";

N=ArraySize(process);
Handle=FileOpen(FILE, FILE_CSV|FILE_WRITE,";");

if(Handle<0)
{
if(GetLastError()==4103)
{
Alert("Нет файла с именем ",FILE);
}
else
{
Alert("Ошибка при открытии файла ",FILE);
}

return;
}

for(i=0; i<=N-1; i++)
{
FileWrite(Handle, process[i]);
}

FileClose(Handle);

return(0);
}


最初はなぜ予想が全く当たらないのかわからなかったのですが、データを「反転」させるのを忘れていたことがわかりました :o)。初期化時にインターフェイスを用意し、コンパイルせずに任意の履歴範囲(それも変化する)を入力できるようにしようと思ってexternを 入力しました。インターフェイスがないから、スクリプトには使えないということですか?例えば、ある専門家を例にとると、そこそこ効果がある。


(2)予測時系列を「未来に書き込む」方法がわからない(例)。計算している間、データを処理・解析している間、例えば数カウントずつ時間がずれていく。大雑把に言うと、ある履歴の日付(またはゼロ)から未来に100サンプルをロードしたいのです。つまり、あるデータは現在のバーより前に最初に履歴にロードされなければならず、あるデータはさらに先にロードされなければなりません。うまくいかないんです。

 
grasn >> :

最初はなぜ予測が全く当たらないのかわからなかったのですが、データを「反転」させるのを忘れていたことがわかりました :o)。初期化時にインターフェイスがあり、そこでコンパイルせずに希望の履歴範囲(それも変化する)を入力できると考えて、externを入力しました。インターフェイスがないから、スクリプトには使えないということですか?例えば、ある専門家を例にとると、そこそこ効果がある。

スクリプトでは動作せず、インジケータとExpert Advisorでのみ動作します。外部変数を管理する場合は、インジケータとしてエクスポートを行うようにします。


(2)予測時系列を「未来に書き込む」方法(例)がわからない。計算している間、データを処理・分析している間、時間は、例えば数カウントずつ動いていたのですか?大雑把に言うと、ある履歴の日付(またはゼロ)から未来に100サンプルをロードしたいのです。つまり、あるデータは現在のバーの前に最初に履歴にロードされなければならず、あるデータはそれ以上ロードされなければなりません。うまくいかないようです。

MTに未来はない。すべての系列は配列に配置され、その逆もまた然りである。インデックス0が現在(または直近)の時刻に対応し,インデックス1がバー・バックワードに対応する,といった具合である。そうすると、将来的には-1、-2などのインデックスが必要になるが、mqlにはそのような負のインデックスはない。

しかし、それ以外の騒動もある。インジケーターのSetIndexShift関数(チャートの先頭からのインジケーターラインの相対的なシフトを設定する)を見てください。あくまで視覚的な変化です。インデックスは従来通り、そのままです。


また、SetIndexDrawBegin(データの先頭からバーの通し番号を設定し、そこから指示線の描画を開始すること)があり、指定したバーについて左側の描画をカットするのに使用することができる。

 

すべてを時間的に同期させるには、系列の値をインデックスではなく時間でマークし、Time[bar]でMTチャートと同期させます。

しかし、グラフ上の時間軸が不均一になる可能性があるという問題があります。チャート上の初期シリーズにバーがない場合(サーバーとの接続がない、または何らかの理由で穴があいている) - バーはまだ連続的に描かれ、時間はこれらのギャップを飛び越えます。これは「過去」に対して当然のことです。

 
grasn >> :

...初期化時に、コンパイルせずに希望の履歴範囲を入力できるインターフェースがあると思い、externを入力しました(これも変化します)。インターフェイスがないから、スクリプトには使えないということですか?ある専門家を例にとると、そこそこ効果がある...。

スクリプトに#property show_inputsを 挿入すると、スクリプト実行時にexternが表示されるようになります。

 

toShtoba さん、granit77 さん

同僚、ありがとうございます。:о)この指標にはあまり満足していません :o)。使い方がわからない。画像では赤色(正確にはまだ計算していないので、アストロラーベを準備中)。

理論的には、MTで線として表示することができる(例えば「トレンド」、タイプはOBJ_TRENDのようです)。ただ、非常に単純な疑問があるのですが、時間カウント(0, 1, 2, ...)をどのように再計算するのでしょうか?(各15分))を「未来」の時間へ。今のところ、TimeCurrent( )で秒数をとり、それに予測秒数を加えて、この秒数を何らかの方法で時間に変換する方法を見つけました。どうすればいいのか?

追記:しかし、このエントロピーの中にもまだ何かあるんです。には達していませんが、動き出したので、取引すればまだプラスになると思います:O)

 

 
grasn >> :
...ただ、非常に単純な疑問があるのですが、時間カウント(0, 1, 2, ...)をどのように再計算するのでしょうか?(各15分))から「未来」の時間へ...。
FutureTime=Time[0]+N*Period()*60;
где N - номер бара в будущее от нулевого.