エラー、バグ、質問 - ページ 1637 1...163016311632163316341635163616371638163916401641164216431644...3185 新しいコメント Sergey Dzyublik 2016.08.14 21:10 #16361 Slawa:1.5か4か?私は4を推します。テスターウィンドウを拡大するだけです。2.実際に持ってみて、テストするははは、どうもありがとうございました(mt4) 1366 x 768 (( 画面の1/3を引き伸ばす必要があります。 千里眼のスキルがレベルアップしていますね。 Sergey Dzyublik 2016.08.14 21:24 #16362 A100:もっと簡単な例を挙げてみましょう。形式的に言うと、A( A& )の種類の呼び出しは何回あるのでしょうか?ひとつ。少なくともC++は中間オブジェクトを生成しない もしかして、C++ではRVO(戻り値の最適化)がデフォルトで設定されているのでは? Ilyas 2016.08.15 09:09 #16363 A100:1.コピーコンストラクタのダブルコール2.リークしたメモリ」のメッセージは表示されない(削除せずに新規作成)RVO(NRVOもある)の最適化については、今のところMQLコンパイラには入っていませんが、将来的に追加する予定です(今のところ、この最適化は非優先課題として考えています)。が再現されない場合は、再現のための重要な情報が指定されていない可能性がありますので、再確認してください。 A100 2016.08.15 11:20 #16364 Ilyas: 2.再現しない、再確認してください、再現のための重要な詳細を指定されていない可能性があります。簡略化した例class A { public: A() { Print( __FUNCTION__ ); } virtual ~A() { Print( __FUNCTION__ ); } }; void OnStart() { new A(); }結果2016.08.15 14:17:39.093 Script1 (GBPUSD,M15) A::A 結論:デストラクタが呼ばれず、同時にメモリーリークのメッセージも出ない(以下の例のように)。//Script2.mq5 class A { public: A() { Print( __FUNCTION__ ); } virtual ~A() { Print( __FUNCTION__ ); } }; void OnStart() { A *a = new A(); }結果2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 16バイトのリークメモリー 2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) タイプAのオブジェクトが1つ残っています。 2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 1 未削除のオブジェクトが残っています。 2016.08.15 14:26:27.992 Script2 (GBPUSD,M15) A::A Ilyas 2016.08.15 12:01 #16365 分かりやすい説明ありがとうございます。再現-漏れのないメッセージとその理由はこちら。ここでは、new 演算 子で作成されたメモリやポインタに対する操作がないため、このメモリの割り当てが削除され、オプティマイザが過剰に最適化されています。この「バグ」をオプティマイザで修正するか、未使用の変数にポインタを保存しても新しい操作の削除がブロックされないように改善するか、検討します。 Dmitry Voronkov 2016.08.15 12:18 #16366 こんにちは。 MQL4とMQL5にはExpert Advisorからインジケータサブウィンドウを削除する機能があり、インジケータウィンドウを作成する機能がないのはなぜか、開発者にアドバイスをお願いします。 テンプレートを使うか、ウィンドウズ・インジケータを手動で起動する必要があり、チャートの情報が消えてしまうので不便です。 また、リソースファイルからインジケータを起動し、表示できるようにしたい。 あるいはその方法をアドバイスする。 fxsaber 2016.08.15 12:20 #16367 Slawa:ビジュアライゼーション・チップオフ」を企画したのは、あなたではありませんか?なぜ、バグだと思うのですか?フォルダ名は接続したポート番号に対応する 私だったんですね...。ありがとうございます、わかりました。 fxsaber 2016.08.15 12:21 #16368 マクロを行う#define MACROS(A) "##A##" MACROS(Num) を "Num" に置き換えたいのですが、結果はいつも "##A###" になってしまいます。私が望むものを得るためにマクロを定義することは可能ですか? fxsaber 2016.08.15 12:24 #16369 私自身、小さな発見をしました。void OnStart() { double dPrice = 1.08249; int iPrice = (int)((dPrice / _Point) + 0.1); double dNewPrice = iPrice * _Point; // При этом нормализации это значение не требует в OrderSend if (dPrice != dNewPrice) Print((string)(dPrice - dNewPrice)); }Integer * Point(正規化なし)で注文を開き、その後始値を 要求すると、正規化されていないInteger * Pointとは異なる値になります。なぜOrderSEndは常に正規化されていないInteger * Pointの価格を使用するのでしょうか? Ilyas 2016.08.15 12:38 #16370 fxsaber:MACROS(Num) を "Num" に置き換えるマクロをやっているのですが、いつも "##A###" と出力されてしまうのです。私が望むものを得るためにマクロを定義することは可能ですか?マクロ本体から逆さカンマを削除するマクロパラメータを文字列に変換する場合は、#を使用します。#define MACROS(A) #A トークンの連結に##が使われる 1...163016311632163316341635163616371638163916401641164216431644...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
1.5か4か?私は4を推します。テスターウィンドウを拡大するだけです。
2.実際に持ってみて、テストする
ははは、どうもありがとうございました(mt4)
1366 x 768 (( 画面の1/3を引き伸ばす必要があります。
千里眼のスキルがレベルアップしていますね。
もっと簡単な例を挙げてみましょう。
形式的に言うと、A( A& )の種類の呼び出しは何回あるのでしょうか?ひとつ。少なくともC++は中間オブジェクトを生成しない
1.コピーコンストラクタのダブルコール
2.リークしたメモリ」のメッセージは表示されない(削除せずに新規作成)
簡略化した例
結果
2016.08.15 14:17:39.093 Script1 (GBPUSD,M15) A::A
結論:デストラクタが呼ばれず、同時にメモリーリークのメッセージも出ない(以下の例のように)。
結果
2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 16バイトのリークメモリー
2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) タイプAのオブジェクトが1つ残っています。
2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 1 未削除のオブジェクトが残っています。
2016.08.15 14:26:27.992 Script2 (GBPUSD,M15) A::A
ここでは、new 演算 子で作成されたメモリやポインタに対する操作がないため、このメモリの割り当てが削除され、オプティマイザが過剰に最適化されています。
この「バグ」をオプティマイザで修正するか、未使用の変数にポインタを保存しても新しい操作の削除がブロックされないように改善するか、検討します。
MQL4とMQL5にはExpert Advisorからインジケータサブウィンドウを削除する機能があり、インジケータウィンドウを作成する機能がないのはなぜか、開発者にアドバイスをお願いします。
テンプレートを使うか、ウィンドウズ・インジケータを手動で起動する必要があり、チャートの情報が消えてしまうので不便です。
また、リソースファイルからインジケータを起動し、表示できるようにしたい。
あるいはその方法をアドバイスする。
ビジュアライゼーション・チップオフ」を企画したのは、あなたではありませんか?
なぜ、バグだと思うのですか?フォルダ名は接続したポート番号に対応する
私自身、小さな発見をしました。
Integer * Point(正規化なし)で注文を開き、その後始値を 要求すると、正規化されていないInteger * Pointとは異なる値になります。
なぜOrderSEndは常に正規化されていないInteger * Pointの価格を使用するのでしょうか?
マクロ本体から逆さカンマを削除する
マクロパラメータを文字列に変換する場合は、#を使用します。
#define MACROS(A) #A
トークンの連結に##が使われる