Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...
変数をグローバルに宣言し,宣言時に初期化する(例:int kk=0).
で、OnTick()でunprintして値を変更します。例えば Print("kk=",kk); ++kk;
で、TFを変えてみて、その結果を見てください。
は、TF が変更されてもグローバル変数が その値を保持することは明らかです - しかし、テスターではそのようなことは起こりません。
は、TFが変更されてもグローバル変数が その値を保持することは明らかです - しかし、テスターではそのようなことは起こりません。
これで、結果の違いの原因に対する答えが見つかりました。
最適化する場合、パラメータは再選択され、Expert Advisor は異なる設定で再起動されます。
これで、結果の違いの答えがわかりましたね。
EAのグローバル変数は、過去のオプティマイザーの実行からその値を保持し、次の実行に引き継がれるのでしょうか?
は、推測するより確認する方が簡単です。
上のRenatは、オプティマイザは「時計仕掛けのように」動作し、その原因はコードにあると書いています -- 彼は何度かアンプライムをするよう勧めていますが、誰もやっていないのでしょう。
最適化と単体での動作が異なる明確な例があれば教えてください。
例えば、テスターでハンドルを削除すると、以前はメモリオーバーになり、システムとともにターミナルがクラッシュしたことを覚えています。この問題はすでに解決されているかもしれませんが、インジケータハンドルの作成と削除にはまだ落とし穴があり、オプティマイザと単一のインジケータランで違いがあります。
1回の実行で、最適化とは異なる動作をするような明確な例はあるのでしょうか?
この場合、1本ではありません。
グローバルに宣言された変数の初期化を 確認する。
初期化がOnInit()内ではなく、宣言内であり、コード内でその値が変更された場合。
簡単な例です。
とはいえ...。グローバルスコープに宣言を入れると、コンパイラはなぜか警告を出さない((
もっと違うものを期待していたのですが...。
簡単な例です。
とはいえ...。グローバルスコープに宣言を入れると、コンパイラはなぜか警告を出さない((
違うものを期待していました。
5ページ目は進んでいたのですが、まだmql5のコードはありませんでした...。また、テストに関しても、シンボル、時間枠、テストの設定など、謎が多く、闇に包まれている。
さて、下塗りを始める前にもう一つ質問です。
例えば、記録した結果です。
オプティマイザー - 買い;売り;売り;買い;買い;売り
テスター - 買い;売り;買い;売り;買い;買い;買い;売り
これらの「おまけ」案件のデータは、どのような天井から来たものかを理解するのに役立つのでしょうか?もしかしたら、以前のバーの価格も書くべきかもしれませんし、他に何かありますか?
5ページ目は進んでいたのですが、mql5のコードはまだありませんでした...。また、テストに関しても、シンボル、時間枠、テストの設定など、謎が多く、闇に包まれている。
休暇からお帰りなさい ))))
ここですべてを見る ことができます。
簡単な例です。
とはいえ...。グローバルスコープに宣言を入れると、コンパイラはなぜか警告を出さない((
もっと違うものを期待していたのですが...。
x' がdouble 型の 場合、与えられた例は根本的に間違っており、どちらの場合も 'y' の状態は未定義である
つまり、ニューラルネットワークの奥底には、inf-typesやnan-typesといった特殊なダブル値や、eps値に似た値が存在する可能性があるのです。