エラー、バグ、質問 - ページ 1851 1...184418451846184718481849185018511852185318541855185618571858...3185 新しいコメント Renat Fatkhullin 2017.04.12 20:02 #18501 kaus_bonus:ご返信ありがとうございました。全体としては、私の投稿で示したような結果になっています。普通のやつでテストしてきました。 チートではなく、どちらのシステムでも同じ条件です。それなのに、MT4とMT5の結果は200倍近く違う(原因は -サーバーデータとの完全な同期を制御しなければならない?).MT4で約0.6ms まだ何とかなりそうです。どうやら、そこのデータはすでに準備されているようで、この数字は実際のコストを表していないようです。MT4は思想がかなり違っていて、実はターミナルはMQL4のコードからシステムレベルで各スクリプト/エキスパートの膨大なデータをコピーしているのです。そのため、MQL4での測定は、通常、データ受信のためのリソースの実消費量を示すものではありません。もちろん、経費は存在しますが、それは別の次元の話であり、システムが責任を負うべきものです。あなたのタスクが無限のデータフロー(深い履歴、何万もの商品)にスケールアップした場合、MT4のメカニズム(各ロボットのマーケットデータのコピーを 作成する)が適用できないことは明らかです。そのため、Open/High/Low/Closeのダイレクトアクセスを廃止し、CopyXXX関数に切り替えるなど、MQL5を劇的に変更・改良する必要がありました。MT5データのサイズを考慮すると、Expert Advisorが600万バーのEURUSD M1 コピーを構築するのは高すぎます。 MT5/MQL5は、事前にコピーすることなく、オンデマンドでデータをダウンロードする戦略を採用しているため、MQL5コードから実際のコストを測定する機会がより多くあります。MT5で複雑なオブジェクトのデータベースをメモリに取り込み、同期を確認し、キャッシュを準備するのに113ミリ秒は許容範囲です。 Renat Fatkhullin 2017.04.12 20:07 #18502 kaus_bonus: 例えば、MTにはマーケットスクリーナーがないので、マーケットウォッチにシンボルを追加する小さなスクリプトを書きましたが、価格はCopyCloseを介してのみ利用でき、シンボルがマーケットウォッチに追加されるまでSymbolInfoDoubleやMqlTickを介して利用できないので、ターミナルを起動してから 無限に長くこのスクリプトが実行されます。これはあくまで例としてです。履歴を取得するために、商品をマーケット一覧に追加する必要はありません。シンボルデータを参照すると、バックグラウンドデータの同期が開始されます。現在では、最新のデータが要求されても、チャートデータベース全体がその深さまで持ち上げられ、過剰なレベルのキャッシュを使用しているという問題があります。その結果、数百のチャートをチェックするスクリーナーでは、大きなメモリオーバーが発生します。タスクはすでにこの戦略を変更し、リクエストの最も遠い日付から500バーより深くデータをピックアップしないように設定されています。これにより、マーケットスクリーナーを苦もなく書くことができるようになります。 Алексей Тарабанов 2017.04.12 20:44 #18503 fxsaber:正しい方法とは? あなたは尋ねた、あなたは答えた:)まあ、そうなんですけどね。 fxsaber 2017.04.12 20:55 #18504 Алексей Тарабанов: あなたは尋ねた、あなたは答えた:)そうですね、その通りです。 省略されたテンプレートのオペレーターコールを見たことがない。 Алексей Тарабанов 2017.04.12 21:10 #18505 fxsaber: 短縮されたテンプレートのオペレーターコールはまだ見たことがありません。 構造物を扱うのは久しぶりです。構造体配列の要素全体を開始させる必要がある場合は、文字列操作となります。そして、変換された文字 列の整数要素は正しく開始され、コンパイラが報告したとおりです。構造体の配列を開始、比較、またはその他の方法で処理したい場合は、MQLでそれらがどのように表現/保存されるかを尋ねてください。複雑なことは何もなく、作業スピードが格段にアップします。 fxsaber 2017.04.12 21:13 #18506 Алексей Тарабанов: どの構文項目が省略されているのか知りたいStruct.operator[]<int>(0); TheXpert 2017.04.12 21:32 #18507 fxsaber: どの構文項目が省略されているのか知りたい 構造体[0]の場合 Алексей Тарабанов 2017.04.12 21:37 #18508 Комбинатор: Struct[0]です。 誰に対してどのように fxsaber 2017.04.12 21:43 #18509 Комбинатор: Struct[0]です。 ページを閲覧しないように、コードをコピーしておきます。 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム バグ、バグ、質問 fxsaber さん 2017.04.12 14:27 struct STRUCT { template <typename T> void operator []( int ) {} }; void OnStart() { STRUCT Struct; Struct.operator[]<int>(0); // Нормально Struct[0]<int>; // Ошибка }この2つの通話は別物です。Struct.operator[]<int>(0); Struct.operator[]<MqlTick>(0);それぞれに対応する略記号があるはずです。どれだ? Алексей Тарабанов 2017.04.12 21:43 #18510 fxsaber: どの構文項目が省略されているのか知りたい 欲しいものを提供できるエントリーはありません。ファンダメンタルズ意味的に。 1...184418451846184718481849185018511852185318541855185618571858...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ご返信ありがとうございました。
全体としては、私の投稿で示したような結果になっています。
普通のやつでテストしてきました。
それなのに、MT4とMT5の結果は200倍近く違う(原因は -サーバーデータとの完全な同期を制御しなければならない?).
MT4で約0.6ms まだ何とかなりそうです。どうやら、そこのデータはすでに準備されているようで、この数字は実際のコストを表していないようです。
MT4は思想がかなり違っていて、実はターミナルはMQL4のコードからシステムレベルで各スクリプト/エキスパートの膨大なデータをコピーしているのです。そのため、MQL4での測定は、通常、データ受信のためのリソースの実消費量を示すものではありません。もちろん、経費は存在しますが、それは別の次元の話であり、システムが責任を負うべきものです。
あなたのタスクが無限のデータフロー(深い履歴、何万もの商品)にスケールアップした場合、MT4のメカニズム(各ロボットのマーケットデータのコピーを 作成する)が適用できないことは明らかです。そのため、Open/High/Low/Closeのダイレクトアクセスを廃止し、CopyXXX関数に切り替えるなど、MQL5を劇的に変更・改良する必要がありました。MT5データのサイズを考慮すると、Expert Advisorが600万バーのEURUSD M1 コピーを構築するのは高すぎます。
MT5/MQL5は、事前にコピーすることなく、オンデマンドでデータをダウンロードする戦略を採用しているため、MQL5コードから実際のコストを測定する機会がより多くあります。
MT5で複雑なオブジェクトのデータベースをメモリに取り込み、同期を確認し、キャッシュを準備するのに113ミリ秒は許容範囲です。
例えば、MTにはマーケットスクリーナーがないので、マーケットウォッチにシンボルを追加する小さなスクリプトを書きましたが、価格はCopyCloseを介してのみ利用でき、シンボルがマーケットウォッチに追加されるまでSymbolInfoDoubleやMqlTickを介して利用できないので、ターミナルを起動してから 無限に長くこのスクリプトが実行されます。これはあくまで例としてです。
履歴を取得するために、商品をマーケット一覧に追加する必要はありません。シンボルデータを参照すると、バックグラウンドデータの同期が開始されます。
現在では、最新のデータが要求されても、チャートデータベース全体がその深さまで持ち上げられ、過剰なレベルのキャッシュを使用しているという問題があります。その結果、数百のチャートをチェックするスクリーナーでは、大きなメモリオーバーが発生します。
タスクはすでにこの戦略を変更し、リクエストの最も遠い日付から500バーより深くデータをピックアップしないように設定されています。これにより、マーケットスクリーナーを苦もなく書くことができるようになります。
正しい方法とは?
あなたは尋ねた、あなたは答えた:)まあ、そうなんですけどね。
あなたは尋ねた、あなたは答えた:)そうですね、その通りです。
短縮されたテンプレートのオペレーターコールはまだ見たことがありません。
構造物を扱うのは久しぶりです。構造体配列の要素全体を開始させる必要がある場合は、文字列操作となります。そして、変換された文字 列の整数要素は正しく開始され、コンパイラが報告したとおりです。構造体の配列を開始、比較、またはその他の方法で処理したい場合は、MQLでそれらがどのように表現/保存されるかを尋ねてください。複雑なことは何もなく、作業スピードが格段にアップします。
どの構文項目が省略されているのか知りたい
Struct[0]です。
誰に対してどのように
Struct[0]です。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
fxsaber さん 2017.04.12 14:27
この2つの通話は別物です。
それぞれに対応する略記号があるはずです。どれだ?
どの構文項目が省略されているのか知りたい
欲しいものを提供できるエントリーはありません。ファンダメンタルズ意味的に。