記事"MQL5クックブック - スライディングウィンドウ内指標の高速計算のためのリングバッファの作成"についてのディスカッション - ページ 4 1234 新しいコメント Anna_A 2017.10.02 10:40 #31 Otto Pauser:素晴らしい記事だ!ドイツ語の翻訳さえひどくなけりゃな......!こんにちは、情報をありがとう。翻訳は修正しました。よろしくお願いします。 Svyatoslav Kucher 2018.06.12 19:47 #32 こんにちは、Vasiliy Sokolov です! リングバッファの助けを借りて作成されたあなたのインジケータは、ChangeValueメソッドが機能していないのか、それとも私が何か誤解しているのでしょうか? brisully 2019.02.07 21:50 #33 Savio Araujo: 私はそれを見た。あなたが提供した例をチェックしました。それらは、市場が動いている間に値を更新することに対処する際に私が抱いたのと同じ問題を示しています。提供されたストキャスティクスを確認してください。新しい値を追加することは問題ありませんが、CRiMaxMinクラスでStoch.ChangeLast()やOnChangeValue()を使おうとすると、うまくいきません。それに応じて値が変更されないのです。もしあなたがそれをチェックするか、動作するコードの例を送っていただけると助かります。ありがとうございます。作者に感謝します。おそらく、サビオさんがご覧になっているバグはここにあると思います: int RingBuffer::iToRealInd(int iIndex){ if(iIndex >= iNumElements() || iIndex < 0) return iBufferSize-1; //previous bug was caused by no -1 here... 最後の引用行に-1を追加しました。以前はなかったので、不適切なインデックスが返される原因となっていました。変数名やメソッド名は私のプログラミング・スタイルに合わせて変更しましたが、考え方は同じです。 Overweight 2019.02.10 09:26 #34 なぜCRiStochにはChangeValueというメソッドがないのですか? Savio Araujo 2019.06.24 14:25 #35 brisully:作者に感謝します。おそらく、サビオさんがご覧になっているバグはここにあるのでしょう: int RingBuffer::iToRealInd(int iIndex) { if(iIndex >= iNumElements() || iIndex < 0) return iBufferSize-1; //previous bug was caused by no -1 here ... 最後の引用行に-1を追加しました。以前はなかったので、不適切なインデックスが返される原因となっていました。変数名やメソッド名は私のプログラミングスタイルに合わせて変更しましたが、考え方は同じです。 あなたの修正を試してみましたが、まだ正しく更新されません。何かが欠けているようで、新しいバーの形成時にリングバッファを 実行しようとしても問題が見つかりません。マーケットが動いているとき、High/Lowのラインが完全に混ざってしまいます。このコードは、古いデータを処理している間はとてもうまく、とても速く動作しますが、新しいバーの形成中に新しいデータが到着すると、私の場合、単純に動作しません。 HimOrik 2021.04.25 18:53 #36 申し訳ない。ミンとマックスが正しい。私自身が考えすぎていた。 rapblH_spb 2024.10.04 21:51 #37 これはまさに私が必要としていたものだ。コードと詳細な記事に感謝します。極値検索を 最適化するというアイデアは素晴らしい! rapblH_spb 2024.10.08 12:42 #38 ToRealInd(int index) に間違いがあります。 次のようにすべきです: if(index >= GetTotal() || index < 0) return m_max_total-1; 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
素晴らしい記事だ!
ドイツ語の翻訳さえひどくなけりゃな......!
こんにちは、
情報をありがとう。翻訳は修正しました。
よろしくお願いします。
こんにちは、Vasiliy Sokolov です!
リングバッファの助けを借りて作成されたあなたのインジケータは、ChangeValueメソッドが機能していないのか、それとも私が何か誤解しているのでしょうか?
私はそれを見た。あなたが提供した例をチェックしました。それらは、市場が動いている間に値を更新することに対処する際に私が抱いたのと同じ問題を示しています。提供されたストキャスティクスを確認してください。新しい値を追加することは問題ありませんが、CRiMaxMinクラスでStoch.ChangeLast()やOnChangeValue()を使おうとすると、うまくいきません。それに応じて値が変更されないのです。もしあなたがそれをチェックするか、動作するコードの例を送っていただけると助かります。
ありがとうございます。
作者に感謝します。おそらく、サビオさんがご覧になっているバグはここにあると思います:
int RingBuffer::iToRealInd(int iIndex)
{
if(iIndex >= iNumElements() || iIndex < 0)
return iBufferSize-1; //previous bug was caused by no -1 here
...
最後の引用行に-1を追加しました。以前はなかったので、不適切なインデックスが返される原因となっていました。変数名やメソッド名は私のプログラミング・スタイルに合わせて変更しましたが、考え方は同じです。
作者に感謝します。おそらく、サビオさんがご覧になっているバグはここにあるのでしょう:
int RingBuffer::iToRealInd(int iIndex)
{
if(iIndex >= iNumElements() || iIndex < 0)
return iBufferSize-1; //previous bug was caused by no -1 here
...
最後の引用行に-1を追加しました。以前はなかったので、不適切なインデックスが返される原因となっていました。変数名やメソッド名は私のプログラミングスタイルに合わせて変更しましたが、考え方は同じです。
あなたの修正を試してみましたが、まだ正しく更新されません。何かが欠けているようで、新しいバーの形成時にリングバッファを 実行しようとしても問題が見つかりません。マーケットが動いているとき、High/Lowのラインが完全に混ざってしまいます。このコードは、古いデータを処理している間はとてもうまく、とても速く動作しますが、新しいバーの形成中に新しいデータが到着すると、私の場合、単純に動作しません。
ToRealInd(int index) に間違いがあります。
次のようにすべきです: