インディケータ: 最近傍による価格予測

 

最近傍による価格予測:

このインディケータは、最近傍クラスタリング技術(別名k-NN)を使って履歴の中で最も類似したパターンを検索し、現在のパターンの将来価格の予測として、過去の価格を使用しています。

本インディケータは、1つだけの最近傍を検索します。よって、本質的には、これは1-NNのアルゴリズムです。これは、現在のパターンとそれらの間の距離の尺度として、過去の全てのパターンの間のピアソン相関係数を使用しています。

インディケータは2つの曲線をプロットします。青い曲線は、そのフィッティング中にモデル出力を表し、赤い曲線は、将来の価格予測を示します。最近傍は、 このパターンと現在のパターンとの間の線形回帰の傾きに応じてスケーリングされます。インディケータはまた開始最近傍の日付と現在のパターンとの相関係数 に関する情報を出力します。

最近傍による価格予測

作者: Vladimir

 

円周率はこのように設定するのが良い。

pi = 4*MathArctan(1);
私は一度このアイデアを思いついた。
 
Prival:

円周率はこのように設定するのが良い。

僕は一度ヒントをもらったんだけど、今度はそれを君に伝えるよ。
ありがとう、覚えておくよ。ちなみに、円周率はそこでは使われていない。間違えてその行を残してしまったんだ。
 

MQL5言語の数学定数」のセクションもあります:

値を含む特別な定数は、いくつかの数式用に予約されています。これらの定数は、数学関数を 使用して値を計算する代わりに、mql5プログラム内の任意の場所で使用できます。

定数

説明

M_E

e

2.71828182845904523536

M_LOG2E

log2(e)

1.44269504088896340736

M_LOG10E

log10(e)

0.434294481903251827651

M_LN2

ln(2)

0.693147180559945309417

M_LN10

ln(10)

2.30258509299404568402

M_PI

円周率

3.14159265358979323846

 
Rosh:

MQL5には「数学的定数」というセクションもある:


必要なもの
 
Rosh:

MQL5には「数学的定数」というセクションもある:


これらの定数は最大精度で設定されていますか?最大精度が必要であり、そうでなければ誤差が蓄積されるため、この項目を使用しました。
 
Prival:
これらの定数は最大精度で設定されていますか?正確な最大精度が必要であり、そうでなければエラーが蓄積されるため、このエントリーを使用した。

それを取ってチェックする必要がある。これがそのスクリプトです。

#property copyright "Copyright © 2010 ユージン・ログノフ(lea)"
#property version "1.00"

int CalcDifference(double approx, double exact) {
   double diff = MathAbs(approx - exact);
   if (diff == 0.0) {
      return 100500;
   }
   else {
      return (int)(-MathLog10(diff));
   }
}

void OnStart() {
   PrintFormat("%d", CalcDifference(MathExp(1.0), M_E));
   PrintFormat("%d", CalcDifference(MathLog10(MathExp(1)), M_LOG10E));
   PrintFormat("%d", CalcDifference(MathLog(2.0), M_LN2));
   PrintFormat("%d", CalcDifference(MathLog(10.0), M_LN10));
   PrintFormat("%d", CalcDifference(MathArctan(1.0) * 4.0, M_PI));
}

p.s. 小数点以下16桁の定数の誤差のためにアルゴリズムが悪い結果を出すなら、それは明らかに定数ではない。また、引用符がフィルタリングされるのであれば、なぜそのような計算精度が必要なのでしょうか?

 
lea:

このスクリプトを使ってチェックする必要がある。これがそのスクリプトで、100500の5倍が得られる。

p.s.定数の小数点以下16桁の誤差のためにアルゴリズムが悪い結果を出すなら、それは明らかに定数ではない。また、引用符がフィルタリングされるのであれば、なぜそのような計算精度が必要なのでしょうか?

私はプログラマーとして、人生で一度は反復アルゴリズムについて読むことを勧める。そして、四捨五入 http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ 数学者はこの四捨五入をどう扱うか(安定したアルゴリズムを考え出すか)に頭を悩ませている。

Z.y.アドバイスありがとう。https://www.mql5.com/ja/code/8309、この熊手を踏まないようにします。

З.З.Ыので、すでにチェックの病気、5では、それはすでにパラノイアになってきている...

 
Prival:

私はプログラマーとして、反復アルゴリズムについて、それが何であり、何を食べるのか、あなたの人生で一度読むことをお勧めします。そして四捨五入 http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ 数学者はこの四捨五入をどう扱うか(安定したアルゴリズムを考えるか)に頭を悩ませる。

私は昨年、そのことについてすべて読まなければならなかった。それに、私は(定数の問題ではないと言って)不安定性をほのめかしていた。

型が違うだけで精度不足を感じるのであれば、http://gmplib.org/(もちろん計算速度は落ちますが)などをお勧めします。

H.S.Y.もうチェックするのが嫌になってきました。

たとえ時間がかかっても、できることはすべてチェックすべきです。そうでないと、驚くことがあるかもしれない。

 
lea:

私はこの1年間、それについて読んできた。それに、私は(定数についてではないと言って)不安定さをほのめかした。

型があるだけで精度の低さを感じるのであれば、http://gmplib.org/(もちろん計算速度は落ちますが)などをお勧めします。

時間がかかることもありますが、できることはすべてチェックすべきです。そうしないと驚くことがあるかもしれない。

あなたは私が何をプログラムしたのか知らないのに、アドバイスをしている。 そして、あなたは(プロフィールから判断して)幼稚園に通っているときにプログラミングを始めた人に教えている。

あなたは開発者ではないし、私はあなたに質問していないが、あなたは私にコードのチェック方法を教え始めた。すべての定数がどれだけ正確に設定されているかの結果を教えてください。 アドバイスがなくてもチェックはできます。