エラー、バグ、質問 - ページ 2749 1...274227432744274527462747274827492750275127522753275427552756...3185 新しいコメント Alexey Navoykov 2020.05.21 14:32 #27481 Roman: 前のページでfxsaberさんが測定値を教えてくれました。 その理由を説明しました。 静的、動的を問わず、常にメモリを確保する。 大きなテーブルということであれば、画面には左側だけが表示され、あとはカットされているので、何があるのかわからない。 しかし、コードから判断すると、このマクロを比較した場合 GetCurrentTick2(Tick, !i) 100回の繰り返しで1回しか関数が呼ば れないし、最初のマクロは繰り返しごとに呼ばれる。 だから意味がないんだ。 Roman 2020.05.21 14:35 #27482 Alexey Navoykov: 大きなテーブルのことなら、画面には左の部分だけが見えていて、あとは切れているので、何があるのかわかりません。 しかし、コードから判断すると、このマクロを比較した場合 そして、最初のマクロでは、100回の繰り返しで1回しか関数が呼び出されて いません。 つまり、これはナンセンスなのです。 コンパイラは全能ではないので、正しいコードでコンパイラを助ける必要がある場合もあります )) Ilyas 2020.05.21 14:36 #27483 Sergey Dzyublik: MEデバッガ(build 2370)のバグ - StepInto (F11) と手動でブレークポイントを設定してもうまくいかない。問題は、StepOver(F10)アクションが一度でも関数呼び出しに 適用されると、後でこの関数をデバッグする方法がないことです。 。 1) デバッグモードでコードを実行 2) ブレークポイントが発生した後、StepOver (F10) を 2 回実行 全て - これでIncrement 関数に「入る」方法はなくなり、手動で設定したブレークポイントはすべて発生せず、 StepInto 操作(F11)の代わりに StepOver(F10)が実際に実行されるようになりました。 投稿ありがとうございました。 修正方法 Alexey Navoykov 2020.05.21 14:38 #27484 Roman: コンパイラは全能ではありません、時にはあなたが関与する必要があります )) どういうことだ? あなたは、あなたの構成がより速いと断言しましたが、そうではありません。 そのコードで呼び出される可能性が100倍低いだけなのです。 Sergey Dzyublik 2020.05.21 14:41 #27485 Alexey Navoykov: 最初のマクロでは、100回の繰り返しで1回しか関数が呼び出されて いません。 ですから、これはナンセンスです。 テストは、ここでは必要ない精度を選ぶのでなければ、プラスマイナスノーマルです。 100回SymbolInfoTickを呼び出すのと、1回SymbolInfoTickを呼び出して99回「手動」キャッシュを返すのを比較した場合。 標準の SymbolInfoTick 関数が 1 回のパスで複数回呼び出される場合に、現在のシンボルに対してこの関数を使用することがいかに不経済であるかを示しています。 この問題を解決する方法として、開発者は定義済みの変数を導入することを提案しています。 const MqlTick _Tick; // Текущий _Symbol-тик. ただ、fxsaberが 全く説明せずに全てを書き込みに散りばめているのは、とんでもない事です。 Igor Makanu 2020.05.21 14:44 #27486 Alexey Navoykov: 最初のマクロでは、100回の繰り返しで1回しか関数が呼び出されて いません。 ですから、これはナンセンスです。 彼の例は、MQLプログラムの様々な部分でbid/askデータを使用するもので、SymbolInfoTick()に頻繁にアクセスすればするほど、テスト性能は下がります。 TimeCurrent()のパフォーマンスに問題があることがわかり、いろいろと試してみて、捨てました。 グローバル変数の可視化はめったに使いませんが、テスターですべてを「飛ばす」ために、このような書き方をしています。 MqlTick Tick = {0}; #define Ask Tick.ask #define Bid Tick.bid #define TimeCurrent_ Tick.time //+------------------------------------------------------------------+ void OnTick() { SymbolInfoTick(_Symbol,Tick); .... } Roman 2020.05.21 14:46 #27487 Alexey Navoykov: どういうことだ? 自分の設計の方が速いと断言したが、速くはない、そのコードで呼び出される可能性が100倍低いだけだ。 これは私の設計ではなく、その例から理解したように、マクロはテストのために1つずつ呼び出されるのです。 そしてパスレポートも一緒に表示され、トリミングされているとはいえ、実行時間がわかるようになっています。 Alexey Navoykov 2020.05.21 14:47 #27488 Sergey Dzyublik: 検査は、必要ない精度にこだわらなければ、プラスマイナス普通です。 100回SymbolInfoTickを呼び出すのと、1回SymbolInfoTickを呼び出して99回「手動」キャッシュを返すのを比較した場合。 はい、キャッシュの件、了解しました。メモリ割り当てのことで何か揉めていたローマンですが、荒らしの件は正解だったようですね ) Roman 2020.05.21 14:56 #27489 Alexey Navoykov: キャッシュのことは知っています。ただ、ここのローマンがメモリ割り当てについて何かこすっていたので・・・荒らしの件は正解だったようです ) キャッシュはどこに割り当てられているのでしょうか?このドブスが。 fxsaber 2020.05.21 15:01 #27490 Sergey Dzyublik: 検査は、必要ない精度にこだわらなければ、プラスマイナス普通です。 比較:100回SymbolInfoTickを呼び出すのと、1回SymbolInfoTickを呼び出して99回「手動」キャッシュを返すのとでは、比較にならない。 標準の SymbolInfoTick 関数が 1 回のパスで複数回呼び出される場合に、現在のシンボルに対してこの関数を使用することがいかに不経済であるかを示しています。 この問題を解決する方法として、開発者はあらかじめ定義された変数を導入することが推奨される。 私の言いたいことは100%伝わります。 理由は、fxsaber さんが説明もせずに全てを書き込みで拡散していたので、分かりにくかったからです。 すみません、うまく形にできないんです。 1...274227432744274527462747274827492750275127522753275427552756...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
前のページでfxsaberさんが測定値を教えてくれました。
その理由を説明しました。
静的、動的を問わず、常にメモリを確保する。
大きなテーブルということであれば、画面には左側だけが表示され、あとはカットされているので、何があるのかわからない。
しかし、コードから判断すると、このマクロを比較した場合
100回の繰り返しで1回しか関数が呼ば れないし、最初のマクロは繰り返しごとに呼ばれる。 だから意味がないんだ。
大きなテーブルのことなら、画面には左の部分だけが見えていて、あとは切れているので、何があるのかわかりません。
しかし、コードから判断すると、このマクロを比較した場合
そして、最初のマクロでは、100回の繰り返しで1回しか関数が呼び出されて いません。 つまり、これはナンセンスなのです。
コンパイラは全能ではないので、正しいコードでコンパイラを助ける必要がある場合もあります ))
MEデバッガ(build 2370)のバグ - StepInto (F11) と手動でブレークポイントを設定してもうまくいかない。問題は、StepOver(F10)アクションが一度でも
関数呼び出しに 適用されると、後でこの関数をデバッグする方法がないことです。 。
1) デバッグモードでコードを実行
2) ブレークポイントが発生した後、StepOver (F10) を 2 回実行
全て - これでIncrement 関数に「入る」方法はなくなり、手動で設定したブレークポイントはすべて発生せず、 StepInto 操作(F11)の代わりに StepOver(F10)が実際に実行されるようになりました。
投稿ありがとうございました。
修正方法
コンパイラは全能ではありません、時にはあなたが関与する必要があります ))
最初のマクロでは、100回の繰り返しで1回しか関数が呼び出されて いません。 ですから、これはナンセンスです。
テストは、ここでは必要ない精度を選ぶのでなければ、プラスマイナスノーマルです。
100回SymbolInfoTickを呼び出すのと、1回SymbolInfoTickを呼び出して99回「手動」キャッシュを返すのを比較した場合。
標準の SymbolInfoTick 関数が 1 回のパスで複数回呼び出される場合に、現在のシンボルに対してこの関数を使用することがいかに不経済であるかを示しています。
この問題を解決する方法として、開発者は定義済みの変数を導入することを提案しています。
ただ、fxsaberが 全く説明せずに全てを書き込みに散りばめているのは、とんでもない事です。
最初のマクロでは、100回の繰り返しで1回しか関数が呼び出されて いません。 ですから、これはナンセンスです。
彼の例は、MQLプログラムの様々な部分でbid/askデータを使用するもので、SymbolInfoTick()に頻繁にアクセスすればするほど、テスト性能は下がります。
TimeCurrent()のパフォーマンスに問題があることがわかり、いろいろと試してみて、捨てました。
グローバル変数の可視化はめったに使いませんが、テスターですべてを「飛ばす」ために、このような書き方をしています。
どういうことだ? 自分の設計の方が速いと断言したが、速くはない、そのコードで呼び出される可能性が100倍低いだけだ。
これは私の設計ではなく、その例から理解したように、マクロはテストのために1つずつ呼び出されるのです。
そしてパスレポートも一緒に表示され、トリミングされているとはいえ、実行時間がわかるようになっています。
検査は、必要ない精度にこだわらなければ、プラスマイナス普通です。
100回SymbolInfoTickを呼び出すのと、1回SymbolInfoTickを呼び出して99回「手動」キャッシュを返すのを比較した場合。
はい、キャッシュの件、了解しました。メモリ割り当てのことで何か揉めていたローマンですが、荒らしの件は正解だったようですね )
キャッシュのことは知っています。ただ、ここのローマンがメモリ割り当てについて何かこすっていたので・・・荒らしの件は正解だったようです )
キャッシュはどこに割り当てられているのでしょうか?このドブスが。
検査は、必要ない精度にこだわらなければ、プラスマイナス普通です。
比較:100回SymbolInfoTickを呼び出すのと、1回SymbolInfoTickを呼び出して99回「手動」キャッシュを返すのとでは、比較にならない。
標準の SymbolInfoTick 関数が 1 回のパスで複数回呼び出される場合に、現在のシンボルに対してこの関数を使用することがいかに不経済であるかを示しています。
この問題を解決する方法として、開発者はあらかじめ定義された変数を導入することが推奨される。
私の言いたいことは100%伝わります。
理由は、fxsaber さんが説明もせずに全てを書き込みで拡散していたので、分かりにくかったからです。
すみません、うまく形にできないんです。