MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1898 1...189118921893189418951896189718981899190019011902190319041905...1953 新しいコメント Mihail Matkovskij 2022.02.13 16:00 #18971 Vitaly Muzichenko #: なぜ、最初にデータを記録してからシフトするのですか? Buffer1[0]=b; Buffer2[0]=a; for(int j=H; j>0; j--) { Buffer1[j]=Buffer1[j-1]; Buffer2[j]=Buffer2[j-1]; } 実際のティックチャートには対応しない! これが正しいやり方です。 for(int j=H; j>0; j--) { Buffer1[j]=Buffer1[j-1]; Buffer2[j]=Buffer2[j-1]; } Buffer1[0]=b; Buffer2[0]=a; Mihail Matkovskij 2022.02.13 16:02 #18972 Vitaly Muzichenko #:繰り返しますが、ArrayCopy() の内部にはループがあり、おそらく複数のループが存在します。そのため、この置き換えによってコードが単純化・高速化されることはほとんどありません。 もう上で何度も言っていることですが、ループなしではやっていけないのです Valeriy Yastremskiy 2022.02.13 16:05 #18973 Mihail Matkovskij #:なぜ、最初にデータを記録してからシフトするのですか?実際のティックチャートには対応しない!これが正しいやり方です。 カシャはもちろんですが、同じです)。 はい、そして、いくつかの代入比較で最大1000回の短いサイクルは簡単です。 だから、困難ではないはずです。 Tretyakov Rostyslav 2022.02.13 16:10 #18974 EVGENII SHELIPOV #:新しい極限がなく、それらの0、1、2の3つのバーの後に、フラクタルが形成されます。何も変わっていない。あるいはまた何かが間違っている D1上でフラクタルインジケータを実行し、フラクタルがあるかないかを確認します。 Mihail Matkovskij 2022.02.13 16:13 #18975 Valeriy Yastremskiy #:カシャはもちろんですが、同じです)。 同じではありません。最初にティックを書いてから配列をシフトすると、シフトした残りのティックと一緒に1小節分左にシフトされます。しかし、配列を先にずらしてから、ゼロのインデックスにtickの値を書き込むと、まずtickのためのスペースを作ってから、そこに書き込むことになります。そして、その結果、どこにもシフトされない。 Vitaly Muzichenko 2022.02.13 16:14 #18976 Mihail Matkovskij #:何度も言いますが、サイクルはなくてはならないものなのです ちゃんと理解できていると思います。 詰め物を入れ替えようとすると、エラーが発生する Mihail Matkovskij 2022.02.13 16:22 #18977 Vitaly Muzichenko #:フィルを入れ替えようとしたら、エラーが発生した不思議ですね、どうしてこうなんでしょう...?すべてうまくいくように見えますが、目盛りが左にずれるのではなく、その場所にあることだけは確かです。 P.S. 余分な配列はやはり追加すべきだった(冒頭で述べた ように)。そうしないと、新しいバーが表示されたときに、すべてのティックが自動的に左に移動してしまいます。なぜなら、ティックはインジケーターバッファだからですあるいは、新しいバーが現れた瞬間を追跡して、バッファをシフトさせることもできますが、すでに右側にシフトしています。 JRandomTrader 2022.02.13 16:27 #18978 配列を移動せず、循環バッファとして 使用し、最初の要素の現在位置を記憶させる場合はどうでしょうか。 Valeriy Yastremskiy 2022.02.13 16:27 #18979 Mihail Matkovskij #:同じではありません。最初にティックを書いてから配列をシフトすると、シフトした残りのティックと一緒に1小節分左にシフトされます。しかし、配列を先にずらしてから、ゼロのインデックスにtickの値を書き込むと、まずtickのためのスペースを作ってから、そこに書き込むことになります。そして、その結果、どこにもシフトしていないのです。 そうですね、私の場合は0番ではなく、1番から始めるべきですね)良い指摘です。 SZY、そうなんですが、まずシフトして、それからNULLを代入するんです。 SZZY シフト前にゼロの値を上書きすることで、ゼロインデックスの値を失う。 Valeriy Yastremskiy 2022.02.13 16:28 #18980 JRandomTrader バッファとして 使用し、最初の要素の現在位置を記憶させる場合はどうでしょうか。 リングバッファ(μl)とは 1...189118921893189418951896189718981899190019011902190319041905...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
なぜ、最初にデータを記録してからシフトするのですか?
実際のティックチャートには対応しない!
これが正しいやり方です。
繰り返しますが、ArrayCopy() の内部にはループがあり、おそらく複数のループが存在します。そのため、この置き換えによってコードが単純化・高速化されることはほとんどありません。
もう上で何度も言っていることですが、ループなしではやっていけないのです
なぜ、最初にデータを記録してからシフトするのですか?
実際のティックチャートには対応しない!
これが正しいやり方です。
カシャはもちろんですが、同じです)。
はい、そして、いくつかの代入比較で最大1000回の短いサイクルは簡単です。 だから、困難ではないはずです。
新しい極限がなく、それらの0、1、2の3つのバーの後に、フラクタルが形成されます。
何も変わっていない。
あるいはまた何かが間違っている
カシャはもちろんですが、同じです)。
同じではありません。最初にティックを書いてから配列をシフトすると、シフトした残りのティックと一緒に1小節分左にシフトされます。しかし、配列を先にずらしてから、ゼロのインデックスにtickの値を書き込むと、まずtickのためのスペースを作ってから、そこに書き込むことになります。そして、その結果、どこにもシフトされない。
何度も言いますが、サイクルはなくてはならないものなのです
ちゃんと理解できていると思います。
詰め物を入れ替えようとすると、エラーが発生する
フィルを入れ替えようとしたら、エラーが発生した
不思議ですね、どうしてこうなんでしょう...?すべてうまくいくように見えますが、目盛りが左にずれるのではなく、その場所にあることだけは確かです。
P.S. 余分な配列はやはり追加すべきだった(冒頭で述べた ように)。そうしないと、新しいバーが表示されたときに、すべてのティックが自動的に左に移動してしまいます。なぜなら、ティックはインジケーターバッファだからですあるいは、新しいバーが現れた瞬間を追跡して、バッファをシフトさせることもできますが、すでに右側にシフトしています。同じではありません。最初にティックを書いてから配列をシフトすると、シフトした残りのティックと一緒に1小節分左にシフトされます。しかし、配列を先にずらしてから、ゼロのインデックスにtickの値を書き込むと、まずtickのためのスペースを作ってから、そこに書き込むことになります。そして、その結果、どこにもシフトしていないのです。
そうですね、私の場合は0番ではなく、1番から始めるべきですね)良い指摘です。
SZY、そうなんですが、まずシフトして、それからNULLを代入するんです。
SZZY シフト前にゼロの値を上書きすることで、ゼロインデックスの値を失う。
リングバッファ(μl)とは