voidOnStart()
{
// Print("используется памяти до закачки истории: "+string(MQLInfoInteger(MQL_MEMORY_USED))+" Mb");Print("используется памяти до закачки истории: "+string(TerminalInfoInteger(TERMINAL_MEMORY_USED))+" Mb");
MqlTick items[];
ulong t0=GetMicrosecondCount();
uint count=CopyTicks(Symbol(),items,COPY_TICKS_INFO,0,1 e7);
t0=GetMicrosecondCount()-t0;
Print ("Загружено за "+string(t0/1000)+" миллисекунд "+ (string)count+ " тиков");
// Print("используется памяти после закачки истории: "+string(MQLInfoInteger(MQL_MEMORY_USED))+" Mb");Print("используется памяти после закачки истории: "+string(TerminalInfoInteger(TERMINAL_MEMORY_USED))+" Mb");
ArrayFree(items);
// Print("используется памяти после ArrayFree: "+string(MQLInfoInteger(MQL_MEMORY_USED))+" Mb");Print("используется памяти после ArrayFree: "+string(TerminalInfoInteger(TERMINAL_MEMORY_USED))+" Mb");
}
используется памяти до закачки истории: 1043 Mb
Загружено за 11223 миллисекунд 10000000 тиков
используется памяти после закачки истории: 1675 Mb
используется памяти после ArrayFree: 1102 Mb
2020.03.1910:39:45.784 Test (EURUSD,H1) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2020.03.1910:39:46.765 Test (EURUSD,H1) Test Class ArrayResize all : loops=1000 ms=9842020.03.1910:39:48.233 Test (EURUSD,H1) Test Class ArrayResize one by one with reserved memory : loops=1000 ms=14692020.03.1910:39:49.944 Test (EURUSD,H1) Test Class ArrayResize one by one with newoperator : loops=1000 ms=17032020.03.1910:39:50.923 Test (EURUSD,H1) Test Class ArrayResize all : loops=1000 ms=9692020.03.1910:39:52.392 Test (EURUSD,H1) Test Class ArrayResize one by one with reserved memory : loops=1000 ms=14842020.03.1910:39:54.100 Test (EURUSD,H1) Test Class ArrayResize one by one with newoperator : loops=1000 ms=17032020.03.1910:39:55.079 Test (EURUSD,H1) Test Class ArrayResize all : loops=1000 ms=9852020.03.1910:39:56.548 Test (EURUSD,H1) Test Class ArrayResize one by one with reserved memory : loops=1000 ms=14692020.03.1910:39:58.258 Test (EURUSD,H1) Test Class ArrayResize one by one with newoperator : loops=1000 ms=17032020.03.1910:39:59.237 Test (EURUSD,H1) Test Class ArrayResize all : loops=1000 ms=9842020.03.1910:40:00.705 Test (EURUSD,H1) Test Class ArrayResize one by one with reserved memory : loops=1000 ms=14692020.03.1910:40:02.416 Test (EURUSD,H1) Test Class ArrayResize one by one with newoperator : loops=1000 ms=1703
もちろん、発売する。端末自体がキャッシュに刻みを記憶しているので、運用中は必要ないんですけどね。
このダニを後で冷静に育て直した方がいいんです。端末を「冷やす」仕組みが必要。
気がつかなかった。
SZY 悲しいことに、メモリ上では1ティックあたり60バイトでアンパックして保存されています。簡単に5回パックすることができます(1ティックあたり〜12バイト)。
CopyRatesのように自動ダウンロードを行うのがよいでしょう。
この場合、時間軸は不明です。ダウンロードは、ピリオド記号の要求により開始される。
何ができるかを考える
は気づかない。
端末が何を消費しているのかを見なければならない。
その結果が、長い間稼働してきた「ターミナル」に出ているのです。EA/インジケータが動作していない。2つのチャート、M1バーは当年度のみ。
60Mbは未発売です。空のターミナルは1ギガバイト以上消費します。消費量を減らすには、端末の再読み込みしかありません。
こんにちは、ありがとうございました。
今までnew演算 子を使ったことがないのは、論理的に予約メモリでArrayResizeより遅いはずだからです。
しかし、得られた結果には感動しました。逆も然りで、new演算子を介したネイティブ配列の方が高速であることが判明したのです。
MT5 (ビルド 2363)です。
ベータ版2364でリリース(残念ながらテンプレート内のnew T()でコンパイラーエラーが発生します。)
スクリプトのログはこちらです。
オブジェクトに対するArrayResizeがより速く動作するようになったことがわかります。再び、ArrayResize関数の1部分の複雑さが対数からゼロになりました
オブジェクトに対するArrayResizeが高速化されたことがわかります。
今回も、ArrayResize関数の一部分の複雑さを対数からゼロにすることに成功したのです。
実際のプロジェクトでArrayResizeReserveとArrayOnNewの速度を比較したところ、データ型は intフィールドを1つ持つクラスで、レコード数は20Mでした。
MT5(ビルド2363)では、1つを除くすべてのパラメータで、ArrayOnNewはArrayResizeReserveよりも悪い結果となりました。
ヘルプ(エディタ)にあるこれらのリンクは、ページが見つかりません。
問題は、最初の「test」関数の引数に、完全に特殊化された テンプレート基底クラスが含まれている場合に発生します。
で、2番目の「test」関数は1番目の関数をオーバーロードしたもので、テンプレート関数であり、引数として非特異化 テンプレート基底クラスを含んでいます。
皆さん、こんにちは。私の質問ですが、私はコピー機でMT4とMT5の2つのプラットフォームを使用しています。 MT4からの信号には問題なく接続できました。しかし、MT5から別のシグナルに接続することができません。口座を持っていて資金の動きが表示されるのですが、口座に口座番号がなく、端末のダッシュボードにシグナルボタンがないのです。サーバー、vpsを借りて、移行が必要と書いたのですが、移行ボタンが動きません。その理由を教えてください。
MetaTrader 5(ターミナル内蔵のバーチャルホスティングレンタル用)には、64ビットのオペレーティングシステムが必要です。
Win10で、ローカルエージェントを接続する人はいますか?
2台のPCを接続してみましたが、リモートエージェントは常に接続準備中、接続準備中、接続準備中...の状態です。仕事もない。
ファイアウォールを見てみると、メタトレーダー・エージェント、エクスポート、インポートエージェントの チェックマークがあり、ポートやPCの名前も見ることができます。
他の場所にポートを転送する必要があるのでは?