エラー、バグ、質問 - ページ 2745 1...273827392740274127422743274427452746274727482749275027512752...3185 新しいコメント Ilyas 2020.05.20 13:39 #27441 fxsaber: 最適化に関する質問です。テスターでは、すべてのティックに、さらなる作業のためのティックが必要なのです。私はこの方法でやっています。 このバリエーションが遅くなることは明らかです。 しかし、SymbolInfoTickは、文字列パラメータが参照渡しでないため、速度も遅くなります。 文字列を参照渡しする通常のSymbolInfo*オーバーローディングは可能でしょうか? があったほうがいい。 Optimizerでは、これらの関数が何百億回と呼び出される。 Symbol()を呼び出すと、Digits()、Point()、Period()、GetLastError()、IsStopped()、 UninitializeReason()と同様に常にグローバル変数_Symbolにアクセスできるように拡張されます。 fxsaber 2020.05.20 13:51 #27442 Ilyas: Symbol() は、Digits(), Point(), Period(), GetLastError(), IsStopped(), UninitializeReason() と同様に、常にグローバル変数 _Symbol にアクセスするように展開される。 また、文字列の参照渡しは? Sergey Dzyublik 2020.05.20 13:54 #27443 fxsaber: また、文字列の参照渡しは? どうやら原因は、MQLの解決できない問題の1つ、const refでリテラルをパラメータとして渡すことにあるようです。 A100 2020.05.20 15:20 #27444 fxsaber: 文字列を参照渡しする通常のSymbolInfo*オーバーロードは可能でしょうか? どのように役立つのでしょうか? int SymbolInfoTick( string symbol ) { return 1; } int SymbolInfoTick( string& symbol ) { return 2; } void OnStart() { Print( SymbolInfoTick( _Symbol )); } 2 ではなく 1 を返します Ilyas 2020.05.20 15:30 #27445 fxsaber: また、文字列の参照渡しは? 文字列は参照渡しである。 文字列を別の文字列にコピーする際、内容がすぐにコピーされないため、文字列バッファの 参照カウントが増加する 例えば、文字列を値で渡す場合、パラメータとして渡す場合は参照カウントが増加し、呼び出し後に減少します。 文字列を変更する場合、バッファの参照回数をチェックし、複数の参照がある場合は、変更する文字列を古いバッファから「アンリンク」し、新しいバッファを確保します。 。 Ilyas 2020.05.20 15:31 #27446 A100: どのように役立つのでしょうか? 2 ではなく 1 を返す (呼び出される) ことに変わりはない 変数_Symbolは定数 A100 2020.05.20 15:37 #27447 Ilyas: 変数_Symbolは定数 それから、オーバーロードも役に立ちません。 int SymbolInfoTick( string ) { return 1; } int SymbolInfoTick( const string& ) { return 2; } void OnStart() { Print( SymbolInfoTick( _Symbol )); //Error } コンパイル時にすでにエラーが発生します。 fxsaber 2020.05.20 15:43 #27448 Ilyas: 文字列は参照渡しである。 文字列を別の文字列にコピーするとき、(以前のように)すぐに内容がコピーされるのではなく、文字列バッファへの 参照数が増加します 例えば、文字列を値で渡すとき、パラメータとして参照数が増加し、呼び出し後に減少します。 文字列が変更されると、バッファの参照カウントがチェックされ、複数の参照がある場合、変更された文字列は古いバッファから「アンリンク」され、新しいバッファが割り当てられる。 。 これはすべてコンパイルレベルで定義されているのでしょうか? Alexey Navoykov 2020.05.21 06:43 #27449 コンパイラーエラーです。 class CArray { }; int ArraySize(const CArray&); void Main() { CArray arr; ArraySize(arr); // Нормально CArray arrays[1]; ArraySize(arrays[0]); // 'arrays' - array required } Koldun Zloy 2020.05.21 08:01 #27450 fxsaber: これはすべてコンパイルレベルで定義されているのでしょうか? いいえ、コンパイル時にはまだ分かっていません。 1...273827392740274127422743274427452746274727482749275027512752...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
最適化に関する質問です。テスターでは、すべてのティックに、さらなる作業のためのティックが必要なのです。私はこの方法でやっています。
このバリエーションが遅くなることは明らかです。
しかし、SymbolInfoTickは、文字列パラメータが参照渡しでないため、速度も遅くなります。
文字列を参照渡しする通常のSymbolInfo*オーバーローディングは可能でしょうか?
があったほうがいい。
Optimizerでは、これらの関数が何百億回と呼び出される。
Symbol()を呼び出すと、Digits()、Point()、Period()、GetLastError()、IsStopped()、 UninitializeReason()と同様に常にグローバル変数_Symbolにアクセスできるように拡張されます。
Symbol() は、Digits(), Point(), Period(), GetLastError(), IsStopped(), UninitializeReason() と同様に、常にグローバル変数 _Symbol にアクセスするように展開される。
また、文字列の参照渡しは?
また、文字列の参照渡しは?
どうやら原因は、MQLの解決できない問題の1つ、const refでリテラルをパラメータとして渡すことにあるようです。
文字列を参照渡しする通常のSymbolInfo*オーバーロードは可能でしょうか?
どのように役立つのでしょうか?
2 ではなく 1 を返します
また、文字列の参照渡しは?
文字列は参照渡しである。
文字列を別の文字列にコピーする際、内容がすぐにコピーされないため、文字列バッファの 参照カウントが増加する
例えば、文字列を値で渡す場合、パラメータとして渡す場合は参照カウントが増加し、呼び出し後に減少します。
文字列を変更する
場合、バッファの参照回数をチェックし、複数の参照がある場合は、変更する文字列を古いバッファから「アンリンク」し、新しいバッファを確保します。
。
どのように役立つのでしょうか?
2 ではなく 1 を返す (呼び出される) ことに変わりはない
変数_Symbolは定数
それから、オーバーロードも役に立ちません。
コンパイル時にすでにエラーが発生します。
文字列は参照渡しである。
文字列を別の文字列にコピーするとき、(以前のように)すぐに内容がコピーされるのではなく、文字列バッファへの 参照数が増加します
例えば、文字列を値で渡すとき、パラメータとして参照数が増加し、呼び出し後に減少します。
文字列が変更さ
れると、バッファの参照カウントがチェックされ、複数の参照がある場合、変更された文字列は古いバッファから「アンリンク」され、新しいバッファが割り当てられる。
。
これはすべてコンパイルレベルで定義されているのでしょうか?
コンパイラーエラーです。
これはすべてコンパイルレベルで定義されているのでしょうか?
いいえ、コンパイル時にはまだ分かっていません。