X軸に非線形の歪みがある2つの見積もりチャートの比較 - ページ 5 123456789101112 新しいコメント Igor Makanu 2012.03.07 18:29 #41 alsu: mqlのコードはおそらく長くはないでしょう)) こちらがソースコードのようです http://www.bytefish.de/blog/dynamic_time_warping Alexey Subbotin 2012.03.07 19:33 #42 そうですね、短いですけど、それは一番シンプルなバージョンで、他にもアルゴリズムのスピードや制約の考慮に関していくつか改良されています......。 Alexey Subbotin 2012.03.07 19:43 #43 これは、3次元までのデータのサポートと、下界推定法、および関連するパス候補テストを実装しています(私の理解では、これは1次元以上の完全なDTWよりもはるかに安価です。) Igor Makanu 2012.03.09 07:44 #44 ハブラブラサイトhttp://habrahabr.ru/blogs/algorithm/135087/、DTWについての記事があり、とても分かりやすいようですが、DTWをOHLCに使う方法が分からないのですが、どなたか解説していただけないでしょうか。 Dmitry Fedoseev 2012.03.09 13:07 #45 IgorM: ハブラブラサイトhttp://habrahabr.ru/blogs/algorithm/135087/、DTWについての記事があり、とても分かりやすいようですが、DTWをOHLCに使う方法が分からないのですが、どなたか解説していただけないでしょうか。 ワンプライスですでにできているのでしょうか? Igor Makanu 2012.03.09 13:20 #46 Integer: ワンプライスでの効果はまだですか? うまくいかなかった、DTWのソースをmqlに移植するのは問題ないのですが。 //+------------------------------------------------------------------+ // create cost matrix #define costmaxM 100 #define costmaxN 100 double cost[costmaxM][costmaxN]; int costM,costN; // текущая размерность cost //+------------------------------------------------------------------+ double dist(double x, double y){ return(MathSqrt(MathPow((x - y), 2))); } //+------------------------------------------------------------------+ int dtw(double &t1[],double &t2[]) { // возвращаемое значение -1 ошибка // +1 массив cost[][] заполнен правильно int i,j; costM = ArraySize(t1); costN = ArraySize(t2); if(costM>=costmaxM || costN>=costmaxN)return(-1); cost[0][0] = dist(t1[0], t2[0]); // calculate first row for(i = 1; i < costM; i++) cost[i][0] = cost[i-1][0] + dist(t1[i], t2[0]); // calculate first column for(j = 1; j < costN; j++) cost[0][j] = cost[0][j-1] + dist(t1[0], t2[j]); // fill matrix for(i = 1; i < costM; i++) for(j = 1; j < costN; j++) cost[i][j] = MathMin(cost[i-1][j],MathMin(cost[i][j-1], cost[i-1][j-1])) + dist(t1[i],t2[j]); return(1);// return cost[m-1][n-1]; } //+------------------------------------------------------------------+ 問題は、使い方がよくわからないことです。DTWでは、異なる期間(BP)を同じスケールに当てはめて、その後の分析ができるということだけは理解できたのですが、どのように・・・。- ふにおちない Dmitry Fedoseev 2012.03.09 13:47 #47 IgorM:うまくいかなかった、DTWのソース自体はmqlに移植しやすいんだけどね、なぜか。 問題は、この使い方がよくわからないことです。DTWでは、異なる時間区間(BP)を同じスケールにフィットさせて、後で分析できることだけは理解できたのですが、どうやって......。- don't understand 試してみました。使い方もよくわからない。出力は、変換パスまたは変換後のデータのいずれかでなければならない。cost[][]を距離行列としよう。しかし、それは(各列の最小値を探せば)リターンを持つパスを与え、条件「1.単調性 - パスは決して戻らない、すなわち:シーケンスで使用されるインデックスであるiとjの両方が減少することはない。"また、パスが反対側のコーナーに届かない。一般に、cost[][]配列を埋める ときに、まず距離を単純に数えて、それを足すというような数字の操作の意味がよくわからない。 もし、各要素t1と各要素t2間の距離を数える必要があるのなら、条件「1.単調性 - パスは決して戻らない、つまり、シーケンスで使われるインデックスiとjの両方が減少しない」を満たす必要があるのに、なぜこんなに多くの計算をしなければならないのでしょうか? . hrenfx 2012.03.09 14:33 #48 DTWは完全に不向きです。DTWは、リアルタイムの音声ストリーム中の音声(単語)を認識するために、以下のように使用される(大雑把)。 長さNのデータ列であるパターン(ワード)がある。 長さM >> Nのオーディオストリーム(データ列)がある。 オーディオストリームから、長さの異なる(大まかな)一番外側のデータ片を選択する。 各チャンクはDTWによってテンプレートと比較される。 DTWの最大値がある閾値を超えた場合、単語が発話されたと判断する。 つまりDTWは、長さの異なる2つの配列を比較するための基準に過ぎないのです。それ以上はない。 音声の履歴から単語を検索する場合、DTWは非常に多くのリソースを必要とするため、全く適していない。例えば、ある単語がこの1時間に何回言われたかをDTWで調べることは、ほぼ不可能です。 この問題を解決するには、高速なアルゴリズムでピアソンのQCを計算するのが手っ取り早い。その際、DTWは入力パラメータが異なるZigZagでその都度変換される。このようなアルゴリズムは並列化が非常に容易で、GPUで実装すればほぼリアルタイムで動作する。 もうひとつの疑問は、なぜそれが必要なのか、ということです。この課題を本格的に解決した人はいない。しかし、これを解いた後、パターン理論の健全性にもう一つ釘を刺すことになるのは、ほぼ間違いないでしょう。 エリオット波動や フィボだけでなく、パターンの理論も、テクニカルなレベルの考え方ではありません。 Dmitry Fedoseev 2012.03.09 14:46 #49 hrenfx: DTWは、まったくもって不向きです...。 まずは動くDTWをお見せして、何が合っていて、何が合っていないのかを議論しましょう。 Dmitry Fedoseev 2012.03.09 14:52 #50 自分で作ったものですが、ナンセンスでわかりません。 黄色い線、それは赤い線の上に張られたオレンジの線です。 123456789101112 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こちらがソースコードのようです http://www.bytefish.de/blog/dynamic_time_warping
ハブラブラサイトhttp://habrahabr.ru/blogs/algorithm/135087/、DTWについての記事があり、とても分かりやすいようですが、DTWをOHLCに使う方法が分からないのですが、どなたか解説していただけないでしょうか。
ワンプライスですでにできているのでしょうか?
うまくいかなかった、DTWのソースをmqlに移植するのは問題ないのですが。
問題は、使い方がよくわからないことです。DTWでは、異なる期間(BP)を同じスケールに当てはめて、その後の分析ができるということだけは理解できたのですが、どのように・・・。- ふにおちないうまくいかなかった、DTWのソース自体はmqlに移植しやすいんだけどね、なぜか。
問題は、この使い方がよくわからないことです。DTWでは、異なる時間区間(BP)を同じスケールにフィットさせて、後で分析できることだけは理解できたのですが、どうやって......。- don't understand試してみました。使い方もよくわからない。出力は、変換パスまたは変換後のデータのいずれかでなければならない。cost[][]を距離行列としよう。しかし、それは(各列の最小値を探せば)リターンを持つパスを与え、条件「1.単調性 - パスは決して戻らない、すなわち:シーケンスで使用されるインデックスであるiとjの両方が減少することはない。"また、パスが反対側のコーナーに届かない。一般に、cost[][]配列を埋める ときに、まず距離を単純に数えて、それを足すというような数字の操作の意味がよくわからない。
もし、各要素t1と各要素t2間の距離を数える必要があるのなら、条件「1.単調性 - パスは決して戻らない、つまり、シーケンスで使われるインデックスiとjの両方が減少しない」を満たす必要があるのに、なぜこんなに多くの計算をしなければならないのでしょうか?
.
DTWは完全に不向きです。DTWは、リアルタイムの音声ストリーム中の音声(単語)を認識するために、以下のように使用される(大雑把)。
つまりDTWは、長さの異なる2つの配列を比較するための基準に過ぎないのです。それ以上はない。
音声の履歴から単語を検索する場合、DTWは非常に多くのリソースを必要とするため、全く適していない。例えば、ある単語がこの1時間に何回言われたかをDTWで調べることは、ほぼ不可能です。
この問題を解決するには、高速なアルゴリズムでピアソンのQCを計算するのが手っ取り早い。その際、DTWは入力パラメータが異なるZigZagでその都度変換される。このようなアルゴリズムは並列化が非常に容易で、GPUで実装すればほぼリアルタイムで動作する。
もうひとつの疑問は、なぜそれが必要なのか、ということです。この課題を本格的に解決した人はいない。しかし、これを解いた後、パターン理論の健全性にもう一つ釘を刺すことになるのは、ほぼ間違いないでしょう。
エリオット波動や フィボだけでなく、パターンの理論も、テクニカルなレベルの考え方ではありません。
DTWは、まったくもって不向きです...。
自分で作ったものですが、ナンセンスでわかりません。
黄色い線、それは赤い線の上に張られたオレンジの線です。