#property description"Если ваш робот использует тики (таких не встречал!),"#property description"то вы сталкиваетесь либо с тормозами,"#property description"либо с запредельным использованием памяти."#property description"Что не позволит вам спокойно поставить робота на VPS.\n"#property description"Для тех, кто считает возможным для себя участие в деле исправления этого бага,"#property description"просто опубликуйте результат выполнения этого скрипта по ссылке ниже.\n"#property description"https://www.mql5.com/ru/forum/342090/page81#comment_20534660"#property description"Эта ссылка доступна к копировнию в буфер обмена в Журнале (Эксперты)."#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279constbool Init = EventSetTimer(1);
// Вызывается CopyTicks для каждого символа из Обзора рынка.void CopyTicks_Test()
{
staticMqlTick Ticks[2000];
for (int i = SymbolsTotal(true) - 1; !IsStopped() && (i >= 0); i--)
{
conststring Symb = SymbolName(i, true);
if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM))
{
CopyTicks(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000, 1);
// CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000);
}
}
}
// Вызывается CopyTicksRange для каждого символа из Обзора рынка.void CopyTicksRange_Test()
{
staticMqlTick Ticks[2000];
for (int i = SymbolsTotal(true) - 1; !IsStopped() && (i >= 0); i--)
{
conststring Symb = SymbolName(i, true);
if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM))
{
// CopyTicks(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000, 1);CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000);
}
}
}
#define PRINT(A) Print(#A + " = " + (string)(A))
voidOnDeinit( constint )
{
PRINT(SymbolsTotal(true));
PRINT(TerminalInfoInteger(TERMINAL_MEMORY_USED));
Print("https://www.mql5.com/ru/forum/342090/page81#comment_20534660");
}
voidOnTimer()
{
staticint Count = 0;
_BV(CopyTicks_Test(), 1); // Очень много потребляет CPU, выполняется медленно, память не использует.
_BV(CopyTicksRange_Test(), 1); // Очень много потребляет RAM, выполняется быстроComment(TimeCurrent());
if (Count++ > 9)
ExpertRemove();
}
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
コールド状態での長い実行中に(サーバーからのアップロードで)CopyTicksが注文を修正した場合、それは(サーバー上ではなく、ターミナル -OnTradeTransactionで)かなりの遅れで発生します。
例えば、ノーマルモードでは100ms、ハイエンドモードでは2000msです。
最寄りのティックによるCopyTicksを高速化し、数百メガバイトを消費しない方法とは?
検索文字列:オシブタ024。
ダニとの付き合い方を何とか惜しみなく学ぶ必要がある。うまくいっていない。
CopyTicks by closest ticksを高速化し、数百メガバイトを消費させない方法とは?
検索文字列:オシブタ024。
ありがとうございます。ログを見ると、CopyTicksの問題がよくわかります。
ありがとうございます。ログを見ると、CopyTicksの問題がよくわかります。
Sab、Spyのインジケーターは使わないのですか?
IDを通して、文字列の代わりにロボットが作業中のシンボルを取得しますが、今日は2つの端末で異なるステータスの取引が行われました。
スパイロのM1でcalculated=を経由して、新しい 計算の ためのチェックがあり、その後ロボットに送信されます。
Sub, spy indicator don't you work with it?
MT4下のみ-KBの嘘で。
MT4下のみ-KBの嘘で。
カスタムベースは情弱の道楽
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
MT5とスピードの関係
ドミトリー・マナニコフ, 2021.02.05 14:38
シンボルの数を増やすと、メモリ使用量が多くなる問題が出てきます。
カスタムベースなんて見向きもしない、情弱向けだ。
理解できない書き込みには反応しない。