MAフィードクラスターの検出をどのようにアルゴリズム化しているのでしょうか? - ページ 11 1...456789101112131415161718 新しいコメント Aleksey Nikolayev 2020.10.02 13:23 #101 Mikhail Toptunov:つまり、Modaはevery third(x[2],x[5]...)、または単にx[2]がModa である。申し訳ありませんが、私はそれを理解することはできません...( これは,関数の第4 引数である配列 pdf[i] の最大 値に対応します).) こんな感じ。 #include <Math\Stat\Math.mqh> void OnStart() { double a[] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.55, 0.56, 0.565, 0.57, 0.58, 0.59, 0.6, 0.7, 0.8, 0.9}; double mode, eps = 0.01; mode = mode_calc(a, eps); Print("mode = ", mode); } //+------------------------------------------------------------------+ double mode_calc(double &a[], double eps)// вычисление моды для выборки a[] с точностью eps { double x[], pdf[]; MathSequence(MathMin(a), MathMax(a), eps, x); int n = ArraySize(x); ArrayResize(pdf, n); MathProbabilityDensityEmpirical(a, n, x, pdf); int ix = ArrayMaximum(pdf); return x[ix]; } Mikhail Toptunov 2020.10.02 13:34 #102 Maxim Kuznetsov:最適化、行列、複雑な数学を使わずに、わかりやすい方法で。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は、ループや余分な配列を最小限に抑え、数学的に分解して計算することで、より高速に計算できますが、必ずしも直感的に理解できるわけではありません。 hetmap[index] がよくわからないのですが、index -(例えば500MAで 解像度=10点の場合)いくらくらいになるのでしょうか? ファックして、最小値=1.00000とは 何だ。 私の理解では. 一般的には、まさか、2つの近接MAを比較して、1より小さければ、hetmap[i]に書き込む必要があるように思われます。 Mikhail Toptunov 2020.10.02 13:35 #103 Dmitry Fedoseev:このヒートマップはどうでしょうか? すみません、それではどちらからアプローチすればいいのかがわかりません Dmitry Fedoseev 2020.10.02 13:40 #104 Mikhail Toptunov:すみません、じゃあどっちに行けばいいのかわからないんです! まずはABCの本を勉強することから始めましょうね。 Mikhail Toptunov 2020.10.02 13:55 #105 Dmitry Fedoseev:まずはABCの本を勉強するところから始めなければならないようです。 それができる、それがベストな選択だ!!!でも、それは***です。 Dmitry Fedoseev 2020.10.02 13:59 #106 Mikhail Toptunov:ここで、私ができること、それは最良の選択です!!!でも、それは***です。 そこに記されているクラスターはどこですか? Maxim Kuznetsov 2020.10.02 14:14 #107 直線上の点の集まりはどのように探すのでしょうか?一番簡単なのは、平均値(密度dljat)を計算することです。これはこちらも同じです。 Dmitry Fedoseev 2020.10.02 15:12 #108 dljat "という言葉の意味を探るため、深い瞑想に入った......。 Mikhail Toptunov 2020.10.03 04:12 #109 Dmitry Fedoseev:クラスターはどこにマークされているのですか? 一般に、ある束から別の束に移行する瞬間、つまりクラスタの動きが変わる瞬間を計算する必要がある。 この写真は、その瞬間を50ur地点で撮影したものと思われる。 Maxim Kuznetsov: 直線上の点群の探索はどのように行うのでしょうか? 一番簡単なのは、平均値(dljatsの密度)を計算することです。 ここも同じです。 もし (MA[i-1] - MA[i])+(MA[i] - MA[i+1])<0.005 ならば МА[i]ゾーン内(例えば、インデックスiの値が+-10)で、MAの最小値を探す。 で、クラスタポイントのパラメータを書き込む(クラス内にオブジェクトを作成する)。 隣接するバーのバンドル(バンドルそのもの)を具体的に特定する。例えば、ピリオドとバーが近いかどうか、クラスオブジェクトに 目を通します。 と、オブジェクトの束の傾向を見ることができます。 Mikhail Toptunov 2020.10.03 05:23 #110 一般的に、私はこのような行為をしています。 void medianaL0_0(const int rates_total,const datetime &time[]) { double masPra[Pmax]; // хранение цены МА int masPer[Pmax]; // хранение Периода CountPO=0; ArrayResize(PO,CountPO); ZeroMemory(PO); for(int b=rates_total-Pmax; b<rates_total; b++) { for(int p=2; p<Pmax; p++) // отбор по периодам { masPra[p]=sm.d[p-1].m[b]; masPer[p]=p; } MathQuickSort(masPra,masPer,2,Pmax-1,1); medianaL0_2(masPra,masPer,b,time); } } void medianaL0_2(const double &masPra[],const int &masPer[],int bar,const datetime &time[]) { double m[Pmax],x=0,y=0; for(int i=5; i<Pmax-1; i++) { filter0_0(i); x=MathAbs(masPra[i-1]-masPra[i]); //MathSqrt y=MathAbs(masPra[i]-masPra[i+1]); int a=MathAbs(masPer[_ot]-masPer[i]); int b=MathAbs(masPer[i]-masPer[_do]); if(masPer[i]-masPer[i-1]<=_ot)//&&masPer[i+1]-masPer[i]<=_ot m[i]=x+y; else m[i]=-1; } medianaL0_3(masPra,masPer,bar,time,m); } void medianaL0_3(const double &masPra[],const int &masPer[],int bar,const datetime &time[],const double &m[]) { for(int i=5; i<Pmax-1; i++) { filter0_0(i); int z=ArrayMinimum(m,_ot,_do); if(m[z]<=0.005&&m[z]!=-1) { ArrayResize(PO,CountPO+1); PO[CountPO].bar=bar; PO[CountPO].period=masPer[i]; PO[CountPO].mediana=i; PO[CountPO].praceMA=masPra[i]; PO[CountPO].time=time[bar]; CountPO++; } i=i+_do; } } 1...456789101112131415161718 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
つまり、Modaはevery third(x[2],x[5]...)、または単にx[2]がModa である。
申し訳ありませんが、私はそれを理解することはできません...( これは,関数の第4 引数である配列 pdf[i] の最大 値に対応します).)
こんな感じ。
最適化、行列、複雑な数学を使わずに、わかりやすい方法で。
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は、ループや余分な配列を最小限に抑え、数学的に分解して計算することで、より高速に計算できますが、必ずしも直感的に理解できるわけではありません。
hetmap[index] がよくわからないのですが、index -(例えば500MAで 解像度=10点の場合)いくらくらいになるのでしょうか?
ファックして、最小値=1.00000とは 何だ。
私の理解では.
一般的には、まさか、2つの近接MAを比較して、1より小さければ、hetmap[i]に書き込む必要があるように思われます。
このヒートマップはどうでしょうか?
すみません、それではどちらからアプローチすればいいのかがわかりません
すみません、じゃあどっちに行けばいいのかわからないんです!
まずはABCの本を勉強することから始めましょうね。
まずはABCの本を勉強するところから始めなければならないようです。
それができる、それがベストな選択だ!!!でも、それは***です。
ここで、私ができること、それは最良の選択です!!!でも、それは***です。
そこに記されているクラスターはどこですか?
クラスターはどこにマークされているのですか?
一般に、ある束から別の束に移行する瞬間、つまりクラスタの動きが変わる瞬間を計算する必要がある。
この写真は、その瞬間を50ur地点で撮影したものと思われる。
直線上の点群の探索はどのように行うのでしょうか?
もし (MA[i-1] - MA[i])+(MA[i] - MA[i+1])<0.005 ならば
МА[i]ゾーン内(例えば、インデックスiの値が+-10)で、MAの最小値を探す。
で、クラスタポイントのパラメータを書き込む(クラス内にオブジェクトを作成する)。
隣接するバーのバンドル(バンドルそのもの)を具体的に特定する。例えば、ピリオドとバーが近いかどうか、クラスオブジェクトに 目を通します。
と、オブジェクトの束の傾向を見ることができます。
一般的に、私はこのような行為をしています。