あなたのバージョンは同じ数学のようです:
https://www.mql5.com/ja/code/429
私はNZDUSD,D1で20の期間で両方を実行し、それらは正確に一致した。
違いは
- あなたのは傾きを色分けしている。
-
- 彼のは、バーとポイントを "ずらす "機能がある。
-
- APPLIED_PRICEを切り替える機能がある。
あなたのバージョンは、同じ数学のように見える:
https://www.mql5.com/ja/code/429
私はNZDUSD,D1で20の期間で両方を実行し、それらは正確に一直線に並んだ。
相違点
- あなたのは傾きを色分けしている。
-
- 彼のはバーとポイントを "シフト "する機能がある。
-
- あなたのはAPPLIED_PRICEを切り替える機能がある。
その方法(3*lwma-2*sma)は、投稿のリンクで説明されており(そのリンクもチェックしてください、このリンクはhttps://www.mql5.com/ja/articles/270)、長い間存在し、このフォーラムで最初に紹介されました(率直に言って、そのアルゴを最初に紹介したのが誰だったのか正確には覚えていません、「mathemat」だったと思いますが、私の言葉を鵜呑みにしないでください)。
コードについて:私が投稿したコードはシングルパス・コードであり(だから速い)、Nikolaysのコードとは何の共通点もない。この投稿の目的は、どのようなタイプのコードにも柔軟に使える高速な(CPU的に高速な)方法を投稿することでした。そして、すべてのテストによると、それはメタトレーダー5で使用するのに十分速く、柔軟性も十分です。
それではまた。
- www.mql5.com
コードについて:私が投稿したコードはシングルパス・コードであり(だからこそ速い)、Nikolaysのコードとは共通点がありません。この投稿の目的は、どのようなタイプのコードにも柔軟に使える高速な(CPU的に高速な)方法を投稿することでした。そして、すべてのテストによると、それはメタトレーダー5で使用するのに十分速く、柔軟性も十分です。
OK。速いのはいいことだ。私はコードを比較したのではなく、結果だけを比較したのです。
Nikolaysのコードをしばらく使っていますが、私が持っているインジケーターの 中で一番遅いです。速いのはいいことだ。
これからも頑張ってください!
素晴らしい実装だ。おめでとう。
- これの目的は何ですか?難読化?
#define ¤ instance #define _functionInstances 1
- 下のコードで >= を使わない理由はあるのだろうか?)
if(i>period)
素晴らしい実装だ。おめでとう。
- これの目的は何ですか?難読化?
- 下のコードで>=を使わない理由はあるのだろうか?)
難読化はしない:
関数 コードをひと目見ただけで、何がどこで使われているのかがよくわかる)。パラメータ名として直接使うこともできますが、そうすると、関数名を入力したときに、オートフィルでパラメータ名が表示されたときに、「わかりにくすぎる」ことになります。
functionInstances "については、コンパイル時のディレクティブに変換されるため、計画を立てるのに役立ちます。複数の関数インスタンス(つまり、何らかの理由で異なるパラメータ)を使いたい場合は、単に定義値を変更するだけで、異なるパラメータで使用するための配列割り当てのための正しい数にコンパイルされます。また、コンパイラのディレクティブであるため、実行時のコストがかからない。
">="については、2つの理由がある:
- コンパイラが他のもの(">=")に変換しない限り、(関数呼び出しのたびに実行される)条件が1つ減るが、プロファイラの結果から判断すると、その場合は1つではなく2つの条件として使われている。
- 最終的なスピードはまったく落ちないし、次の処理のためにすべてが適切に設定されていることを確認している(最初の合計処理が1つ増えることで、それが確実になる)。
難読化はしない:
関数 コードをひと目見ただけで、どこで何が使われているのかがよくわかる)。パラメータ名として直接使うこともできますが、そうすると関数名を入力したときや、オートフィルでパラメータ名が表示されたときに「わかりにくすぎる」ことになります。
functionInstances "については、コンパイル時のディレクティブに変換されるため、計画を立てるのに役立ちます。複数の関数インスタンス(つまり、何らかの理由で異なるパラメータ)を使いたい場合は、単に定義値を変更するだけで、異なるパラメータで使用するための配列割り当てのための正しい数にコンパイルされます。また、コンパイラのディレクティブであるため、実行時のコストもかかりません。
">="については、2つの理由がある:
- コンパイラが他のもの(">=")に変換しない限り、(関数呼び出しのたびに実行される)条件が1つ減るが、プロファイラの結果から判断すると、その場合は1つではなく2つの条件として使われている。
- 最終的なスピードには全く影響しませんし、その後の処理のためにすべてが適切に設定されていることを確認しています(最初の合計処理が1つ追加されることで、それが確認されます)。
もちろん">"は機能している。私の発言は、「1ループ」を失っていると言いたかっただけで、もちろん最終的なスピードはあまり変わらない。"それを確認する "というのは、むしろ迷信のように思える;-)
こんな感じ?)
OOPモードでリング・バッファ・アプローチを使っていて、そのために計算全体にmod命令が1つ追加されるんだ。投稿されたものも十分問題ないと思います :)
そうだね、スピードとメモリは常に妥協の産物なんだ。
もちろん、OOPの主な利点はメンテナンスと再利用性であって、スピードではない。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索

直線回帰:
直線回帰
作者: Mladen Rakic