#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),并有明显的滞后。
例如,在正常模式下为100毫秒,在较高模式下为2000毫秒。
如何使CopyTicks按最近的ticks快速,并且不消耗数百兆字节的资源?
搜索字符串:Oshibka 024。
需要学习如何以某种方式少用蜱虫。不工作了。
如何使CopyTicks按最近的ticks快速,并且不消耗数百兆字节的资源?
搜索字符串:Oshibka 024。
谢谢你,日志很好地显示了CopyTicks的问题。
谢谢,日志很好地显示了CopyTicks的问题。
Sab,间谍指标你不使用吗,我有很多问题
通过ID,而不是字符串,机器人得到了工作符号,但今天2个终端的交易状态不同。
在spyro的M1上通过calculated=,有一个检查新的 计算,然后发送给机器人。
子,间谍指标,你不与它合作吗?
只有在MT4下--在KB中才有可能。
只有在MT4下--在KB中才有可能。
不要看定制基地,它是为弱者准备的。
关于交易、自动交易系统和交易策略测试的论坛
MT5和速度在行动
Dzmitry Manannikov, 2021.02.05 14:38
如果你增加符号的数量,你会看到内存占用率高的问题。
我不看定制基地,那是为弱者准备的。
我不会对我不理解的帖子作出回应。