//Pmax - количество Скользящих Средних МА//masPra[] - значение цены МА по текущему бару//masPer[] - значение индексов массива цен МА, для сортировкиvoid medianaL0_2(constdouble &masPra[],constint &masPer[])
{
// MathQuickSort(masPra,masPer,10,Pmax-1,1); // сортируем массив цен с 10 периода, по Pmax-1
みんな、まだ上か下かわからないよ。
そうですね。
どの分位数をカウントするか、など。
{0.5} - 中央値
{0.25, 0.5, 0.75} - 四分位値
{0.01, 0.02, ..., 0.99} - 過活性物質
教えていただけますか?
MathQuantileに 配列を渡すと、ソートされるのでしょうか?
- ソートされていても関係ないことがよくわかりました。
インデックスが配列に辿り着けないことが判明しました。 分位数は価格でカウントされ、価格がリンクしている配列のインデックスが...
この中央値や量子を使った数学では、満足に問題を解決できないことがよくわかりました
私ができない何か...
指定された分位数の値の配列を返す。これらの値のソートされていない配列におけるインデックスは不明である。問題は、すべてスピードです。この関数をバーごとに計算し、値の配列が大きい場合、最適化時間が遅くなることがあります。私なら違う道を進みますが、それはあなた次第です。
MathQuantileに 配列を渡した場合、ソートされるべきか?
どんな順列(例えばソート) でも、結果が変わってはいけない。
指定された分位数の値の配列を返す。これらの値のソートされていない配列におけるインデックスは不明である。問題は、すべてスピードです。この関数をバーごとに計算し、値の配列が大きい場合、最適化時間が遅くなることがあります。私なら違う方法をとりますが、それはあなた次第です。
あなたならどっちを取る?
アレクセイ、どっちで解決するんだ)!
どのような課題を設定されたのかわかりませんが、一般的には、周期的な計算が少ないほど、アルゴリズムは速くなります。 基本的な周期があります。それは、歴史のすべてのバーを通過することであり、そこから離れることはできないのです。しかし、それ以外のものを排除するようにしなければならない。MathQuantileやiHighestなどの 関数は、実は隠れループ なのです。スピードアップのためには、情報が到着した時点で処理し、次の小節まで保存する必要があります。今回の計算では、生のヒストリカルデータではなく、あらかじめ用意されたデータを使用する。
中央値などの分位数を求める場合、情報が届くたびに順序のある配列を維持する方がコストがかからない。上のようなコードを書きました。情報が必要とされる「スライディングウィンドウ」がある場合、同じように古い値を配列から素早く削除する方法を考える必要があります。インデックスを格納するために、おそらく別の配列が必要でしょう。
近似ヒートマップ計算アルゴリズム(例:100気圧の場合)。
1 から 100 までのすべての Close に対して。
Close[N]=X は、heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}... 最大100までの行の合計をヒートマップに追加します。
括弧内が平均の「成分」で、ちょうどハイライトされているところです。
Resolution(X) - 「解像度」、例:10ポイント Round((X-MinimalX)/Point/10)
は、局所最大値を求めるべきベクトルを取得します。
このベクトルは、実質的に垂直方向の価格プロファイルです
ヒートマップの 計算をお願いします。 中央値、分位数を試しましたが、MAのクラスタがうまく表示されません。
やるべきことを示せれば、計算(1バーずつ)。
ヒートマップの計算をお願いしたいのですが、中央値、分位値で試したところ、MAクラスタの正常な検出ができませんでした。
やるべきことを示せれば、計算(1バーずつ)。
最適化、行列、複雑な数学を使わずに、結果を直接示すことにします。
1.現在のバーについて、すべてのMAを別々に計算する。N個までの最大値が格納されたSMA[N]配列が得られます。
2. ヒートマップ[M]を作成し、最小値=1.00000から価格をカバーし、各要素は(例えば)10ポイントを担当します。
3.この「生」のヒートマップを埋めるために、各マ値を取り、それがどのセルを参照しているかを確認します。index=(SMA[i]-minimum)/resolution.このセルの値を増やすhetmap[index]+=1.0
結果をCSVに出力して考えることができる
4.ヒートマップの「生の」値を平滑化する:配列 smotch[] を起動し,i-window から i+window までを含むヒートマップの平均 smotch[i]=average を読み込みます.
5.スムーチの局所的な最大値は、「フィードのクラスタ」を示すことになる。マキシマの探し方がわかるといいのですが :-)
1-5 点は、ループや配列の追加を最小限に抑えながら、数学的に分解してより高速に計算することができますが、必ずしもより明白ではありません。