MT5とスピードの関係 - ページ 56 1...495051525354555657585960616263...94 新しいコメント Roman 2020.10.14 03:55 #551 Renat Akhtyamov: ジェントルマン・オブ・ザ・プログ... コンピュータのメモリ割り当てについて最初に読み、次にどのように、どのような手段でそれが行われ、次にどのようにクリーニングして、から読み取ることは困難ではありません。少なくとも、開発者に対するより合理的な提案は可能である mt4ではわからないのでは? あらかじめ設定されているAsk Bidを自分で使っているのですか? mt5では、MqlTickの構造体 全体に対して、何らかの理由でそれらが欠落しています。 関数を呼び出し、構造体を埋めてから、値を取得します。 それともすぐに値を取得するのか、違いはあるのでしょうか? それとも、私の方向ではないのでしょうか? せめて誰に宛てて書いているのかくらいは示すべきでしょう )) A100 2020.10.14 03:59 #552 Roman:あらかじめ定義された変数、現在のティックのための、おそらくより良いだろう。 開発者は以前、直接アクセスには根本的な限界があると説明しています void f() { MqlTick t1 = _Tick; MqlTick t2 = _Tick; } であり、一般に t1 と t2 は等しくない。さらに、t1 と t2 の両方に含まれるフィールドの値は、まったく異なるティックを参照することになるかもしれません。 Roman 2020.10.14 04:06 #553 A100:開発者は以前、直接アクセスには根本的な限界があると説明していますであり、一般にt1はt2と等しくない。さらに、t1 と t2 はリンクしたフィールドであるにもかかわらず、両者の中のフィールド値は異なるティックを参照することができます(これらは同じティックを参照するはずです)。 Brr、根本的な限界は何ですか? 例の構造は不要です、埋める必要はありません。 ソケットから値が来て、構造に従って変数 _Ask, _Bid, などに書き込まれる。_Ask != _Ask in your opinion? 構造体を埋めてしまうと制限が発生し、時間がかかってしまいます。 記入する必要はありませんが、_Ask, _Bid などは直接与えてください。 A100 2020.10.14 04:17 #554 Roman:Brr、原理的な制限とは何ですか? 例の構造はここでは不要です、記入する必要はありません。 void f() { double ask1 = _Ask; double ask2 = _Ask; } 構造がなくても書き換えることができます。一般的な場合、ask1 と ask2 は等しくない。 Valeriy Yastremskiy 2020.10.14 04:22 #555 A100:また、構造を無視して書き直すことも可能です。一般的な場合、ask1 と ask2 は等しくない。 I.e.これらは非同期環境に対するリクエストであり、応答は現在の環境の状態によって受け取られるのですか?また、OnTickは現在のティックをキャッチしてEAを動作させていますが、同時にEAが動作しているときにティック構造による要求は、次のティックから答えを得ることができるのでしょうか? Roman 2020.10.14 04:22 #556 A100:また、構造を無視して書き直すことも可能です。一般に、ask1 と ask2 は等しくない。 だから、実数の最後の桁が異なる100500桁を使用する必要はありません 0.000000000000000001 各変数のための異なる桁、価格ダブル最大8です。 fxsaber 2020.10.14 05:30 #557 Renat Fatkhullin:重要なのはベータ版2652をリリースしたこと。 コンパイル割り込みの改善 (22%増) SymbolInfoTickへのアクセスが劇的に速くなりました。 22%良好です。 SymbolInfoTick- 自宅のマシンでは、アラートが出ないことに目で見て気がつきました。しかし、ログにあるこれらのアラートをフィルタリングしてみると、24時間前の同じ時間帯に発行された2650件よりも多くの件数があることがわかりました。 両方のログをPMに送信しました。 fxsaber 2020.10.14 05:31 #558 Valeriy Yastremskiy:つまり、これらは非同期環境に対するリクエストであり、応答は環境の現在の状態に基づいて行われるのですか?また、OnTickは現在のティックをキャッチしてEAをワークアウトしていますが、EAがワークアウトしているときのティック構造による要求は、次のティックから答えを得ることができるのでしょうか。 はい。 fxsaber 2020.10.14 05:41 #559 Renat Fatkhullin:大量の刻み作業を行う場合は、メモリを多めに搭載してください。4gb(価格€20)は、分析や調査に関して言えば、2020年にはもう通用しない。 CopyTicksに一度だけ電話をかけるという話です。これは、OnInitでこれらのティックで仮想バックテストを行い、新鮮なティックのみをフィードしてリアルタイムでそれを継続するために行われます。 妥協案として、OnInitで呼ばれるCopyTicksの直後にTerminal内のメモリを解放することを提案します。それなら、CopyTicksに強制冷却機能を導入する必要はない。 今、スリープ版の 冷却はとてもカクカクしています。しかし、この松葉杖がいかにメモリの節約になるかは、前述したとおりです。 20のExpert Advisorが低速のVPSでも高速に動作することが判明しました。しかし、それらを起動させるのは重大な問題です。 以下は、この問題を示すExpert Advisorです。 // Демонстрация 10-ти секундного удержания в памяти ненужных данных CopyTicks. #define PRINT(A) Print(#A + " = " + (string)(A)) input datetime inFrom = D'2020.06.01'; // С какой даты анализировать историю int OnInit() { MqlTick Ticks[]; Print("Before CopyTicks:"); PRINT(MQLInfoInteger(MQL_MEMORY_USED)); PRINT(TerminalInfoInteger(TERMINAL_MEMORY_USED)); PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, (long)inFrom * 1000)); ArrayFree(Ticks); Print("After CopyTicks:"); for (int i = 0; i < 10; i++) { PRINT(i); PRINT(MQLInfoInteger(MQL_MEMORY_USED)); PRINT(TerminalInfoInteger(TERMINAL_MEMORY_USED)); Sleep(1000); } return(INIT_FAILED); } 結果 2020.10.14 08:49:24.016 Before CopyTicks: 2020.10.14 08:49:24.016 MQLInfoInteger(MQL_MEMORY_USED) = 0 2020.10.14 08:49:24.031 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 864 2020.10.14 08:49:25.399 CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 14372119 2020.10.14 08:49:25.465 After CopyTicks: 2020.10.14 08:49:25.465 i = 0 2020.10.14 08:49:25.465 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:25.499 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:26.594 i = 1 2020.10.14 08:49:26.594 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:26.630 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:27.729 i = 2 2020.10.14 08:49:27.729 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:27.762 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:28.852 i = 3 2020.10.14 08:49:28.852 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:28.884 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:29.977 i = 4 2020.10.14 08:49:29.977 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:30.009 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:31.102 i = 5 2020.10.14 08:49:31.102 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:31.136 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:32.224 i = 6 2020.10.14 08:49:32.225 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:32.257 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:33.348 i = 7 2020.10.14 08:49:33.348 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:33.381 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:34.468 i = 8 2020.10.14 08:49:34.468 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:34.501 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1796 2020.10.14 08:49:35.593 i = 9 2020.10.14 08:49:35.593 MQLInfoInteger(MQL_MEMORY_USED) = 1 2020.10.14 08:49:35.605 TerminalInfoInteger(TERMINAL_MEMORY_USED) = 860 Renat Fatkhullin 2020.10.14 05:52 #560 fxsaber:22%・・・結構です。SymbolInfoTick - 自宅のマシンでは、アラートがないことに目で見て気づきました。しかし、ログにあるこれらのアラートをフィルタリングしてみると、24時間前の同じ時間帯に発行された2650件よりも多くの件数があることがわかりました。両方のログをPMに送信しました。 大量並列アクセスの場合、1/10に高速化。 その他の場合は、プロセッサ、メモリ、オペレーティングシステムのアップグレードのみとなります。 1...495051525354555657585960616263...94 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ジェントルマン・オブ・ザ・プログ...
mt4ではわからないのでは?
あらかじめ設定されているAsk Bidを自分で使っているのですか?
mt5では、MqlTickの構造体 全体に対して、何らかの理由でそれらが欠落しています。
関数を呼び出し、構造体を埋めてから、値を取得します。
それともすぐに値を取得するのか、違いはあるのでしょうか?
それとも、私の方向ではないのでしょうか?
せめて誰に宛てて書いているのかくらいは示すべきでしょう ))
あらかじめ定義された変数、現在のティックのための、おそらくより良いだろう。
開発者は以前、直接アクセスには根本的な限界があると説明しています
であり、一般に t1 と t2 は等しくない。さらに、t1 と t2 の両方に含まれるフィールドの値は、まったく異なるティックを参照することになるかもしれません。
開発者は以前、直接アクセスには根本的な限界があると説明しています
であり、一般にt1はt2と等しくない。さらに、t1 と t2 はリンクしたフィールドであるにもかかわらず、両者の中のフィールド値は異なるティックを参照することができます(これらは同じティックを参照するはずです)。
Brr、根本的な限界は何ですか?
例の構造は不要です、埋める必要はありません。
ソケットから値が来て、構造に従って変数 _Ask, _Bid, などに書き込まれる。
_Ask != _Ask in your opinion?
構造体を埋めてしまうと制限が発生し、時間がかかってしまいます。
記入する必要はありませんが、_Ask, _Bid などは直接与えてください。
Brr、原理的な制限とは何ですか?
例の構造はここでは不要です、記入する必要はありません。
構造がなくても書き換えることができます。一般的な場合、ask1 と ask2 は等しくない。
また、構造を無視して書き直すことも可能です。一般的な場合、ask1 と ask2 は等しくない。
I.e.これらは非同期環境に対するリクエストであり、応答は現在の環境の状態によって受け取られるのですか?また、OnTickは現在のティックをキャッチしてEAを動作させていますが、同時にEAが動作しているときにティック構造による要求は、次のティックから答えを得ることができるのでしょうか?
また、構造を無視して書き直すことも可能です。一般に、ask1 と ask2 は等しくない。
だから、実数の最後の桁が異なる100500桁を使用する必要はありません 0.000000000000000001
各変数のための異なる桁、価格ダブル最大8です。
重要なのはベータ版2652をリリースしたこと。
22%良好です。
SymbolInfoTick- 自宅のマシンでは、アラートが出ないことに目で見て気がつきました。しかし、ログにあるこれらのアラートをフィルタリングしてみると、24時間前の同じ時間帯に発行された2650件よりも多くの件数があることがわかりました。
両方のログをPMに送信しました。
つまり、これらは非同期環境に対するリクエストであり、応答は環境の現在の状態に基づいて行われるのですか?また、OnTickは現在のティックをキャッチしてEAをワークアウトしていますが、EAがワークアウトしているときのティック構造による要求は、次のティックから答えを得ることができるのでしょうか。
はい。
大量の刻み作業を行う場合は、メモリを多めに搭載してください。
4gb(価格€20)は、分析や調査に関して言えば、2020年にはもう通用しない。
CopyTicksに一度だけ電話をかけるという話です。これは、OnInitでこれらのティックで仮想バックテストを行い、新鮮なティックのみをフィードしてリアルタイムでそれを継続するために行われます。
妥協案として、OnInitで呼ばれるCopyTicksの直後にTerminal内のメモリを解放することを提案します。それなら、CopyTicksに強制冷却機能を導入する必要はない。
今、スリープ版の 冷却はとてもカクカクしています。しかし、この松葉杖がいかにメモリの節約になるかは、前述したとおりです。
20のExpert Advisorが低速のVPSでも高速に動作することが判明しました。しかし、それらを起動させるのは重大な問題です。
以下は、この問題を示すExpert Advisorです。
結果
22%・・・結構です。
SymbolInfoTick - 自宅のマシンでは、アラートがないことに目で見て気づきました。しかし、ログにあるこれらのアラートをフィルタリングしてみると、24時間前の同じ時間帯に発行された2650件よりも多くの件数があることがわかりました。
両方のログをPMに送信しました。
大量並列アクセスの場合、1/10に高速化。
その他の場合は、プロセッサ、メモリ、オペレーティングシステムのアップグレードのみとなります。